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

为何AM1808内的长字节变量当值正好为0X2FFFF时,偶尔会跳至0XFFFF?

您好:    我现在使用了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,能重现该问题么?

赞(0)
未经允许不得转载:TI中文支持网 » 为何AM1808内的长字节变量当值正好为0X2FFFF时,偶尔会跳至0XFFFF?
分享到: 更多 (0)