Common PLATFORM_HEADER Configuration
Compiler and Platform specific definitions and typedefs common to all platforms. More...
Macros | |
#define | MEMSET(d, v, l) memset(d, v, l) |
Friendly convenience macro pointing to the C Stdlib functions. More... | |
#define | MEMCOPY(d, s, l) memcpy(d, s, l) |
#define | MEMMOVE(d, s, l) memmove(d, s, l) |
#define | MEMPGMCOPY(d, s, l) memcpy(d, s, l) |
#define | MEMCOMPARE(s0, s1, l) memcmp(s0, s1, l) |
#define | MEMPGMCOMPARE(s0, s1, l) memcmp(s0, s1, l) |
Generic Types | |
#define | TRUE 1 |
An alias for one, used for clarity. More... | |
#define | FALSE 0 |
An alias for zero, used for clarity. More... | |
#define | NULL ((void *)0) |
The null pointer. More... | |
Bit Manipulation Macros | |
#define | BIT(x) (1U << (x)) |
Useful to reference a single bit of a byte. More... | |
#define | BIT32(x) (((uint32_t) 1) << (x)) |
Useful to reference a single bit of an uint32_t type. More... | |
#define | SETBIT(reg, bit) (reg) |= BIT(bit) |
Sets bit in the reg register or byte. More... | |
#define | SETBITS(reg, bits) (reg) |= (bits) |
Sets the bits in the reg register or the byte as specified in the bitmask bits . More... | |
#define | CLEARBIT(reg, bit) (reg) &= ~(BIT(bit)) |
Clears a bit in the reg register or byte. More... | |
#define | CLEARBITS(reg, bits) (reg) &= ~(bits) |
Clears the bits in the reg register or byte as specified in the bitmask bits . More... | |
#define | READBIT(reg, bit) ((reg) & (BIT(bit))) |
Returns the value of bit within the register or byte reg . More... | |
#define | READBITS(reg, bits) ((reg) & (bits)) |
Returns the value of the bitmask bits within the register or byte reg . More... | |
Byte Manipulation Macros | |
#define | LOW_BYTE(n) ((uint8_t)((n) & 0xFF)) |
Returns the low byte of the 16-bit value n as an uint8_t . More... | |
#define | HIGH_BYTE(n) ((uint8_t)(LOW_BYTE((n) >> 8))) |
Returns the high byte of the 16-bit value n as an uint8_t . More... | |
#define | HIGH_LOW_TO_INT(high, low) |
Returns the value built from the two uint8_t values high and low . More... | |
#define | INT8U_TO_INT32U(byte3, byte2, byte1, byte0) |
Returns the value built from the four uint8_t as an uint32_t . More... | |
#define | BYTE_0(n) ((uint8_t)((n) & 0xFF)) |
Returns the low byte of the 32-bit value n as an uint8_t . More... | |
#define | BYTE_1(n) BYTE_0((n) >> 8) |
Returns the second byte of the 32-bit value n as an uint8_t . More... | |
#define | BYTE_2(n) BYTE_0((n) >> 16) |
Returns the third byte of the 32-bit value n as an uint8_t . More... | |
#define | BYTE_3(n) BYTE_0((n) >> 24) |
Returns the high byte of the 32-bit value n as an uint8_t . More... | |
#define | BYTE_4(n) BYTE_0((n) >> 32) |
Returns the fifth byte of the 64-bit value n as an uint8_t . More... | |
#define | BYTE_5(n) BYTE_0((n) >> 40) |
Returns the sixth byte of the 64-bit value n as an uint8_t . More... | |
#define | BYTE_6(n) BYTE_0((n) >> 48) |
Returns the seventh byte of the 64-bit value n as an uint8_t . More... | |
#define | BYTE_7(n) BYTE_0((n) >> 56) |
Returns the high byte of the 64-bit value n as an uint8_t . More... | |
#define | COUNTOF(a) (sizeof(a) / sizeof(a[0])) |
Returns the number of entries in an array. More... | |
Time Manipulation Macros | |
#define | elapsedTimeInt8u(oldTime, newTime) ((uint8_t) ((uint8_t)(newTime) - (uint8_t)(oldTime))) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127. More... | |
#define | elapsedTimeInt16u(oldTime, newTime) ((uint16_t) ((uint16_t)(newTime) - (uint16_t)(oldTime))) |
Returns the elapsed time between two 16 bit values. Result may not be valid if the time samples differ by more than 32767. More... | |
#define | elapsedTimeInt32u(oldTime, newTime) ((uint32_t) ((uint32_t)(newTime) - (uint32_t)(oldTime))) |
Returns the elapsed time between two 32 bit values. Result may not be valid if the time samples differ by more than 2147483647. More... | |
#define | MAX_INT8U_VALUE (0xFF) |
Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong. More... | |
#define | HALF_MAX_INT8U_VALUE (0x80) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127. More... | |
#define | timeGTorEqualInt8u(t1, t2) (elapsedTimeInt8u(t2, t1) <= (HALF_MAX_INT8U_VALUE)) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127. More... | |
#define | MAX_INT16U_VALUE (0xFFFF) |
Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong. More... | |
#define | HALF_MAX_INT16U_VALUE (0x8000) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127. More... | |
#define | timeGTorEqualInt16u(t1, t2) (elapsedTimeInt16u(t2, t1) <= (HALF_MAX_INT16U_VALUE)) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127. More... | |
#define | MAX_INT32U_VALUE (0xFFFFFFFFUL) |
Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong. More... | |
#define | HALF_MAX_INT32U_VALUE (0x80000000UL) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127. More... | |
#define | timeGTorEqualInt32u(t1, t2) (elapsedTimeInt32u(t2, t1) <= (HALF_MAX_INT32U_VALUE)) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127. More... | |
Miscellaneous Macros | |
#define | UNUSED_VAR(x) (void)(x) |
#define | DEBUG_LEVEL BASIC_DEBUG |
Set debug level based on whether DEBUG or DEBUG_STRIPPED are defined. More... | |
#define | STATIC_ASSERT(__condition, __errorstr) |
Disable static assertions on compilers that don't support them. More... | |
Detailed Description
Compiler and Platform specific definitions and typedefs common to all platforms.
platform-common.h
provides PLATFORM_HEADER defaults and common definitions. This head should never be included directly, it should only be included by the specific PLATFORM_HEADER used by your platform.
See platform-common.h
for source code.
Macro Definition Documentation
#define BIT | ( | x | ) | (1U << (x)) |
Useful to reference a single bit of a byte.
Definition at line 224
of file platform-common.h
.
#define BIT32 | ( | x | ) | (((uint32_t) 1) << (x)) |
Useful to reference a single bit of an uint32_t type.
Definition at line 229
of file platform-common.h
.
#define BYTE_0 | ( | n | ) | ((uint8_t)((n) & 0xFF)) |
Returns the low byte of the 32-bit value n
as an uint8_t
.
Definition at line 311
of file platform-common.h
.
#define BYTE_1 | ( | n | ) | BYTE_0((n) >> 8) |
Returns the second byte of the 32-bit value n
as an uint8_t
.
Definition at line 316
of file platform-common.h
.
#define BYTE_2 | ( | n | ) | BYTE_0((n) >> 16) |
Returns the third byte of the 32-bit value n
as an uint8_t
.
Definition at line 321
of file platform-common.h
.
#define BYTE_3 | ( | n | ) | BYTE_0((n) >> 24) |
Returns the high byte of the 32-bit value n
as an uint8_t
.
Definition at line 326
of file platform-common.h
.
#define BYTE_4 | ( | n | ) | BYTE_0((n) >> 32) |
Returns the fifth byte of the 64-bit value n
as an uint8_t
.
Definition at line 331
of file platform-common.h
.
#define BYTE_5 | ( | n | ) | BYTE_0((n) >> 40) |
Returns the sixth byte of the 64-bit value n
as an uint8_t
.
Definition at line 336
of file platform-common.h
.
#define BYTE_6 | ( | n | ) | BYTE_0((n) >> 48) |
Returns the seventh byte of the 64-bit value n
as an uint8_t
.
Definition at line 341
of file platform-common.h
.
#define BYTE_7 | ( | n | ) | BYTE_0((n) >> 56) |
Returns the high byte of the 64-bit value n
as an uint8_t
.
Definition at line 346
of file platform-common.h
.
#define CLEARBIT | ( | reg, |
|
bit |
|||
) | (reg) &= ~(BIT(bit)) |
Clears a bit in the reg
register or byte.
- Note
- Assuming
reg
is an IO register, some platforms (such as the AVR) can implement this in a single atomic operation.
Definition at line 250
of file platform-common.h
.
#define CLEARBITS | ( | reg, |
|
bits |
|||
) | (reg) &= ~(bits) |
Clears the bits in the reg
register or byte as specified in the bitmask bits
.
- Note
- This is never a single atomic operation.
Definition at line 257
of file platform-common.h
.
#define COUNTOF | ( | a | ) | (sizeof(a) / sizeof(a[0])) |
Returns the number of entries in an array.
Definition at line 351
of file platform-common.h
.
#define DEBUG_LEVEL BASIC_DEBUG |
Set debug level based on whether DEBUG or DEBUG_STRIPPED are defined.
Definition at line 447
of file platform-common.h
.
#define elapsedTimeInt16u | ( | oldTime, |
|
newTime |
|||
) | ((uint16_t) ((uint16_t)(newTime) - (uint16_t)(oldTime))) |
Returns the elapsed time between two 16 bit values. Result may not be valid if the time samples differ by more than 32767.
Definition at line 373
of file platform-common.h
.
#define elapsedTimeInt32u | ( | oldTime, |
|
newTime |
|||
) | ((uint32_t) ((uint32_t)(newTime) - (uint32_t)(oldTime))) |
Returns the elapsed time between two 32 bit values. Result may not be valid if the time samples differ by more than 2147483647.
Definition at line 380
of file platform-common.h
.
#define elapsedTimeInt8u | ( | oldTime, |
|
newTime |
|||
) | ((uint8_t) ((uint8_t)(newTime) - (uint8_t)(oldTime))) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
Definition at line 366
of file platform-common.h
.
#define FALSE 0 |
An alias for zero, used for clarity.
Definition at line 204
of file platform-common.h
.
#define HALF_MAX_INT16U_VALUE (0x8000) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
Definition at line 397
of file platform-common.h
.
#define HALF_MAX_INT32U_VALUE (0x80000000UL) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
Definition at line 406
of file platform-common.h
.
#define HALF_MAX_INT8U_VALUE (0x80) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
Definition at line 388
of file platform-common.h
.
#define HIGH_BYTE | ( | n | ) | ((uint8_t)(LOW_BYTE((n) >> 8))) |
Returns the high byte of the 16-bit value n
as an uint8_t
.
Definition at line 287
of file platform-common.h
.
#define HIGH_LOW_TO_INT | ( | high, |
|
low |
|||
) |
Returns the value built from the two uint8_t
values high
and low
.
Definition at line 293
of file platform-common.h
.
#define INT8U_TO_INT32U | ( | byte3, |
|
byte2, |
|||
byte1, |
|||
byte0 |
|||
) |
Returns the value built from the four uint8_t
as an uint32_t
.
Definition at line 301
of file platform-common.h
.
#define LOW_BYTE | ( | n | ) | ((uint8_t)((n) & 0xFF)) |
Returns the low byte of the 16-bit value n
as an uint8_t
.
Definition at line 282
of file platform-common.h
.
#define MAX_INT16U_VALUE (0xFFFF) |
Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong.
Definition at line 396
of file platform-common.h
.
#define MAX_INT32U_VALUE (0xFFFFFFFFUL) |
Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong.
Definition at line 405
of file platform-common.h
.
#define MAX_INT8U_VALUE (0xFF) |
Returns true if t1 is greater than t2. Can only account for 1 wrap around of the variable before it is wrong.
Definition at line 387
of file platform-common.h
.
#define MEMCOMPARE | ( | s0, |
|
s1, |
|||
l |
|||
) | memcmp(s0, s1, l) |
Definition at line 181
of file platform-common.h
.
#define MEMCOPY | ( | d, |
|
s, |
|||
l |
|||
) | memcpy(d, s, l) |
Definition at line 178
of file platform-common.h
.
#define MEMMOVE | ( | d, |
|
s, |
|||
l |
|||
) | memmove(d, s, l) |
Definition at line 179
of file platform-common.h
.
#define MEMPGMCOMPARE | ( | s0, |
|
s1, |
|||
l |
|||
) | memcmp(s0, s1, l) |
Definition at line 182
of file platform-common.h
.
#define MEMPGMCOPY | ( | d, |
|
s, |
|||
l |
|||
) | memcpy(d, s, l) |
Definition at line 180
of file platform-common.h
.
#define MEMSET | ( | d, |
|
v, |
|||
l |
|||
) | memset(d, v, l) |
Friendly convenience macro pointing to the C Stdlib functions.
Definition at line 177
of file platform-common.h
.
#define NULL ((void *)0) |
The null pointer.
Definition at line 211
of file platform-common.h
.
#define READBIT | ( | reg, |
|
bit |
|||
) | ((reg) & (BIT(bit))) |
Returns the value of bit
within the register or byte reg
.
Definition at line 262
of file platform-common.h
.
#define READBITS | ( | reg, |
|
bits |
|||
) | ((reg) & (bits)) |
Returns the value of the bitmask bits
within the register or byte reg
.
Definition at line 268
of file platform-common.h
.
#define SETBIT | ( | reg, |
|
bit |
|||
) | (reg) |= BIT(bit) |
Sets bit
in the reg
register or byte.
- Note
- Assuming
reg
is an IO register, some platforms (such as the AVR) can implement this in a single atomic operation.
Definition at line 236
of file platform-common.h
.
#define SETBITS | ( | reg, |
|
bits |
|||
) | (reg) |= (bits) |
Sets the bits in the reg
register or the byte as specified in the bitmask bits
.
- Note
- This is never a single atomic operation.
Definition at line 243
of file platform-common.h
.
#define STATIC_ASSERT | ( | __condition, |
|
__errorstr |
|||
) |
Disable static assertions on compilers that don't support them.
Definition at line 455
of file platform-common.h
.
#define timeGTorEqualInt16u | ( | t1, |
|
t2 |
|||
) | (elapsedTimeInt16u(t2, t1) <= (HALF_MAX_INT16U_VALUE)) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
Definition at line 398
of file platform-common.h
.
#define timeGTorEqualInt32u | ( | t1, |
|
t2 |
|||
) | (elapsedTimeInt32u(t2, t1) <= (HALF_MAX_INT32U_VALUE)) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
Definition at line 407
of file platform-common.h
.
#define timeGTorEqualInt8u | ( | t1, |
|
t2 |
|||
) | (elapsedTimeInt8u(t2, t1) <= (HALF_MAX_INT8U_VALUE)) |
Returns the elapsed time between two 8 bit values. Result may not be valid if the time samples differ by more than 127.
Definition at line 389
of file platform-common.h
.
#define TRUE 1 |
An alias for one, used for clarity.
Definition at line 199
of file platform-common.h
.
#define UNUSED_VAR | ( | x | ) | (void)(x) |
- Description:
- Useful macro for avoiding compiler warnings related to unused function arguments or unused variables.
Definition at line 425
of file platform-common.h
.