--- /dev/null
+static void infinite_loop_isr();
+
+__attribute__((section(".reset")))
+void (*reset_vectors[])() = {
+ (void(*)()) 0x20007000,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+ infinite_loop_isr,
+};
+
+//
+// Infinite loop, to hang undefined interrupts.
+//
+__attribute__((isr))
+void infinite_loop_isr() {
+ for (;;) {
+ }
+}
--- /dev/null
+MEMORY {
+ FLASH (RX) : ORIGIN = 0, LENGTH = 256K
+ RAM (RW) : ORIGIN = 0x20000000, LENGTH = 32K
+}
+
+SECTIONS
+{
+ .reset : { *(.reset) } >FLASH
+ .text : { *(.text) } >FLASH
+ .rodata : { *(.rodata) } >FLASH
+ .data : { *(.data) } >RAM
+ .bss : { *(.bss) } >RAM
+}