This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
在ARM体系结构中,对调试寄存器进行配置通常需要使用专门的调试指令,而不是普通的`MRS`和`MSR`指令。
怎么写代码对am243的Cortex-R5的调试寄存器进行配置?
; 1. 启用调试功能 LDR R0, =0xE0042000 ; DBGDSCR 地址 LDR R1, [R0] ; 读取当前值 ORR R1, R1, #(1 << 1) ; 设置 HALTREQ 位 STR R1, [R0] ; 写回 DBGDSCR 寄存器 ; 2. 配置单步运行 LDR R0, =0xE0043000 ; DBCR 地址 LDR R1, #(1 << 0) ; 设置 SS (Single Step) 位 STR R1, [R0] ; 写回 DBCR 寄存器 ; 3. 触发单步运行 LDR R0, =0xE0042000 ; DBGDSCR 地址 LDR R1, [R0] ; 读取当前值 ORR R1, R1, #(1 << 0) ; 设置 HALTREQ 位 STR R1, [R0] ; 写回 DBGDSCR 寄存器
非常抱歉前述的误导。
我重新写一段示例,用于启用单步执行:
; 启用调试功能 LDR R0, =DBGDSCR_ADDR ; 替换为正确的 DBGDSCR 地址 LDR R1, [R0] ORR R1, R1, #(1 << 1) ; 设置 HALTREQ 位 STR R1, [R0] ; 配置单步运行 LDR R0, =DBCR_ADDR ; 替换为正确的 DBCR 地址 LDR R1, [R0] ORR R1, R1, #(1 << 0) ; 设置 SS (Single Step) 位 STR R1, [R0] ; 触发单步运行 LDR R0, =DBGDSCR_ADDR ; 替换为正确的 DBGDSCR 地址 LDR R1, [R0] ORR R1, R1, #(1 << 0) ; 设置 HALTREQ 位 STR R1, [R0]
代码的 `DBGDSCR_ADDR` 和 `DBCR_ADDR` 要替换为实际 DBGDSCR 和 DBCR 寄存器地址。
如还有问题,欢迎您指正
为更加有效地解决您的问题,建议您将问题发布在E2E英文技术论坛上(https://e2e.ti.com/support/processors-group/processors/f/processors-forum ),将由资深的英文论坛工程师为您提供帮助。如果您对于英文表达有顾虑,请随时告诉我们,我们将竭力为您提供帮助。