From 819d897c86c22eb637a4fb30c6bbb8ae851e7bee Mon Sep 17 00:00:00 2001 From: Florian Sylvestre Date: Tue, 23 May 2023 14:55:51 +0200 Subject: [PATCH 36/41] Spider: Add HW support for LED blinking example --- examples/cortex-a/armv8/spider/blink/blink.c | 72 ++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/examples/cortex-a/armv8/spider/blink/blink.c b/examples/cortex-a/armv8/spider/blink/blink.c index 87e0e207..472a81e6 100755 --- a/examples/cortex-a/armv8/spider/blink/blink.c +++ b/examples/cortex-a/armv8/spider/blink/blink.c @@ -2,12 +2,81 @@ #define APP_Task_blink_START_SEC_CODE #include "tpl_memmap.h" +#include "stdint.h" +#include "stdbool.h" +uint8_t *led8 = (uint8_t*)(0xe6050180 + 0x14); + +#define GPIO0_BASE_ADDR 0xe6050180 +#define IOINTSEL 0x00 /* General IO/Interrupt Switching Register */ +#define INOUTSEL 0x04 /* General Input/Output Switching Register */ +#define OUTDT 0x08 /* General Output Register */ +#define INDT 0x0c /* General Input Register */ +#define INTDT 0x10 /* Interrupt Display Register */ +#define INTCLR 0x14 /* Interrupt Clear Register */ +#define INTMSK 0x18 /* Interrupt Mask Register */ +#define MSKCLR 0x1c /* Interrupt Mask Clear Register */ +#define POSNEG 0x20 /* Positive/Negative Logic Select Register */ +#define EDGLEVEL 0x24 /* Edge/level Select Register */ +#define FILONOFF 0x28 /* Chattering Prevention On/Off Register */ +#define OUTDTSEL 0x40 /* Output Data Select Register */ +#define BOTHEDGE 0x4c /* One Edge/Both Edge Select Register */ +#define INEN 0x50 /* General Input Enable Register */ + +#define GPIO_PIN 14 + +void gpio_modify_bit(uint32_t *addr, int bit, bool val) { + uint32_t tmp = *addr; + if(val) { + tmp |= (1<