summaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorSadeep Madurange <sadeep@asciimx.com>2024-09-11 17:45:19 +0800
committerSadeep Madurange <sadeep@asciimx.com>2024-09-11 17:45:19 +0800
commit16f9e3be585e364c3ed5293507d3d2576a47a61a (patch)
tree0ad39cb0c59902c235c8764eb15f8f57de5c94ba /main.c
parent45fec7ac2438081bc52889a4af7d95d0aafbd7ee (diff)
downloadbare-metal-arduino-due-16f9e3be585e364c3ed5293507d3d2576a47a61a.tar.gz
Rename stack top to sp and try to add a blink.
Diffstat (limited to 'main.c')
-rw-r--r--main.c30
1 files changed, 12 insertions, 18 deletions
diff --git a/main.c b/main.c
index 89c1e15..4272fd8 100644
--- a/main.c
+++ b/main.c
@@ -16,42 +16,36 @@
#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 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)
int main(void)
{
- // enable peripheral clock
- //PMC_WPMR = PMC_WPKEY << 8;
- //PMC_PCER0 |= (1u << PMC_PID);
- //PMC_WPMR = (PMC_WPKEY << 8) | 1u;
+ volatile int i;
- // enable port, set to output, disable pull-up
PIO_WPMR = PIO_WPKEY << 8;
PIO_PER |= GPIO_MASK;
PIO_OER |= GPIO_MASK;
PIO_PUDR |= GPIO_MASK;
PIO_WPMR = (PIO_WPKEY << 8) | 1u;
-
- // set pin to logic 1
- PIO_SODR |= GPIO_MASK;
- for (;;)
- ;
+ for (;;) {
+ PIO_SODR ^= GPIO_MASK;
+
+ for (i = 0; 1000000; i++)
+ ;
+ }
return 0;
}
-extern const unsigned int StackTop;
+extern const unsigned int sp;
__attribute__ ((section(".vtor")))
const void* VectorTable[] = {
- &StackTop, /* CPU will automatically *
- * set stack its pointer *
- * to this value */
-
- main, /* -15: Reset_IRQn */
+ &sp,
+ main
};