搜索
bottom↓
回复: 13

在RTOS里,应用程序堆栈和芯片内核中断服务的堆栈是一样的吗?

[复制链接]

出0入8汤圆

发表于 2018-2-22 20:19:13 来自手机 | 显示全部楼层 |阅读模式
如题,比如,任务1,堆栈在01开始的地址,任务2堆栈在10开始的地址,在执行任务1是发生中断,当中断来后,入栈地址是01里还是中断服务原有的地址?不知我有没有表达清楚……

出0入0汤圆

发表于 2018-2-22 20:23:22 来自手机 | 显示全部楼层
看怎么设计的。抢占式的每个线程基本独享栈,协作式是共享的。中断一般是独享。至于堆,通常是共享

出0入8汤圆

 楼主| 发表于 2018-2-22 22:44:40 来自手机 | 显示全部楼层
中断一般是独享的,但是,在执行任务1时,SP是指向了任务1的栈,这时候发生中断,进入中断服务前会将上下文压入堆栈1,,

出0入8汤圆

 楼主| 发表于 2018-2-22 22:46:56 来自手机 | 显示全部楼层
xivisi 发表于 2018-2-22 20:23
看怎么设计的。抢占式的每个线程基本独享栈,协作式是共享的。中断一般是独享。至于堆,通常是共享 ...

中断一般是独享的,但是,在执行任务1时,SP是指向了任务1的栈,这时候发生中断,进入中断服务前会将上下文压入堆栈1,,任务2也同样这样。理论上应该怎样处理的?

出0入0汤圆

发表于 2018-2-23 03:44:25 | 显示全部楼层
12tangyang12 发表于 2018-2-22 22:46
中断一般是独享的,但是,在执行任务1时,SP是指向了任务1的栈,这时候发生中断,进入中断服务前会将上下 ...

( ̄◇ ̄;)……你先看下Cortex-Mx(M0/3/4随意)的手册好吗,从线程模式切入中断模式的时候是压PSP栈,退出中断后从PSP出栈。任务切换的玩法,就是在中断里改PSP。

出0入0汤圆

发表于 2018-2-23 09:24:10 | 显示全部楼层
看怎么设计的。抢占式的每个线程基本独享栈,协作式是共享的。中断一般是独享。至于堆,通常是共享
补充一下,中断里面一般不申请堆内存(可以由线程申请后给中断使用)。

中断一般是独享的,但是,在执行任务1时,SP是指向了任务1的栈,这时候发生中断,进入中断服务前会将上下文压入堆栈1,,
可以是这样,但一般不这样。常用的都设计成:中断使用独立的栈,不共用当前线程的栈。

出0入8汤圆

发表于 2018-2-23 09:32:21 | 显示全部楼层
主流的设计,这两个栈是要分开的。
看看 Cortex-M 的设计,应该可以窥视出来。

出0入0汤圆

发表于 2018-2-23 11:04:44 | 显示全部楼层
不错的问题,帮顶!

出0入0汤圆

发表于 2018-2-27 16:33:21 来自手机 | 显示全部楼层
一般中断使用独立的栈,不共用当前线程(任务)的栈。

出0入0汤圆

发表于 2018-3-4 06:57:03 | 显示全部楼层
都可以,对于Cortex-M是独占的多,MIPS等也是独占的,MSP430由于独占意义不大一般不独占

出0入0汤圆

发表于 2018-3-4 11:15:52 来自手机 | 显示全部楼层
pryprypry 发表于 2018-3-4 06:57
都可以,对于Cortex-M是独占的多,MIPS等也是独占的,MSP430由于独占意义不大一般不独占 ...

能解释下430为啥独占意义不大吗

出100入101汤圆

发表于 2018-3-4 15:16:14 | 显示全部楼层
这个问题不错

出0入0汤圆

发表于 2018-3-5 08:39:53 | 显示全部楼层
Ray______ 发表于 2018-3-4 11:15
能解释下430为啥独占意义不大吗

430的中断一般不嵌套。它的中断优先级是固定死的无法修改,因此如果用到中断嵌套的话,各个中断被抢占的顺序总是固定的。这样子允许嵌套意义就不大了,徒增复杂性。另外,430是低功耗应用,这类场合一般也用不到中断嵌套。
我的系统对MIPS和ARM和X86-Linux都实现了分别的内核栈和用户栈,但是唯独对430没有实现,430使用共享的内核栈和用户栈。参见github.com/EDI-Systems/M5P1_MuProkaron

出0入0汤圆

发表于 2018-3-5 10:01:22 | 显示全部楼层
如题,比如,任务1,堆栈在01开始的地址,任务2堆栈在10开始的地址,在执行任务1是发生中断,当中断来后,入栈地址是01里还是中断服务原有的地址?不知我有没有表达清楚……
  
———— 中断发生时,断点地址保存在当前正在使用的栈。
  
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-4 23:35

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表