XIAO SAMD21 register to set exception_table

Hello to Seeed tech team.

Super technical question, I can’t find the answer with the SAMD21 datasheet.
The bootloader code I found is in binary format, so I can’t find the answer there as well.

There is the “exception_table” with ISRs that is located on the first address after the bootloader (0x2000).
Is there a register in the microcontroller that the bootloader is setting to let it know the location of the ISR table? What’s the name? Address?

I want to create a dual boot in the XIAO memory and need to change the location of the ISR table.
How can I do that?

Can I get the bootloader code for the XIAO SAMD21 please?
It will be much easier to implement the dual boot mode right in the bootloader…


Hi there 4projct,

Obtain the bootloader binary from the Seeed GitHub
 here: https://github.com/Seeed-Studio/ArduinoCore-samd/tree/master/bootloaders/XIAOM0.
It recommends (and I used) the non-update file: 
bootloader-XIAO_m0-v3.7.0-33-g90ff611-dirty.bin which has to be downloaded “raw” and saved to the convenient directory.

That’s the link from this how to unbrick HTH
GL :slight_smile:

But I need the real bootloader code to understand what they do there…

But I think I found what I need in other code.
Arduino’s Zero board is also based on SAMD21 and it’s bootloader is public: