搜索

中断出来之前能不能把出中断的位置修改掉?

[复制链接]
324|12
 楼主 | 2020-6-1 16:54 | 显示全部楼层 |阅读模式
RT,需求上不要哪进哪出,无论再哪进入中断都想从同一个固定位置出来。目前是用全局变量做的,感觉很麻烦,代码多了容易出问题

使用特权

评论回复
| 2020-6-1 17:39 | 显示全部楼层
lz估计对中断理解有错误。。。

使用特权

评论回复

评论

112412的v 2020-6-1 18:06 回复TA
或者说是暂停了main,执行中断,执行完之后再去执行进入断点之后的代码,我理解的有什么问题吗 
 楼主 | 2020-6-1 18:02 | 显示全部楼层
wooda 发表于 2020-6-1 17:39
lz估计对中断理解有错误。。。

怎么说?中断不是哪进哪出吗

使用特权

评论回复
| 2020-6-2 09:42 | 显示全部楼层
中断是当中断条件产生且中断被允许时,由硬件将PC指针跳转到中断向量地址执行中断服务程序,直到遇到中断返回指令,再回到进入中断前的地址继续执行主程序。

完全不明白你说的中断哪进哪出是个什么意思。

使用特权

评论回复
 楼主 | 2020-6-2 11:16 | 显示全部楼层
ynwa 发表于 2020-6-2 09:42
中断是当中断条件产生且中断被允许时,由硬件将PC指针跳转到中断向量地址执行中断服务程序,直到遇到中断返 ...

这个返回地址能改吗

使用特权

评论回复
 楼主 | 2020-6-2 11:20 | 显示全部楼层
ynwa 发表于 2020-6-2 09:42
中断是当中断条件产生且中断被允许时,由硬件将PC指针跳转到中断向量地址执行中断服务程序,直到遇到中断返 ...

中断发生的时候进去中断,执行完中断之后返回发生中断的位置,我现在的需求就是不想它回到发生中断的位置,想它返回别的位置

使用特权

评论回复
| 2020-6-3 10:01 | 显示全部楼层
你要的就是RTOS天天都在做的事

使用特权

评论回复
| 2020-6-3 19:42 | 显示全部楼层
112412的v 发表于 2020-6-1 18:02
怎么说?中断不是哪进哪出吗

"无论再哪进入中断都想从同一个固定位置出来",这个就不是常规中断模式。
当然,没什么是不可能的,要实现这个功能,就是操作堆栈。
堆栈操作,说简单很简单,说复杂也很复杂,要对函数调用,编译等有透彻的理解才行,
否则分分钟系统放飞自我。。。



蛋是!!
pic大部分芯片不支持对堆栈直接操作。哈哈哈。。。。

使用特权

评论回复
| 2020-6-3 19:45 | 显示全部楼层
所以 “无论再哪进入中断都想从同一个固定位置出来”
用C语言也能实现,尤其是在pic上。。。
搞不定堆栈,我们可以搞定ISR函数啊,退出中断搞不定,我们可以让ISR函数上抓位置嵌入需要的代码啊。。。
哈哈哈,办法总比困难多,实在不行就砸钱买下mcp然后叫设计师全面更新所有芯片设计。。。嘿嘿嘿。。。

使用特权

评论回复
| 2020-6-4 21:03 | 显示全部楼层
wooda 发表于 2020-6-3 19:42
"无论再哪进入中断都想从同一个固定位置出来",这个就不是常规中断模式。
当然,没什么是不可能的,要实现 ...

PIC18 可以的哦

使用特权

评论回复
| 2020-6-4 21:44 | 显示全部楼层
了解栈的工作原理,就知道如何实现了。

使用特权

评论回复
| 2020-6-5 11:29 | 显示全部楼层
把栈里面存的返回地址修改成你要的就行了.

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表