老师,芯片有几级堆栈的概念吗?

🔍 溯源 ✍️ Jack | 📅 2024-09-19 | 👍 0 | 原帖↗
#知识星球 #立芯嵌入式 #来源/立芯星球 #技术/ARM架构 #技术/FreeRTOS #技术/任务栈 #质量/普通

原帖 | Jack | 2024-09-19 11:32 | 👍0 | 阅读约1

老师,芯片有几级堆栈的概念吗?

芯片自身一般没有多级堆栈的概念去描述芯片的堆栈参数,堆栈的层级一般指的是堆和栈的使用和管理方式。
硬件堆栈:你比如arm的硬件堆栈,它有普通的任务堆栈,也有中断堆栈,也就是msp,psp指针,分别用于中断处理和用户模式。
操作系统堆栈:我们Freertos对每个任务都会分配栈空间,任务的栈切换基于硬件堆栈进行管理,实现切换。进入这些切换的时候,处于中断模式的堆栈msp和psp是分开的。

一级堆栈:所有任务,函数,中断都是同一个堆栈,这种一般就是裸机里面就这样处理的,它只用msp。

两级堆栈:比如我们的Freertos它就是两级,它通过msp 和 psp 分别管理不同硬件权限下的堆栈。

多级堆栈:每个任务有堆栈,除此之外,如果是多核,则每个CPU核还有堆栈,甚至每个中断都还有独立的堆栈。


相关笔记