您好、TI 专家:
我,了一个指针数组,这保存了 ADC 的默认严格的地址,但当我加载和运行程序使用乳化剂,它似乎运转良好


但当我以离线模式运行程序时、我读取阵列的内容都是"0000"使用通信、 相应的函数未成功运行
为什么指针阵列在离线模式下无法正确初始化?我该怎么做、请帮助我
注意:我没有在程序中的任何位置归零此 RAM 上的数据
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好、TI 专家:
我,了一个指针数组,这保存了 ADC 的默认严格的地址,但当我加载和运行程序使用乳化剂,它似乎运转良好


但当我以离线模式运行程序时、我读取阵列的内容都是"0000"使用通信、 相应的函数未成功运行
为什么指针阵列在离线模式下无法正确初始化?我该怎么做、请帮助我
注意:我没有在程序中的任何位置归零此 RAM 上的数据
是,脱机模式表示未连接 JTAG。
无论是使用 JTAG 还是不使用 JTAG、程序都会在闪存中运行。
从内存中我们可以知道指针数组是映射在"ebss"中的。
第1页:
RAM_STACK:origin = 0x000000,length = 0x000300 /*片上 RAM 块 M0 */
RAM_EBSS:origin = 0x000300,length = 0x000100 /*片上 RAM 块 M1 */
.ebss :> RAM_EBSS 页面= 1.
好的、我使用 "const"关键字更改数组定义
const Uint16 *pAdAddrList[]=
{
(UINT16 *)(&adDataAD1)、
(UINT16 *)(&adDataAD2)、
(UINT16 *)(&adDataAD3)、
(UINT16 *)(&adDataAD4)、
(UINT16 *)(&adDataAD5)、
(UINT16 *)(&adDataAD6)、
(UINT16 *)(&adDataAD7)、
(UINT16 *)(&adDataAD8)、
(UINT16 *)(&adDataAD9)、
(UINT16 *)(&adDataAD10)、
(UINT16 *)(&adDataAD11)、
(UINT16 *)(&adDataAD12)、
(UINT16 *)(&adDataAD13)、
(UINT16 *)(&adDataAD14)、
(UINT16 *)(&adDataAD15)、
(UINT16 *)(&adDataAD16)、
(UINT16 *)(&adDataAD17)、
};
您可以看到"cinit"包含数组的内容


但为什么 RAM 数据全部为0?

c_init00函数初始化所有全局变量。
int a = 10;->编译器为变量 A 分配存储器、值10存储在闪存中、作为.cinit 段的一部分。 c_int000函数是一个通过读取.cinit 段将'a'变量初始化为10的函数
它还会进行一些其他基本初始化、例如堆栈指针初始化、设置模式等、最后分支到主函数。 建议调用_c_init00函数 、除非您的启动代码负责所有这些初始化。
此致、
Veena