From 64be5c97aab4a9d9e9055979b22108f355e9ce0d Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Thu, 12 Sep 2024 13:25:05 +0800 Subject: Clean up code. --- main.c | 31 +++++++++++++++---------------- script.ld | 18 +++--------------- 2 files changed, 18 insertions(+), 31 deletions(-) diff --git a/main.c b/main.c index 9f05a53..2ad2e86 100644 --- a/main.c +++ b/main.c @@ -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 }; diff --git a/script.ld b/script.ld index 24129f5..a063ffe 100644 --- a/script.ld +++ b/script.ld @@ -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); } -- cgit v1.2.3