任务栈里到底存放的是一些什么东西?(任务切换,中断,函数调用)

82 篇文章 32 订阅
80 篇文章 10 订阅

任务栈里到底存放的是一些什么东西?这个我觉得有必要弄清楚。C语言的栈也是,中断发生时,栈保存的是当前函数的什么,指令地址和寄存器值么?

 

任务控制块为什么那么设计?

 

 

经过各种资料我应该可以确定为是     寄存器    和     程序计数器

程序计数器肯定是要保存的,寄存器也是各个资料都讲到了的。

 

我现在发现,程序计数器其实也是保存在一个寄存器里面的值,所以上面可以统一归为保存寄存器。我之所以这么想也是看下面给我的感受,完整课放大的照片可以往下翻,这里只是附上截图。

其实想想本质就是各种寄存器嘛,你不管什么值不都是保存在内存里,寄存器本质就是内存嘛。

 

下面拍自原子的freertos书

https://baike.baidu.com/item/%E4%B8%8A%E4%B8%8B%E6%96%87%E5%88%87%E6%8D%A2/4842616?fr=aladdin

https://blog.csdn.net/weixin_40599145/article/details/88032916

 

 

看freertos的任务切换函数的具体步骤,你会发现里面大部分步骤都是在保存寄存器的值

拍自正点原子的《FreeRTOS源码详解与应用开发》

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值