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.

[参考译文] RM46L852:中断向量值

Guru**** 2393155 points
Other Parts Discussed in Thread: HALCOGEN

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/883428/rm46l852-interupt-vector-values

器件型号:RM46L852
主题中讨论的其他器件:HALCOGEN

我正在查看示例 CAN 引导加载程序随附的 sys_intvecs.asm、并看到与 halcogen 生成的内容类似的行、但这些行被注释掉并替换为我在下面提供的行。

我想知道#0x1FFF8的值确实是这样。 它在应用程序起始地址之前看起来是8个字节。 这是什么成就?

resetEntry
b _c_int00 ;0x00
b #0x1FFF8 ;0x04
b #0x1FFF8 ;0x08、软件中断
b #0x1FFF8 ;0x0C,中止(预取)
b #0x1FFF8 ;0x10,中止(数据)

;中断矢量

;resetEntry
; b _c_int00
;undefEntry
; b undefEntry
;svcEntry
; b svcEntry
;prefetchEntry
; b prefetchEntry
;data_abort
; b DATA_ABORT
RESERVEDEntry
b 保留尝试
LDR PC、[PC、#-0x1b0]
LDR PC、[PC、#-0x1b0]

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Casey、

    对于 ARM Cortex-R4/5微控制器、程序计数器(PC)始终将两条指令指针指向当前已执行指令之上。

    例如,在 CPU 接收到软件(SVC)中断后,CPU 分支到0x08 (SVC 或软件中断):。

    b #1FFF8

    分支偏移量必须考虑预取操作、这会导致 PC 在当前指令之前为2个字(8个字节)。

    目的是 PC +偏移量= 0x08 + 0x08 + 0x1FFF8 = 0x2008 ->这是应用程序的 Int Vector 表中软件指令的地址。