首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

求助。防止代码跑飞

求助。防止代码跑飞

因为如果程序跑飞,MCU 可能不受控制地从存储器程序代码区的未用地址中执行程序,为避免可能有害的影响,
所有未使用的地址都应该包含一条合理而且适宜的指令。该指令可能是一个以
SWI 指令结尾的NOP 序列,或者更简单,都是SWI 指令。这么做以后,不受控
地在这些地址中执行代码就会发生软件中断。然后程序员就能确定到底发生了什
么意外。

我用的单片机是MC9S08QG8。。我想问比如未使用的地址为0xE200到0xFFF ...我要怎么在这些未使用的地址填入

适当的语句,如返回指令到0x0000.或者填入SWI 指令呢。?

请各位高手,老师指导,万分感谢

我觉得将swi指令写入这种方法好像比较无奈,其实程序跑飞多半是软件问题,如果实在有也是一种思路,就是将swi的机器码和标志信息写满整个存储器,当然是间隔一定的空间。可以自己写一段flash的烧写程序。

这个版主不太冷 =========================== 我的中电网博客:http://blog.chinaecnet.com/u/20/index.htm

你好,谢谢你的回答。我用MC9S08AW32单片机。它的flash的起始地址是8000到FFFF。。

你说将swi的机器码和标志信息写满整个存储器

指的是:swi 所对应的地址吗?在Datasheet上写的swi 所对应的地址为$FFFC:FFFD (High\low) 是这个吗?

把两个地址都写进去吗?你的QQ是多少?

返回列表