1 Reply Latest reply on Sep 2, 2017 12:26 PM by JoMe_264151

    CortexM0 vector table

      Just out of curiosity...


      Disassembled the UART_Bootlader.elf file with arm-none-eabi-objdump -s:


      UART_Bootloader.elf:     file format elf32-littlearm


      Disassembly of section .text:


      00000000 <RomVectors>:

         0: 00 10 00 20 11 00 00 00 6d 03 00 00 6d 03 00 00     ... ....m...m...


      00000010 <Reset>:

        10: b508       push {r3, lr}

        12: f000 fd9b bl b4c <CyBtldr_CheckLaunch>

        16: f000 f9ab bl 370 <Start_c>


      Why is the reset vector set to address 0x0000011 instead of 0x00000010?

      Also 0x0000036D is not on a 4-byte address boundary...

        • 1. Re: CortexM0 vector table

          Excerpt from "Cortex Mo Devices Generic User Guide"


          Program Counter

          The Program Counter (PC) is register R15. It contains the current program address. On

          reset, the processor loads the PC with the value of the reset vector, at address

          0x00000004. Bit[0] of the value is loaded into the EPSR T-bit at reset and must be 1.