打印
[开发工具]

IAR For STM32 的另一个Bug

[复制链接]
2464|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

帖子

0

粉丝