【发布时间】:2014-11-25 23:58:51
【问题描述】:
我想通过 SWO 输出调试信息(使用 ITM)。 Core Cortex M3 可以做到。
ITM 是一个应用程序驱动的跟踪源,支持 printf 风格的调试来跟踪 操作系统 (OS) 和应用程序事件,并发出诊断系统信息... link
为此,我必须配置 ITM 寄存器。其中一部分我只能在特权模式下写入。
ITM 跟踪特权寄存器 使用 ITM Trace Privilege Register 使操作系统能够控制用户代码可以访问哪些激励端口。 笔记: 您只能在特权模式下写入该寄存器。 see ITM Trace Privilege Register
如果已经使用了 IRQ SVC、PendSV、SysTick,那么在特权模式下切换的最佳方式是什么? (我使用 FreeRTOS)是真的吗?
【问题讨论】:
-
既然你大概只需要写入这个寄存器一次,你就不能在操作系统启动代码中这样做,而不是稍后尝试模式切换吗?
-
我当然可以。但我想在我的 dbg_init() 函数中初始化 ITM 寄存器。