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.

LP-AM243: 怎么写代码对am243的Cortex-R5的调试寄存器进行配置

Part Number: LP-AM243

怎么写代码对am243的Cortex-R5的调试寄存器进行配置?我想设置调试寄存器让程序单步运行,应该怎么写代码设置?用mrs和msr的指令不行,是不是要用映射寄存器啊?

  • 在ARM体系结构中,对调试寄存器进行配置通常需要使用专门的调试指令,而不是普通的`MRS`和`MSR`指令。

    怎么写代码对am243的Cortex-R5的调试寄存器进行配置?

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    ; 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
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • am243的DBGDSCR寄存器的地址不是0xE0042000,操作这个地址会进入异常。

  • 另外DBGDSCR的0位在手册中是这样解释的 ,不是用来实现单步的

  • 感谢指正

  • 非常抱歉前述的误导。

    我重新写一段示例,用于启用单步执行:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    ;
    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]
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    代码的 `DBGDSCR_ADDR` 和 `DBCR_ADDR` 要替换为实际 DBGDSCR 和 DBCR 寄存器地址。

    如还有问题,欢迎您指正

  • 那么请问DBGDSCR_ADDR和 DBCR_ADDR的地址是啥?如图 ,这些寄存器的地址是由芯片厂商决定的,所以请问具体地址是啥?另外DBGDSCR寄存器我用cp14即MRC和MCR的方式去操作,会进入undefined异常,所以请问该怎么操作?如图 ,如果是方法1,V7debug的cp14接口由厂商定义的,所以是有TI自己定义的方法吗?如果是方法2地址映射,也是由TI设定的,也请告知下映射的地址区。

  • 为您咨询了资深产品线工程师,这需要一些时间

  • 有消息了吗?

  • 已经催促了

  • 请问有回复了吗?

  • 抱歉此贴(https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1309815/lp-am243-how-to-write-code-to-configure-the-debug-register-of-the-am243-cortex-r5  )还没有回复。

    为更加有效地解决您的问题,建议您将问题发布在E2E英文技术论坛上(https://e2e.ti.com/support/processors-group/processors/f/processors-forum ),将由资深的英文论坛工程师为您提供帮助。如果您对于英文表达有顾虑,请随时告诉我们,我们将竭力为您提供帮助。

  • 工程师已回复:

    CCS 配置程序的所有内容以单步模式运行。R5自行配置有什么具体要求吗?您能分享更多相关信息吗?

  • R5自行配置是因为我们想用软件实现代码单步运行的效果,而不是用ccs在线debug仿真程序的情况下实行单步。

  • 我需要检查如何在没有 CCS 的情况下从 R5 进行单步调试