原帖 | Jack | 2024-09-19 11:32 | 👍0 | 阅读约1
老师,芯片有几级堆栈的概念吗?
芯片自身一般没有多级堆栈的概念去描述芯片的堆栈参数,堆栈的层级一般指的是堆和栈的使用和管理方式。
硬件堆栈:你比如arm的硬件堆栈,它有普通的任务堆栈,也有中断堆栈,也就是msp,psp指针,分别用于中断处理和用户模式。
操作系统堆栈:我们Freertos对每个任务都会分配栈空间,任务的栈切换基于硬件堆栈进行管理,实现切换。进入这些切换的时候,处于中断模式的堆栈msp和psp是分开的。
一级堆栈:所有任务,函数,中断都是同一个堆栈,这种一般就是裸机里面就这样处理的,它只用msp。
两级堆栈:比如我们的Freertos它就是两级,它通过msp 和 psp 分别管理不同硬件权限下的堆栈。
多级堆栈:每个任务有堆栈,除此之外,如果是多核,则每个CPU核还有堆栈,甚至每个中断都还有独立的堆栈。
相关笔记