Null (infinite loop) ISR table and linker script.
authorMatt Mullins <mmullins@mmlx.us>
Sun, 23 Dec 2012 01:19:03 +0000 (17:19 -0800)
committerMatt Mullins <mmullins@mmlx.us>
Sun, 23 Dec 2012 01:19:03 +0000 (17:19 -0800)
isr_table.c [new file with mode: 0644]
stellaris.t [new file with mode: 0644]

diff --git a/isr_table.c b/isr_table.c
new file mode 100644 (file)
index 0000000..198e8f1
--- /dev/null
@@ -0,0 +1,169 @@
+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 (;;) {
+       }
+}
diff --git a/stellaris.t b/stellaris.t
new file mode 100644 (file)
index 0000000..292658d
--- /dev/null
@@ -0,0 +1,13 @@
+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
+}