您好: 我现在使用了TI的AM1808芯片开发裸机系统,开发语言以C语言为主,开发平台使用
了CCS5.2,仿真器选用了ICETEK的XDS100V2。
项目基本上是在AM1808_StarterWare_1_00_03_03的例程基础上修改编写的,很多编译
器的选项没有改动过。
现在产品开发完毕,在内部测试阶段发现了非常严重的问题。变量数值在运行过程
中,当值正好为0X2FFFF时,偶尔会自动变为0XFFFF,丢失0X20000!
系统内现使用了大量长字节型变量(LONG INT 与 LONG LONG定义),发现只要当变量
数值正好为0X2FFFF时,数值经常会自动变化为0XFFFF,整整丢失0X20000的数据。
测试阶段发现,这种情况不论是在仿真或将程序固化至芯片内运行,都会发生。
且不是每次发生,大概三次内会发生一次数值错误。
为解决这个问题,我取消了编译速度优化等,但没有任何效果。
为了方便快捷得让您看到这种现象,我直接采用了对变量赋值同时观测MEMORY的数据
变化,确实发现有此问题。
当我赋值不为0x2FFFF时,变量数据与MEMORY内对应数据同步变化;当赋值正好为
0x2FFFF时,它会出现四种状态,请见截图。
请见附件,附件内含各种截图信息,请尽快帮我解决此问题,很急,谢了!!!
Yaoming Qin:
写一个简单的程序,定义long long,能重现该问题么?