GlobLib
HAL and API libraries for MCUs and hardware.
flashWrite.h
Go to the documentation of this file.
1 
42 #ifndef FLASH_WRITE_H
43 #define FLASH_WRITE_H
44 
45 #include <stdio.h>
46 
50 typedef void(*v_fp_u8_u16)(uint8_t,uint16_t);
51 typedef uint8_t(*u8_fp_u16)(uint16_t);
52 
56 #define flash_put(DATA,ADDRESS) _Generic((DATA), \
57  char: FLASHWRITE_write_c, \
58  uint8_t: FLASHWRITE_write_u8, \
59  int8_t: FLASHWRITE_write_8, \
60  uint16_t: FLASHWRITE_write_u16, \
61  int16_t: FLASHWRITE_write_16, \
62  uint32_t: FLASHWRITE_write_u32, \
63  int32_t: FLASHWRITE_write_32, \
64  float: FLASHWRITE_write_float, \
65  default: FLASHWRITE_write_u8 \
66  )(DATA,ADDRESS)
67 
70 #define flash_get(DATA,ADDRESS) _Generic((DATA), \
71  char*: FLASHWRITE_read_c, \
72  uint8_t*: FLASHWRITE_read_u8, \
73  int8_t*: FLASHWRITE_read_8, \
74  uint16_t*: FLASHWRITE_read_u16, \
75  int16_t*: FLASHWRITE_read_16, \
76  uint32_t*: FLASHWRITE_read_u32, \
77  int32_t*: FLASHWRITE_read_32, \
78  float*: FLASHWRITE_read_float, \
79  default: FLASHWRITE_read_u8 \
80  )(DATA,ADDRESS)
81 
85 #define MAX_DEC 4
86 
87 
96 void FLASHWRITE_setOutput(void (*out)(uint8_t,uint16_t));
105 void FLASHWRITE_setInput(uint8_t (*in)(uint16_t));
106 
112 
117 u8_fp_u16 FLASHWRITE_getInput(void);
118 
126 uint16_t FLASHWRITE_write_u8(uint8_t data, uint16_t address);
127 
135 uint16_t FLASHWRITE_read_u8(uint8_t *data, uint16_t address);
143 uint16_t FLASHWRITE_write_8(int8_t data, uint16_t address);
144 
152 uint16_t FLASHWRITE_read_8(int8_t *data, uint16_t address);
160 uint16_t FLASHWRITE_write_c(char data, uint16_t address);
161 
169 uint16_t FLASHWRITE_read_c(char *data, uint16_t address);
177 uint16_t FLASHWRITE_write_u16(uint16_t data, uint16_t address);
178 
186 uint16_t FLASHWRITE_read_u16(uint16_t *data, uint16_t address);
194 uint16_t FLASHWRITE_write_16(int16_t data, uint16_t address);
195 
203 uint16_t FLASHWRITE_read_16(int16_t *data, uint16_t address);
211 uint16_t FLASHWRITE_write_u32(uint32_t data, uint16_t address);
212 
220 uint16_t FLASHWRITE_read_u32(uint32_t *data, uint16_t address);
228 uint16_t FLASHWRITE_write_32(int32_t data, uint16_t address);
229 
237 uint16_t FLASHWRITE_read_32(int32_t *data, uint16_t address);
245 uint16_t FLASHWRITE_write_float(float data, uint16_t address);
246 
254 uint16_t FLASHWRITE_read_float(float *data, uint16_t address);
255 
259 #endif
uint16_t FLASHWRITE_write_float(float data, uint16_t address)
Write a float to address given.
Definition: flashWrite.c:151
uint16_t FLASHWRITE_write_c(char data, uint16_t address)
Write a char to address given.
Definition: flashWrite.c:76
uint16_t FLASHWRITE_write_16(int16_t data, uint16_t address)
Write a signed 16 bit integer to address give.
Definition: flashWrite.c:102
uint16_t FLASHWRITE_write_u16(uint16_t data, uint16_t address)
Write a unsigned 16 bit integer to address given.
Definition: flashWrite.c:88
void FLASHWRITE_setInput(uint8_t(*in)(uint16_t))
Set the target input stream for flash_get functions.
Definition: flashWrite.c:28
uint16_t FLASHWRITE_read_8(int8_t *data, uint16_t address)
Read a signed 8 bit integer from address given.
Definition: flashWrite.c:70
v_fp_u8_u16 FLASHWRITE_getOutput(void)
Get the current target output stream.
Definition: flashWrite.c:34
uint16_t FLASHWRITE_write_32(int32_t data, uint16_t address)
Write a signed 32 bit integer to address given.
Definition: flashWrite.c:133
void(* v_fp_u8_u16)(uint8_t, uint16_t)
Function pointer typedef for void function with uint8_t parameter.
Definition: flashWrite.h:50
uint16_t FLASHWRITE_write_8(int8_t data, uint16_t address)
Write a signed 8 bit integer to address given.
Definition: flashWrite.c:64
uint16_t FLASHWRITE_read_32(int32_t *data, uint16_t address)
Read a signed 32 bit integer from address given.
Definition: flashWrite.c:142
void FLASHWRITE_setOutput(void(*out)(uint8_t, uint16_t))
Set the target output stream for flash_put functions.
Definition: flashWrite.c:22
uint16_t FLASHWRITE_read_u16(uint16_t *data, uint16_t address)
Read a unsigned 16 bit integer from address give.
Definition: flashWrite.c:95
u8_fp_u16 FLASHWRITE_getInput(void)
Get the current target input stream.
Definition: flashWrite.c:43
uint16_t FLASHWRITE_read_16(int16_t *data, uint16_t address)
Read a signed 16 bit integer from address give.
Definition: flashWrite.c:109
uint16_t FLASHWRITE_write_u8(uint8_t data, uint16_t address)
Write a unsigned 8 bit integer to address given.
Definition: flashWrite.c:52
uint16_t FLASHWRITE_write_u32(uint32_t data, uint16_t address)
Write a unsigned 32 bit integer to address given.
Definition: flashWrite.c:115
uint16_t FLASHWRITE_read_u32(uint32_t *data, uint16_t address)
Read a unsigned 32 bit integer from address given.
Definition: flashWrite.c:124
uint16_t FLASHWRITE_read_u8(uint8_t *data, uint16_t address)
Read a unsigned 8 bit integer from address given.
Definition: flashWrite.c:58
uint16_t FLASHWRITE_read_float(float *data, uint16_t address)
Read a float from address given.
Definition: flashWrite.c:168
uint16_t FLASHWRITE_read_c(char *data, uint16_t address)
Read a char from address give.
Definition: flashWrite.c:82