diff options
-rw-r--r-- | 1_hello_world/_rom.ld | 2 | ||||
-rw-r--r-- | 1_hello_world/startup.c | 9 |
2 files changed, 9 insertions, 2 deletions
diff --git a/1_hello_world/_rom.ld b/1_hello_world/_rom.ld index 55106be..916d9d9 100644 --- a/1_hello_world/_rom.ld +++ b/1_hello_world/_rom.ld @@ -1,4 +1,5 @@ SECTIONS { + __rom_start = ORIGIN(ROM); . = ORIGIN(ROM); .text : { KEEP(*(.stack)) @@ -12,4 +13,5 @@ SECTIONS { *(.rodata*) . = ALIGN(4); } >ROM + __rom_end = .; } diff --git a/1_hello_world/startup.c b/1_hello_world/startup.c index 06ca39e..e743214 100644 --- a/1_hello_world/startup.c +++ b/1_hello_world/startup.c @@ -29,6 +29,8 @@ static __attribute__((interrupt)) void VSYNC_handler(void); static __attribute__((interrupt)) void CPUException_handler(void); extern unsigned __stacktop; +extern unsigned __rom_start; +extern unsigned __rom_end; __attribute__((section(".stack"), used)) unsigned *__stack_init = &__stacktop; @@ -106,8 +108,8 @@ __attribute__((section(".smd_header"), used)) struct smd_header __smd_header = { .version = "GM XXXXXXXX-XX", .checksum = 0x0000, .io_support = "J ", - .rom_start = 0, - .rom_end = 0xfffff, + .rom_start = (unsigned long)&__rom_start, + .rom_end = (unsigned long)&__rom_end-1, .ram_start = 0xff0000, .ram_end = 0xffffff, .sram_enabled = 0x00000000, @@ -124,8 +126,11 @@ static void __start(void) { main(); } + static void HSYNC_handler(void) {} + static void VSYNC_handler(void) {} + static void CPUException_handler(void) { asm inline volatile (" stop #2700"); |