位置:51电子网 » 技术资料 » 显示光电

用上面程序段重复覆盖剩余的程序空间

发布时间:2016/7/23 19:37:58 访问次数:472

   程序陷阱是指用来将捕获的“乱飞”程序引向复位入口地址(一般为0000H)的指令,这IR21834PBF主要是为了防止程序跑飞到盲区。一般情况下,程序代码空间以外的RoM空间被全写为1或全写为0,程序跳入这一区域将不可控。假设某系统程序空间为32KB,程序编译后共生成18KB的代码,那么,还有14KB的程序空间未被使用,可以在该区域放置下面的陷阱程序:

   bIULL-PRo: NoP

   NOP

   LJMP 0000H

   用上面程序段重复覆盖剩余的程序空间,陷阱程序里的每一段NOP指令的多少对于捕获的成功率及捕获的时间有影响。NoP指令放置的越多捕获的成功率就越高,但花费的时间就越长,程序失控的时间也越长;否则,情况则相反。因为只有程序跳转到NoP指令或LJMP指令的首个字节时,才能成功捕获;当程序跳到LJW1P指令的后两个字节时,可能会出现不可预知的执行结果。在用户程序区各模块之间的空余单元也可填入陷阱指令。当未使用的中断因干扰而开放时,在对应的中断服务程序中设置程序陷阱,能及时捕获错误的中断。

   程序陷阱是指用来将捕获的“乱飞”程序引向复位入口地址(一般为0000H)的指令,这IR21834PBF主要是为了防止程序跑飞到盲区。一般情况下,程序代码空间以外的RoM空间被全写为1或全写为0,程序跳入这一区域将不可控。假设某系统程序空间为32KB,程序编译后共生成18KB的代码,那么,还有14KB的程序空间未被使用,可以在该区域放置下面的陷阱程序:

   bIULL-PRo: NoP

   NOP

   LJMP 0000H

   用上面程序段重复覆盖剩余的程序空间,陷阱程序里的每一段NOP指令的多少对于捕获的成功率及捕获的时间有影响。NoP指令放置的越多捕获的成功率就越高,但花费的时间就越长,程序失控的时间也越长;否则,情况则相反。因为只有程序跳转到NoP指令或LJMP指令的首个字节时,才能成功捕获;当程序跳到LJW1P指令的后两个字节时,可能会出现不可预知的执行结果。在用户程序区各模块之间的空余单元也可填入陷阱指令。当未使用的中断因干扰而开放时,在对应的中断服务程序中设置程序陷阱,能及时捕获错误的中断。

热门点击

 

推荐技术资料

按钮与灯的互动实例
    现在赶快去看看这个目录卞有什么。FGA15N120AN... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!