打印
[开发工具]

IAR在FLASH调试时,如果将正在运行的程序断开,复位后SFR不清零

[复制链接]
3090|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
XUSN|  楼主 | 2008-3-7 09:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教大家:
环境:  IAR4.42A, LPC2132, HJTAG
IAR在FLASH调试时,如果将正在运行的程序断开,复位后SFR不清零,
如果我运行到中断置位时STOP, 那么即使修改代码,重新编译进入
调试状态,程序一运行就进入中断处理了.

这个问题好郁闷啊, 为何IAR中复位不能清SFR呢
沙发
XUSN|  楼主 | 2008-3-7 11:29 | 只看该作者

该不会是在IAR的setup macro里写N个初始化语句吧

该不会是在IAR的setup macro里写N个初始化语句吧,

__writeMemory32(Value,  addr, Memory);

那还不把人弄死, 那么多SFR, 每个都写一条语句.

使用特权

评论回复
板凳
chunfeng12| | 2008-3-13 21:02 | 只看该作者

复位是分软件和硬件的

在理论上STM32的软件复位和硬件复位效果是一样的,我曾经试过在软件复位时有些IO口并没有复位,你看下这个信息能不能帮你解决问题。

使用特权

评论回复
地板
xusn| | 2008-3-14 08:11 | 只看该作者

后来俺在初始化操作里直接直接引用地址来清零

后来俺在初始化操作里直接直接引用地址来清零,
在__lowlevel_init() 
里写for,  * sfr_address = 0;

使用特权

评论回复
5
wlq_9| | 2008-3-14 09:17 | 只看该作者

~

IAR的复位是软件复位吧,和硬件复位不同,当然不能清寄存器.
因此要求你的初始化程序够完善.想想看,以前许多片子的内置看门狗复位也是非硬件复位也不会初始化寄存器,如果初始化程序不够完善,那么有看门狗都救不了.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

159

帖子

0

粉丝