当前位置: 首页 > article >正文

freeRTOS内部机制——栈的作用

上图中*pa 和*pb分别为R0,R1,调用C函数时,第一个参数保存在R0中第二个参数保存在R1中。这是约定。

指令保存在哪里?

指令保存在flash上面

LR等于什么?

LR是返回地址,函数执行完了过后LR等于下一条指令的地址

运行流程

中断随时可能发生,发生中断时我们如何保存现场?

什么叫做现场?

现场暂时认为是就是CPU中的16个通用寄存器R0-R15中的值

在被打断瞬间,寄存器的值怎么保存?

保存在栈中

任务中函数会调用其他的函数,在执行过程中可能会被打断?在打断的时候要保存现场到栈中。

任务:运行中的函数

注意:中断打断执行程序只需要保存某些寄存器,如果是发生了任务的切换,则需要保存所有的寄存器,因为发生任务切换之前不知道使用了哪些寄存器

http://www.kler.cn/a/103848.html

相关文章:

  • HotReload For Unity的文档的导航的翻译,添加了一些自己的理解。很垃圾
  • 【德哥说库系列】-PostgreSQL跨版本升级
  • 优橙内推海南专场——5G网络优化(中高级)工程师
  • Unity 中使用波浪动画创建 UI 图像
  • Spring Cloud之声明式服务调用(Feign)
  • 【数据结构】【C语言】【环形链表约瑟夫问题】
  • 虚拟机kafka
  • 通俗介绍:什么是 Redis ?
  • Android 得到安装包的信息
  • 网络协议--IGMP:Internet组管理协议
  • Unity之ShaderGraph如何实现全息投影效果
  • ModbusTCP 转 Profinet 主站网关在博图配置案例
  • C# 文件 校验:MD5、SHA1、SHA256、SHA384、SHA512、CRC32、CRC64
  • VScode连接的服务器上使用jupyter显示请选择内核源
  • 自然语言处理---Transformer机制详解之BERT模型特点
  • vuejs实现点击导出按钮把数据加密后传到json/txt格式文件中并下载,以及上传json文件解密获得json内容
  • 生产环境元空间内存溢出(OOM)的问题排查
  • harrypotter1-aragog靶机攻略
  • 软考高项-写作准备写作步骤
  • 我们在 Linux 环境中用 C 编程时,如果对文件读写,Linux 会自动给文件加锁嘛?以及怎么加文件锁?