From da88d50bef02df90905af508b2210e184cde7917 Mon Sep 17 00:00:00 2001 From: rokath Date: Tue, 2 Mar 2021 22:50:10 +0100 Subject: [PATCH] wip FLEX target tests added BARE, WRAP & PAC removed (FLEX is the future) --- .../{ => Backup}/triceFifoToBytesBuffer.c | 0 srcTrice.C/intern/{ => Backup}/triceFifo.h | 2 +- srcTrice.C/intern/triceFlexEncoder.h | 682 +++++------------- srcTrice.C/trice.c | 612 ++++++++++++++++ srcTrice.C/trice.h | 223 +++++- srcTrice.C/triceCheck.c | 118 ++- srcTrice.C/triceFifo.c | 58 -- .../Core/Inc/triceConfig.h | 47 ++ ...ART_RTT0_BARE_STM32F030R8-NUCLEO-64.uvoptx | 20 +- ...RT_RTT0_BARE_STM32F030R8-NUCLEO-64.uvprojx | 9 +- .../Core/Inc/triceConfig.h | 47 ++ ...UART_RTT0_ESC_STM32F030R8_NUCLEO-64.uvoptx | 10 +- ...ART_RTT0_ESC_STM32F030R8_NUCLEO-64.uvprojx | 4 +- .../Core/Inc/triceConfig.h | 42 ++ .../Core/Src/main.c | 5 +- ...ART_RTT0_FLEX_STM32F030R8-NUCLEO-64.uvoptx | 46 +- ...RT_RTT0_FLEX_STM32F030R8-NUCLEO-64.uvprojx | 10 +- .../Core/Inc/triceConfig.h | 45 ++ ...ART_RTT0_PACK_STM32F030R8-NUCLEO-64.uvoptx | 18 +- ...RT_RTT0_PACK_STM32F030R8-NUCLEO-64.uvprojx | 10 +- .../Core/Inc/triceConfig.h | 47 ++ ...RAP_RTT0_BARE_STM32F030R8-NUCLEO-64.uvoptx | 30 +- ...AP_RTT0_BARE_STM32F030R8-NUCLEO-64.uvprojx | 15 +- ...eneratedDemo_STM32F030R8-NUCKEO-64.uvprojx | 2 +- test/MultiProjectWorkspaceMDK-ARM.uvmpw | 14 +- til.json | 620 ++++++++++++++++ 26 files changed, 2058 insertions(+), 678 deletions(-) rename srcTrice.C/{ => Backup}/triceFifoToBytesBuffer.c (100%) rename srcTrice.C/intern/{ => Backup}/triceFifo.h (98%) create mode 100644 srcTrice.C/trice.c delete mode 100644 srcTrice.C/triceFifo.c diff --git a/srcTrice.C/triceFifoToBytesBuffer.c b/srcTrice.C/Backup/triceFifoToBytesBuffer.c similarity index 100% rename from srcTrice.C/triceFifoToBytesBuffer.c rename to srcTrice.C/Backup/triceFifoToBytesBuffer.c diff --git a/srcTrice.C/intern/triceFifo.h b/srcTrice.C/intern/Backup/triceFifo.h similarity index 98% rename from srcTrice.C/intern/triceFifo.h rename to srcTrice.C/intern/Backup/triceFifo.h index b5bf98145..396ff3c5b 100644 --- a/srcTrice.C/intern/triceFifo.h +++ b/srcTrice.C/intern/Backup/triceFifo.h @@ -3,7 +3,7 @@ *******************************************************************************/ -#ifndef TRICE_FIFO_H_ +#if 0 //ndef TRICE_FIFO_H_ #define TRICE_FIFO_H_ #ifdef __cplusplus diff --git a/srcTrice.C/intern/triceFlexEncoder.h b/srcTrice.C/intern/triceFlexEncoder.h index d73fe0673..04b83fa77 100644 --- a/srcTrice.C/intern/triceFlexEncoder.h +++ b/srcTrice.C/intern/triceFlexEncoder.h @@ -18,15 +18,14 @@ extern "C" { //! TRICE_LONGCOUNT is an internal helper. #define TRICE_LONGCOUNT( n ) (((n) << 16) | (0xffff & ~(n)) ) -//! Trice0 does trace id protected inside critical section in short mode. +//! Trice0 does trace id unprotected (inside critical section) in short mode. //! \param id trice identifier //! \param pFmt formatstring for trice #define Trice0i( id, pFmt ) do{ \ TRICE_HTON_U32PUSH( id ); \ } while(0) - -//! Trice0 does trace id protected outside critical section in short mode. +//! Trice0 does trace id protected (outside critical section) in short mode. //! \param id trice identifier //! \param pFmt formatstring for trice #define Trice0( id, pFmt ) do{ \ @@ -35,7 +34,7 @@ extern "C" { TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! Trice16_1i does trace id and 16-bit value protected inside critical section in short mode. +//! Trice16_1i does trace id and 16-bit value unprotected (inside critical section) in short mode. //! The passed d0 must not exeed the 16-bit size. //! \param id trice identifier //! \param pFmt formatstring for trice @@ -56,10 +55,9 @@ extern "C" { } while(0) #define Trice8_1i Trice16_1i // same code -#define Trice8_1 Trice16_1 // same code - +#define Trice8_1 Trice16_1 // same code -//! Trice8_2i does trace id and 8-bit values protected (outside critical section) in short mode. +//! Trice8_2i does trace id and 8-bit values unprotected (inside critical section) in short mode. //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload @@ -84,65 +82,6 @@ extern "C" { extern uint8_t triceCycle; -/////////////////////////////////////////////////////////////////////////////// -// TRICE macros -// -/* -Transfer is in network order (big endian) or little endian acording TRICE_TRANSFER_ENDIANNESS. -Inside a 32-bit sequence the 24-bit ID i comes together with a 4-bit count c and a 8-bit cycle counter n in specified transfer endianess: -iiiiiiii iiiiiiii iiiicccc nnnnnnnn -The count c is the valid payload size without counting padding bytes and has valid values from 0 to 12. -c=0xd is indicating a longer 16 bit count l following in the next 4 bytes as 32-bit value: -llllllll llllllll LLLLLLLL LLLLLLLL, with L == ~l (all bits negated) -This coding gives some options for out-of-sync detection: -With 2^20 > 1000000 possible IDs there is a low chance to to hit a wrong id and a high chance to detect a miss. -The cycle counter must rotate continuously between 0...255. -If the count is >12 the long count is used but this is transmitted twice: as value and inverted value. -Also the optional 1-3 padding bytes are checked to be 0. -\code -head = (id<<12)| (count<<8) | cycle -\endcode - -\li No parameters example: -\code -IIIII0NN // TRICE0 -\endcode - -\li 8-bit values follow packt as uint32_t in specified transfer endianess: -\code -IIIII1NN 000000b0 // TRICE8_1 -IIIII2NN 0000b0b1 // TRICE8_2 -IIIII3NN 00b0b1b2 // TRICE8_3 -IIIII4NN b0b1b2b3 // TRICE8_4 -IIIII5NN b0b1b2b3 000000b4 // TRICE8_5 -IIIII6NN b0b1b2b3 0000b4b5 // TRICE8_6 -IIIII7NN b0b1b2b3 00b4b5b6 // TRICE8_7 -IIIII8NN b0b1b2b3 b4b5b6b7 // TRICE8_8 -\endcode - -\li 16-bit values follow in sequence optionally with not counted 2 padding bytes forming a 32-bit aligment. -\code -IIIII2NN 0000d0d0 // TRICE16_1 -IIIII4NN d0d0d1d1 // TRICE16_2 -IIIII6NN 0000d0d0 d1d1d2d2 // TRICE16_3 -IIIII8NN d0d0d1d1 d1d1d2d2 // TRICE16_4 -\endcode - -\li 32-bit values follow in sequence optionally with a long count in case TRICE32_4. -\code -IIIII4NN d0d0d0d0 // TRICE32_1 -IIIII8NN d0d0d0d0 d1d1d1d1 // TRICE32_2 -IIIIICNN d0d0d0d0 d1d1d1d1 d2d2d2d2 // TRICE32_3 -IIIIIDNN 0010FFEF d0d0d0d0 d1d1d1d1 d2d2d2d2 d3d3d3d3// TRICE32_4 -\endcode - -\li 64-bit values follow in sequence optionally with a long count in case TRICE64_2. -\code -IIIII8NN d0d0d0d0 d0d0d0d0 // TRICE64_1 -IIIIIDNN 0010FFEF d0d0d0d0d0d0d0d0 d1d1d1d1d1d1d1d1 // TRICE64_2 -\endcode -*/ - //! TRICE_SYNC can be used for checks or payload filling. In is an invisible trice message. #define TRICE_SYNC do{ \ TRICE_ENTER_CRITICAL_SECTION \ @@ -150,70 +89,35 @@ IIIIIDNN 0010FFEF d0d0d0d0d0d0d0d0 d1d1d1d1d1d1d1d1 // TRICE64_2 TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! trice_sync can be used for checks or payload filling. In is an invisible trice message. -TRICE_INLINE void trice_sync( void ){ - TRICE_SYNC; -} - -// triceHeader is only for internal usage. -TRICE_INLINE void triceHeader( uint32_t header ){ - TRICE_HTON_U32PUSH( header|triceCycle ); - triceCycle++; -} - -// triceHeader is only for internal usage. -TRICE_INLINE void triceLongHeader( uint32_t header, uint16_t count ){ - TRICE_HTON_U32PUSH( header|triceCycle ); - TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(count) ); - triceCycle++; -} - -//! triceID is an internal helper. -TRICE_INLINE void triceID( uint32_t id ){ - TRICE_ENTER_CRITICAL_SECTION - triceHeader( id ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trice0 does trace id protected (outside critical section). +//! TRICE0i does trace id unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice -#define trice0( id, pFmt ) do{ \ - triceID( id ); \ +//! This is a time optinized implementation. +#define TRICE0i( id, pFmt ) do{ \ + TRICE_HTON_U32PUSH( id|triceCycle ); \ + triceCycle++; \ } while(0) - //! TRICE0 does trace id protected (outside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! This is a time optinized implementation. #define TRICE0( id, pFmt ) do{ \ TRICE_ENTER_CRITICAL_SECTION \ - TRICE_HTON_U32PUSH( id|triceCycle ); \ - triceCycle++; \ + TRICE0i( id, pFmt ); \ TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! trice18 is an internal helper. -TRICE_INLINE void trice18( uint8_t d0 ){ - TRICE_HTON_U32PUSH( (uint8_t)d0 ); -} - -//! trice81 is an internal helper. -TRICE_INLINE void trice81( uint32_t id, uint8_t d0 ){ - TRICE_ENTER_CRITICAL_SECTION - triceHeader( id|0x0100 ); - trice18( d0 ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trice8_1 does trace id and 8-bit value protected (outside critical section). +//! TRICE8_1i does trace id and 8-bit value unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param 8-bit payload -#define trice8_1( id, pFmt, d0 ) do{ \ - trice81( (uint32_t)id, (uint8_t)d0 ); \ -} while(0) +//! This is a time optinized implementation. +#define TRICE8_1i( id, pFmt, d0 ) do{ \ + TRICE_HTON_U32PUSH( id|0x0100|triceCycle ); \ + triceCycle++; \ + TRICE_HTON_U32PUSH( (uint8_t)(d0) ); \ +} while(0) //! TRICE8_1 does trace id and 8-bit value protected (outside critical section). //! \param id trice identifier @@ -222,33 +126,21 @@ TRICE_INLINE void trice81( uint32_t id, uint8_t d0 ){ //! This is a time optinized implementation. #define TRICE8_1( id, pFmt, d0 ) do{ \ TRICE_ENTER_CRITICAL_SECTION \ - TRICE_HTON_U32PUSH( id|0x0100|triceCycle ); \ - triceCycle++; \ - TRICE_HTON_U32PUSH( (uint8_t)(d0) ); \ + TRICE8_1i( id, pFmt, d0 ); \ TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! trice28 is an internal helper. -TRICE_INLINE void trice28( uint8_t d0 , uint8_t d1 ){ - TRICE_HTON_U32PUSH( TRICE_U8_JOIN(d0,d1) ); -} - -//! trice82 is an internal helper. -TRICE_INLINE void trice82( uint32_t id, uint8_t d0 , uint8_t d1 ){ - TRICE_ENTER_CRITICAL_SECTION - triceHeader( id|0x0200 ); - trice28( d0, d1 ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trice8_2 does trace id and 8-bit values protected (outside critical section) +//! TRICE8_2i does trace id and 8-bit values unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload //! \param d1 payload -#define trice8_2( id, pFmt, d0, d1 ) do{ \ - trice82( (uint32_t)id, (uint8_t)d0, (uint8_t)d1 ); \ -} while(0) +//! This is a time optinized implementation. +#define TRICE8_2i( id, pFmt, d0, d1 ) do{ \ + TRICE_HTON_U32PUSH( id|0x0200|triceCycle ); \ + triceCycle++; \ + TRICE_HTON_U32PUSH( TRICE_U8_JOIN(d0,d1) ); \ +} while(0) //! TRICE8_2 does trace id and 8-bit values protected (outside critical section). //! \param id trice identifier @@ -258,34 +150,22 @@ TRICE_INLINE void trice82( uint32_t id, uint8_t d0 , uint8_t d1 ){ //! This is a time optinized implementation. #define TRICE8_2( id, pFmt, d0, d1 ) do{ \ TRICE_ENTER_CRITICAL_SECTION \ - TRICE_HTON_U32PUSH( id|0x0200|triceCycle ); \ - triceCycle++; \ - TRICE_HTON_U32PUSH( TRICE_U8_JOIN(d0,d1) ); \ + TRICE8_2i( id, pFmt, d0, d1 ); \ TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! trice38 is an internal helper. -TRICE_INLINE void trice38( uint8_t d0 , uint8_t d1, uint8_t d2){ - TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN( 0,d0)<<16) | TRICE_U8_JOIN(d1,d2) ); -} - -//! trice83 is an internal helper. -TRICE_INLINE void trice83( uint32_t id, uint8_t d0 , uint8_t d1, uint8_t d2 ){ - TRICE_ENTER_CRITICAL_SECTION - triceHeader( id|0x0300 ); - trice38( d0, d1, d2 ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trice8_3 does trace id and 8-bit values protected (outside critical section). +//! TRICE8_3i does trace id and 8-bit values unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload //! \param d1 payload //! \param d2 payload -#define trice8_3( id, pFmt, d0, d1, d2 ) do{ \ - trice83( (uint32_t)id, (uint8_t)d0, (uint8_t)d1, (uint8_t)d2 ); \ -} while(0) +//! This is a time optinized implementation. +#define TRICE8_3i( id, pFmt, d0, d1, d2 ) do{ \ + TRICE_HTON_U32PUSH( id|0x0300|triceCycle ); \ + triceCycle++; \ + TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN( 0,d0)<<16) | TRICE_U8_JOIN(d1,d2) ); \ +} while(0) //! TRICE8_3 does trace id and 8-bit values protected (outside critical section). //! \param id trice identifier @@ -296,35 +176,23 @@ TRICE_INLINE void trice83( uint32_t id, uint8_t d0 , uint8_t d1, uint8_t d2 ){ //! This is a time optinized implementation. #define TRICE8_3( id, pFmt, d0, d1, d2 ) do{ \ TRICE_ENTER_CRITICAL_SECTION \ - TRICE_HTON_U32PUSH( id|0x0300|triceCycle ); \ - triceCycle++; \ - TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN( 0,d0)<<16) | TRICE_U8_JOIN(d1,d2) ); \ + TRICE8_3i( id, pFmt, d0, d1, d2 ); \ TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! trice48 is an internal helper. -TRICE_INLINE void trice48( uint8_t d0 , uint8_t d1, uint8_t d2, uint8_t d3 ){ - TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN(d0,d1)<<16) | TRICE_U8_JOIN(d2,d3) ); -} - -//! trice84 is an internal helper. -TRICE_INLINE void trice84( uint32_t id, uint8_t d0 , uint8_t d1, uint8_t d2, uint8_t d3 ){ - TRICE_ENTER_CRITICAL_SECTION - triceHeader( id|0x0400 ); - trice48( d0, d1, d2, d3 ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trice8_4 does trace id and 8-bit values protected (outside critical section). +//! TRICE8_4i does trace id and 8-bit values unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload //! \param d1 payload //! \param d2 payload //! \param d3 payload -#define trice8_4( id, pFmt, d0, d1, d2, d3 ) do{ \ - trice84( (uint32_t)id, (uint8_t)d0, (uint8_t)d1, (uint8_t)d2, (uint8_t)d3 ); \ -} while(0) +//! This is a time optinized implementation. +#define TRICE8_4i( id, pFmt, d0, d1, d2, d3 ) do{ \ + TRICE_HTON_U32PUSH( id|0x0400|triceCycle ); \ + triceCycle++; \ + TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN(d0,d1)<<16) | TRICE_U8_JOIN(d2,d3) ); \ +} while(0) //! TRICE8_4 does trace id and 8-bit values protected (outside critical section). //! \param id trice identifier @@ -336,22 +204,11 @@ TRICE_INLINE void trice84( uint32_t id, uint8_t d0 , uint8_t d1, uint8_t d2, uin //! This is a time optinized implementation. #define TRICE8_4( id, pFmt, d0, d1, d2, d3 ) do{ \ TRICE_ENTER_CRITICAL_SECTION \ - TRICE_HTON_U32PUSH( id|0x0400|triceCycle ); \ - triceCycle++; \ - TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN(d0,d1)<<16) | TRICE_U8_JOIN(d2,d3) ); \ + TRICE8_4i( id, pFmt, d0, d1, d2, d3 ); \ TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! trice85 is an internal helper. -TRICE_INLINE void trice85( uint32_t id, uint8_t d0 , uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4 ){ - TRICE_ENTER_CRITICAL_SECTION - triceLongHeader( id|0x0700, 5 ); - trice48( d0, d1, d2, d3 ); - trice18( d4 ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trice8_5 does trace id and 8-bit values protected (outside critical section). +//! TRICE8_5i does trace id and 8-bit values unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload @@ -359,9 +216,14 @@ TRICE_INLINE void trice85( uint32_t id, uint8_t d0 , uint8_t d1, uint8_t d2, uin //! \param d2 payload //! \param d3 payload //! \param d4 payload -#define trice8_5( id, pFmt, d0, d1, d2, d3, d4 ) do{ \ - trice85( (uint32_t)id, (uint8_t)d0, (uint8_t)d1, (uint8_t)d2, (uint8_t)d3, (uint8_t)d4 ); \ -} while(0) +//! This is a time optinized implementation. +#define TRICE8_5i( id, pFmt, d0, d1, d2, d3, d4 ) do{ \ + TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ + triceCycle++; \ + TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(5) ); \ + TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN(d0,d1)<<16) | TRICE_U8_JOIN(d2,d3) ); \ + TRICE_HTON_U32PUSH( (uint8_t)(d4) ); \ +} while(0) //! TRICE8_5 does trace id and 8-bit values protected (outside critical section). //! \param id trice identifier @@ -374,24 +236,11 @@ TRICE_INLINE void trice85( uint32_t id, uint8_t d0 , uint8_t d1, uint8_t d2, uin //! This is a time optinized implementation. #define TRICE8_5( id, pFmt, d0, d1, d2, d3, d4 ) do{ \ TRICE_ENTER_CRITICAL_SECTION \ - TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ - triceCycle++; \ - TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(5) ); \ - TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN(d0,d1)<<16) | TRICE_U8_JOIN(d2,d3) ); \ - TRICE_HTON_U32PUSH( (uint8_t)(d4) ); \ + TRICE8_5i( id, pFmt, d0, d1, d2, d3, d4 ); \ TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! trice86 is an internal helper. -TRICE_INLINE void trice86( uint32_t id, uint8_t d0 , uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5 ){ - TRICE_ENTER_CRITICAL_SECTION - triceLongHeader( id|0x0700, 6 ); - trice48( d0, d1, d2, d3 ); - trice28( d4, d5 ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trice8_6 does trace id and 8-bit values protected (outside critical section). +//! TRICE8_6i does trace id and 8-bit values unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload @@ -400,9 +249,14 @@ TRICE_INLINE void trice86( uint32_t id, uint8_t d0 , uint8_t d1, uint8_t d2, uin //! \param d3 payload //! \param d4 payload //! \param d5 payload -#define trice8_6( id, pFmt, d0, d1, d2, d3, d4, d5 ) do{ \ - trice86( (uint32_t)id, (uint8_t)d0, (uint8_t)d1, (uint8_t)d2, (uint8_t)d3, (uint8_t)d4, (uint8_t)d5 ); \ -} while(0) +//! This is a time optinized implementation. +#define TRICE8_6i( id, pFmt, d0, d1, d2, d3, d4, d5 ) do{ \ + TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ + triceCycle++; \ + TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(6) ); \ + TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN(d0,d1)<<16) | TRICE_U8_JOIN(d2,d3) ); \ + TRICE_HTON_U32PUSH( TRICE_U8_JOIN(d4,d5) ); \ +} while(0) //! TRICE8_6 does trace id and 8-bit values protected (outside critical section). //! \param id trice identifier @@ -416,24 +270,11 @@ TRICE_INLINE void trice86( uint32_t id, uint8_t d0 , uint8_t d1, uint8_t d2, uin //! This is a time optinized implementation. #define TRICE8_6( id, pFmt, d0, d1, d2, d3, d4, d5 ) do{ \ TRICE_ENTER_CRITICAL_SECTION \ - TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ - triceCycle++; \ - TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(6) ); \ - TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN(d0,d1)<<16) | TRICE_U8_JOIN(d2,d3) ); \ - TRICE_HTON_U32PUSH( TRICE_U8_JOIN(d4,d5) ); \ + TRICE8_6i( id, pFmt, d0, d1, d2, d3, d4, d5 ); \ TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! trice87 is an internal helper. -TRICE_INLINE void trice87( uint32_t id, uint8_t d0 , uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6 ){ - TRICE_ENTER_CRITICAL_SECTION - triceLongHeader( id|0x0700, 7 ); - trice48( d0, d1, d2, d3 ); - trice38( d4, d5, d6 ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! TRICE8_7 does trace id and 8-bit values protected (outside critical section). +//! TRICE8_7i does trace id and 8-bit values unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload @@ -443,9 +284,15 @@ TRICE_INLINE void trice87( uint32_t id, uint8_t d0 , uint8_t d1, uint8_t d2, uin //! \param d4 payload //! \param d5 payload //! \param d6 payload -#define trice8_7( id, pFmt, d0, d1, d2, d3, d4, d5, d6 ) do{ \ - trice87( (uint32_t)id, (uint8_t)d0, (uint8_t)d1, (uint8_t)d2, (uint8_t)d3, (uint8_t)d4, (uint8_t)d5, (uint8_t)d6 ); \ -} while(0) +//! This is a time optinized implementation. +#define TRICE8_7i( id, pFmt, d0, d1, d2, d3, d4, d5, d6 ) do{ \ + TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ + triceCycle++; \ + TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(7) ); \ + TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN(d0,d1)<<16) | TRICE_U8_JOIN(d2,d3) ); \ + TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN( 0,d4)<<16) | TRICE_U8_JOIN(d5,d6) ); \ +} while(0) + //! TRICE8_7 does trace id and 8-bit values protected (outside critical section). //! \param id trice identifier @@ -460,24 +307,11 @@ TRICE_INLINE void trice87( uint32_t id, uint8_t d0 , uint8_t d1, uint8_t d2, uin //! This is a time optinized implementation. #define TRICE8_7( id, pFmt, d0, d1, d2, d3, d4, d5, d6 ) do{ \ TRICE_ENTER_CRITICAL_SECTION \ - TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ - triceCycle++; \ - TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(7) ); \ - TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN(d0,d1)<<16) | TRICE_U8_JOIN(d2,d3) ); \ - TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN( 0,d4)<<16) | TRICE_U8_JOIN(d5,d6) ); \ + TRICE8_7i( id, pFmt, d0, d1, d2, d3, d4, d5, d6 ); \ TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! trice88 is an internal helper. -TRICE_INLINE void trice88( uint32_t id, uint8_t d0 , uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7 ){ - TRICE_ENTER_CRITICAL_SECTION - triceLongHeader( id|0x0700, 8 ); - trice48( d0, d1, d2, d3 ); - trice48( d4, d5, d6, d7 ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trice8_8 does trace id and 8-bit values protected (outside critical section). +//! TRICE8_8i does trace id and 8-bit values unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload @@ -488,9 +322,14 @@ TRICE_INLINE void trice88( uint32_t id, uint8_t d0 , uint8_t d1, uint8_t d2, uin //! \param d5 payload //! \param d6 payload //! \param d7 payload -#define trice8_8( id, pFmt, d0, d1, d2, d3, d4, d5, d6, d7 ) do{ \ - trice88( (uint32_t)id, (uint8_t)d0, (uint8_t)d1, (uint8_t)d2, (uint8_t)d3, (uint8_t)d4, (uint8_t)d5, (uint8_t)d6, (uint8_t)d7 ); \ -} while(0) +//! This is a time optinized implementation. +#define TRICE8_8i( id, pFmt, d0, d1, d2, d3, d4, d5, d6, d7 ) do{ \ + TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ + triceCycle++; \ + TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(8) ); \ + TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN(d0,d1)<<16) | TRICE_U8_JOIN(d2,d3) ); \ + TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN(d4,d5)<<16) | TRICE_U8_JOIN(d6,d7) ); \ +} while(0) //! TRICE8_8 does trace id and 8-bit values protected (outside critical section). //! \param id trice identifier @@ -506,34 +345,20 @@ TRICE_INLINE void trice88( uint32_t id, uint8_t d0 , uint8_t d1, uint8_t d2, uin //! This is a time optinized implementation. #define TRICE8_8( id, pFmt, d0, d1, d2, d3, d4, d5, d6, d7 ) do{ \ TRICE_ENTER_CRITICAL_SECTION \ - TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ - triceCycle++; \ - TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(8) ); \ - TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN(d0,d1)<<16) | TRICE_U8_JOIN(d2,d3) ); \ - TRICE_HTON_U32PUSH( ((uint32_t)TRICE_U8_JOIN(d4,d5)<<16) | TRICE_U8_JOIN(d6,d7) ); \ + TRICE8_8i( id, pFmt, d0, d1, d2, d3, d4, d5, d6, d7 ); \ TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! trice116 is an internal helper. -TRICE_INLINE void trice116( uint16_t d0 ){ - TRICE_HTON_U32PUSH( (uint16_t)d0 ); ; -} - -//! trice161 is an internal helper. -TRICE_INLINE void trice161( uint32_t id, uint16_t d0 ){ - TRICE_ENTER_CRITICAL_SECTION - triceHeader( id|0x0200 ); - trice116( d0 ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trice16_1 does trace id and 16-bit value protected (outside critical section). +//! TRICE16_1i does trace id and 16-bit value unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload -#define trice16_1( id, pFmt, d0 ) do{ \ - trice161( (uint32_t)id, (uint16_t)d0 ); \ -} while(0) +//! This is a time optinized implementation. +#define TRICE16_1i( id, pFmt, d0 ) do{ \ + TRICE_HTON_U32PUSH( id|0x0200|triceCycle ); \ + triceCycle++; \ + TRICE_HTON_U32PUSH( (uint16_t)d0 ); \ +} while(0) //! TRICE16_1 does trace id and 16-bit value protected (outside critical section). //! \param id trice identifier @@ -542,33 +367,21 @@ TRICE_INLINE void trice161( uint32_t id, uint16_t d0 ){ //! This is a time optinized implementation. #define TRICE16_1( id, pFmt, d0 ) do{ \ TRICE_ENTER_CRITICAL_SECTION \ - TRICE_HTON_U32PUSH( id|0x0200|triceCycle ); \ - triceCycle++; \ - TRICE_HTON_U32PUSH( (uint16_t)d0 ); \ + TRICE16_1i( id, pFmt, d0 ); \ TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! trice216 is an internal helper. -TRICE_INLINE void trice216( uint16_t d0, uint16_t d1 ){ - TRICE_HTON_U32PUSH( TRICE_U16_JOIN(d0,d1) ); -} - -//! trice162 is an internal helper. -TRICE_INLINE void trice162( uint32_t id, uint16_t d0, uint16_t d1 ){ - TRICE_ENTER_CRITICAL_SECTION - triceHeader( id|0x0400 ); - trice216( d0, d1 ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trice16_2 does trace id and 16-bit values protected (outside critical section). +//! TRICE16_2i does trace id and 16-bit values unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload //! \param d1 payload -#define trice16_2( id, pFmt, d0, d1 ) do{ \ - trice162( (uint32_t)id, (uint16_t)d0, (uint16_t)d1 ); \ -} while(0) +//! This is a time optinized implementation. +#define TRICE16_2i( id, pFmt, d0, d1 ) do{ \ + TRICE_HTON_U32PUSH( id|0x0400|triceCycle ); \ + triceCycle++; \ + TRICE_HTON_U32PUSH( TRICE_U16_JOIN(d0,d1) ); \ +} while(0) //! TRICE16_2 does trace id and 16-bit values protected (outside critical section). //! \param id trice identifier @@ -578,30 +391,24 @@ TRICE_INLINE void trice162( uint32_t id, uint16_t d0, uint16_t d1 ){ //! This is a time optinized implementation. #define TRICE16_2( id, pFmt, d0, d1 ) do{ \ TRICE_ENTER_CRITICAL_SECTION \ - TRICE_HTON_U32PUSH( id|0x0400|triceCycle ); \ - triceCycle++; \ - TRICE_HTON_U32PUSH( TRICE_U16_JOIN(d0,d1) ); \ + TRICE16_2i( id, pFmt, d0, d1 ); \ TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! trice163 is an internal helper. -TRICE_INLINE void trice163( uint32_t id, uint16_t d0, uint16_t d1, uint16_t d2 ){ - TRICE_ENTER_CRITICAL_SECTION - triceLongHeader( id|0x0700, 6 ); - trice216( d0, d1 ); - trice116( d2 ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trice16_3 does trace id and 16-bit values protected (outside critical section). +//! TRICE16_3i does trace id and 16-bit values unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload //! \param d1 payload //! \param d2 payload -#define trice16_3( id, pFmt, d0, d1, d2 ) do{ \ - trice163( (uint32_t)id, (uint16_t)d0, (uint16_t)d1, (uint16_t)d2 ); \ -} while(0) +//! This is a time optinized implementation. +#define TRICE16_3i( id, pFmt, d0, d1, d2 ) do{ \ + TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ + triceCycle++; \ + TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(6) ); \ + TRICE_HTON_U32PUSH( TRICE_U16_JOIN(d0,d1) ); \ + TRICE_HTON_U32PUSH( (uint16_t)(d2) ); \ +} while(0) //! TRICE16_3 does trace id and 16-bit values protected (outside critical section). //! \param id trice identifier @@ -612,33 +419,26 @@ TRICE_INLINE void trice163( uint32_t id, uint16_t d0, uint16_t d1, uint16_t d2 ) //! This is a time optinized implementation. #define TRICE16_3( id, pFmt, d0, d1, d2 ) do{ \ TRICE_ENTER_CRITICAL_SECTION \ - TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ - triceCycle++; \ - TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(6) ); \ - TRICE_HTON_U32PUSH( TRICE_U16_JOIN(d0,d1) ); \ - TRICE_HTON_U32PUSH( (uint16_t)(d2) ); \ + TRICE16_3i( id, pFmt, d0, d1, d2 ); \ TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! trice164 is an internal helper. -TRICE_INLINE void trice164( uint32_t id, uint16_t d0, uint16_t d1, uint16_t d2, uint16_t d3 ){ - TRICE_ENTER_CRITICAL_SECTION - triceLongHeader( id|0x0700, 8 ); - trice216( d0, d1 ); - trice216( d2, d3 ); - TRICE_LEAVE_CRITICAL_SECTION -} -//! trice16_4 does trace id and 16-bit values protected (outside critical section). +//! TRICE16_4i does trace id and 16-bit values unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload //! \param d1 payload //! \param d2 payload //! \param d3 payload -#define trice16_4( id, pFmt, d0, d1, d2, d3 ) do{ \ - trice164( (uint32_t)id, (uint16_t)d0, (uint16_t)d1, (uint16_t)d2, (uint16_t)d3 ); \ -} while(0) +//! This is a time optinized implementation. +#define TRICE16_4i( id, pFmt, d0, d1, d2, d3 ) do{ \ + TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ + triceCycle++; \ + TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(8) ); \ + TRICE_HTON_U32PUSH( TRICE_U16_JOIN(d0,d1) ); \ + TRICE_HTON_U32PUSH( TRICE_U16_JOIN(d2,d3) ); \ +} while(0) //! TRICE16_4 does trace id and 16-bit values protected (outside critical section). //! \param id trice identifier @@ -650,52 +450,21 @@ TRICE_INLINE void trice164( uint32_t id, uint16_t d0, uint16_t d1, uint16_t d2, //! This is a time optinized implementation. #define TRICE16_4( id, pFmt, d0, d1, d2, d3 ) do{ \ TRICE_ENTER_CRITICAL_SECTION \ - TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ - triceCycle++; \ - TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(8) ); \ - TRICE_HTON_U32PUSH( TRICE_U16_JOIN(d0,d1) ); \ - TRICE_HTON_U32PUSH( TRICE_U16_JOIN(d2,d3) ); \ + TRICE16_4i( id, pFmt, d0, d1, d2, d3 ); \ TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! trice123 is an internal helper. -TRICE_INLINE void trice132( uint32_t d0 ){ - TRICE_HTON_U32PUSH( d0 ); ; -} - -//! trice223 is an internal helper. -TRICE_INLINE void trice232( uint32_t d0, uint32_t d1 ){ - trice132( d0 ); - TRICE_HTON_U32PUSH( d1 ); -} - -//! trice323 is an internal helper. -TRICE_INLINE void trice332( uint32_t d0, uint32_t d1, uint32_t d2 ){ - trice232( d0, d1 ); - TRICE_HTON_U32PUSH( d2 ); -} - -//! trice423 is an internal helper. -TRICE_INLINE void trice432( uint32_t d0, uint32_t d1, uint32_t d2, uint32_t d3 ){ - trice332( d0, d1, d2 ); - TRICE_HTON_U32PUSH( d3 ); -} - -//! trice321 is an internal helper. -TRICE_INLINE void trice321( uint32_t id, uint32_t d0 ){ - TRICE_ENTER_CRITICAL_SECTION - triceHeader( id|0x0400 ); - trice132( d0 ); - TRICE_LEAVE_CRITICAL_SECTION -} -//! trice32_1 does trace id and 32-bit value protected (outside critical section). +//! TRICE32_1i does trace id and 32-bit value unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload -#define trice32_1( id, pFmt, d0 ) do{ \ - trice321( (uint32_t)id, (uint32_t)d0 ); \ -} while(0) +//! This is a time optinized implementation. +#define TRICE32_1i( id, pFmt, d0 ) do{ \ + TRICE_HTON_U32PUSH( id|0x0400|triceCycle ); \ + triceCycle++; \ + TRICE_HTON_U32PUSH( d0 ); \ +} while(0) //! TRICE32_1 does trace id and 32-bit value protected (outside critical section). //! \param id trice identifier @@ -704,101 +473,67 @@ TRICE_INLINE void trice321( uint32_t id, uint32_t d0 ){ //! This is a time optinized implementation. #define TRICE32_1( id, pFmt, d0 ) do{ \ TRICE_ENTER_CRITICAL_SECTION \ - TRICE_HTON_U32PUSH( id|0x0400|triceCycle ); \ - triceCycle++; \ - TRICE_HTON_U32PUSH( d0 ); \ + TRICE32_1i( id, pFmt, d0 ); \ TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! trice322 is an internal helper. -TRICE_INLINE void trice322( uint32_t id, uint32_t d0, uint32_t d1 ){ - TRICE_ENTER_CRITICAL_SECTION - triceLongHeader( id|0x0700, 8 ); - trice232( d0, d1 ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trice32_2 does trace id and 32-bit values protected (outside critical section). -//! \param id trice identifier -//! \param pFmt formatstring for trice -//! \param d0 payload -//! \param d1 payload -#define trice32_2( id, pFmt, d0, d1 ) do{ \ - trice322( (uint32_t)id, (uint32_t)d0, (uint32_t)d1 ); \ -} while(0) - -//! TRICE32_2 does trace id and 32-bit values protected (outside critical section). +//! TRICE32_2i does trace id and 32-bit values unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload //! \param d1 payload //! This is a time optinized implementation. -#define TRICE32_2( id, pFmt, d0, d1 ) do{ \ - TRICE_ENTER_CRITICAL_SECTION \ +#define TRICE32_2i( id, pFmt, d0, d1 ) do{ \ TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ triceCycle++; \ TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(8) ); \ TRICE_HTON_U32PUSH( d0 ); \ TRICE_HTON_U32PUSH( d1 ); \ - TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! trice323 is an internal helper. -TRICE_INLINE void trice323( uint32_t id, uint32_t d0, uint32_t d1, uint32_t d2 ){ - TRICE_ENTER_CRITICAL_SECTION - triceLongHeader( id|0x0700, 12 ); - trice332( d0, d1, d2 ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trice32_3 does trace id and 32-bit values protected (outside critical section). +//! TRICE32_2 does trace id and 32-bit values protected (outside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload //! \param d1 payload -//! \param d2 payload -#define trice32_3( id, pFmt, d0, d1, d2 ) do{ \ - trice323( (uint32_t)id, (uint32_t)d0, (uint32_t)d1, (uint32_t)d2 ); \ -} while(0) +//! This is a time optinized implementation. +#define TRICE32_2( id, pFmt, d0, d1 ) do{ \ + TRICE_ENTER_CRITICAL_SECTION \ + TRICE32_2i( id, pFmt, d0, d1 ); \ + TRICE_LEAVE_CRITICAL_SECTION \ +} while(0) -//! TRICE32_3 does trace id and 32-bit values protected (outside critical section). +//! TRICE32_3i does trace id and 32-bit values unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload //! \param d1 payload //! \param d2 payload //! This is a time optinized implementation. -#define TRICE32_3( id, pFmt, d0, d1, d2 ) do{ \ - TRICE_ENTER_CRITICAL_SECTION \ +#define TRICE32_3i( id, pFmt, d0, d1, d2 ) do{ \ TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ triceCycle++; \ TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(12) ); \ TRICE_HTON_U32PUSH( d0 ); \ TRICE_HTON_U32PUSH( d1 ); \ TRICE_HTON_U32PUSH( d2 ); \ - TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! trice324 is an internal helper. -TRICE_INLINE void trice324( uint32_t id, uint32_t d0, uint32_t d1, uint32_t d2, uint32_t d3 ){ - TRICE_ENTER_CRITICAL_SECTION - triceLongHeader( id|0x0700, 16 ); - trice432( d0, d1, d2, d3 ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trice32_4 does trace id and 32-bit values protected (outside critical section). +//! TRICE32_3 does trace id and 32-bit values protected (outside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload //! \param d1 payload //! \param d2 payload -//! \param d3 payload -#define trice32_4( id, pFmt, d0, d1, d2, d3 ) do{ \ - trice324( (uint32_t)id, (uint32_t)d0, (uint32_t)d1, (uint32_t)d2, (uint32_t)d3 ); \ -} while(0) +//! This is a time optinized implementation. +#define TRICE32_3( id, pFmt, d0, d1, d2 ) do{ \ + TRICE_ENTER_CRITICAL_SECTION \ + TRICE32_3i( id, pFmt, d0, d1, d2 ); \ + TRICE_LEAVE_CRITICAL_SECTION \ +} while(0) -//! TRICE32_4 does trace id and 32-bit values protected (outside critical section). + +//! TRICE32_4i does trace id and 32-bit values unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload @@ -806,8 +541,7 @@ TRICE_INLINE void trice324( uint32_t id, uint32_t d0, uint32_t d1, uint32_t d2, //! \param d2 payload //! \param d3 payload //! This is a time optinized implementation. -#define TRICE32_4( id, pFmt, d0, d1, d2, d3 ) do{ \ - TRICE_ENTER_CRITICAL_SECTION \ +#define TRICE32_4i( id, pFmt, d0, d1, d2, d3 ) do{ \ TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ triceCycle++; \ TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(16) ); \ @@ -815,111 +549,72 @@ TRICE_INLINE void trice324( uint32_t id, uint32_t d0, uint32_t d1, uint32_t d2, TRICE_HTON_U32PUSH( d1 ); \ TRICE_HTON_U32PUSH( d2 ); \ TRICE_HTON_U32PUSH( d3 ); \ - TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -#if 1 // TRICE_TRANSFER_ENDIANNESS == TRICE_LITTLE_ENDIANNESS // to do: adapt decoder - -//! trice641 is an internal helper. -TRICE_INLINE void trice641( uint32_t id, uint64_t d0 ){ - TRICE_ENTER_CRITICAL_SECTION - triceLongHeader( id|0x0700, 8 ); - trice232( (uint32_t)(d0>>32), (uint32_t)d0 ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trice64_1 does trace id and 64-bit values protected (outside critical section). +//! TRICE32_4 does trace id and 32-bit values protected (outside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload -#define trice64_1( id, pFmt, d0 ) do{ \ - trice641( (uint32_t)id, (uint64_t)d0 ); \ +//! \param d1 payload +//! \param d2 payload +//! \param d3 payload +//! This is a time optinized implementation. +#define TRICE32_4( id, pFmt, d0, d1, d2, d3 ) do{ \ + TRICE_ENTER_CRITICAL_SECTION \ + TRICE32_4i( id, pFmt, d0, d1, d2, d3 ); \ + TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -//! TRICE64_1 does trace id and 64-bit values protected (outside critical section). +#if 1 // TRICE_TRANSFER_ENDIANNESS == TRICE_LITTLE_ENDIANNESS // to do: adapt decoder +#define TRICE_HTON_U64PUSH( d ) do { \ + TRICE_HTON_U32PUSH( (uint64_t)(d)>>32 ); \ + TRICE_HTON_U32PUSH( d ); \ +} while(0); +#else +#define TRICE_HTON_U64PUSH( d ) do { \ + TRICE_HTON_U32PUSH( d ); \ + TRICE_HTON_U32PUSH( (uint64_t)(d)>>32 ); \ +} while(0); +#endif + +//! TRICE64_1i does trace id and 64-bit values unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload //! This is a time optinized implementation. -#define TRICE64_1( id, pFmt, d0 ) do{ \ - TRICE_ENTER_CRITICAL_SECTION \ +#define TRICE64_1i( id, pFmt, d0 ) do{ \ TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ triceCycle++; \ TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(8) ); \ - TRICE_HTON_U32PUSH( (uint64_t)(d0)>>32 ); \ - TRICE_HTON_U32PUSH( d0 ); \ - TRICE_LEAVE_CRITICAL_SECTION \ -} while(0) - -//! trice642 is an internal helper. -TRICE_INLINE void trice642( uint32_t id, uint64_t d0, uint64_t d1 ){ - TRICE_ENTER_CRITICAL_SECTION - triceLongHeader( id|0x0700, 16 ); - trice432( (uint32_t)(d0>>32), (uint32_t)d0, (uint32_t)(d1>>32), (uint32_t)d1 ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trice64_2 does trace id and 64-bit values protected (outside critical section). -//! \param id trice identifier -//! \param pFmt formatstring for trice -//! \param d0 payload -//! \param d1 payload -#define trice64_2( id, pFmt, d0, d1 ) do{ \ - trice642( (uint32_t)id, (uint64_t)d0, (uint64_t)d1 ); \ + TRICE_HTON_U64PUSH( d0 ); \ } while(0) -//! TRICE64_2 does trace id and 64-bit values protected (outside critical section). +//! TRICE64_1 does trace id and 64-bit values protected (outside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload -//! \param d1 payload //! This is a time optinized implementation. -#define TRICE64_2( id, pFmt, d0, d1 ) do{ \ +#define TRICE64_1( id, pFmt, d0 ) do{ \ TRICE_ENTER_CRITICAL_SECTION \ - TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ - triceCycle++; \ - TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(16) ); \ - TRICE_HTON_U32PUSH( (uint64_t)(d0)>>32 ); \ - TRICE_HTON_U32PUSH( d0 ); \ - TRICE_HTON_U32PUSH( (uint64_t)(d1)>>32 ); \ - TRICE_HTON_U32PUSH( d1 ); \ + TRICE64_1i( id, pFmt, d0 ); \ TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -#else // #if TRICE_TRANSFER_ENDIANNESS == TRICE_LITTLE_ENDIANNESS - - -TRICE_INLINE void trice64_1( uint32_t id, uint64_t d0 ){ - TRICE_ENTER_CRITICAL_SECTION - triceHeader( id|0x0800 ); - trice232( (uint32_t)d0, (uint32_t)(d0>>32) ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trace id and 64-bit values protected (outside critical section) +//! TRICE64_2i does trace id and 64-bit values unprotected (inside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload +//! \param d1 payload //! This is a time optinized implementation. -#define TRICE64_1( id, pFmt, d0 ) do{ \ - TRICE_ENTER_CRITICAL_SECTION \ - TRICE_HTON_U32PUSH( id|0x0800|triceCycle ); \ +#define TRICE64_2i( id, pFmt, d0, d1 ) do{ \ + TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ triceCycle++; \ - TRICE_HTON_U32PUSH( d0 ); \ - TRICE_HTON_U32PUSH( (uint64_t)(d0)>>32 ); \ - TRICE_LEAVE_CRITICAL_SECTION \ + TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(16) ); \ + TRICE_HTON_U64PUSH( d0 ); \ + TRICE_HTON_U64PUSH( d1 ); \ } while(0) - -TRICE_INLINE void trice64_2( uint32_t id, uint64_t d0, uint64_t d1 ){ - TRICE_ENTER_CRITICAL_SECTION - triceHeader( id|0x0700 ); - trice132( TRICE_LONGCOUNT(16) ); // long count 16 - trice432( (uint32_t)d0, (uint32_t)(d0>>32), (uint32_t)d1, (uint32_t)(d1>>32) ); - TRICE_LEAVE_CRITICAL_SECTION -} - -//! trace id and 64-bit values protected (outside critical section) +//! TRICE64_2 does trace id and 64-bit values protected (outside critical section). //! \param id trice identifier //! \param pFmt formatstring for trice //! \param d0 payload @@ -927,17 +622,10 @@ TRICE_INLINE void trice64_2( uint32_t id, uint64_t d0, uint64_t d1 ){ //! This is a time optinized implementation. #define TRICE64_2( id, pFmt, d0, d1 ) do{ \ TRICE_ENTER_CRITICAL_SECTION \ - TRICE_HTON_U32PUSH( id|0x0700|triceCycle ); \ - triceCycle++; \ - TRICE_HTON_U32PUSH( TRICE_LONGCOUNT(16) ); \ - TRICE_HTON_U32PUSH( d0 ); \ - TRICE_HTON_U32PUSH( (uint64_t)(d0)>>32 ); \ - TRICE_HTON_U32PUSH( d1 ); \ - TRICE_HTON_U32PUSH( (uint64_t)(d1)>>32 ); \ + TRICE64_2i( id, pFmt, d0, d1 ); \ TRICE_LEAVE_CRITICAL_SECTION \ } while(0) -#endif // #else // #if TRICE_TRANSFER_ENDIANNESS == TRICE_LITTLE_ENDIANNESS //! string transfer format: //! id count cycle <--- id value in trice transfer order diff --git a/srcTrice.C/trice.c b/srcTrice.C/trice.c new file mode 100644 index 000000000..7171e78e3 --- /dev/null +++ b/srcTrice.C/trice.c @@ -0,0 +1,612 @@ +/*! \file trice.c +\author Thomas.Hoehenleitner [at] seerose.net +*******************************************************************************/ +#include +#include // strlen +//#include "triceConfig.h" +//#include "intern/triceConfigCompiler.h" +//#include "intern/triceFifo.h" +#include "trice.h" + +#define TRICE_FILENAME TRICE0( Id(65002), "rd_:triceFifo.c" ); + +#if TRICE_ENCODING == TRICE_PACK2_ENCODING || TRICE_ENCODING == TRICE_FLEX_ENCODING +uint8_t triceCycle = 0; +#endif + +//! trice fifo instance, here are the trices buffered. +ALIGN4 uint32_t +triceU32Fifo[ TRICE_FIFO_BYTE_SIZE>>2 ] +ALIGN4_END; + +uint8_t* const triceU8Fifo = (uint8_t*)triceU32Fifo; + +int triceU32FifoWriteIndex = 0; //!< trice fifo write index, used inside macros, so must be visible +int triceU32FifoReadIndex = 0; //!< trice fifo read index for 32 bit values + +int triceU8FifoWriteIndex = 0; //!< trice fifo write index, used inside macros, so must be visible +int triceU8FifoReadIndex = 0; //!< trice fifo read index + +int triceFifoMaxDepth = 0; //!< diagnostics + +//! triceU32FifoDepth determines bytes count inside trice fifo. +//! Assumption: Only int32 access for push and pop. +//! \return count of buffered bytes +int triceU32FifoDepth(void) { + int triceCount = (triceU32FifoWriteIndex - triceU32FifoReadIndex) & TRICE_U32_FIFO_MASK; + int depth = triceCount*sizeof(uint32_t); + triceFifoMaxDepth = triceFifoMaxDepth < depth ? depth : triceFifoMaxDepth; // diagnostics + return depth; +} + +//! triceU8UsageFifoDepth determines bytes count inside trice fifo. +//! Assumption: Only int8 access for push and pop. +//! \return count of buffered bytes +int triceU8FifoDepth(void) { + int depth = (triceU8FifoWriteIndex - triceU8FifoReadIndex) & TRICE_U8_FIFO_MASK; + triceFifoMaxDepth = triceFifoMaxDepth < depth ? depth : triceFifoMaxDepth; // diagnostics + return depth; +} + +//! triceU32WriteU8ReadFifoDepth determines bytes count inside trice fifo. +//! Assumption: Only int32 for push and only int8 for pop. +//! \return count of buffered bytes +int triceU32WriteU8ReadFifoDepth(void) { + int depth = ((triceU32FifoWriteIndex<<2) - triceU8FifoReadIndex) & TRICE_U8_FIFO_MASK; + triceFifoMaxDepth = triceFifoMaxDepth < depth ? depth : triceFifoMaxDepth; // diagnostics + return depth; +} + +#ifndef trice0i +//! trice0i does trace id unprotected (inside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +void trice0i( uint32_t id, char* pFmt ){ + TRICE0i( id, pFmt ); +} +#endif + +#ifndef trice0 +//! trice0i does trace id protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +void trice0( uint32_t id, char* pFmt ){ + TRICE0( id, pFmt ); +} +#endif + +#ifndef trice8_1i +//! trice8_1i does trace id and 8-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +void trice8_1i( uint32_t id, char* pFmt, int8_t d0 ){ + TRICE8_1i( id, pFmt, d0 ); +} +#endif + +#ifndef trice8_1 +//! trice8_1 does trace id and 8-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +void trice8_1( uint32_t id, char* pFmt, int8_t d0 ){ + TRICE8_1( id, pFmt, d0 ); +} +#endif + +#ifndef trice8_2i +//! trice8_2i does trace id and 8-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +void trice8_2i( uint32_t id, char* pFmt, int8_t d0, int8_t d1 ){ + TRICE8_2i( id, pFmt, d0, d1 ); +} +#endif + +#ifndef trice8_2 +//! trice8_2 does trace id and 8-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +void trice8_2( uint32_t id, char* pFmt, int8_t d0, int8_t d1 ){ + TRICE8_2( id, pFmt, d0, d1 ); +} +#endif + +#ifndef trice8_3i +//! trice8_3i does trace id and 8-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +void trice8_3i( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2 ){ + TRICE8_3i( id, pFmt, d0, d1, d2 ); +} +#endif + +#ifndef trice8_3 +//! trice8_3 does trace id and 8-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +void trice8_3( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2 ){ + TRICE8_3( id, pFmt, d0, d1, d2 ); +} +#endif + +#ifndef trice8_4i +//! trice8_4i does trace id and 8-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +//! \param d3 payload +void trice8_4i( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3 ){ + TRICE8_4i( id, pFmt, d0, d1, d2, d3 ); +} +#endif + +#ifndef trice8_4 +//! trice8_4 does trace id and 8-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +//! \param d3 payload +void trice8_4( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3 ){ + TRICE8_4( id, pFmt, d0, d1, d2, d3 ); +} +#endif + +#ifndef trice8_5i +//! trice8_6i does trace id and 8-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +//! \param d3 payload +//! \param d4 payload +void trice8_5i( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3, int8_t d4 ){ + TRICE8_5i( id, pFmt, d0, d1, d2, d3, d4 ); +} +#endif + +#ifndef trice8_5 +//! trice8_6 does trace id and 8-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +//! \param d3 payload +//! \param d4 payload +void trice8_5( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3, int8_t d4 ){ + TRICE8_5( id, pFmt, d0, d1, d2, d3, d4 ); +} +#endif + + +#ifndef trice8_6i +//! trice8_6i does trace id and 8-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +//! \param d3 payload +//! \param d4 payload +//! \param d5 payload +void trice8_6i( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3, int8_t d4, int8_t d5 ){ + TRICE8_6i( id, pFmt, d0, d1, d2, d3, d4, d5 ); +} +#endif + +#ifndef trice8_6 +//! trice8_6 does trace id and 8-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +//! \param d3 payload +//! \param d4 payload +//! \param d5 payload +void trice8_6( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3, int8_t d4, int8_t d5 ){ + TRICE8_6( id, pFmt, d0, d1, d2, d3, d4, d5 ); +} +#endif + +#ifndef trice8_7i +//! trice8_7i does trace id and 8-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +//! \param d3 payload +//! \param d4 payload +//! \param d5 payload +//! \param d6 payload +void trice8_7i( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3, int8_t d4, int8_t d5, int8_t d6 ){ + TRICE8_7i( id, pFmt, d0, d1, d2, d3, d4, d5, d6 ); +} +#endif + +#ifndef trice8_7 +//! trice8_7 does trace id and 8-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +//! \param d3 payload +//! \param d4 payload +//! \param d5 payload +//! \param d6 payload +void trice8_7( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3, int8_t d4, int8_t d5, int8_t d6 ){ + TRICE8_7( id, pFmt, d0, d1, d2, d3, d4, d5, d6 ); +} +#endif + +#ifndef trice8_8i +//! trice8_8i does trace id and 8-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +//! \param d3 payload +//! \param d4 payload +//! \param d5 payload +//! \param d6 payload +//! \param d7 payload +void trice8_8i( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3, int8_t d4, int8_t d5, int8_t d6, int8_t d7 ){ + TRICE8_8i( id, pFmt, d0, d1, d2, d3, d4, d5, d6, d7 ); +} +#endif + +#ifndef trice8_8 +//! trice8_8 does trace id and 8-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +//! \param d3 payload +//! \param d4 payload +//! \param d5 payload +//! \param d6 payload +//! \param d7 payload +void trice8_8( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3, int8_t d4, int8_t d5, int8_t d6, int8_t d7 ){ + TRICE8_8( id, pFmt, d0, d1, d2, d3, d4, d5, d6, d7 ); +} +#endif + + +#ifndef trice16_1i +//! trice16_1i does trace id and 16-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +void trice16_1i( uint32_t id, char* pFmt, int16_t d0 ){ + TRICE16_1i( id, pFmt, d0 ); +} +#endif + +#ifndef trice16_1 +//! trice16_1 does trace id and 16-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +void trice16_1( uint32_t id, char* pFmt, int16_t d0 ){ + TRICE16_1( id, pFmt, d0 ); +} +#endif + +#ifndef trice16_2i +//! trice16_2i does trace id and 16-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +void trice16_2i( uint32_t id, char* pFmt, int16_t d0, int16_t d1 ){ + TRICE16_2i( id, pFmt, d0, d1 ); +} +#endif + +#ifndef trice16_2 +//! trice16_2 does trace id and 16-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +void trice16_2( uint32_t id, char* pFmt, int16_t d0, int16_t d1 ){ + TRICE16_2( id, pFmt, d0, d1 ); +} +#endif + +#ifndef trice16_3i +//! trice16_3i does trace id and 16-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +void trice16_3i( uint32_t id, char* pFmt, int16_t d0, int16_t d1, int16_t d2 ){ + TRICE16_3i( id, pFmt, d0, d1, d2 ); +} +#endif + +#ifndef trice16_3 +//! trice16_3 does trace id and 16-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +void trice16_3( uint32_t id, char* pFmt, int16_t d0, int16_t d1, int16_t d2 ){ + TRICE16_3( id, pFmt, d0, d1, d2 ); +} +#endif + +#ifndef trice16_4i +//! trice16_4i does trace id and 16-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +//! \param d3 payload +void trice16_4i( uint32_t id, char* pFmt, int16_t d0, int16_t d1, int16_t d2, int16_t d3 ){ + TRICE16_4i( id, pFmt, d0, d1, d2, d3 ); +} +#endif + +#ifndef trice16_4 +//! trice16_4 does trace id and 16-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +//! \param d3 payload +void trice16_4( uint32_t id, char* pFmt, int16_t d0, int16_t d1, int16_t d2, int16_t d3 ){ + TRICE16_4( id, pFmt, d0, d1, d2, d3 ); +} +#endif + +#ifndef trice32_1i +//! trice32_1i does trace id and 32-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +void trice32_1i( uint32_t id, char* pFmt, int32_t d0 ){ + TRICE32_1i( id, pFmt, d0 ); +} +#endif + +#ifndef trice32_1 +//! trice32_1 does trace id and 32-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +void trice32_1( uint32_t id, char* pFmt, int32_t d0 ){ + TRICE32_1( id, pFmt, d0 ); +} +#endif + +#ifndef trice32_2i +//! trice32_2i does trace id and 32-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +void trice32_2i( uint32_t id, char* pFmt, int32_t d0, int32_t d1 ){ + TRICE32_2i( id, pFmt, d0, d1 ); +} +#endif + +#ifndef trice32_2 +//! trice32_2 does trace id and 32-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +void trice32_2( uint32_t id, char* pFmt, int32_t d0, int32_t d1 ){ + TRICE32_2( id, pFmt, d0, d1 ); +} +#endif + +#ifndef trice32_3i +//! trice32_3i does trace id and 32-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +void trice32_3i( uint32_t id, char* pFmt, int32_t d0, int32_t d1, int32_t d2 ){ + TRICE32_3i( id, pFmt, d0, d1, d2 ); +} +#endif + +#ifndef trice32_3 +//! trice32_3 does trace id and 32-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +void trice32_3( uint32_t id, char* pFmt, int32_t d0, int32_t d1, int32_t d2 ){ + TRICE32_3( id, pFmt, d0, d1, d2 ); +} +#endif + +#ifndef trice32_4i +//! trice32_4i does trace id and 32-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +//! \param d3 payload +void trice32_4i( uint32_t id, char* pFmt, int32_t d0, int32_t d1, int32_t d2, int32_t d3 ){ + TRICE32_4i( id, pFmt, d0, d1, d2, d3 ); +} +#endif + +#ifndef trice32_4 +//! trice32_4 does trace id and 32-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +//! \param d2 payload +//! \param d3 payload +void trice32_4( uint32_t id, char* pFmt, int32_t d0, int32_t d1, int32_t d2, int32_t d3 ){ + TRICE32_4( id, pFmt, d0, d1, d2, d3 ); +} +#endif + +#ifndef trice64_1i +//! trice64_1i does trace id and 64-bit values unprotected (inside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +void trice64_1i( uint32_t id, char* pFmt, int64_t d0 ){ + TRICE64_1i( id, pFmt, d0 ); +} +#endif + +#ifndef trice64_1 +//! trice64_1 does trace id and 64-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +void trice64_1( uint32_t id, char* pFmt, int64_t d0 ){ + TRICE64_1( id, pFmt, d0 ); +} +#endif + +#ifndef trice64_2i +//! trice64_2i does trace id and 64-bit values unprotected (inside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +void trice64_2i( uint32_t id, char* pFmt, int64_t d0, int64_t d1 ){ + TRICE64_2i( id, pFmt, d0, d1 ); +} +#endif + +#ifndef trice64_2 +//! trice64_2 does trace id and 64-bit values protected (outside critical section). +//! \param id trice identifier +//! \param pFmt formatstring for trice +//! \param d0 payload +//! \param d1 payload +void trice64_2( uint32_t id, char* pFmt, int64_t d0, int64_t d1 ){ + TRICE64_2( id, pFmt, d0, d1 ); +} +#endif + + +//! syncLevelLimit is the max amount of trices bulk transmitted without a sync trice injected. +//! Assuming triceServeBareFifoToBytesBuffer() is called every ms this is also the max ms abount without a sync trice. +//! Bigger numbers decrease the bandwidth needs but increase the possible loss of trices in case of +//! re-sync need. A number of 10-100 is recommended: every 10-100 ms or 10-100 trices a sync trice is transmitted. +//! It increases the bandwidth need by 10-1%. +int const syncLevelLimit = 100; + +#ifndef TRICE_WRAP_START_BYTE +#define TRICE_WRAP_START_BYTE 0 +#endif + +#ifndef TRICE_WRAP_LOCAL_ADDR +#define TRICE_WRAP_LOCAL_ADDR 0 +#endif + +#ifndef TRICE_WRAP_DEST_ADDR +#define TRICE_WRAP_DEST_ADDR 0 +#endif + +uint8_t triceBytesBuffer[8] = { TRICE_WRAP_START_BYTE, TRICE_WRAP_LOCAL_ADDR, TRICE_WRAP_DEST_ADDR, 0, 0,0,0,0 }; //!< bytes transmit buffer (prefilled for wrap +int const triceBytesBufferIndexLimit = 8; // sizeof(triceBytesBuffer[8]); +int triceBytesBufferIndex = triceBytesBufferIndexLimit; + +TRICE_INLINE void triceTransfer(uint32_t t0, uint32_t t1) { + *(uint32_t*)&triceBytesBuffer[0] = t0; + *(uint32_t*)&triceBytesBuffer[4] = t1; +#ifdef ENCRYPT + encrypt( triceBytesBuffer ); +#endif +} + +int triceBytesByfferDepth( void ){ + return triceBytesBufferIndexLimit - triceBytesBufferIndex; +} + +void triceServeFifoSyncedToBytesBuffer(void) { + // 89 ab cd ef <- on serial port + // ih il dh dl + uint32_t const syncTrice = TRICE_HTON(0x89abcdef); + static int syncLevel = syncLevelLimit; // start with a sync trice + if (triceBytesBufferIndexLimit == triceBytesBufferIndex) { // bytes buffer empty and tx finished + // next trice + int n = triceU32FifoDepth(); + if (syncLevel < syncLevelLimit) { // no need for a sync trice + if (0 == n) { // no trices to transmit + syncLevel++; + return; + } else if (4 == n) { // one trice to transmit + triceTransfer(triceU32Pop(), syncTrice); + syncLevel = 0; + } else { // at least 2 trices to transmit + uint32_t t0 = triceU32Pop(); + uint32_t t1 = triceU32Pop(); + triceTransfer(t0, t1); + syncLevel += 2; + } + } else { // need for a sync trice + if (4 <= n) { // at least one trice, so transmit it and one sync trice + triceTransfer(triceU32Pop(), syncTrice); + } else { // nothing to transmit so transmit 2 sync trices + triceTransfer(syncTrice, syncTrice); + } + syncLevel = 0; + } + triceBytesBufferIndex = 0; + } +} + +void triceServeFifoWrappedToBytesBuffer(void) { + if (triceBytesBufferIndexLimit == triceBytesBufferIndex) { // bytes buffer empty and tx finished + // next trice + int n = triceU32FifoDepth(); + if ( n >= 4 ) { // a trice to transmit + uint32_t x = triceU32Pop(); +#ifdef ENCRYPT // need to re-init buffer + triceBytesBuffer[0] = TRICE_WRAP_START_BYTE; + triceBytesBuffer[1] = TRICE_WRAP_LOCAL_ADDR; + triceBytesBuffer[2] = TRICE_WRAP_DEST_ADDR; +#endif + triceBytesBuffer[3] = (uint8_t)( TRICE_WRAP_START_BYTE ^ TRICE_WRAP_LOCAL_ADDR ^ TRICE_WRAP_DEST_ADDR ^ x ^ (x>>8) ^ (x>>16) ^ (x>>24) ); // crc8 + + *(uint32_t*)&triceBytesBuffer[4] = x; //triceLoadInNetworkOrder(&triceBytesBuffer[4], x); +#ifdef ENCRYPT + encrypt( triceBytesBuffer ); +#endif + triceBytesBufferIndex = 0; + } + } +} + diff --git a/srcTrice.C/trice.h b/srcTrice.C/trice.h index 3e4192204..db2b370db 100644 --- a/srcTrice.C/trice.h +++ b/srcTrice.C/trice.h @@ -23,7 +23,6 @@ extern "C" { #include "triceConfig.h" #include "intern/triceConfigCompiler.h" -#include "intern/triceFifo.h" #include "intern/triceSeggerRTT.h" #ifdef ENCRYPT #include "intern/triceXteaCrypto.h" @@ -46,6 +45,66 @@ extern "C" { #endif #define TRICE_HTON_U32PUSH(v) TRICE_U32PUSH( TRICE_HTON(v) ) + + +//! TRICE_FIFO_BYTE_SIZE must be a power of 2, one trice needs typically 4 or 8 bytes, max 32 bytes. +//! The fifo has to hold trice bursts until they are transmitted. +//! It is transmitted with lower priority in the background for example with the UART tx interrupt. +#ifndef TRICE_FIFO_BYTE_SIZE +#define TRICE_FIFO_BYTE_SIZE (2048) +#endif + +#define TRICE_U32_FIFO_MASK (((TRICE_FIFO_BYTE_SIZE)>>2)-1) //!< max possible int32 count in fifo +#define TRICE_U8_FIFO_MASK ((TRICE_FIFO_BYTE_SIZE)-1) //!< max possible bytes count in fifo + +extern uint32_t triceU32Fifo[ TRICE_FIFO_BYTE_SIZE>>2 ]; +extern uint8_t* const triceU8Fifo; + +extern int triceU32FifoWriteIndex; +extern int triceU32FifoReadIndex; + +extern int triceU8FifoWriteIndex; +extern int triceU8FifoReadIndex; + +extern int triceFifoMaxDepth; + +//! triceU32Push puts one trice into trice fifo. +//! This is a trice time critical part. +//! \param v trice id with 2 byte data +TRICE_INLINE void triceU32Push(uint32_t v) { + triceU32Fifo[triceU32FifoWriteIndex++] = v; + triceU32FifoWriteIndex &= TRICE_U32_FIFO_MASK; +} + +//! triceU8Push puts one byte into trice fifo. +//! This is a trice time critical part. +//! \param v trice id with 2 byte data +TRICE_INLINE void triceU8Push(uint8_t v) { + triceU8Fifo[triceU8FifoWriteIndex++] = v; + triceU8FifoWriteIndex &= TRICE_U8_FIFO_MASK; +} + +//! triceU32Pop gets one trice from trice fifo. +//! \return trice id with 2 byte data in one uint32_t. +TRICE_INLINE uint32_t triceU32Pop(void) { + uint32_t v = triceU32Fifo[triceU32FifoReadIndex++]; + triceU32FifoReadIndex &= TRICE_U32_FIFO_MASK; + return v; +} + +//! triceU8Pop gets one trice from trice fifo. +//! \return trice id with 2 byte data in one uint32_t. +TRICE_INLINE uint8_t triceU8Pop(void) { + uint8_t v = triceU8Fifo[triceU8FifoReadIndex++]; + triceU8FifoReadIndex &= TRICE_U8_FIFO_MASK; + return v; +} + +int triceU32FifoDepth(void); +int triceU8FifoDepth(void); +int triceU32WriteU8ReadFifoDepth(void); + + #if TRICE_NOCODE_ENCODING == TRICE_ENCODING #include "intern/triceNoCode.h" #endif @@ -72,10 +131,14 @@ extern "C" { #include "intern/triceFlexEncoder.h" #endif + + #ifndef TRICE_SYNC // some encoder define a sync trice #define TRICE_SYNC do{ } while(0)// otherwise empty definition for compability #endif + +/* #ifndef trice0 #define trice_sync TRICE_SYNC #define trice0 TRICE0 @@ -98,6 +161,164 @@ extern "C" { #define trice64_1 TRICE64_1 #define trice64_2 TRICE64_2 #endif // #ifndef trice0 +*/ + + + + +#ifndef trice0i +void trice0i( uint32_t id, char* pFmt ); +#endif + +#ifndef trice0 +void trice0( uint32_t id, char* pFmt ); +#endif + +#ifndef trice8_1i +void trice8_1i( uint32_t id, char* pFmt, int8_t d0 ); +#endif + +#ifndef trice8_1 +void trice8_1( uint32_t id, char* pFmt, int8_t d0 ); +#endif + +#ifndef trice8_2i +void trice8_2i( uint32_t id, char* pFmt, int8_t d0, int8_t d1 ); +#endif + +#ifndef trice8_2 +void trice8_2( uint32_t id, char* pFmt, int8_t d0, int8_t d1 ); +#endif + +#ifndef trice8_3i +void trice8_3i( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2 ); +#endif + +#ifndef trice8_3 +void trice8_3( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2 ); +#endif + +#ifndef trice8_4i +void trice8_4i( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3 ); +#endif + +#ifndef trice8_4 +void trice8_4( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3 ); +#endif + +#ifndef trice8_5i +void trice8_5i( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3, int8_t d4 ); +#endif + +#ifndef trice8_5 +void trice8_5( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3, int8_t d4 ); +#endif + + +#ifndef trice8_6i +void trice8_6i( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3, int8_t d4, int8_t d5 ); +#endif + +#ifndef trice8_6 +void trice8_6( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3, int8_t d4, int8_t d5 ); +#endif + +#ifndef trice8_7i +void trice8_7i( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3, int8_t d4, int8_t d5, int8_t d6 ); +#endif + +#ifndef trice8_7 +void trice8_7( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3, int8_t d4, int8_t d5, int8_t d6 ); +#endif + +#ifndef trice8_8i +void trice8_8i( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3, int8_t d4, int8_t d5, int8_t d6, int8_t d7 ); +#endif + +#ifndef trice8_8 +void trice8_8( uint32_t id, char* pFmt, int8_t d0, int8_t d1, int8_t d2, int8_t d3, int8_t d4, int8_t d5, int8_t d6, int8_t d7 ); +#endif + + +#ifndef trice16_1i +void trice16_1i( uint32_t id, char* pFmt, int16_t d0 ); +#endif + +#ifndef trice16_1 +void trice16_1( uint32_t id, char* pFmt, int16_t d0 ); +#endif + +#ifndef trice16_2i +void trice16_2i( uint32_t id, char* pFmt, int16_t d0, int16_t d1 ); +#endif + +#ifndef trice16_2 +void trice16_2( uint32_t id, char* pFmt, int16_t d0, int16_t d1 ); +#endif + +#ifndef trice16_3i +void trice16_3i( uint32_t id, char* pFmt, int16_t d0, int16_t d1, int16_t d2 ); +#endif + +#ifndef trice16_3 +void trice16_3( uint32_t id, char* pFmt, int16_t d0, int16_t d1, int16_t d2 ); +#endif + +#ifndef trice16_4i +void trice16_4i( uint32_t id, char* pFmt, int16_t d0, int16_t d1, int16_t d2, int16_t d3 ); +#endif + +#ifndef trice16_4 +void trice16_4( uint32_t id, char* pFmt, int16_t d0, int16_t d1, int16_t d2, int16_t d3 ); +#endif + +#ifndef trice32_1i +void trice32_1i( uint32_t id, char* pFmt, int32_t d0 ); +#endif + +#ifndef trice32_1 +void trice32_1( uint32_t id, char* pFmt, int32_t d0 ); +#endif + +#ifndef trice32_2i +void trice32_2i( uint32_t id, char* pFmt, int32_t d0, int32_t d1 ); +#endif + +#ifndef trice32_2 +void trice32_2( uint32_t id, char* pFmt, int32_t d0, int32_t d1 ); +#endif + +#ifndef trice32_3i +void trice32_3i( uint32_t id, char* pFmt, int32_t d0, int32_t d1, int32_t d2 ); +#endif + +#ifndef trice32_3 +void trice32_3( uint32_t id, char* pFmt, int32_t d0, int32_t d1, int32_t d2 ); +#endif + +#ifndef trice32_4i +void trice32_4i( uint32_t id, char* pFmt, int32_t d0, int32_t d1, int32_t d2, int32_t d3 ); +#endif + +#ifndef trice32_4 +void trice32_4( uint32_t id, char* pFmt, int32_t d0, int32_t d1, int32_t d2, int32_t d3 ); +#endif + +#ifndef trice64_1i +void trice64_1i( uint32_t id, char* pFmt, int64_t d0 ); +#endif + +#ifndef trice64_1 +void trice64_1( uint32_t id, char* pFmt, int64_t d0 ); +#endif + +#ifndef trice64_2i +void trice64_2i( uint32_t id, char* pFmt, int64_t d0, int64_t d1 ); +#endif + +#ifndef trice64_2 +void trice64_2( uint32_t id, char* pFmt, int64_t d0, int64_t d1 ); +#endif #ifdef __cplusplus } diff --git a/srcTrice.C/triceCheck.c b/srcTrice.C/triceCheck.c index b031fd8cf..78b277ae7 100644 --- a/srcTrice.C/triceCheck.c +++ b/srcTrice.C/triceCheck.c @@ -276,8 +276,8 @@ void triceCheckSetTime(int index) { TRICE64_1(Id(45250), "tst:TRICE64_1 %u\n", -1); TRICE64_2(Id(12051), "tst:TRICE64_2 %u %u\n", -1, -2); #endif // #if TRICE_ENCODING == TRICE_PACK2_ENCODING - case 21: #if TRICE_ENCODING == TRICE_FLEX_ENCODING + case 21: Trice0 ( id(21682), "msg: Trice0 short\n"); Trice16_1( id(10052), "msg: Trice16_1 %d\n", 65000); Trice8_2 ( id(12927), "msg: Trice8_2 %x, %x\n", 253, 57); @@ -291,8 +291,108 @@ void triceCheckSetTime(int index) { Trice16_1( id(11439), "msg: Trice16_1 %6u\n", SYSTICKVAL16); Trice16_1( id(10052), "msg: Trice16_1 %d\n", 65000); Trice16_1( id(11439), "msg: Trice16_1 %6u\n", SYSTICKVAL16); - #endif // #if TRICE_ENCODING == TRICE_FLEX_ENCODING break; + case 40: + Trice0i( id(15380), "msg: Trice0i -> short trice macro (no cycle counter) for only inside critical section\n" ); + //TRICE0i( Id(0), "msg: TRICE0i -> normal trice macro (with cycle counter) for only inside critical section\n" ); + //trice0i( Id(0), "msg: trice0i -> normal trice function (with cycle counter) for only inside critical section\n" ); + TRICE0 ( Id( 65336), "msg: TRICE0 -> normal trice macro (with cycle counter) for everywhere\n" ); + Trice0 ( id(23242), "msg: Trice0 -> short trice macro (no cycle counter) for everywhere\n" ); + trice0 ( Id( 50329), "msg: trice0 -> normal trice function (with cycle counter) for everywhere\n" ); + break; + case 41: + // Trice8_1i( id(26825), "msg: Trice8_1i -> short trice macro (no cycle counter) for only inside critical section %d\n", 111 ); + // trice8_1i( id( 4205), "msg: trice8_1i -> normal trice function (with cycle counter) for only inside critical section %d\n", 111 ); + // TRICE8_1i( id( 0), "msg: TRICE8_1i -> normal trice macro (with cycle counter) for only inside critical section %d\n", 111 ); + //Trice16_1i( id(32337), "msg: Trice16_1i -> short trice macro (no cycle counter) for only inside critical section %d\n", 111 ); + //TRICE16_1i( id( 4205), "msg: TRICE16_1i -> normal trice macro (with cycle counter) for only inside critical section %d\n", 111 ); + //trice16_1i( id( 4205), "msg: trice16_1i -> normal trice function (with cycle counter) for only inside critical section %d\n", 111 ); + //TRICE32_1i( id( 0), "msg: TRICE32_1i -> normal trice macro (with cycle counter) for only inside critical section %d\n", 111 ); + //trice32_1i( id( 0), "msg: trice32_1i -> normal trice function (with cycle counter) for only inside critical section %d\n", 111 ); + //TRICE64_1i( id( 4205), "msg: TRICE64_1i -> normal trice macro (with cycle counter) for only inside critical section %d\n", 111 ); + //trice64_1i( id( 0), "msg: trice64_1i -> normal trice function (with cycle counter) for only inside critical section %d\n", 111 ); + Trice8_1 ( id( 9484), "msg: Trice8_1 -> short trice macro (no cycle counter) for everywhere %u\n", 222 ); + TRICE8_1 ( Id( 42720), "msg: TRICE8_1 -> normal trice macro (with cycle counter) for everywhere %u\n", 222 ); + trice8_1 ( Id( 35941), "msg: trice8_1 -> normal trice function (with cycle counter) for everywhere %u\n", (int8_t)222 ); + Trice16_1 ( id( 2457), "msg: Trice16_1 -> short trice macro (no cycle counter) for everywhere %u\n", 222 ); + TRICE16_1 ( Id( 39892), "msg: TRICE16_1 -> normal trice macro (with cycle counter) for everywhere %u\n", 222 ); + trice16_1 ( Id( 38837), "msg: trice16_1 -> normal trice function (with cycle counter) for everywhere %u\n", 222 ); + TRICE32_1 ( Id( 44960), "msg: TRICE32_1 -> normal trice macro (with cycle counter) for everywhere %u\n", 222 ); + trice32_1 ( Id( 43451), "msg: trice32_1 -> normal trice function (with cycle counter) for everywhere %u\n", 222 ); + TRICE64_1 ( Id( 63361), "msg: TRICE64_1 -> normal trice macro (with cycle counter) for everywhere %u\n", 222 ); + trice64_1 ( Id( 64447), "msg: trice64_1 -> normal trice function (with cycle counter) for everywhere %u\n", 222 ); + break; + case 42: + //TRICE8_2i( id(21880), "msg: TRICE8_2i -> normal trice macro (with cycle counter) for only inside critical section %x %X\n", 0x1a, 0x2a ); + //trice8_2i( id(21880), "msg : trice8_2i -> normal trice function (with cycle counter) for only inside critical section %x %X\n", 0x1a, 0x2a ); + //TRICE16_2i( id(21880), "msg: TRICE16_2i -> normal trice macro (with cycle counter) for only inside critical section %x %X\n", 0x1a, 0x2a ); + //trice16_2i( id(21880), "msg: trice16_2i -> normal trice function (with cycle counter) for only inside critical section %x %X\n", 0x1234, 0x1234 ); + //TRICE32_2i( id(21880), "msg: TRICE32_2i -> normal trice macro (with cycle counter) for only inside critical section %x %X\n", 0x1234, 0x1234 ); + //trice32_2i( id(21880), "msg: trice32_2i -> normal trice function (with cycle counter) for only inside critical section %x %X\n", 0x11223344, 0x55667788 ); + //TRICE64_2i( id(21880), "msg: TRICE64_2i -> normal trice macro (with cycle counter) for only inside critical section %x %X\n", 0x1122334455667788, -0x1122334455667788 ); + //trice64_2i( id(21880), "msg: trice64_2i -> normal trice function (with cycle counter) for only inside critical section %x %X\n", 0x1122334455667788, -0x1122334455667788 ); + TRICE8_2( Id( 35213), "msg: TRICE8_2 -> normal trice macro (with cycle counter) for everywhere %x %X\n", 0x1a, 0x2a ); + trice8_2( Id( 45214), "msg: trice8_2 -> normal trice function (with cycle counter) for everywhere %x %X\n", 0x1a, 0x2a ); + TRICE16_2( Id( 50757), "msg: TRICE16_2 -> normal trice macro (with cycle counter) for everywhere %x %X\n", 0x1234, 0x1234 ); + trice16_2( Id( 45348), "msg: trice16_2 -> normal trice function (with cycle counter) for everywhere %x %X\n", 0x1234, 0x1234 ); + TRICE32_2( Id( 47530), "msg: TRICE32_2 -> normal trice macro (with cycle counter) for everywhere %x %X\n", 0x11223344, 0x55667788 ); + trice32_2( Id( 64622), "msg: trice32_2 -> normal trice function (with cycle counter) for everywhere %x %X\n", 0x11223344, 0x55667788 ); + TRICE64_2( Id( 38736), "msg: TRICE64_2 -> normal trice macro (with cycle counter) for everywhere %x %X\n", 0x1122334455667788, -0x1122334455667788 ); + trice64_2( Id( 35036), "msg: trice64_2 -> normal trice function (with cycle counter) for everywhere %x %X\n", 0x1122334455667788, -0x1122334455667788 ); + break; + case 43: + // TRICE8_3i( id(21880), "msg: TRICE8_3i -> normal trice macro (with cycle counter) for only inside critical section %x %X %u\n", 0x1a, 0x1a, 0x2a ); + // trice8_3i( id(21880), "msg: trice8_3i -> normal trice function (with cycle counter) for only inside critical section %x %X %u\n", 0x1a, 0x1a, 0x2a ); + //TRICE16_3i( id(21880), "msg: TRICE16_3i -> normal trice macro (with cycle counter) for only inside critical section %x %X %u\n", 0x1a, 0x1a, 0x2a ); + //trice16_3i( id(21880), "msg: trice16_3i -> normal trice function (with cycle counter) for only inside critical section %x %X %u\n", 0x1234, 0x1234, 0x1234 ); + //TRICE32_3i( id(21880), "msg: TRICE32_3i -> normal trice macro (with cycle counter) for only inside critical section %x %X %u\n", 0x1234, 0x1234, 0x1234 ); + //trice32_3i( id(21880), "msg: trice32_3i -> normal trice function (with cycle counter) for only inside critical section %x %X %u\n", 0x11223344, 0x11223344, 0x55667788 ); + TRICE8_3( Id( 51048), "msg: TRICE8_3 -> normal trice macro (with cycle counter) for everywhere %x %X %u\n", 0x1a, 0x1a, 0x2a ); + trice8_3( Id( 62466), "msg: trice8_3 -> normal trice function (with cycle counter) for everywhere %x %X %u\n", 0x1a, 0x1a, 0x2a ); + TRICE16_3( Id( 48411), "msg: TRICE16_3 -> normal trice macro (with cycle counter) for everywhere %x %X %u\n", 0x1234, 0x1234, 0x1234 ); + trice16_3( Id( 34814), "msg: trice16_3 -> normal trice function (with cycle counter) for everywhere %x %X %u\n", 0x1234, 0x1234, 0x1234 ); + TRICE32_3( Id( 37205), "msg: TRICE32_3 -> normal trice macro (with cycle counter) for everywhere %x %X %u\n", 0x11223344, 0x11223344, 0x55667788 ); + trice32_3( Id( 58845), "msg: trice32_3 -> normal trice function (with cycle counter) for everywhere %x %X %u\n", 0x11223344, 0x11223344, 0x55667788 ); + break; + case 44: + // TRICE8_4i( id(21880), "msg: TRICE8_4i -> normal trice macro (with cycle counter) for only inside critical section %x %X %u %d\n", 0x1a, 0x1a, 0x1a, 0x2a ); + // trice8_4i( id(21880), "msg: trice8_4i -> normal trice function (with cycle counter) for only inside critical section %x %X %u %d\n", 0x1a, 0x1a, 0x1a, 0x2a ); + //TRICE16_4i( id(21880), "msg: TRICE16_4i -> normal trice macro (with cycle counter) for only inside critical section %x %X %u %d\n", 0x1a, 0x1a, 0x1a, 0x2a ); + //trice16_4i( id(21880), "msg: trice16_4i -> normal trice function (with cycle counter) for only inside critical section %x %X %u %d\n", 0x1234, 0x1234, 0x1234, 0x1234 ); + //TRICE32_4i( id(21880), "msg: TRICE32_4i -> normal trice macro (with cycle counter) for only inside critical section %x %X %u %d\n", 0x1234, 0x1234, 0x1234, 0x1234 ); + //trice32_4i( id(21880), "msg: trice32_4i -> normal trice function (with cycle counter) for only inside critical section %x %X %u %d\n", 0x11223344, 0x11223344, 0x11223344, 0x55667788 ); + TRICE8_4( Id( 39086), "msg: TRICE8_4 -> normal trice macro (with cycle counter) for everywhere %x %X %u %d\n", 0x1a, 0x1a, 0x1a, 0x2a ); + trice8_4( Id( 54569), "msg: trice8_4 -> normal trice function (with cycle counter) for everywhere %x %X %u %d\n", 0x1a, 0x1a, 0x1a, 0x2a ); + TRICE16_4( Id( 42270), "msg: TRICE16_4 -> normal trice macro (with cycle counter) for everywhere %x %X %u %d\n", 0x1234, 0x1234, 0x1234, 0x1234 ); + trice16_4( Id( 55892), "msg: trice16_4 -> normal trice function (with cycle counter) for everywhere %x %X %u %d\n", 0x1234, 0x1234, 0x1234, 0x1234 ); + TRICE32_4( Id( 48416), "msg: TRICE32_4 -> normal trice macro (with cycle counter) for everywhere %x %X %u %d\n", 0x11223344, 0x11223344, 0x11223344, 0x55667788 ); + trice32_4( Id( 64296), "msg: trice32_4 -> normal trice function (with cycle counter) for everywhere %x %X %u %d\n", 0x11223344, 0x11223344, 0x11223344, 0x55667788 ); + break; + case 45: + // TRICE8_5i( id(21880), "msg: TRICE8_5i -> normal trice macro (with cycle counter) for only inside critical section %x %X %u %u %d\n", 0x1a, 0x2a, 0x3a, 0x4a, 0x5a ); + // trice8_5i( id(21880), "msg: trice8_5i -> normal trice function (with cycle counter) for only inside critical section %x %X %u %u %d\n", 0x1a, 0x2a, 0x3a, 0x4a, 0x5a ); + TRICE8_5( Id( 56218), "msg: TRICE8_5 -> normal trice macro (with cycle counter) for everywhere %x %X %u %u %d\n", 0x1a, 0x2a, 0x3a, 0x4a, 0x5a ); + trice8_5( Id( 34176), "msg: trice8_5 -> normal trice function (with cycle counter) for everywhere %x %X %u %u %d\n", 0x1a, 0x2a, 0x3a, 0x4a, 0x5a ); + break; + case 46: + // TRICE8_6i( id(21880), "msg: TRICE6_5i -> normal trice macro (with cycle counter) for only inside critical section %x %X %u %d %x %X\n", 0x1a, 0x2a, 0x3a, 0x4a, 0x5a, 0x6a ); + // trice8_6i( id(21880), "msg: trice6_5i -> normal trice function (with cycle counter) for only inside critical section %x %X %u %d %x %X\n", 0x1a, 0x2a, 0x3a, 0x4a, 0x5a, 0x6a ); + TRICE8_6( Id( 42602), "msg: TRICE6_5 -> normal trice macro (with cycle counter) for everywhere %x %X %u %d %x %X\n", 0x1a, 0x2a, 0x3a, 0x4a, 0x5a, 0x6a ); + trice8_6( Id( 55451), "msg: trice6_5 -> normal trice function (with cycle counter) for everywhere %x %X %u %d %x %X\n", 0x1a, 0x2a, 0x3a, 0x4a, 0x5a, 0x6a ); + break; + case 47: + // TRICE8_7i( id(21880), "msg: TRICE8_7i -> normal trice macro (with cycle counter) for only inside critical section %x %X %u %d %x %X %u\n", 0x1a, 0x2a, 0x3a, 0x4a, 0x5a, 0x6a, 0x7a ); + // trice8_7i( id(21880), "msg: trice8_7i -> normal trice function (with cycle counter) for only inside critical section %x %X %u %d %x %X %u\n", 0x1a, 0x2a, 0x3a, 0x4a, 0x5a, 0x6a, 0x7a ); + TRICE8_7( Id( 45848), "msg: TRICE8_7 -> normal trice macro (with cycle counter) for everywhere %x %X %u %d %x %X %u\n", 0x1a, 0x2a, 0x3a, 0x4a, 0x5a, 0x6a, 0x7a ); + trice8_7( Id( 56442), "msg: trice8_7 -> normal trice function (with cycle counter) for everywhere %x %X %u %d %x %X %u\n", 0x1a, 0x2a, 0x3a, 0x4a, 0x5a, 0x6a, 0x7a ); + break; + case 48: + // TRICE8_8i( id(21880), "msg: TRICE8_8i -> normal trice macro (with cycle counter) for only inside critical section %x %X %u %d %x %X %u %d\n", 0x1a, 0x2a, 0x3a, 0x4a, 0x5a, 0x6a, 0x7a, 0x8a ); + // trice8_8i( id(21880), "msg: trice8_8i -> normal trice function (with cycle counter) for only inside critical section %x %X %u %d %x %X %u %d\n", 0x1a, 0x2a, 0x3a, 0x4a, 0x5a, 0x6a, 0x7a, 0x8a ); + TRICE8_8( Id( 64951), "msg: TRICE8_8 -> normal trice macro (with cycle counter) for everywhere %x %X %u %d %x %X %u %d\n", 0x1a, 0x2a, 0x3a, 0x4a, 0x5a, 0x6a, 0x7a, 0x8a ); + trice8_8( Id( 48424), "msg: trice8_8 -> normal trice function (with cycle counter) for everywhere %x %X %u %d %x %X %u %d\n", 0x1a, 0x2a, 0x3a, 0x4a, 0x5a, 0x6a, 0x7a, 0x8a ); + break; + #endif // #if TRICE_ENCODING == TRICE_FLEX_ENCODING default: break; } @@ -358,13 +458,13 @@ void triceCheckSetSpace(int index) { break; case 5: trice8_1(Id(65112), "tst:trice8_1 %d\n", -111); - trice8_2(Id(65442), "tst:trice8_2 %d %d\n", -111, -222); - trice8_3(Id(65115), "tst:trice8_3 %d %d %d\n", -111, -222, -3); - trice8_4(Id(65159), "tst:trice8_4 %d %d %d %d\n", -111, -222, -3, -4); - trice8_5(Id(65503), "tst:trice8_5 %d %d %d %d %d\n", -111, -222, -3, -4, -5); - trice8_6(Id(65495), "tst:trice8_6 %d %d %d %d %d %d\n", -111, -222, -3, -4, -5, -6); - trice8_7(Id(65031), "tst:trice8_7 %d %d %d %d %d %d %d\n", -111, -222, -3, -4, -5, -6, -7); - trice8_8(Id(65523), "tst:trice8_8 %d %d %d %d %d %d %d %d\n", -111, -222, -3, -4, -5, -6, -7, -8); + trice8_2(Id(65442), "tst:trice8_2 %d %d\n", -111, -122); + trice8_3(Id(65115), "tst:trice8_3 %d %d %d\n", -111, -122, -3); + trice8_4(Id(65159), "tst:trice8_4 %d %d %d %d\n", -111, -122, -3, -4); + trice8_5(Id(65503), "tst:trice8_5 %d %d %d %d %d\n", -111, -122, -3, -4, -5); + trice8_6(Id(65495), "tst:trice8_6 %d %d %d %d %d %d\n", -111, -122, -3, -4, -5, -6); + trice8_7(Id(65031), "tst:trice8_7 %d %d %d %d %d %d %d\n", -111, -122, -3, -4, -5, -6, -7); + trice8_8(Id(65523), "tst:trice8_8 %d %d %d %d %d %d %d %d\n", -111, -122, -3, -4, -5, -6, -7, -8); break; case 7: trice16_1(Id(65424), "tst:trice16_1 %d\n", -111); // 1 diff --git a/srcTrice.C/triceFifo.c b/srcTrice.C/triceFifo.c deleted file mode 100644 index a1f278633..000000000 --- a/srcTrice.C/triceFifo.c +++ /dev/null @@ -1,58 +0,0 @@ -/*! \file triceFifo.c -\author Thomas.Hoehenleitner [at] seerose.net -*******************************************************************************/ -#include -#include // strlen -#include "triceConfig.h" -#include "intern/triceConfigCompiler.h" -#include "intern/triceFifo.h" - -#define TRICE_FILENAME TRICE0( Id(65002), "rd_:triceFifo.c" ); - -#if TRICE_ENCODING == TRICE_PACK2_ENCODING || TRICE_ENCODING == TRICE_FLEX_ENCODING -uint8_t triceCycle = 0; -#endif - -//! trice fifo instance, here are the trices buffered. -ALIGN4 uint32_t -triceU32Fifo[ TRICE_FIFO_BYTE_SIZE>>2 ] -ALIGN4_END; - -uint8_t* const triceU8Fifo = (uint8_t*)triceU32Fifo; - -int triceU32FifoWriteIndex = 0; //!< trice fifo write index, used inside macros, so must be visible -int triceU32FifoReadIndex = 0; //!< trice fifo read index for 32 bit values - -int triceU8FifoWriteIndex = 0; //!< trice fifo write index, used inside macros, so must be visible -int triceU8FifoReadIndex = 0; //!< trice fifo read index - -int triceFifoMaxDepth = 0; //!< diagnostics - -//! triceU32FifoDepth determines bytes count inside trice fifo. -//! Assumption: Only int32 access for push and pop. -//! \return count of buffered bytes -int triceU32FifoDepth(void) { - int triceCount = (triceU32FifoWriteIndex - triceU32FifoReadIndex) & TRICE_U32_FIFO_MASK; - int depth = triceCount*sizeof(uint32_t); - triceFifoMaxDepth = triceFifoMaxDepth < depth ? depth : triceFifoMaxDepth; // diagnostics - return depth; -} - -//! triceU8UsageFifoDepth determines bytes count inside trice fifo. -//! Assumption: Only int8 access for push and pop. -//! \return count of buffered bytes -int triceU8FifoDepth(void) { - int depth = (triceU8FifoWriteIndex - triceU8FifoReadIndex) & TRICE_U8_FIFO_MASK; - triceFifoMaxDepth = triceFifoMaxDepth < depth ? depth : triceFifoMaxDepth; // diagnostics - return depth; -} - -//! triceU32WriteU8ReadFifoDepth determines bytes count inside trice fifo. -//! Assumption: Only int32 for push and only int8 for pop. -//! \return count of buffered bytes -int triceU32WriteU8ReadFifoDepth(void) { - int depth = ((triceU32FifoWriteIndex<<2) - triceU8FifoReadIndex) & TRICE_U8_FIFO_MASK; - triceFifoMaxDepth = triceFifoMaxDepth < depth ? depth : triceFifoMaxDepth; // diagnostics - return depth; -} - diff --git a/test/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64/Core/Inc/triceConfig.h b/test/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64/Core/Inc/triceConfig.h index 88ecae2cd..7e0025b7d 100644 --- a/test/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64/Core/Inc/triceConfig.h +++ b/test/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64/Core/Inc/triceConfig.h @@ -64,6 +64,53 @@ TRICE0( Id(39406), "s: \ns: void triceCheckSetTime( int index ); //!< tests void triceCheckSetSpace( int index ); //!< tests + + +#define trice0i( i, pFmt ) +#define TRICE0i( i, pFmt ) +#define trice8_1i( i, pFmt, d0 ) //! comment out to generate code for it +#define trice8_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +#define trice8_3i( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +#define trice8_4i( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +#define trice8_5i( i, pFmt, d0, d1, d2, d3, d4 ) //! comment out to generate code for it +#define trice8_6i( i, pFmt, d0, d1, d2, d3, d4, d5 ) //! comment out to generate code for it +#define trice8_7i( i, pFmt, d0, d1, d2, d3, d4, d5, d6 ) //! comment out to generate code for it +#define trice8_8i( i, pFmt, d0, d1, d2, d3, d4, d5, d6, d7 ) //! comment out to generate code for it +#define trice16_1i( i, pFmt, d0 ) //! comment out to generate code for it +#define trice16_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +#define trice16_3i( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +#define trice16_4i( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +#define trice32_1i( i, pFmt, d0 ) //! comment out to generate code for it +#define trice32_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +#define trice32_3i( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +#define trice32_4i( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +#define trice64_1i( i, pFmt, d0 ) //! comment out to generate code for it +#define trice64_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice0 ( i, pFmt ) +// #define TRICE0 ( i, pFmt ) +// #define trice8_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice8_2( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice8_3( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice8_4( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice8_5( i, pFmt, d0, d1, d2, d3, d4 ) //! comment out to generate code for it +// #define trice8_6( i, pFmt, d0, d1, d2, d3, d4, d5 ) //! comment out to generate code for it +// #define trice8_7( i, pFmt, d0, d1, d2, d3, d4, d5, d6 ) //! comment out to generate code for it +// #define trice8_8( i, pFmt, d0, d1, d2, d3, d4, d5, d6, d7 ) //! comment out to generate code for it +// #define trice16_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice16_2( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice16_3( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice16_4( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice32_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice32_2( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice32_3( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice32_4( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice64_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice64_2( i, pFmt, d0, d1 ) //! comment out to generate code for it + + + + + #ifdef __cplusplus } #endif diff --git a/test/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64.uvoptx b/test/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64.uvoptx index 8087d4057..51738b25b 100644 --- a/test/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64.uvoptx +++ b/test/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64.uvoptx @@ -253,7 +253,7 @@ 2 2 1 - 1 + 0 0 0 ../Core/Src/main.c @@ -389,7 +389,7 @@ trice - 0 + 1 0 0 0 @@ -436,20 +436,8 @@ 0 0 0 - ..\..\..\srcTrice.C\triceFifo.c - triceFifo.c - 0 - 0 - - - 5 - 16 - 1 - 0 - 0 - 0 - ..\..\..\srcTrice.C\triceFifoToBytesBuffer.c - triceFifoToBytesBuffer.c + ..\..\..\srcTrice.C\trice.c + trice.c 0 0 diff --git a/test/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64.uvprojx b/test/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64.uvprojx index a2f6f6cdf..8abd58026 100644 --- a/test/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64.uvprojx +++ b/test/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64.uvprojx @@ -474,14 +474,9 @@ ..\..\..\third_party\segger.com\SEGGER_RTT\RTT\SEGGER_RTT.c - triceFifo.c + trice.c 1 - ..\..\..\srcTrice.C\triceFifo.c - - - triceFifoToBytesBuffer.c - 1 - ..\..\..\srcTrice.C\triceFifoToBytesBuffer.c + ..\..\..\srcTrice.C\trice.c diff --git a/test/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64/Core/Inc/triceConfig.h b/test/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64/Core/Inc/triceConfig.h index 7131b48a8..b81fbbf6d 100644 --- a/test/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64/Core/Inc/triceConfig.h +++ b/test/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64/Core/Inc/triceConfig.h @@ -61,6 +61,53 @@ TRICE0( Id(30688), "\ns: \ns void triceCheckSetTime( int index ); //!< tests void triceCheckSetSpace( int index ); //!< tests + + +#define trice0i( i, pFmt ) +#define TRICE0i( i, pFmt ) +#define trice8_1i( i, pFmt, d0 ) //! comment out to generate code for it +#define trice8_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +#define trice8_3i( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +#define trice8_4i( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +#define trice8_5i( i, pFmt, d0, d1, d2, d3, d4 ) //! comment out to generate code for it +#define trice8_6i( i, pFmt, d0, d1, d2, d3, d4, d5 ) //! comment out to generate code for it +#define trice8_7i( i, pFmt, d0, d1, d2, d3, d4, d5, d6 ) //! comment out to generate code for it +#define trice8_8i( i, pFmt, d0, d1, d2, d3, d4, d5, d6, d7 ) //! comment out to generate code for it +#define trice16_1i( i, pFmt, d0 ) //! comment out to generate code for it +#define trice16_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +#define trice16_3i( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +#define trice16_4i( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +#define trice32_1i( i, pFmt, d0 ) //! comment out to generate code for it +#define trice32_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +#define trice32_3i( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +#define trice32_4i( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +#define trice64_1i( i, pFmt, d0 ) //! comment out to generate code for it +#define trice64_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice0 ( i, pFmt ) +// #define TRICE0 ( i, pFmt ) +// #define trice8_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice8_2( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice8_3( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice8_4( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice8_5( i, pFmt, d0, d1, d2, d3, d4 ) //! comment out to generate code for it +// #define trice8_6( i, pFmt, d0, d1, d2, d3, d4, d5 ) //! comment out to generate code for it +// #define trice8_7( i, pFmt, d0, d1, d2, d3, d4, d5, d6 ) //! comment out to generate code for it +// #define trice8_8( i, pFmt, d0, d1, d2, d3, d4, d5, d6, d7 ) //! comment out to generate code for it +// #define trice16_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice16_2( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice16_3( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice16_4( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice32_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice32_2( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice32_3( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice32_4( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice64_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice64_2( i, pFmt, d0, d1 ) //! comment out to generate code for it + + + + + #ifdef __cplusplus } #endif diff --git a/test/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64.uvoptx b/test/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64.uvoptx index f0dd8cc9e..eafe063df 100644 --- a/test/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64.uvoptx +++ b/test/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64.uvoptx @@ -236,7 +236,7 @@ 2 2 1 - 1 + 0 0 0 ../Core/Src/main.c @@ -380,7 +380,7 @@ 5 12 1 - 0 + 1 0 0 ..\..\..\srcTrice.C\triceCheck.c @@ -428,11 +428,11 @@ 5 16 1 - 1 + 0 0 0 - ..\..\..\srcTrice.C\triceFifo.c - triceFifo.c + ..\..\..\srcTrice.C\trice.c + trice.c 0 0 diff --git a/test/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64.uvprojx b/test/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64.uvprojx index 351661356..48654e0c5 100644 --- a/test/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64.uvprojx +++ b/test/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64.uvprojx @@ -479,9 +479,9 @@ ..\..\..\third_party\segger.com\SEGGER_RTT\RTT\SEGGER_RTT.c - triceFifo.c + trice.c 1 - ..\..\..\srcTrice.C\triceFifo.c + ..\..\..\srcTrice.C\trice.c diff --git a/test/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64/Core/Inc/triceConfig.h b/test/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64/Core/Inc/triceConfig.h index 51313e0fe..e5ae869c6 100644 --- a/test/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64/Core/Inc/triceConfig.h +++ b/test/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64/Core/Inc/triceConfig.h @@ -63,6 +63,48 @@ TRICE0( Id( 41511), "s: \ns: void triceCheckSetTime( int index ); //!< tests void triceCheckSetSpace( int index ); //!< tests +// These macros can help to reduce code size if the project contains many TRICE macros. +// If a macro is commented out here, inside trice.c an appropriate function is enabled containing the TRICE macro. +// Using trice instead of TRICE results in only one function call instead of inlining the TRICE macro. +// #define trice0i( i, pFmt ) +// #define TRICE0i( i, pFmt ) +// #define trice8_1i( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice8_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice8_3i( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice8_4i( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice8_5i( i, pFmt, d0, d1, d2, d3, d4 ) //! comment out to generate code for it +// #define trice8_6i( i, pFmt, d0, d1, d2, d3, d4, d5 ) //! comment out to generate code for it +// #define trice8_7i( i, pFmt, d0, d1, d2, d3, d4, d5, d6 ) //! comment out to generate code for it +// #define trice8_8i( i, pFmt, d0, d1, d2, d3, d4, d5, d6, d7 ) //! comment out to generate code for it +// #define trice8_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice8_2( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice8_3( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice8_4( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice8_5( i, pFmt, d0, d1, d2, d3, d4 ) //! comment out to generate code for it +// #define trice8_6( i, pFmt, d0, d1, d2, d3, d4, d5 ) //! comment out to generate code for it +// #define trice8_7( i, pFmt, d0, d1, d2, d3, d4, d5, d6 ) //! comment out to generate code for it +// #define trice8_8( i, pFmt, d0, d1, d2, d3, d4, d5, d6, d7 ) //! comment out to generate code for it +// #define trice16_1i( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice16_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice16_3i( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice16_4i( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice32_1i( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice32_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice32_3i( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice32_4i( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice16_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice16_2( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice16_3( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice16_4( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice32_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice32_2( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice32_3( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice32_4( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice64_1i( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice64_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice64_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice64_2( i, pFmt, d0, d1 ) //! comment out to generate code for it + #ifdef __cplusplus } #endif diff --git a/test/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64/Core/Src/main.c b/test/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64/Core/Src/main.c index 7922c6d21..df82653c5 100644 --- a/test/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64/Core/Src/main.c +++ b/test/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64/Core/Src/main.c @@ -95,9 +95,8 @@ int main(void) MX_USART2_UART_Init(); /* USER CODE BEGIN 2 */ LL_USART_EnableIT_RXNE(TRICE_UART); // enable UART2 interrupt - TRICE64_2(Id(65391), "tst:TRICE64_2 %d %d\n", -111, -222); // 4 - TRICE64_2(Id(65391), "tst:TRICE64_2 %d %d\n", -111, -222); // 4 TRICE_HEADLINE; + trice64_2(Id(65262), "tst:trice64_2 %x %x\n", 0x13579bdffdb97531, 0xeca8642002468ace); /* USER CODE END 2 */ /* Infinite loop */ @@ -108,7 +107,7 @@ int main(void) { // send some trices every few ms if( milliSecond >= lastTricesTime + 100 ){ static int index = 0; - int select = index % 30; + int select = index % 50; #if TRICE_PACK2_ENCODING == TRICE_ENCODING TRICE16_2( Id(1047663),"MSG: triceFifoMaxDepth = %d, select = %d\n", triceFifoMaxDepth, select ); // bigID check #else diff --git a/test/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64.uvoptx b/test/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64.uvoptx index ff8266689..3b170e4d8 100644 --- a/test/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64.uvoptx +++ b/test/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64.uvoptx @@ -157,9 +157,9 @@ 0 0 - 118 + 117 1 -
134220832
+
134220654
0 0 0 @@ -168,23 +168,39 @@ 1 <6>../Core/Src/main.c - \\\../Core/Src/main.c\118 + \\MDK_ARM_LL_UART_RTT0_FLEX_STM32F030R8_NUCLEO_64\../Core/Src/main.c\117
1 0 - 117 + 116 1 -
0
+
134220648
0 0 0 0 0 - 0 + 1 <6>../Core/Src/main.c - + \\MDK_ARM_LL_UART_RTT0_FLEX_STM32F030R8_NUCLEO_64\../Core/Src/main.c\116 +
+ + 2 + 0 + 118 + 1 +
134220660
+ 0 + 0 + 0 + 0 + 0 + 1 + <6>../Core/Src/main.c + + \\\../Core/Src/main.c\118
@@ -241,7 +257,7 @@ Application/MDK-ARM - 1 + 0 0 0 0 @@ -261,7 +277,7 @@ Application/User/Core - 1 + 0 0 0 0 @@ -428,8 +444,8 @@ 0 0 0 - ..\..\..\srcTrice.C\triceFifo.c - triceFifo.c + ..\..\..\srcTrice.C\triceSeggerRTT.c + triceSeggerRTT.c 0 0 @@ -440,8 +456,8 @@ 0 0 0 - ..\..\..\srcTrice.C\triceSeggerRTT.c - triceSeggerRTT.c + ..\..\..\third_party\segger.com\SEGGER_RTT\RTT\SEGGER_RTT.c + SEGGER_RTT.c 0 0 @@ -452,8 +468,8 @@ 0 0 0 - ..\..\..\third_party\segger.com\SEGGER_RTT\RTT\SEGGER_RTT.c - SEGGER_RTT.c + ..\..\..\srcTrice.C\trice.c + trice.c 0 0 diff --git a/test/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64.uvprojx b/test/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64.uvprojx index c4b65d880..792f9714c 100644 --- a/test/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64.uvprojx +++ b/test/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64.uvprojx @@ -463,11 +463,6 @@ 1 ..\..\..\srcTrice.C\triceCheck.c - - triceFifo.c - 1 - ..\..\..\srcTrice.C\triceFifo.c - triceSeggerRTT.c 1 @@ -478,6 +473,11 @@ 1 ..\..\..\third_party\segger.com\SEGGER_RTT\RTT\SEGGER_RTT.c + + trice.c + 1 + ..\..\..\srcTrice.C\trice.c + diff --git a/test/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64/Core/Inc/triceConfig.h b/test/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64/Core/Inc/triceConfig.h index d4b02e81d..b6c220da3 100644 --- a/test/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64/Core/Inc/triceConfig.h +++ b/test/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64/Core/Inc/triceConfig.h @@ -63,6 +63,51 @@ TRICE0( Id(27253), "s: \ns: void triceCheckSetTime( int index ); //!< tests void triceCheckSetSpace( int index ); //!< tests +#define trice0i( i, pFmt ) +#define TRICE0i( i, pFmt ) +#define trice8_1i( i, pFmt, d0 ) //! comment out to generate code for it +#define trice8_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +#define trice8_3i( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +#define trice8_4i( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +#define trice8_5i( i, pFmt, d0, d1, d2, d3, d4 ) //! comment out to generate code for it +#define trice8_6i( i, pFmt, d0, d1, d2, d3, d4, d5 ) //! comment out to generate code for it +#define trice8_7i( i, pFmt, d0, d1, d2, d3, d4, d5, d6 ) //! comment out to generate code for it +#define trice8_8i( i, pFmt, d0, d1, d2, d3, d4, d5, d6, d7 ) //! comment out to generate code for it +#define trice16_1i( i, pFmt, d0 ) //! comment out to generate code for it +#define trice16_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +#define trice16_3i( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +#define trice16_4i( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +#define trice32_1i( i, pFmt, d0 ) //! comment out to generate code for it +#define trice32_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +#define trice32_3i( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +#define trice32_4i( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +#define trice64_1i( i, pFmt, d0 ) //! comment out to generate code for it +#define trice64_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice0 ( i, pFmt ) +// #define TRICE0 ( i, pFmt ) +// #define trice8_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice8_2( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice8_3( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice8_4( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice8_5( i, pFmt, d0, d1, d2, d3, d4 ) //! comment out to generate code for it +// #define trice8_6( i, pFmt, d0, d1, d2, d3, d4, d5 ) //! comment out to generate code for it +// #define trice8_7( i, pFmt, d0, d1, d2, d3, d4, d5, d6 ) //! comment out to generate code for it +// #define trice8_8( i, pFmt, d0, d1, d2, d3, d4, d5, d6, d7 ) //! comment out to generate code for it +// #define trice16_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice16_2( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice16_3( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice16_4( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice32_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice32_2( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice32_3( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice32_4( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice64_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice64_2( i, pFmt, d0, d1 ) //! comment out to generate code for it + + + + + #ifdef __cplusplus } #endif diff --git a/test/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64.uvoptx b/test/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64.uvoptx index e87740443..1c7163ad2 100644 --- a/test/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64.uvoptx +++ b/test/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64.uvoptx @@ -269,7 +269,7 @@ 2 2 1 - 1 + 0 0 0 ../Core/Src/main.c @@ -425,11 +425,11 @@ 5 13 1 - 1 + 0 0 0 - ..\..\..\srcTrice.C\triceFifo.c - triceFifo.c + ..\..\..\srcTrice.C\triceSeggerRTT.c + triceSeggerRTT.c 0 0 @@ -440,8 +440,8 @@ 0 0 0 - ..\..\..\srcTrice.C\triceSeggerRTT.c - triceSeggerRTT.c + ..\..\..\third_party\segger.com\SEGGER_RTT\RTT\SEGGER_RTT.c + SEGGER_RTT.c 0 0 @@ -449,11 +449,11 @@ 5 15 1 - 0 + 1 0 0 - ..\..\..\third_party\segger.com\SEGGER_RTT\RTT\SEGGER_RTT.c - SEGGER_RTT.c + ..\..\..\srcTrice.C\trice.c + trice.c 0 0 diff --git a/test/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64.uvprojx b/test/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64.uvprojx index bbf364350..11b7564a8 100644 --- a/test/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64.uvprojx +++ b/test/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64.uvprojx @@ -463,11 +463,6 @@ 1 ..\..\..\srcTrice.C\triceCheck.c - - triceFifo.c - 1 - ..\..\..\srcTrice.C\triceFifo.c - triceSeggerRTT.c 1 @@ -478,6 +473,11 @@ 1 ..\..\..\third_party\segger.com\SEGGER_RTT\RTT\SEGGER_RTT.c + + trice.c + 1 + ..\..\..\srcTrice.C\trice.c + diff --git a/test/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64/Core/Inc/triceConfig.h b/test/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64/Core/Inc/triceConfig.h index 140598e7c..d28dc36ca 100644 --- a/test/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64/Core/Inc/triceConfig.h +++ b/test/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64/Core/Inc/triceConfig.h @@ -60,6 +60,53 @@ TRICE0( Id(17896), "s: void triceCheckSetTime( int index ); //!< tests void triceCheckSetSpace( int index ); //!< tests + + +#define trice0i( i, pFmt ) +#define TRICE0i( i, pFmt ) +#define trice8_1i( i, pFmt, d0 ) //! comment out to generate code for it +#define trice8_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +#define trice8_3i( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +#define trice8_4i( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +#define trice8_5i( i, pFmt, d0, d1, d2, d3, d4 ) //! comment out to generate code for it +#define trice8_6i( i, pFmt, d0, d1, d2, d3, d4, d5 ) //! comment out to generate code for it +#define trice8_7i( i, pFmt, d0, d1, d2, d3, d4, d5, d6 ) //! comment out to generate code for it +#define trice8_8i( i, pFmt, d0, d1, d2, d3, d4, d5, d6, d7 ) //! comment out to generate code for it +#define trice16_1i( i, pFmt, d0 ) //! comment out to generate code for it +#define trice16_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +#define trice16_3i( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +#define trice16_4i( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +#define trice32_1i( i, pFmt, d0 ) //! comment out to generate code for it +#define trice32_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +#define trice32_3i( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +#define trice32_4i( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +#define trice64_1i( i, pFmt, d0 ) //! comment out to generate code for it +#define trice64_2i( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice0 ( i, pFmt ) +// #define TRICE0 ( i, pFmt ) +// #define trice8_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice8_2( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice8_3( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice8_4( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice8_5( i, pFmt, d0, d1, d2, d3, d4 ) //! comment out to generate code for it +// #define trice8_6( i, pFmt, d0, d1, d2, d3, d4, d5 ) //! comment out to generate code for it +// #define trice8_7( i, pFmt, d0, d1, d2, d3, d4, d5, d6 ) //! comment out to generate code for it +// #define trice8_8( i, pFmt, d0, d1, d2, d3, d4, d5, d6, d7 ) //! comment out to generate code for it +// #define trice16_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice16_2( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice16_3( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice16_4( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice32_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice32_2( i, pFmt, d0, d1 ) //! comment out to generate code for it +// #define trice32_3( i, pFmt, d0, d1, d2 ) //! comment out to generate code for it +// #define trice32_4( i, pFmt, d0, d1, d2, d3 ) //! comment out to generate code for it +// #define trice64_1( i, pFmt, d0 ) //! comment out to generate code for it +// #define trice64_2( i, pFmt, d0, d1 ) //! comment out to generate code for it + + + + + #ifdef __cplusplus } #endif diff --git a/test/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64.uvoptx b/test/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64.uvoptx index 58829c4f9..bceb090fc 100644 --- a/test/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64.uvoptx +++ b/test/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64.uvoptx @@ -166,7 +166,7 @@ 0 0 1 - <2>..\..\..\srcTrice.C\triceFifoToBytesBuffer.c + C:\repos\trice\srcTrice.C\triceFifoToBytesBuffer.c \\MDK_ARM_LL_UART_RTT0_BARE_STM32F030R8_NUCLEO_64\../../../srcTrice.C/triceFifoToBytesBuffer.c\91 @@ -198,7 +198,7 @@ 0 0 0 - <2>..\..\..\srcTrice.C\triceFifoToBytesBuffer.c + C:\repos\trice\srcTrice.C\triceFifoToBytesBuffer.c @@ -453,7 +453,7 @@ 5 12 1 - 0 + 1 0 0 ..\..\..\srcTrice.C\triceCheck.c @@ -480,8 +480,8 @@ 0 0 0 - ..\..\..\srcTrice.C\triceFifo.c - triceFifo.c + ..\..\..\srcTrice.C\triceSeggerRTT.c + triceSeggerRTT.c 0 0 @@ -492,8 +492,8 @@ 0 0 0 - ..\..\..\srcTrice.C\triceFifoToBytesBuffer.c - triceFifoToBytesBuffer.c + ..\..\..\srcTrice.C\triceXteaCrypto.c + triceXteaCrypto.c 0 0 @@ -504,20 +504,8 @@ 0 0 0 - ..\..\..\srcTrice.C\triceSeggerRTT.c - triceSeggerRTT.c - 0 - 0 - - - 5 - 17 - 1 - 0 - 0 - 0 - ..\..\..\srcTrice.C\triceXteaCrypto.c - triceXteaCrypto.c + ..\..\..\srcTrice.C\trice.c + trice.c 0 0 diff --git a/test/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64.uvprojx b/test/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64.uvprojx index a4df1a4d5..2df5e6cc3 100644 --- a/test/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64.uvprojx +++ b/test/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64.uvprojx @@ -468,16 +468,6 @@ 1 ..\..\..\third_party\segger.com\SEGGER_RTT\RTT\SEGGER_RTT.c - - triceFifo.c - 1 - ..\..\..\srcTrice.C\triceFifo.c - - - triceFifoToBytesBuffer.c - 1 - ..\..\..\srcTrice.C\triceFifoToBytesBuffer.c - triceSeggerRTT.c 1 @@ -488,6 +478,11 @@ 1 ..\..\..\srcTrice.C\triceXteaCrypto.c + + trice.c + 1 + ..\..\..\srcTrice.C\trice.c + diff --git a/test/MDK-ARM_LL_generatedDemo_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_generatedDemo_STM32F030R8-NUCKEO-64.uvprojx b/test/MDK-ARM_LL_generatedDemo_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_generatedDemo_STM32F030R8-NUCKEO-64.uvprojx index 2be7d3cbe..203740d0f 100644 --- a/test/MDK-ARM_LL_generatedDemo_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_generatedDemo_STM32F030R8-NUCKEO-64.uvprojx +++ b/test/MDK-ARM_LL_generatedDemo_STM32F030R8-NUCLEO-64/MDK-ARM/MDK-ARM_LL_generatedDemo_STM32F030R8-NUCKEO-64.uvprojx @@ -352,7 +352,7 @@ 0 0 0 - 13 + 4 diff --git a/test/MultiProjectWorkspaceMDK-ARM.uvmpw b/test/MultiProjectWorkspaceMDK-ARM.uvmpw index 9eb6571c4..17b35e835 100644 --- a/test/MultiProjectWorkspaceMDK-ARM.uvmpw +++ b/test/MultiProjectWorkspaceMDK-ARM.uvmpw @@ -9,18 +9,7 @@ .\MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64\MDK-ARM\MDK-ARM_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64.uvprojx - - - - .\MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64\MDK-ARM\MDK-ARM_LL_UART_RTT0_BARE_STM32F030R8-NUCLEO-64.uvprojx - - - - .\MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64\MDK-ARM\MDK-ARM_LL_UART_WRAP_RTT0_BARE_STM32F030R8-NUCLEO-64.uvprojx - - - - .\MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64\MDK-ARM\MDK-ARM_LL_UART_RTT0_PACK_STM32F030R8-NUCLEO-64.uvprojx + 1 @@ -30,7 +19,6 @@ .\MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64\MDK-ARM\MDK-ARM_LL_UART_RTT0_FLEX_STM32F030R8-NUCLEO-64.uvprojx 1 - 1 diff --git a/til.json b/til.json index 5a8cb4df2..81ee2a5e5 100644 --- a/til.json +++ b/til.json @@ -3,6 +3,10 @@ "Type": "Trice16_1", "Strg": "msg: Trice16_1 %d\\n" }, + "10363": { + "Type": "Trice16_1", + "Strg": "msg: Trice16_1 -\u003e short trice macro (no cycle counter) for everywhere %u\\n" + }, "10407": { "Type": "TRICE8_1", "Strg": "tst:trice8_1 %02X\\n" @@ -15,6 +19,10 @@ "Type": "TRICE0", "Strg": "att:STM32CubeIDE_HAL_UART_NUCLEO-G474\\n" }, + "10524": { + "Type": "Trice16_1", + "Strg": "msg: Trice16_1 -\u003e short trice macro (no cycle counter) for everywhere 0x%X\\n" + }, "10650": { "Type": "TRICE8_4", "Strg": "tst:trice8_4 %02X %02X %02X %02X\\n" @@ -67,6 +75,10 @@ "Type": "TRICE16_4", "Strg": "tst:TRICE16_4 %u %u %u %u\\n" }, + "12497": { + "Type": "Trice8_1i", + "Strg": "msg: Trice8_1i -\u003e short trice macro (no cycle counter) for only inside critical section %d\\n" + }, "12927": { "Type": "Trice8_2", "Strg": "msg: Trice8_2 %x, %x\\n" @@ -79,6 +91,10 @@ "Type": "TRICE0", "Strg": "att:MDK-ARM_RTTD_STM32F0300-DISCO\\n" }, + "13256": { + "Type": "Trice16_1i", + "Strg": "msg: Trice16_1i -\u003e short trice macro (no cycle counter) for only inside critical section %x\\n" + }, "13390": { "Type": "trice16_1", "Strg": "INFO:informal message, SysTick is %6u\\n" @@ -119,6 +135,14 @@ "Type": "TRICE0", "Strg": "att:STM32CubeIDE_LL_UART_NUCLEO-F070RB\\n" }, + "15330": { + "Type": "Trice0i", + "Strg": "msg: Trice0i -\u003e short trice macro (no cycle counter) for only inside critical section\\n" + }, + "15380": { + "Type": "Trice0i", + "Strg": "msg: Trice0i -\u003e short trice macro (no cycle counter) for only inside critical section\\n" + }, "15428": { "Type": "Trice8_2i", "Strg": "int:%d %d\\n" @@ -175,6 +199,14 @@ "Type": "Trice8_1i", "Strg": "INT:SysTick: %5d\\n" }, + "19305": { + "Type": "Trice16_1", + "Strg": "msg: Trice16_1 -\u003e short trice macro (no cycle counter) for everywhere 0x%X\\n" + }, + "19307": { + "Type": "Trice8_1", + "Strg": "msg: Trice8_1 -\u003e short trice macro (no cycle counter) for everywhere %u\\n" + }, "20096": { "Type": "TRICE8_2", "Strg": "tst:TRICE8_2 %02x %02x\\n" @@ -183,6 +215,10 @@ "Type": "Trice16_1i", "Strg": "int:Trice16_1i SysTick: %5u\\n" }, + "20679": { + "Type": "Trice16_1i", + "Strg": "msg: Trice16_1i -\u003e short trice macro (no cycle counter) for only inside critical section\\n" + }, "21036": { "Type": "Trice0", "Strg": "int:SysTick_Handler" @@ -211,6 +247,10 @@ "Type": "Trice0", "Strg": "msg: Trice0 short\\n" }, + "21880": { + "Type": "Trice16_1i", + "Strg": "msg: Trice16_1i -\u003e short trice macro (no cycle counter) for only inside critical section %x\\n" + }, "22308": { "Type": "TRICE8_7", "Strg": "tst:TRICE8_7 %02x %02x %02x %02x %02x %02x %02x\\n" @@ -219,6 +259,10 @@ "Type": "TRICE0", "Strg": "s: \\ns: ARM-MDK_BARE_STM32F03051R8Tx-DISCOVERY \\ns: \\n\\n" }, + "23242": { + "Type": "Trice0", + "Strg": "msg: Trice0 -\u003e short trice macro (no cycle counter) for everywhere\\n" + }, "23553": { "Type": "TRICE0", "Strg": "s: \\ns: ARM-MDK_LL_UART_BARE_TO_ESC_NUCLEO-F030R8 \\ns: \\n\\n" @@ -235,6 +279,10 @@ "Type": "TRICE0", "Strg": "att:TASKING_RTTD_cpp_Example\\n" }, + "2457": { + "Type": "Trice16_1", + "Strg": "msg: Trice16_1 -\u003e short trice macro (no cycle counter) for everywhere %u\\n" + }, "24615": { "Type": "TRICE8_6", "Strg": "tst:TRICE8_6 %u %u %u %u %u %u\\n" @@ -247,6 +295,14 @@ "Type": "Trice8_2", "Strg": "int:%d %d\\n" }, + "25013": { + "Type": "Trice8_1i", + "Strg": "msg: Trice8_1i -\u003e short trice macro (no cycle counter) for only inside critical section %d\\n" + }, + "25023": { + "Type": "Trice8_1", + "Strg": "msg: Trice8_1 -\u003e short trice macro (no cycle counter) for everywhere\\n" + }, "25382": { "Type": "TRICE32_1", "Strg": "time:ms = %d\\n" @@ -263,6 +319,10 @@ "Type": "TRICE0", "Strg": "Play 'sound.wav'\\n-\u003e " }, + "26825": { + "Type": "Trice8_1i", + "Strg": "msg: Trice8_1i -\u003e short trice macro (no cycle counter) for only inside critical section %d\\n" + }, "27253": { "Type": "TRICE0", "Strg": "s: \\ns: MDK-ARM_LL_UART_RTT0_PACK_STM32F030_NUCLEO-64 \\ns: \\n\\n" @@ -291,6 +351,14 @@ "Type": "TRICE8_3", "Strg": "tst:trice8_3 %02X %02X %02X\\n" }, + "28835": { + "Type": "Trice0", + "Strg": "msg: Trice0 -\u003e short trice macro (no cycle counter) for everywhere\\n" + }, + "29874": { + "Type": "Trice16_1", + "Strg": "msg: Trice16_1 -\u003e short trice macro (no cycle counter) for everywhere\\n" + }, "30070": { "Type": "Trice16_1i", "Strg": "INT:Trice16_1i SysTick: %5u\\n" @@ -307,6 +375,10 @@ "Type": "TRICE0", "Strg": "\\ns: \\ns: ARM-MDK_LL_UART_RTT0_ESC_STM32F030R8_NUCLEO-64 \\ns: \\n\\n" }, + "31050": { + "Type": "Trice0", + "Strg": "msg: Trice0 -\u003e short trice macro (no cycle counter) for everywhere\\n" + }, "31376": { "Type": "TRICE8_4", "Strg": "tst:TRICE8_4 %u %u %u %u\\n" @@ -319,6 +391,10 @@ "Type": "trice16_1", "Strg": "ISR:interrupt message, SysTick is %6u\\n" }, + "32337": { + "Type": "Trice16_1i", + "Strg": "msg: Trice16_1i -\u003e short trice macro (no cycle counter) for only inside critical section %d\\n" + }, "32731": { "Type": "TRICE0", "Strg": "Calculate c1 + c2: " @@ -327,18 +403,58 @@ "Type": "TRICE8_1", "Strg": "tst:TRICE8_1 %u\\n" }, + "32881": { + "Type": "TRICE8_5", + "Strg": "msg: TRICE8_5 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %u %d\\n" + }, "3338": { "Type": "Trice0i", "Strg": "int:Trice0i SysTick_Handler" }, + "33465": { + "Type": "trice64_2", + "Strg": "tst:trice64_2 %x %u\\n" + }, "33496": { "Type": "TRICE0", "Strg": "att:MDK-ARM_RTT_NUCLEO-F030R8\\n" }, + "33523": { + "Type": "TRICE8_2", + "Strg": "msg: TRICE8_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, + "33574": { + "Type": "TRICE64_2", + "Strg": "msg: TRICE64_2 -\u003e normal trice macro (with cycle counter) for everywhere 0x%X 0x%x\\n" + }, "33874": { "Type": "TRICE32_1", "Strg": "TIME:TRICE32_1 message, SysTick is %6d\\n" }, + "34064": { + "Type": "TRICE32_3", + "Strg": "msg: TRICE32_3 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u\\n" + }, + "34176": { + "Type": "trice8_5", + "Strg": "msg: trice8_5 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u %u %d\\n" + }, + "34417": { + "Type": "trice32_3", + "Strg": "msg: trice32_3 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u\\n" + }, + "34736": { + "Type": "trice8_2", + "Strg": "msg: trice8_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, + "34813": { + "Type": "trice8_2", + "Strg": "msg: trice8_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, + "34814": { + "Type": "trice16_3", + "Strg": "msg: trice16_3 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u\\n" + }, "34868": { "Type": "TRICE16_1", "Strg": "MSG: triceBareFifoMaxDepth = %d\\n" @@ -347,6 +463,18 @@ "Type": "trice16_1", "Strg": "WR:write message, SysTick is %6u\\n" }, + "35036": { + "Type": "trice64_2", + "Strg": "msg: trice64_2 -\u003e normal trice function (with cycle counter) for everywhere %x %X\\n" + }, + "35213": { + "Type": "TRICE8_2", + "Strg": "msg: TRICE8_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, + "35217": { + "Type": "TRICE8_3", + "Strg": "msg: TRICE8_3 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u\\n" + }, "35527": { "Type": "TRICE0", "Strg": "att:IAR_EWARM_LL_UART_NUCLEO-F070RB\\n" @@ -355,22 +483,74 @@ "Type": "TRICE0", "Strg": "att:IAR_EWARM_RTTD_DISCOVERY-STM32F407VGTx\\n" }, + "35941": { + "Type": "trice8_1", + "Strg": "msg: trice8_1 -\u003e normal trice function (with cycle counter) for everywhere %u\\n" + }, + "36033": { + "Type": "trice8_4", + "Strg": "msg: trice8_4 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d\\n" + }, + "36071": { + "Type": "TRICE32_3", + "Strg": "msg: TRICE32_3 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u\\n" + }, "36297": { "Type": "TRICE0", "Strg": "s: \\ns: ARM-MDK_LL_UART_RTT0_ESC_STM32F070RB_NUCLEO-64 \\ns: \\n\\n" }, + "36395": { + "Type": "TRICE8_4", + "Strg": "msg: TRICE8_4 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d\\n" + }, "36399": { "Type": "TRICE0", "Strg": "att:MDK-ARM_RTT1_NUCLEO-F091RC\\n" }, + "36461": { + "Type": "trice8_1", + "Strg": "msg: trice8_1 -\u003e normal trice function (with cycle counter) for everywhere %u\\n" + }, "36547": { "Type": "TRICE8_8", "Strg": "tst:TRICE8_8 %u %u %u %u %u %u %u %u\\n" }, + "36916": { + "Type": "TRICE8_7", + "Strg": "msg: TRICE8_7 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d %x %X %u\\n" + }, + "37187": { + "Type": "TRICE8_3", + "Strg": "msg: TRICE8_3 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u\\n" + }, + "37205": { + "Type": "TRICE32_3", + "Strg": "msg: TRICE32_3 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u\\n" + }, + "37347": { + "Type": "trice8_8", + "Strg": "msg: trice8_8 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u %d %x %X %u %d\\n" + }, "37519": { "Type": "TRICE0", "Strg": "s: \\ns: MDK-ARM_LL_UART_RTT0_BARE_STM32F091_NUCLEO-64 \\ns: \\n\\n" }, + "37676": { + "Type": "trice8_7", + "Strg": "msg: trice8_7 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u %d %x %X %u\\n" + }, + "37693": { + "Type": "trice16_2", + "Strg": "msg: trice16_2 -\u003e normal trice macro (with cycle counter) for everywhere 0x%X 0x%x\\n" + }, + "37902": { + "Type": "TRICE16_2", + "Strg": "msg: TRICE16_2 -\u003e normal trice macro (with cycle counter) for everywhere 0x%X 0x%x\\n" + }, + "37968": { + "Type": "trice8_2", + "Strg": "msg: trice8_2 -\u003e normal trice function (with cycle counter) for everywhere %x %X\\n" + }, "38168": { "Type": "TRICE32_4", "Strg": "tst:TRICE32_4 %u %u %u %u\\n" @@ -387,14 +567,38 @@ "Type": "TRICE32_1", "Strg": "tim :TRICE32_1 message, SysTick is %6d\\n" }, + "38736": { + "Type": "TRICE64_2", + "Strg": "msg: TRICE64_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, + "38748": { + "Type": "trice16_4", + "Strg": "msg: trice16_4 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u %d\\n" + }, "38802": { "Type": "TRICE0", "Strg": "Calculate c2 - c1: " }, + "38837": { + "Type": "trice16_1", + "Strg": "msg: trice16_1 -\u003e normal trice function (with cycle counter) for everywhere %u\\n" + }, + "39086": { + "Type": "TRICE8_4", + "Strg": "msg: TRICE8_4 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d\\n" + }, + "39245": { + "Type": "trice16_3", + "Strg": "msg: trice16_3 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u\\n" + }, "39406": { "Type": "TRICE0", "Strg": "s: \\ns: MDK-ARM_LL_UART_RTT0_BARE_STM32F030_NUCLEO-64 \\ns: \\n\\n" }, + "39407": { + "Type": "trice0", + "Strg": "msg: trice0 -\u003e normal trice function for everywhere\\n" + }, "39533": { "Type": "TRICE0", "Strg": "att:STM32CubeIDE_RTTD_NUCLEO-G474\\n" @@ -403,6 +607,10 @@ "Type": "TRICE32_1", "Strg": "tim :TRICE32_1 message, SysTick is %6d\\n" }, + "39892": { + "Type": "TRICE16_1", + "Strg": "msg: TRICE16_1 -\u003e normal trice macro (with cycle counter) for everywhere %u\\n" + }, "40045": { "Type": "TRICE0", "Strg": "Negate previous : " @@ -415,10 +623,22 @@ "Type": "TRICE16_1", "Strg": "tst:TRICE16_1 %u\\n" }, + "40953": { + "Type": "TRICE0", + "Strg": "msg: TRICE0 -\u003e normal trice macro (with cycle counter) for everywhere\\n" + }, "41026": { "Type": "TRICE0", "Strg": "Failed to initialize audio service" }, + "41032": { + "Type": "TRICE8_3", + "Strg": "msg: TRICE8_3 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u\\n" + }, + "41105": { + "Type": "TRICE8_2", + "Strg": "msg: TRICE8_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, "41184": { "Type": "TRICE16_1", "Strg": "tim :TRICE16_1 message, SysTick is %6u\\n" @@ -427,6 +647,10 @@ "Type": "TRICE32_1", "Strg": "tim:TRICE32_1 message, SysTick is %6d\\n" }, + "41495": { + "Type": "trice8_8", + "Strg": "msg: trice8_8 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d %x %X %u %d\\n" + }, "41511": { "Type": "TRICE0", "Strg": "s: \\ns: MDK-ARM_LL_UART_RTT0_FLEX_STM32F030_NUCLEO-64 \\ns: \\n\\n" @@ -435,14 +659,46 @@ "Type": "TRICE8_5", "Strg": "tst:TRICE8_5 %u %u %u %u %u\\n" }, + "41644": { + "Type": "TRICE8_4", + "Strg": "msg: TRICE8_4 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d\\n" + }, + "41736": { + "Type": "trice32_3", + "Strg": "msg: trice32_3 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u\\n" + }, "41804": { "Type": "TRICE0", "Strg": "att:IAR_EWARM_HAL_UART_NUCLEO-F070RB\\n" }, + "41820": { + "Type": "TRICE8_5", + "Strg": "msg: TRICE8_5 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %u %d\\n" + }, + "4205": { + "Type": "Trice0i", + "Strg": "msg: Trice0i -\u003e short trice macro (no cycle counter) for only inside critical section\\n" + }, "42100": { "Type": "TRICE0", "Strg": "att:IAR_EWARM_LL_UART_NUCLEO-F030RB\\n" }, + "42133": { + "Type": "trice64_2", + "Strg": "msg: trice64_2 -\u003e normal trice macro (with cycle counter) for everywhere 0x%X 0x%x\\n" + }, + "42270": { + "Type": "TRICE16_4", + "Strg": "msg: TRICE16_4 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d\\n" + }, + "42602": { + "Type": "TRICE8_6", + "Strg": "msg: TRICE6_5 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d %x %X\\n" + }, + "42720": { + "Type": "TRICE8_1", + "Strg": "msg: TRICE8_1 -\u003e normal trice macro (with cycle counter) for everywhere %u\\n" + }, "42899": { "Type": "TRICE0", "Strg": "att:MDK-ARM_LL_UART_NUCLEO-F070RB\\n" @@ -451,6 +707,10 @@ "Type": "TRICE0", "Strg": "att:MDK-ARM_LL_RTTB_NUCLEO-F030R8\\n" }, + "43141": { + "Type": "trice8_3", + "Strg": "msg: trice8_3 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u\\n" + }, "43310": { "Type": "TRICE0", "Strg": "att:IAR_EWARM_RTT_NUCLEO-F030R8\\n" @@ -459,6 +719,10 @@ "Type": "TRICE0", "Strg": "s: \\ns: ARM-MDK_RTT0_BARE_STM32F0308-DISCO \\ns: \\n\\n" }, + "43451": { + "Type": "trice32_1", + "Strg": "msg: trice32_1 -\u003e normal trice function (with cycle counter) for everywhere %u\\n" + }, "43499": { "Type": "TRICE0", "Strg": "Complex number c2: " @@ -471,10 +735,22 @@ "Type": "TRICE0", "Strg": "att:TASKING_GenericSTMF070RB_RTTD\\n" }, + "44389": { + "Type": "trice64_1", + "Strg": "msg: trice64_1 -\u003e normal trice function (with cycle counter) for everywhere %u\\n" + }, "44414": { "Type": "TRICE0", "Strg": "att:TASKING_GenericSTMF030R8_RTTB\\n" }, + "44713": { + "Type": "TRICE0", + "Strg": "msg: TRICE0 -\u003e normal trice macro for everywhere\\n" + }, + "44749": { + "Type": "TRICE16_3", + "Strg": "msg: TRICE16_3 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u\\n" + }, "44778": { "Type": "TRICE0", "Strg": "att:MDK-ARM_LL_RTT_NUCLEO-F070RB\\n" @@ -483,30 +759,66 @@ "Type": "TRICE0", "Strg": "att:STM32CubeIDE_RTTD_DISCOVERY-STM32F051R8Tx\\n" }, + "44960": { + "Type": "TRICE32_1", + "Strg": "msg: TRICE32_1 -\u003e normal trice macro (with cycle counter) for everywhere %u\\n" + }, + "44974": { + "Type": "TRICE8_7", + "Strg": "msg: TRICE8_7 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d %x %X %u\\n" + }, "45064": { "Type": "trice16_1", "Strg": "DIA:diagnostics message, SysTick is %6u\\n" }, + "45214": { + "Type": "trice8_2", + "Strg": "msg: trice8_2 -\u003e normal trice function (with cycle counter) for everywhere %x %X\\n" + }, "45250": { "Type": "TRICE64_1", "Strg": "tst:TRICE64_1 %u\\n" }, + "45348": { + "Type": "trice16_2", + "Strg": "msg: trice16_2 -\u003e normal trice function (with cycle counter) for everywhere %x %X\\n" + }, + "45424": { + "Type": "TRICE8_6", + "Strg": "msg: TRICE6_5 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d %x %X\\n" + }, "45471": { "Type": "TRICE0", "Strg": "att:MDK-ARM_HAL_UART_NUCLEO-F070RB\\n" }, + "45848": { + "Type": "TRICE8_7", + "Strg": "msg: TRICE8_7 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d %x %X %u\\n" + }, "46050": { "Type": "TRICE0", "Strg": "att:STM32CubeIDE_HAL_UART_NUCLEO-F070RB\\n" }, + "46624": { + "Type": "trice0", + "Strg": "msg: trice0 -\u003e normal trice function (with cycle counter) for everywhere\\n" + }, "46836": { "Type": "TRICE16_1", "Strg": "tst:TRICE16_1 message, SysTick is %6u\\n" }, + "47137": { + "Type": "TRICE8_1", + "Strg": "msg: TRICE8_1 -\u003e normal trice macro (with cycle counter) for everywhere %u\\n" + }, "47283": { "Type": "TRICE0", "Strg": "att:MDK-ARM_HAL_UART_NUCLEO-F030R8\\n" }, + "47530": { + "Type": "TRICE32_2", + "Strg": "msg: TRICE32_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, "47663": { "Type": "TRICE16_2", "Strg": "MSG: triceFifoMaxDepth = %d, select = %d\\n" @@ -515,14 +827,38 @@ "Type": "TRICE0", "Strg": "att:MDK-ARM_LL_UART_demoBoard_STM32F030F4F4P6\\n" }, + "48411": { + "Type": "TRICE16_3", + "Strg": "msg: TRICE16_3 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u\\n" + }, + "48416": { + "Type": "TRICE32_4", + "Strg": "msg: TRICE32_4 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d\\n" + }, + "48424": { + "Type": "trice8_8", + "Strg": "msg: trice8_8 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u %d %x %X %u %d\\n" + }, "48439": { "Type": "TRICE16_1", "Strg": "tim:TRICE16_1 message, SysTick is %6u\\n" }, + "48889": { + "Type": "trice16_2", + "Strg": "msg: trice16_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, + "49133": { + "Type": "trice16_2", + "Strg": "msg: trice16_2 -\u003e normal trice function (with cycle counter) for everywhere %x %X\\n" + }, "4929": { "Type": "Trice0i", "Strg": "int:Trice0i SysTick_Handler\\n" }, + "49749": { + "Type": "TRICE8_6", + "Strg": "msg: TRICE6_5 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d %x %X\\n" + }, "49757": { "Type": "TRICE32_1", "Strg": "att:TRICE32_1 message, SysTick is %6d\\n" @@ -531,6 +867,38 @@ "Type": "Trice0", "Strg": "msg:Qick\\n" }, + "50329": { + "Type": "trice0", + "Strg": "msg: trice0 -\u003e normal trice function (with cycle counter) for everywhere\\n" + }, + "50424": { + "Type": "trice64_2", + "Strg": "msg: trice64_2 -\u003e normal trice function (with cycle counter) for everywhere %x %X\\n" + }, + "50478": { + "Type": "trice8_5", + "Strg": "msg: trice8_5 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u %u %d\\n" + }, + "50501": { + "Type": "trice8_7", + "Strg": "msg: trice8_7 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d %x %X %u\\n" + }, + "50624": { + "Type": "TRICE16_4", + "Strg": "msg: TRICE16_4 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d\\n" + }, + "50757": { + "Type": "TRICE16_2", + "Strg": "msg: TRICE16_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, + "50995": { + "Type": "TRICE32_2", + "Strg": "msg: TRICE32_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, + "51048": { + "Type": "TRICE8_3", + "Strg": "msg: TRICE8_3 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u\\n" + }, "51119": { "Type": "TRICE8_3", "Strg": "tst:TRICE8_3 %02x %02x %02x\\n" @@ -539,30 +907,158 @@ "Type": "Trice16_1i", "Strg": "msg: Trice16_1i %6u\\n" }, + "51293": { + "Type": "TRICE32_4", + "Strg": "msg: TRICE32_4 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d\\n" + }, + "51298": { + "Type": "trice8_6", + "Strg": "msg: trice6_5 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u %d %x %X\\n" + }, + "51309": { + "Type": "trice8_3", + "Strg": "msg: trice8_3 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u\\n" + }, + "51953": { + "Type": "TRICE16_2", + "Strg": "msg: TRICE16_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, + "52162": { + "Type": "trice32_2", + "Strg": "msg: trice32_2 -\u003e normal trice function (with cycle counter) for everywhere %x %X\\n" + }, "52174": { "Type": "TRICE8_1", "Strg": "tst:TRICE8_1 %02x\\n" }, + "52433": { + "Type": "trice32_2", + "Strg": "msg: trice32_2 -\u003e normal trice macro (with cycle counter) for everywhere 0x%X 0x%x\\n" + }, + "52748": { + "Type": "trice8_5", + "Strg": "msg: trice8_5 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %u %d\\n" + }, + "52964": { + "Type": "TRICE8_8", + "Strg": "msg: TRICE8_8 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d %x %X %u %d\\n" + }, + "53090": { + "Type": "TRICE8_1", + "Strg": "msg: TRICE8_1 -\u003e normal trice macro (with cycle counter) for everywhere %u\\n" + }, + "53187": { + "Type": "trice8_1", + "Strg": "msg: trice8_1 -\u003e normal trice function (with cycle counter) for everywhere %u\\n" + }, "53200": { "Type": "TRICE8_5", "Strg": "tst:TRICE8_5 %02x %02x %02x %02x %02x\\n" }, + "53204": { + "Type": "trice32_4", + "Strg": "msg: trice32_4 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d\\n" + }, + "53209": { + "Type": "trice32_1", + "Strg": "msg: trice32_1 -\u003e normal trice function (with cycle counter) for everywhere %u\\n" + }, "53546": { "Type": "TRICE8_7", "Strg": "tst:TRICE8_7 %02X %02X %02X %02X %02X %02X %02X\\n" }, + "53783": { + "Type": "TRICE32_1", + "Strg": "msg: TRICE32_1 -\u003e normal trice macro (with cycle counter) for everywhere %u\\n" + }, + "54014": { + "Type": "TRICE8_8", + "Strg": "msg: TRICE8_8 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d %x %X %u %d\\n" + }, + "54569": { + "Type": "trice8_4", + "Strg": "msg: trice8_4 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u %d\\n" + }, + "54701": { + "Type": "TRICE32_4", + "Strg": "msg: TRICE32_4 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d\\n" + }, + "55076": { + "Type": "trice8_1", + "Strg": "msg: trice8_1 -\u003e normal trice function (with cycle counter) for everywhere %u\\n" + }, + "55241": { + "Type": "trice16_4", + "Strg": "msg: trice16_4 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d\\n" + }, + "55451": { + "Type": "trice8_6", + "Strg": "msg: trice6_5 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u %d %x %X\\n" + }, + "55595": { + "Type": "TRICE0", + "Strg": "rd_:triceFunctions.c" + }, "55697": { "Type": "TRICE8_7", "Strg": "tst:TRICE8_7 %u %u %u %u %u %u %u\\n" }, + "55892": { + "Type": "trice16_4", + "Strg": "msg: trice16_4 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u %d\\n" + }, + "56175": { + "Type": "TRICE16_1", + "Strg": "msg: TRICE16_1 -\u003e normal trice macro (with cycle counter) for everywhere %u\\n" + }, + "56218": { + "Type": "TRICE8_5", + "Strg": "msg: TRICE8_5 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %u %d\\n" + }, + "56325": { + "Type": "trice8_6", + "Strg": "msg: trice6_5 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d %x %X\\n" + }, + "56364": { + "Type": "TRICE8_1", + "Strg": "msg: TRICE8_1 -\u003e normal trice macro (with cycle counter) for everywhere %u\\n" + }, + "56442": { + "Type": "trice8_7", + "Strg": "msg: trice8_7 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u %d %x %X %u\\n" + }, "57007": { "Type": "trice16_1", "Strg": "MSG:normal message, SysTick is %6u\\n" }, + "57067": { + "Type": "trice32_2", + "Strg": "msg: trice32_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, + "57154": { + "Type": "trice8_4", + "Strg": "msg: trice8_4 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u %d\\n" + }, "579": { "Type": "TRICE8_8", "Strg": "tst:TRICE8_1 %%d=%d, %%u=%u, 0x%%x=0x%x, 0x%%2x=0x%2x, 0x%%02x=0x%02x, 0x%%3x=0x%3x, 0x%%03x=0x%03x, %%b=%b\\n" }, + "57931": { + "Type": "TRICE16_3", + "Strg": "msg: TRICE16_3 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u\\n" + }, + "57957": { + "Type": "TRICE32_2", + "Strg": "msg: TRICE32_2 -\u003e normal trice macro (with cycle counter) for everywhere 0x%X 0x%x\\n" + }, + "58373": { + "Type": "TRICE64_2", + "Strg": "msg: TRICE64_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, + "58845": { + "Type": "trice32_3", + "Strg": "msg: trice32_3 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u\\n" + }, "59225": { "Type": "trice16_1", "Strg": "TIM:timing message, SysTick is %6u\\n" @@ -575,10 +1071,30 @@ "Type": "TRICE8_3", "Strg": "tst:TRICE8_3 %02X %02X %02X\\n" }, + "59628": { + "Type": "trice32_4", + "Strg": "msg: trice32_4 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u %d\\n" + }, + "59727": { + "Type": "TRICE8_2", + "Strg": "msg: TRICE8_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, + "59763": { + "Type": "trice64_2", + "Strg": "msg: trice64_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, "6": { "Type": "Trice16_1", "Strg": "msg:%d\\n" }, + "60092": { + "Type": "trice8_4", + "Strg": "msg: trice8_4 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d\\n" + }, + "60288": { + "Type": "TRICE64_1", + "Strg": "msg: TRICE64_1 -\u003e normal trice macro (with cycle counter) for everywhere %u\\n" + }, "60735": { "Type": "TRICE16_3", "Strg": "tst:TRICE16_3 %u %u %u\\n" @@ -587,6 +1103,18 @@ "Type": "trice16_1", "Strg": "RD:read message, SysTick is %6u\\n" }, + "61043": { + "Type": "trice8_3", + "Strg": "msg: trice8_3 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u\\n" + }, + "61262": { + "Type": "trice16_3", + "Strg": "msg: trice16_3 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u\\n" + }, + "61470": { + "Type": "trice16_1", + "Strg": "msg: trice16_1 -\u003e normal trice function (with cycle counter) for everywhere %u\\n" + }, "61488": { "Type": "TRICE8_4", "Strg": "tst:TRICE8_4 %02x %02x %02x %02x\\n" @@ -595,6 +1123,18 @@ "Type": "TRICE8_4", "Strg": "tst:TRICE8_4 %02X %02X %02X %02X\\n" }, + "61588": { + "Type": "TRICE32_2", + "Strg": "msg: TRICE32_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n\\n" + }, + "62001": { + "Type": "TRICE64_2", + "Strg": "msg: TRICE64_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, + "62081": { + "Type": "TRICE8_2", + "Strg": "msg: TRICE8_2 -\u003e normal trice macro (with cycle counter) for everywhere 0x%X 0x%x\\n" + }, "6214": { "Type": "TRICE8_2", "Strg": "tst:trice8_2 %02X %02X\\n" @@ -603,14 +1143,50 @@ "Type": "TRICE8_8", "Strg": "tst:trice8_8 %02X %02X %02X %02X %02X %02X %02X %02X\\n" }, + "62351": { + "Type": "TRICE32_2", + "Strg": "msg: TRICE32_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, + "62466": { + "Type": "trice8_3", + "Strg": "msg: trice8_3 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u\\n" + }, "62535": { "Type": "trice16_1", "Strg": "ERR:error message, SysTick is %6u\\n" }, + "62542": { + "Type": "TRICE16_4", + "Strg": "msg: TRICE16_4 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d\\n" + }, "630": { "Type": "Trice8_1i", "Strg": "int:SysTick: %5d\\n" }, + "63361": { + "Type": "TRICE64_1", + "Strg": "msg: TRICE64_1 -\u003e normal trice macro (with cycle counter) for everywhere %u\\n" + }, + "63747": { + "Type": "TRICE8_4", + "Strg": "msg: TRICE8_4 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d\\n" + }, + "63971": { + "Type": "trice16_2", + "Strg": "msg: Trice16_1 -\u003e short trice macro (no cycle counter) for everywhere 0x%X 0x%x\\n" + }, + "64296": { + "Type": "trice32_4", + "Strg": "msg: trice32_4 -\u003e normal trice function (with cycle counter) for everywhere %x %X %u %d\\n" + }, + "64447": { + "Type": "trice64_1", + "Strg": "msg: trice64_1 -\u003e normal trice function (with cycle counter) for everywhere %u\\n" + }, + "64622": { + "Type": "trice32_2", + "Strg": "msg: trice32_2 -\u003e normal trice function (with cycle counter) for everywhere %x %X\\n" + }, "648": { "Type": "Trice16_1", "Strg": "INT:Trice16_1 SysTick: %5u\\n" @@ -619,6 +1195,14 @@ "Type": "TRICE8_5", "Strg": "tst:trice8_5 %02X %02X %02X %02X %02X\\n" }, + "64855": { + "Type": "trice8_2", + "Strg": "msg: trice8_2 -\u003e normal trice macro (with cycle counter) for everywhere 0x%X 0x%x\\n" + }, + "64951": { + "Type": "TRICE8_8", + "Strg": "msg: TRICE8_8 -\u003e normal trice macro (with cycle counter) for everywhere %x %X %u %d %x %X %u %d\\n" + }, "65002": { "Type": "TRICE0", "Strg": "rd_:triceFifo.c" @@ -679,6 +1263,10 @@ "Type": "TRICE32_1", "Strg": "tst:TRICE32_1 %08x\\n" }, + "65049": { + "Type": "TRICE16_2", + "Strg": "msg: TRICE16_2 -\u003e normal trice macro (with cycle counter) for everywhere %x %X\\n" + }, "65051": { "Type": "TRICE16_1", "Strg": "tim: post decryption SysTick=%d\\n" @@ -935,6 +1523,10 @@ "Type": "TRICE8_4", "Strg": "tst:TRICE8_4 %%4d -\u003e %4d %4d %4d %4d\\n" }, + "65336": { + "Type": "TRICE0", + "Strg": "msg: TRICE0 -\u003e normal trice macro (with cycle counter) for everywhere\\n" + }, "65344": { "Type": "trice0", "Strg": "message:J" @@ -1135,6 +1727,10 @@ "Type": "trice32_3", "Strg": "tst:trice32_3 %d %d %d\\n" }, + "6721": { + "Type": "Trice8_1i", + "Strg": "msg: Trice8_1i -\u003e short trice macro (no cycle counter) for only inside critical section %d\\n" + }, "6737": { "Type": "TRICE8_1", "Strg": "tst:TRICE8_1 %02X\\n" @@ -1143,6 +1739,18 @@ "Type": "Trice8_2", "Strg": "msg:%x, %x\\n" }, + "7101": { + "Type": "Trice8_1i", + "Strg": "msg: Trice8_1i -\u003e short trice macro (no cycle counter) for only inside critical section %d\\n" + }, + "7279": { + "Type": "Trice8_1", + "Strg": "msg: Trice8_1 -\u003e short trice macro (no cycle counter) for everywhere %u\\n" + }, + "7431": { + "Type": "Trice8_1", + "Strg": "msg: Trice8_1 -\u003e short trice macro (no cycle counter) for everywhere %u\\n" + }, "7473": { "Type": "TRICE8_2", "Strg": "tst:TRICE8_2 %u %u\\n" @@ -1151,6 +1759,14 @@ "Type": "Trice0i", "Strg": "INT:SysTick_Handler\\n" }, + "7815": { + "Type": "Trice8_1", + "Strg": "msg: Trice8_1 -\u003e short trice macro (no cycle counter) for everywhere %u\\n" + }, + "796": { + "Type": "Trice8_1i", + "Strg": "msg: Trice8_1i -\u003e short trice macro (no cycle counter) for only inside critical section\\n" + }, "8": { "Type": "Trice16_1", "Strg": "msg:%6u\\n" @@ -1167,6 +1783,10 @@ "Type": "Trice0", "Strg": "att:SysTick_HandlerSysTick_HandlerSysTick_HandlerSysTick_HandlerSysTick_HandlerSysTick_Handler" }, + "9484": { + "Type": "Trice8_1", + "Strg": "msg: Trice8_1 -\u003e short trice macro (no cycle counter) for everywhere %u\\n" + }, "9549": { "Type": "Trice16_1i", "Strg": "msg: Trice16_1i %d\\n"