From 6dea259ea2dd0afc4b610961e211d77460cfd0c6 Mon Sep 17 00:00:00 2001 From: inmarket Date: Wed, 9 Jul 2014 18:47:59 +1000 Subject: Example added for FreeRTOS on Raspberry Pi --- .../RaspberryPi/example-FreeRTOS/Drivers/mmio.h | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 boards/base/RaspberryPi/example-FreeRTOS/Drivers/mmio.h (limited to 'boards/base/RaspberryPi/example-FreeRTOS/Drivers/mmio.h') diff --git a/boards/base/RaspberryPi/example-FreeRTOS/Drivers/mmio.h b/boards/base/RaspberryPi/example-FreeRTOS/Drivers/mmio.h new file mode 100644 index 00000000..89bea700 --- /dev/null +++ b/boards/base/RaspberryPi/example-FreeRTOS/Drivers/mmio.h @@ -0,0 +1,24 @@ +/* mmio.h - access to MMIO registers */ + +#ifndef MMIO_H +#define MMIO_H + +#include + +// write to MMIO register +static inline void mmio_write(uint32_t reg, uint32_t data) { + uint32_t *ptr = (uint32_t*)reg; + asm volatile("str %[data], [%[reg]]" + : : [reg]"r"(ptr), [data]"r"(data)); +} + +// read from MMIO register +static inline uint32_t mmio_read(uint32_t reg) { + uint32_t *ptr = (uint32_t*)reg; + uint32_t data; + asm volatile("ldr %[data], [%[reg]]" + : [data]"=r"(data) : [reg]"r"(ptr)); + return data; +} + +#endif // #ifndef MMIO_H -- cgit v1.2.3