STM8S系列单片机原理与应用 作者 潘永雄 第6-11章 第11章.pptVIP

  • 24
  • 0
  • 约2.01万字
  • 约 120页
  • 2015-12-13 发布于广东
  • 举报

STM8S系列单片机原理与应用 作者 潘永雄 第6-11章 第11章.ppt

11.2 软 件 设 计 11.2.1 存储器资源分配   STM8S系列MCU内嵌的RAM容量较大,在1~6?KB之间(具体数目与芯片型号有关),地址在0000H~17FFH之间。尽管不同单元读写指令形式相同,但访问位于00页内的RAM存储单元(地址在00H~FFH)时,指令代码短,因此常用变量应尽可能地安排在00页内的RAM空间内,并将地址标号定义为字节类型。 11.3 STM8芯片提供的可靠性功能 11.3.1 提高晶振电路的可靠性   在对定时精度要求很高的系统中,一般均使用稳定性好、精度高的晶体振荡器,然而不幸的是:晶振电路往往比较脆弱—强烈振动、碰撞等原因可能会造成晶振损坏,严重干扰也可能使晶振停振。 11.4 软件可靠性设计   单片机主要面向工业控制、智能化仪器仪表以及家用电器,这对单片机应用系统的可靠性提出了很高的要求。   在数字系统中,总会存在这样或那样的干扰。导致计算机系统不可靠的因素很多,无论是TTL,还是CMOS数字电路芯片,在逻辑转换瞬间,电源电流ICC存在尖峰现象;继电器吸合,尤其是断开瞬间会在电源线上出现尖峰干扰脉冲;外界雷电干扰脉冲、接在同一个相线上的大功率电机启动,尤其是关闭瞬间形成的干扰脉冲也会通过电源线串入控制系统中。   可见,为检查PC“跑飞”增加的指令不多,保护低16位入口地址时,每一模块仅需要额外的15个字节存储空间(当只保护低8位入口地址时,仅需11个字节),对运行速度影响也很小。当模块代码规模较大时,对运行效率的影响几乎可忽略不计(因此不推荐在代码长度短或实时性要求高的模块中采用);每一模块也只额外占用1~2个字节堆栈,对堆栈深度要求不高。不过当堆栈深度有限时,尤其是嵌套层次较多时,要特别注意堆栈溢出问题(所幸的是STM8系统堆栈深度较大,一般不会出现堆栈溢出问题)。   (3) 直接保护入口地址的模块结构。   当堆栈深度有限时,可直接将模块入口地址保存到内部RAM单元中,其模块结构如下所示: Model_Name_INAdr_ram ds.w 1 ; 在RAM段定义模块入口地址保存单元 Model_Name.w ; 模块名(子程序名) ;PUSH A ;PUSH CC ;PUSHW X ;PUSHW Y Model_Name_IN_Adr.w LDW X, #{OFFSET Model_Name_IN_Adr} ; 取模块入口地址低16位 LDW Model_Name_INAdr_ram, X ; 把模块入口地址低16位送 ; Model_Name_INAdr_ram字单元 ; 模块程序实体 Model_Name_OUT_Adr.w LDW X, #{LOW Model_Name_OUT_Adr) ; 取模块出口地址低16位 SUBW X, Model_Name_INAdr_ram ; 减去模块入口地址低16位 CPW X, #{OFFSET Model_Name_OUT_Adr-OFFSET Model_Name_IN_Adr} ;与模块长度比较 JREQ Model_Name_RIGHT ; 相同,说明正常进入模块,PC没有“跑飞” ; 不同,说明由其他模块飞入,进入软件陷阱 TRAP Model_Name_RIGHT.W   CLRW Model_Name_INAdr_ram ; 清除模块 入口地址保存单元  ;POPW Y  ;POPW X  ;POP CC   ;POP A   RET   需要注意的是:直接保护模块入口地址拦截方式不支持嵌套操作,即它在主程序模块中使用后,就不能在子程序模块、中断服务程序模块中使用;在低优先级中断服务程序中使用后,就不能在高优先级中断服务程序中使用,除非每一个优先级使用不同的内部RAM单元存放各自的入口地址(由于同优先级中断不能嵌套,因此同优先级中断服务程序可以使用同一单元记录入口地址)。   3) 拦截效果   远程拦截结构模块能有效地拦截模块间(远距离)“跑飞”现象。显然,模块规模越小,拦截的成功率就越高(为使拦截可靠性与效率之间取得一定的平衡,实践表明,模块长度控制在0.5~2 KB为宜)。它不仅能准确感知PC是否正常进入本模块,还可以从模块入口地址单元中判断出从哪一模块飞入,为失控后的系统恢复提供了有价值的线索(如可根据模块功能,将模块入口地址装入PC,重新执行“跑飞”的模块)。 这种具有远程拦截功能的模块程序经编译后,模块入口地址和出口地址固定,还能有效地阻止非授权用户通过反汇编方式在模块内添加或删除指令,在一定程度上增加了代码的安全性。 1

文档评论(0)

1亿VIP精品文档

相关文档