新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 单片机与程序设计(下)

单片机与程序设计(下)

作者:时间:2018-08-09来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/201808/385982.htm

例如,如果存在不可屏蔽中断(NMI,即CPU不能屏蔽的中断),那就从写有NMI项的地址开始进行处理(请参照《(上)》的图2及图3)。

⇒使用向量表进行处理的流程在本系列《(上)》中进行解说。

(4)如上所述,向量表的NMI项中的值(地址)将转移到程序计数器中,并从该处开始执行。此外,如将数值设为0而产生错误时,或者欲存取到无存储器的位置时,CPU本身将产生中断并从向量表中读取开始处理的地址。此例中,由于在检测到程序失控时是通过独立的看门狗定时器进行的,所以中断程序将使系统停止下来。

(5)如为一般的周期性中断,那么,一结束,且在入栈时将存放在堆栈中的“执行原先执行程序时的信息”返回到CPU。最后返回程序计数器的值,并结束从中断返回的处理“出栈”。

开始中断程序时,通过来自外部的信号或从CPU本身发出的指令来开始入栈。出栈时使用“来自中断的出栈指令”,因此编程人员无需考虑“堆栈中存放有什么信息又是按什么顺序来存放的?”等问题,仅需一条指令便可进行出栈处理。

结合上期《(上)》的内容,从执行程序的观点来分析,本期对于CPU中到底产生了什么变化进行了说明。程序存放在地址空间中,且在向量表中保存有起始地址,而且还有将信息暂时存放的被称为堆栈的内容等等……,在进行嵌入式编程时,必须同时考虑这些内部动作后再进行编程。如果可通过程序对于更细微的部分发出指示,且能发挥出该单片机的能力的话,编程将变得更加容易。

本系列共分4期,本期为最后一期。尽管每一期都只介绍非常基础的内容,对于那些内容,我们也尽量做到即使对于完全不具备相关知识的读者也能看得懂。所以,请您也反复阅读,我们相信您一定会完全理解其内容的。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭