代码之家  ›  专栏  ›  技术社区  ›  Anton Stafeyev

臂向量表

  •  0
  • Anton Stafeyev  · 技术社区  · 6 年前

    向量表包含堆栈指针的重置值,以及 处理程序。图2.2显示了异常向量在 向量表。每个向量的最低有效位必须是1, 指示异常处理程序是Thumb代码,请参阅Thumb state。

    vector_table:
    .word _estack 
    .word Reset_Handler  
    .word Hard_Fault
    

    我的重置处理程序在 0x8000020 <Reset_Handler>: 所以LSB是0。但我的处理器运行得很好。我用的是cortex m7。

    0 回复  |  直到 6 年前
        1
  •  2
  •   Anton Stafeyev    6 年前

    编译器会自动执行此操作。根据杰斯特的建议,我查看了hextump,发现它是从 0x0800 0020 到 0x0800 0021

    .tpye foo, %function 或 .thumb_func 由于cortex m7只支持thumb指令集,编译器不会修改它的值,并且会导致硬错误。