软件陷阱实例
在单片机系统的实际应用中,系统的抗干扰能力显得非常重要。提高单片机系统的抗干扰能力除了采取硬件抗干扰手段外,也可采用软件抗干扰的手段,并且软件抗干扰具有设计灵活、节省硬件资源、成本低的优点,加以合理运用也能起到很好的抗干扰效果。软件抗干扰的措施主要有指令冗余、软件陷阱、软件“看门狗”等。本节通过软件陷阱实例介绍如何编写软件抗干扰程序。本节首先介绍什么是程序跑飞以及软件陷阱技术,接着讲述软件陷阱在程序中的位置,最后将给出软件陷阱程序实例并对软件陷阱程序进行分析。
基础知识
单片机程序正常运行时,程序计数器PC始终指向正在执行指令的下一条指令第一个字节的程序存储器单元地址,这样就保证了单片机能够正确地读取每一条指令的各个字节,即CPU先读取操作码,再读取操作数(如果有操作数字节的话)。在8051 单片机中,程序计数器PC的寻址范围是0000H~FFFFH,共64KB。用户应用程序中,根据系统要求,规定了程序运行的唯一路径。这体现在系统上电后,程序计数器PC有唯一的变化历程,保证了程序正常、有序地运行。程序跑飞是指系统受到某种干扰后,程序计数器PC的值偏离了给定的唯一变化历程,导致程序运行偏离正常的运行路径。程序跑飞的因素及后果往往是不可预计的。但在很多情况下,程序跑飞后PC指向未写入数据的Flash程序存储器。由于没有写入数据的Flash程序存储器的内容为0FFH,机器码0FFH对应的指令为MOV R7,A,所以系统不断地执行MOV R7,A指令,并很快会执行到程序存储器的最末尾,进入死循环而导致死机。这时,采用软件陷阱技术能有效引导跑飞的程序尽快退出死循环并迅速复位。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !