diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2024-09-12 13:25:05 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2024-09-12 13:25:05 +0800 |
| commit | 64be5c97aab4a9d9e9055979b22108f355e9ce0d (patch) | |
| tree | fa3922b070fba3df49427c49df9d38f11bcd432a | |
| parent | 4182c9406565c67c95cef2ae238287ea823937c3 (diff) | |
| download | bare-metal-arduino-due-64be5c97aab4a9d9e9055979b22108f355e9ce0d.tar.gz | |
Clean up code.
| -rw-r--r-- | main.c | 31 | ||||
| -rw-r--r-- | script.ld | 18 |
2 files changed, 18 insertions, 31 deletions
@@ -14,30 +14,23 @@ #define PIO_WPKEY 0x50494Fu -#define PMC_PID 13 -#define PMC_WPKEY 0x504D43u - -#define PMC_WPMR *((volatile unsigned int *)(PORT + 0x400E06E4u)) -#define PMC_PCER0 *((volatile unsigned int *)(PORT + 0x400E0610u)) - -#define GPIO_NUM 1 -#define GPIO_MASK (1u << GPIO_NUM) +#define LED_PIN 1 int main(void) { volatile int i; PIO_WPMR = PIO_WPKEY << 8; - PIO_PER |= GPIO_MASK; - PIO_OER |= GPIO_MASK; - PIO_PUDR |= GPIO_MASK; + PIO_PER |= (1 << LED_PIN); + PIO_OER |= (1 << LED_PIN); + PIO_PUDR |= (1 << LED_PIN); PIO_WPMR = (PIO_WPKEY << 8) | 1u; for (;;) { - PIO_SODR |= GPIO_MASK; + PIO_SODR |= (1 << LED_PIN); for (i = 0; i < 100000; i++) ; - PIO_CODR |= GPIO_MASK; + PIO_CODR |= (1 << LED_PIN); for (i = 0; i < 100000; i++) ; } @@ -45,10 +38,16 @@ int main(void) return 0; } +__attribute__ ((noreturn)) void reset_handler(void) +{ + main(); + for(;;) + ; +} + extern const unsigned int sp; -__attribute__ ((section(".vtor"))) -const void* VectorTable[] = { +__attribute__ ((section(".vtor"))) const void* tab[] = { &sp, - main + reset_handler }; @@ -1,33 +1,23 @@ -ENTRY(main) - MEMORY { rom (rx) : ORIGIN = 0x00080000, LENGTH = 512K - ram (rwx) : ORIGIN = 0x20000000, LENGTH = 64K + ram (rwx) : ORIGIN = 0x20000000, LENGTH = 96K } +sp = ORIGIN(ram) + LENGTH(ram); + SECTIONS { .text : { KEEP(*(.vtor)) - *(.text*) *(.rodata*) - - . = ALIGN(4); - __end_of_text__ = .; } > rom .data : { - __data_start_src__ = __end_of_text__; - __data_start__ = .; - *(.data*) - - . = ALIGN(4); - __data_end__ = .; } > ram AT >rom .bss (NOLOAD) : @@ -37,6 +27,4 @@ SECTIONS *(COMMON) __bss_end__ = . ; } > ram - - sp = ORIGIN(ram) + LENGTH(ram); } |
