These macros encode data values to any CPU memory address.
Files
lib_mem.h
Prototypes
Code Block | ||
---|---|---|
| ||
MEM_VAL_SET_INT08U_BIG(addr);
MEM_VAL_SET_INT16U_BIG(addr);
MEM_VAL_SET_INT32U_BIG(addr);
MEM_VAL_SET_INT08U_LITTLE(addr);
MEM_VAL_SET_INT16U_LITTLE(addr);
MEM_VAL_SET_INT32U_LITTLE(addr);
MEM_VAL_SET_INT08U(addr);
MEM_VAL_SET_INT16U(addr);
MEM_VAL_SET_INT32U(addr); |
Arguments
addr
Lowest CPU memory address to encode the data value.
...
MEM_VAL_SET_xxx()
macros are not atomic operations and must not be used on any non-static (i.e., volatile) variables, registers, hardware, etc.; without the caller of the macros providing some form of additional protection (e.g. mutual exclusion).
Example Usage
Code Block | ||
---|---|---|
| ||
CPU_INT08U *pval;
CPU_INT16U val;
pval = &SomeAddr; /* Any CPU address */
val = 0xABCDu;
MEM_VAL_SET_INT16U(pval, val); |