永发信息网

单片机中断的断点保护和现场保护都是在中断响应的时候进行的吗?

答案:3  悬赏:80  手机版
解决时间 2021-04-01 21:04
单片机中断的断点保护和现场保护都是在中断响应的时候进行的吗?
最佳答案
断点保护肯定是硬件的,这个软件没可能实现,只能是硬件保护返回地址。
现场保护则不一定,有可能是软件的,也有可能是硬件的,单片机不同,或者说不同的内核,处理方式不一样。
两种现场保护方式,各有优、缺点,简单点说,软件保护现场则硬件简单但软件复杂,硬件保护现场则软件简单硬件复杂。
比如ARM的CM3中断处理程序,看起来与普通程序完全一样,软件上不需要做特殊处理,可以直接用标准C语言写。
又比如51的中断处理,硬件只保存一个返回地址,返回还要用中断返回指令,使用任何寄存器都需要软件处理现场保护,写程序的时候就要麻烦一点。另一方面,相对来说它的硬件就简单一些。

还有就是要指出,硬件保护实时性会好一些,软件保护则更灵活一些。追问那为什么我写51的中断处理函数的时候,从来没有写过现场保护的程序,但是他也能正常执行中断呢。追答现在都用C语言编程,51的C语言是扩充过的,不是标准的C。现场保护程序是有的,只不过是编译系统帮你写好了而已。用汇编编程的时候,就需要自己写现场保护程序了。

C51的中断程序需要用interrupt修饰,标准C语言不认interrupt的。C51编译interrupt程序时,会自动生成现场保护程序,比如保存与恢复PSW、ACC,虽然我们没有主动去写,但这部分软件代码确实是存在的。
中断的时候用哪个寄存器组,C51需要用using指出,本质上这是在手工分配内存,属于软件编程的一部分。

还要指出,因为C51扩充了好多关键字,导致用C51写的代码移植是比较困难的。
全部回答
关注这个问题
这个跟单片机架构有关。8051硬件实现断点保护也就是中断时pc自动入栈,但是现场保护也就是各寄存器入栈由软件实现。arm处理器的话除了断点保护,前8个寄存器也是自动入栈的。如果你用C语言开发不需要考虑这个
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
韩国的好听的RAP,HIPPOP
1.4ERP与MRP、MRPⅡ的区别?
金银湾村地址在哪,我要去那里办事
手没有力气,握拳头握不紧,怎么办
一般的企划案怎么做?
怎么用手电测试18650锂电池容量,得出大概容
一年级下学期两个男孩推苹果车看图写话
为什么鱼一直泡在水里不会烂而人泡在水里身体
58x96用乘法运算定律
柿子吃多了会上寒火吗?
这车档位
CS8568S是哪个公司的芯片?有能提供一下管脚
数码相机拍摄模式中的“M”、“A”、“S”、
会所女的会不会被警察发现
泰国旅游早上起得早吗
推荐资讯
爱人一生
office2003文档用office2007r打开无法打印
怀孕了,整个孕期会一直停经吗?
泛型和范型的区别是什么?
中国的人情份子钱怎么这么重
奥图纳;城堡干红葡萄酒最贵多少钱
thebusyhasnotimeforsorrow如何翻译
角筋L50*5 是什么意思
南宁市邮政速递物流分公司江南银凯揽投部你他
父亲姓张,母亲也姓张,给女孩起名叫张幂好不
k的故事简介
我想买辆二手车,请问哪个网站车源多,真实靠
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?