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处于特权模式的主要内容,如果未能解决你的问题,请参考以下文章