我在程序里定义了几个const型数组,有1000多个数。程序编译后用仿真器下载到c6416里可以运行,但用hpi启动方式加载到片子里不能运行。
但如果把const数组改成常量数组。就可以hpi加载。
两个程序只有在数组定时是有区别,能运行的程序定义unsigned char 数组,不能用的程序定义const unsigned char 数组。
Shine:
请问你在编译工程用的是-cr还是-c(或者缺省)选项?
xin jin4:
回复 Shine:
我没选过,是默认的。
Shine:
回复 xin jin4:
默认的是什么? 需要用-c或者缺省选项。
Shine:
回复 Shine:
另外,可以用仿真器跟一下加载后的程序,看用const定义的数组有没有初始化数据?
xin jin4:
回复 Shine:
我用仿真器看了数组,写过去了。程序也写过去了。
在用主DSPHPI复位从DSP启动之后,main函数就变了。是未知数据。但是如果是没有定义counst数组的程序就不会。还有编译选项里的-c之类的是什么意思?单位涉密,不能上网,能否留电话方便交流。
Shine:
回复 xin jin4:
你用的是哪款DSP器件?main函数可能被覆盖了。
-cr RAM model–Initialization of Variables at Load Time,这个通常在仿真器模式下使用
-c或缺省值 ROM model, 在程序运行时初始化变量,这个通常在突击模式下使用。
xin jin4:
回复 Shine:
6416
Shine:
回复 xin jin4:
请问main()函数是host加载代码是被覆盖的还是程序运行后被改写的?
xin jin4:
回复 Shine:
在用主DSP加载到从DSP,再HPI复位从DSP之后。用仿真器链接,发现我加载的程序变了。