diff --git a/rt-thread-version/rt-thread-standard/programming-manual/interrupt/figures/processor_ modes_and_privilege_levels.png b/rt-thread-version/rt-thread-standard/programming-manual/interrupt/figures/processor_ modes_and_privilege_levels.png new file mode 100644 index 0000000000000000000000000000000000000000..aed6838743cf7f40fee2611e633903ceabc6ef1e Binary files /dev/null and b/rt-thread-version/rt-thread-standard/programming-manual/interrupt/figures/processor_ modes_and_privilege_levels.png differ diff --git a/rt-thread-version/rt-thread-standard/programming-manual/interrupt/interrupt.md b/rt-thread-version/rt-thread-standard/programming-manual/interrupt/interrupt.md index ff48063f9d8d51751a4e10c120c9239cb9d426d4..8bb25a564a596afd893fb5f25eacec5e99ee367c 100644 --- a/rt-thread-version/rt-thread-standard/programming-manual/interrupt/interrupt.md +++ b/rt-thread-version/rt-thread-standard/programming-manual/interrupt/interrupt.md @@ -41,7 +41,9 @@ Cortex-M 引入了操作模式和特权级别的概念,分别为线程模式 ![Cortex-M 工作模式状态图](figures/09interrupt_work_sta.png) -Cortex-M 有两个运行级别,分别为特权级和用户级,线程模式可以工作在特权级或者用户级,而处理模式总工作在特权级,可通过 CONTROL 特殊寄存器控制。工作模式状态切换情况如上图所示。 +Cortex-M 有两个运行级别,分别为特权级和用户级,线程模式可以工作在特权级或者用户级,而处理模式总工作在特权级,可通过 CONTROL 特殊寄存器控制。工作模式状态切换情况如上图所示,需要注意的是, Cortex-M 是没有用户级 handler 模式的,那是错误的用法。 + +![image-20220906153732157](figures/processor_ modes_and_privilege_levels.png) Cortex-M 的堆栈寄存器 SP 对应两个物理寄存器 MSP 和 PSP,MSP 为主堆栈,PSP 为进程堆栈,处理模式总是使用 MSP 作为堆栈,线程模式可以选择使用 MSP 或 PSP 作为堆栈,同样通过 CONTROL 特殊寄存器控制。复位后,Cortex-M 默认进入线程模式、特权级、使用 MSP 堆栈。