blly 发表于 2016-8-29 12:06:48

CSR8670定义自定义数组不能运行

我定义了一个1024字节的数组,然后程序能编译通过,但是就运行不了,会报The application image on chip does not match the application on disk错误,请问怎么才可以定义一个大字节的变量呢?

zx104700 发表于 2016-8-29 13:11:44

这个错误与定义数组没关系吧,你青空之后再编译试试

mupro 发表于 2016-8-29 14:55:42

数组不要搞太大了,用const弄到代码区去
要大数组用malloc

blly 发表于 2016-8-29 18:17:36

mupro 发表于 2016-8-29 14:55
数组不要搞太大了,用const弄到代码区去
要大数组用malloc

谢谢你的回答,
但是我用malloc申请1024内存不成功
uint8 * p;
p=malloc(1024);
if ( p == NULL )
{
   printf("@\n", (uint16)p);
}
指针反回NULL
按道理csr8670内存不会这么小的啊

pkuzhx 发表于 2017-4-18 15:54:07

malloc最大只能申请1024,要满足以下条件:
①首先,在RAM的dynamic区域至少还有这么大的空间
②PSKEY中要设置一个1024大小的pool,这需要修改PSKEY_PMALLOC_APP

ksn13 发表于 2017-10-17 17:51:26

pkuzhx 发表于 2017-4-18 15:54
malloc最大只能申请1024,要满足以下条件:
①首先,在RAM的dynamic区域至少还有这么大的空间
②PSKEY中 ...

1. 如何确定dynamic还有这么大空间?
2. 用PS_Tool工具如何修改"VM application pmalloc size array" 的值?

我用PS工具读出来的值是这样的“0004 002e 0006 0010 0008 000f 0010 0045 001c 001f 0020 000a 0028 0001 002e 0004 0040 0001 0064 0003 0072 0001 00a4 0001 00b8 0001 0276 0001”

完全不懂如何去修改
页: [1]
查看完整版本: CSR8670定义自定义数组不能运行