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

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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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存在尖峰现象;继电器吸合,尤其是断开瞬间会在电源线上出现尖峰干扰脉冲;外界雷电干扰脉冲、接在同一个相线上的大功率电机启动,尤其是关闭瞬间形成的干扰脉冲也会通过电源线串入控制系统中。   (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,重新执行“跑飞”的模块)。 这种具有远程拦截功能的模块程序经编译后,模块入口地址和出口地址固定,还能有效地阻止非授权用户通过反汇编方式在模块内添加或删除指令,在一定程度上增加了代码的安全性。 11.4.4 检查并消除STM8指令码中不需要的关键字节   如果在STM8内核MCU指令码中出现以下4个关键字节,则一旦PC“跑飞”,落入包含这些关键字节的指令码,并将这些关键字节作为指令的操作码时,后果可能非常严重。   ● ?8EH, HALT指令机器码,强迫MCU进入低功耗模式。当它在主程序中出现,将停止运行,直到能唤醒的中断出现,或看门狗计数器溢出,强迫系统复位;在中断服务程序中出现,则会改变中断优先级而造成混乱。   ● ?8FH, WFI指令机器码,等

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档