[开发工具] IAR For STM32 的另一个Bug

[复制链接]
3208|2
 楼主| seawwh 发表于 2009-2-16 18:38 | 显示全部楼层 |阅读模式
在调试STM32代码时候发现了一个IAR的软件仿真错误:

环境: IAR4.42a ,IAR5.3 For STM32, 软件仿真执行,测试代码附后:
说明: 位于20000300的RAM单元,全部代码执行后应该为0x000000FF。
   但是仿真的结果为0x000001FF; 
   改为硬件单步执行结果是正确的 20000300的RAM单元为0x000000FF。
   这个Bug的最初发现是在按位访问I/O寄存器的时候。
   到IAR 5.3上试验软件仿真执行结果仍然和4.42A雷同。
   估计对其他具有这种位访问功能的ARM芯片,也会有错。
顺便说一句,STM32 的位访问功能可以有效的提高执行效率。

u32 *P0=(void *)0x20000300;
u32 *P1=(void *)0x22006008;

int main(void) {

  *P0=0x000001FF;
  *P1=0;           // 将地址20000300H 单元的第8位置0

}   

Swd21ic 发表于 2009-2-16 23:04 | 显示全部楼层

re

楼主,你去测试一下IAR4.42A 在调试STM32 Cortex模式切换时的例程.
或者运行一个uCOS的例程.
我调试窗口中的MSP和PSP的显示不对...!!
wlq_9 发表于 2009-2-17 09:45 | 显示全部楼层

LZ

最好多看看别人的代码,就不会再发现这么多BUG.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

145

主题

368

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部