hard20 pts · first answer countsembedded-cinteger-types
Storing a pointer in an integer
Firmware stores buffer addresses in a uint32_t field. It works on the MCU but crashes in unit tests on a 64-bit PC. What is the fix?
struct job { uint32_t buf_addr; uint16_t len; };
job.buf_addr = (uint32_t)buf;
uint8_t *p = (uint8_t *)job.buf_addr;Discussion 0
Join free to post in the discussion.
Related questions
- Why use volatileEmbedded Systems Engineer
- Setting a register bitEmbedded Systems Engineer
- Reading a hex register valueEmbedded Systems Engineer
- Adding to a uint8_t counterEmbedded Systems Engineer
- Where const goes in a pointerEmbedded Systems Engineer
- A static local counterEmbedded Systems Engineer
- Why a cross-compilerEmbedded Systems Engineer
- Keeping a table out of RAMEmbedded Systems Engineer