Cortex M3处于特权模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cortex M3处于特权模式相关的知识,希望对你有一定的参考价值。

我想通过SWO(使用ITM)输出调试信息。 Core Cortex M3可以做到这一点。

ITM是一个应用程序驱动的跟踪源,支持printf样式调试以跟踪操作系统(OS)和应用程序事件,并发出诊断系统信息... link

为此,我必须配置ITM寄存器。其中一部分我只能在特权模式下编写。

ITM跟踪权限注册使用ITM跟踪权限注册使操作系统能够控制用户代码可以访问哪些激励端口。注意:您只能以特权模式写入此寄存器。 see ITM Trace Privilege Register

如果IRQs SVC,PendSV,SysTick已经使用过,那么切换特权模式的最佳方法是什么? (我使用FreeRTOS)这是真的吗?

答案

您可以在启动FreeRTOS之前配置ITM(考虑FreeRTOS任务在非特权模式下运行)。 或者您添加对新SVC的支持。 FreeRTOS SVC使用svc 0,你可以添加对新svc的支持,让我们称之为svc 1,你的SVC_Handler()会将svc 0重定向到FreeRTOS或svc 1到你的ITM配置代码。

以上是关于Cortex M3处于特权模式的主要内容,如果未能解决你的问题,请参考以下文章

stm32和cortex M3学习内核简单总结

如何在 ARM Cortex-A8 中设置特权模式?

ARM处理器基础Cortex-M4

Cortex M3 - Systick NVIC 禁用 - 节能 FreeRTOS

优化 ARM Cortex M3 代码

(ARM-Cortex M3)Boot以及App下载方法