TI中文支持网
TI专业的中文技术问题搜集分享网站

您好,我的问题是数组的长度会导致程序跑飞

硬件:280025C controlcard

ide: CCS10.1

问题描述:

如下所示,我的程序中初始化完成后会点亮一只LED,然后在主while中执行calculateCRC16()这个函数。

然后问题来了,这个函数有个实参,数组TraData的指针,这个数组默认长度是100,这种情况下,仿真是可以正常跑的,下载到FLASH后重启,程序跑飞,LED没点亮。

然后我把这个数据的长度改成10,程序下载到FLASH中,重启是能够正常运行的。

CrcCheckTemp = CalculateCRC16(TraData,5);                    // 这句话会在while中执行

uint16_t  CalculateCRC16(unsigned char const *msgPtr,  uint16_t msgLen)       

{

          // 为了查找问题,这个函数没执行任何操作,但是还是上面描述的现象,TraData数组长度不同,现象不同,一种重启正常运行,一种重启跑飞

顺便贴上上述两种情况的map文件和工程的cmd配置文件。百思不得其解,希望收到您的答复。

sci_boot_err_map.txt

f28002x_flash_cpu_is_eabi_cmd.txt

Susan Yang:

请问您是如何定义数组的呢?

您可以看一下
www.ti.com/…/spra958l.pdf的

4.6.2 Method 2: Running a Specific Constant Array from RAM 的相关内容

user6371047:

回复 Susan Yang:

您好,我定义数组的方式为:unsigned char TraData[100];

Susan Yang:

回复 user6371047:

谢谢反馈,请您查看一下私信

Susan Yang:

回复 user6371047:

您现在情况如何?我申请的280025的开发板到了,可以测试您的工程了。若是还未解决的话,您可以私信您的工程,我们来测试一下

赞(0)
未经允许不得转载:TI中文支持网 » 您好,我的问题是数组的长度会导致程序跑飞
分享到: 更多 (0)