Hi, I've just been battling this with a SAMD10 compiling with arm-none-eabi-gcc (15:10.3-2021.07-4) 10.3.1 20210621 (release). The __attribute__ ((interupt)) or reordering the object files didn't work for me, but I did notice that in the Microchip (Atmel) software the interrupt table itself was not being included. Even though this was declared const, I poked a "volatile" in front, and hey-presto!
For reference, the chip was ATSAMD10D13AM, offending file was startup_samd10.c:
Hi, I've just been battling this with a SAMD10 compiling with arm-none-eabi-gcc (15:10.3-2021.07-4) 10.3.1 20210621 (release). The __attribute__ ((interupt)) or reordering the object files didn't work for me, but I did notice that in the Microchip (Atmel) software the interrupt table itself was not being included. Even though this was declared const, I poked a "volatile" in front, and hey-presto!
For reference, the chip was ATSAMD10D13AM, offending file was startup_samd10.c:
/* Exception Table */ ".vectors" )))
__attribute__ ((section(
volatile const DeviceVectors exception_table = {
...
It seemed to me that as this kept turning up in subsequent versions of GCC, it was unlikely to be a bug in it. I hope this helps!