今天小编要和大家分享的是嵌入式技术相关信息,接下来我将从嵌入式世界里,堆栈的作用和意义,001 08 04_08 04 07 图片_百度百科这几个方面来介绍。

嵌入式技术相关技术文章嵌入式世界里,堆栈的作用和意义001 08 04_08 04 07 图片_百度百科

嵌入式技术相关技术文章嵌入式世界里,堆栈的作用和意义

栈这种结构在嵌入式里其实是非常常用的,比如函数调用与返回就是典型的栈应用,虽然很多时候栈都是 CPU 系统在自动管理,我们只需要在链接文件里分配栈大小以及栈存放位置,但稍微了解一下栈的原理会更加利于我们去理解嵌入式代码执行机制,以及帮助我们进一步去调试。

1. 何为堆栈?

堆 HEAP 与栈 STACK 是两个不同概念,其本质上都是一种数据结构。

栈是一种按数据项排列的数据结构,只能在一端(栈顶 top)对数据项进行插入和删除,其符合后进先出(Last-In / First-Out)原则。栈(os)一般是由编译器自动分配释放,其使用的是一级缓存。

堆也是一种分配方式类似于链表的数据结构,其可以在任意位置对数据项进行操作。堆(os)一般由程序员手动分配释放,其使用的是二级缓存。

在嵌入式世界里,堆栈一般指的仅是栈。

2. 作用与意义

在 MCU 中,栈这种结构一般被 cpu 和 os 所使用。

在 cpu 裸机中使用情况分两种:一、主动进行函数调用时,STACK 用以暂存下一条指令地址、函数参数、函数中定义的局部变量;二、硬中断来临时,暂存当前执行的现场数据(下一条指令地址、各种缓存数据),中断结束后,用以恢复。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查