| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /*! \file triceMcuOrder.h
- \author Thomas.Hoehenleitner [at] seerose.net
- *******************************************************************************/
-
- #if !defined(TRICE_HTOTS) && !defined(TRICE_HTOTL) && !defined(TRICE_TTOHS)
-
- #define TRICE_HTOTS(x) ((uint16_t)(x)) //! TRICE_HTOTS reorders short values from host order into trice transfer order.
- #define TRICE_HTOTL(x) ((uint32_t)(x)) //! TRICE_HTOTL reorders long values from host order x into trice transfer order.
- #define TRICE_TTOHS(x) ((uint16_t)(x)) //! TRICE_TTOHS reorders short values from trice transfer order into host order.
-
- #endif //! defined(TRICE_HTOTS) && !defined(TRICE_HTOTL) && !defined(TRICE_TTOHS)
-
- #if TRICE_TRANSFER_ORDER_IS_BIG_ENDIAN == 0
-
- //! TRICE_PUT16_1616 writes a 16-bit value followed by a 32-bit value in 2 16-bit steps to avoid memory alignment hard fault.
- #define TRICE_PUT16_1616(x, ts) /* little endian */ \
- do { \
- uint16_t* p = (uint16_t*)TriceBufferWritePosition; \
- *p++ = x; \
- *p++ = ts; /* lo */ \
- *p++ = (ts) >> 16; /* hi */ \
- TriceBufferWritePosition = (uint32_t*)p; \
- } while (0)
-
- #define TRICE_PUT64(x) \
- TRICE_PUT((uint32_t)(x)); \
- TRICE_PUT((uint32_t)((uint64_t)(x) >> 32)); // little endian
-
- #else // #if TRICE_TRANSFER_ORDER_IS_BIG_ENDIAN == 0
-
- //! TRICE_PUT16_1616 writes a 16-bit value followed by a 32-bit value in 2 16-bit steps to avoid memory alignment hard fault.
- #define TRICE_PUT16_1616(x, ts) /* big endian */ \
- do { \
- uint16_t* p = (uint16_t*)TriceBufferWritePosition; \
- *p++ = x; \
- *p++ = (ts) >> 16; /* hi */ \
- *p++ = ts; /* lo */ \
- TriceBufferWritePosition = (uint32_t*)p; \
- } while (0)
-
- #define TRICE_PUT64(x) \
- TRICE_PUT((uint64_t)(x) >> 32); \
- TRICE_PUT((uint32_t)(x)); // big endian
-
- #endif // #else // #if TRICE_TRANSFER_ORDER_IS_BIG_ENDIAN == 0
|