C Microkernel Realtime eXecutive
Realtime Operating System for Cortex-M based microcontrollers
 
Loading...
Searching...
No Matches
peripheral.h
1#pragma once
2
3#include <stdint.h>
4
16#define _R(instance, reg) _Generic((instance->reg), \
17uint8_t : cmrx_emu_reg_R8,\
18uint16_t : cmrx_emu_reg_R16,\
19uint32_t : cmrx_emu_reg_R32)(instance, &instance->reg)
20
32#define _W(instance, reg, value) _Generic((instance->reg), \
33uint8_t : cmrx_emu_reg_W8,\
34uint16_t : cmrx_emu_reg_W16,\
35uint32_t : cmrx_emu_reg_W32)(instance, &instance->reg, value)
36
37uint8_t cmrx_emu_reg_R8(void * instance, const volatile uint8_t * source);
38uint16_t cmrx_emu_reg_R16(void * instance, const volatile uint16_t * source);
39uint32_t cmrx_emu_reg_R32(void * instance, const volatile uint32_t * source);
40
41void cmrx_emu_reg_W8(void * instance, volatile uint8_t * dest, uint8_t value);
42void cmrx_emu_reg_W16(void * instance, volatile uint16_t * dest, uint16_t value);
43void cmrx_emu_reg_W32(void * instance, volatile uint32_t * dest, uint32_t value);