mirror of
https://github.com/RfidResearchGroup/ChameleonUltra.git
synced 2026-04-12 10:35:45 +00:00
Disruptive changes: - tag types are 2-byte long with new values - GET_SLOT_INFO returns 32 bytes as tag types are now 2-byte long - "enable" is not common to one slot anymore but bound to the HF or LF part - GET_ENABLED_SLOTS returns 16 bytes as we get "enabled_hf" and "enabled_lf" for each slot - SET_SLOT_ENABLE needs 3 bytes slot_number|sense_type|enable as we need to specify to enable HF or LF - slotConfig changed a lot but this is internal to the fw and its flash and a function does the format conversion on first boot after flash so slot data is preserved on fw upgrade, but if one downgrades to a previous version, data will be erased.
23 lines
680 B
C
23 lines
680 B
C
#ifndef UTILS_H_
|
|
#define UTILS_H_
|
|
|
|
// u32 size align.
|
|
#define ALIGN_U32 __attribute__((aligned(4)))
|
|
|
|
#define PACKED __attribute__((packed))
|
|
|
|
#ifndef ARRAYLEN
|
|
# define ARRAYLEN(x) (sizeof(x)/sizeof((x)[0]))
|
|
#endif
|
|
|
|
// nrf52840 platform is little endian
|
|
#define U16HTONS(x) ((uint16_t)((((x) & (uint16_t)0x00ffU) << 8) | (((x) & (uint16_t)0xff00U) >> 8)))
|
|
#define U16NTOHS(x) U16HTONS(x)
|
|
#define U32HTONL(x) ((((x) & (uint32_t)0x000000ffUL) << 24) | \
|
|
(((x) & (uint32_t)0x0000ff00UL) << 8) | \
|
|
(((x) & (uint32_t)0x00ff0000UL) >> 8) | \
|
|
(((x) & (uint32_t)0xff000000UL) >> 24))
|
|
#define U32NTOHL(x) U32HTONL(x)
|
|
|
|
#endif
|