文章预览
之前看了硬汉分享的一个内容: 为什么复位中断服务程序里面直接调用的main函数,难道所有程序都在复位中断里面执行的? 首先,Reset_Handler 是单片机的一个中断,其次,main 函数 也 确实被 Reset_Handler 中断调用了。那不是,main函数在中断里执行? 看到这个问题,你是否也曾想过这个问题,难道我们 以前 的认识错了? 说实话,我都没曾想过这个问题,我觉得绝大多数人都没有想过这个问题。所以,这里顺便分享一下这个问题的内容。 单片机的操作模式 这里的单片机,主要指 ARM Cortex-M 内核单片机。 要回答开篇那个问题,就要提到单片机的操作模式,这里以 Cortex‐M3 单片机为例, Cortex‐M3 支持 两种 模式和两个特权等级。 两种模式: Handler 模式 Thread 模式 两个 等级: 特权级 用户级 在 Cortex‐M3 手册中有这么一段: 其中,开篇问题的答案
………………………………