RKH
rkhtrc_define.h File Reference

Defines constants and macros which are internally used by RKH trace facility. More...

#include "rkhitl.h"
Include dependency graph for rkhtrc_define.h:

Go to the source code of this file.

Macros

#define RKH_CFG_TRC_SIZEOF_TE_ID   8
 Specify the size of the trace event identification. The valid values [in bits] are 8, 16 or 32. Default is 8. More...
 
#define RKH_TRC_AO_ISOFF(prio)    && rkh_trc_symFil_isoff(RKHFilterSma, (RKH_TRC_FSLOT)(prio))
 Test the state machine application (SMA) filter condition. More...
 
#define RKH_TRC_SIG_ISOFF(sig)
 Test the event signal filter condition. More...
 
#define RKH_TRC_MAX_EVENTS    (RKH_MAX_NUM_TE_PER_GROUP * RKH_TRC_MAX_GROUPS)
  More...
 
#define RKH_TRC_MAX_SIGNALS   (RKH_CFG_FWK_MAX_SIGNALS / 8)
 The size of trcsigftbl[] (trace signal filter table) depends on RKH_CFG_FWK_MAX_SIGNALS and RKH_CFG_FWK_SIZEOF_EVT (see rkhcfg.h).
 
#define RKH_TOT_NUM_TRC_EVTS
  More...
 
#define RKH_TRC_MAX_EVENTS_IN_BYTES   RKH_TOT_NUM_TRC_EVTS
 Defines the size of trace filter table according to RKH_TOT_NUM_TRC_EVTS and RKH_TRC_MAX_EVENTS.
 
#define RKH_TRC_ALL_GROUPS   RKH_TG_NGROUP
 Emit or suppress tracing for all groups and events.
 
#define RKH_TRC_ALL_EVENTS   RKH_TE_NEVENT
 Emit or suppress all trace events.
 
#define RKH_TRC_SET_ALL(mode_)    ((mode_) | RKH_TRC_ALL_FILTERS)
 Emit or supress tracing for all signal/active objects.
 
#define RKH_XOR   0x20
  More...
 
#define RKH_FLG   0x7E
  More...
 
#define RKH_ESC   0x7D
  More...
 
#define RKH_TG_MP   0
 Memory Pool group (MP)
 
#define RKH_TG_QUE   1
 Reference Queue group (QUE)
 
#define RKH_TG_SMA   2
 State Machine Application group (SMA)
 
#define RKH_TG_SM   3
 State Machine group (SM)
 
#define RKH_TG_TMR   4
 Timer group (TIM)
 
#define RKH_TG_FWK   5
 Framework RKH group (FWK)
 
#define RKH_TG_USR   6
 User group (USR)
 
#define RKH_TG_UT   7
 Unit test harness group (UT)
 
#define RKH_TG_NGROUP   8
 Number of trace groups.
 
#define RKH_TE_MP_INIT   RKH_MP_START
 Initializes the previously allocated memory pool data strcuture RKH_MEMPOOL_T.
 
#define RKH_TE_MP_GET   (RKH_TE_MP_INIT + 1)
 Get a memory block from one of the previously allocated memory pool.
 
#define RKH_TE_MP_PUT   (RKH_TE_MP_GET + 1)
 When the application is done with the memory block, it must be returned to the appropiate memory pool. The block must be allocated from the same memory pool to which it is returned.
 
#define RKH_TE_QUE_INIT   RKH_QUE_START
 Initializes the previously allocated queue data structure RKH_QUEUE_T.
 
#define RKH_TE_QUE_GET   (RKH_TE_QUE_INIT + 1)
 Get and remove an element from a queue.
 
#define RKH_TE_QUE_FIFO   (RKH_TE_QUE_GET + 1)
 Puts an element on a queue in a FIFO manner. The element is queued by reference, not by copy.
 
#define RKH_TE_QUE_LIFO   (RKH_TE_QUE_FIFO + 1)
 Puts an element on a queue in a LIFO manner. The element is queued by reference, not by copy.
 
#define RKH_TE_QUE_FULL   (RKH_TE_QUE_LIFO + 1)
 Queue is full.
 
#define RKH_TE_QUE_DPT   (RKH_TE_QUE_FULL + 1)
 Depletes a queue. Empties the contents of the queue and eliminates all stored elements.
 
#define RKH_TE_QUE_GET_LAST   (RKH_TE_QUE_DPT +1 )
 Get the last element from the queue.
 
#define RKH_TE_SMA_ACT   RKH_SMA_START
 Initializes and activates a previously created state machine application (SMA) as known as active object.
 
#define RKH_TE_SMA_TERM   (RKH_TE_SMA_ACT + 1)
 Terminate a state machine application (SMA) as known as active object.
 
#define RKH_TE_SMA_GET   (RKH_TE_SMA_TERM + 1)
 Get an event from the active object's queue.
 
#define RKH_TE_SMA_FIFO   (RKH_TE_SMA_GET + 1)
 Send an event to a state machine application (SMA) as known as active object through a queue using the FIFO policy. A message is a pointer size variable and its use is application specific.
 
#define RKH_TE_SMA_LIFO   (RKH_TE_SMA_FIFO + 1)
 Send an event to a state machine application (SMA) as known as active object through a queue using the LIFO policy. A message is a pointer size variable and its use is application specific.
 
#define RKH_TE_SMA_REG   (RKH_TE_SMA_LIFO + 1)
 Registers a state machine application (SMA) as known as active object into the framework, which implies to store a pointer to the SMA in the priority table.
 
#define RKH_TE_SMA_UNREG   (RKH_TE_SMA_REG + 1)
 Removes the SMA as known as active object from the priority table, and thus from the framework, by simply replacing the link to the SMA being deleted with a NULL pointer.
 
#define RKH_TE_SMA_DEFER   (RKH_TE_SMA_UNREG + 1)
 Defer an event to a given separate event queue.
 
#define RKH_TE_SMA_RCALL   (RKH_TE_SMA_DEFER + 1)
 Recall a deferred event from a given event queue.
 
#define RKH_TE_SM_INIT   RKH_SM_START
 Inits a previously created state machine calling its initializing action.
 
#define RKH_TE_SM_CLRH   (RKH_TE_SM_INIT + 1)
 Erase the history of a state. It can be a shallow or deep history.
 
#define RKH_TE_SM_TRN   (RKH_TE_SM_CLRH + 1)
 Source and target state of the transition. The target could be either basic state, composite state or pseudostate.
 
#define RKH_TE_SM_STATE   (RKH_TE_SM_TRN + 1)
 Legal, stable and final state of transition.
 
#define RKH_TE_SM_ENSTATE   (RKH_TE_SM_STATE + 1)
 Entered state.
 
#define RKH_TE_SM_EXSTATE   (RKH_TE_SM_ENSTATE + 1)
 Exited state.
 
#define RKH_TE_SM_NENEX   (RKH_TE_SM_EXSTATE + 1)
 Number of entry and exit states in transition.
 
#define RKH_TE_SM_NTRNACT   (RKH_TE_SM_NENEX + 1)
 Number of executed actions and segments of the transition.
 
#define RKH_TE_SM_TS_STATE   (RKH_TE_SM_NTRNACT + 1)
 Destination state or pseudostate of a transition segment.
 
#define RKH_TE_SM_EVT_PROC   (RKH_TE_SM_TS_STATE + 1)
 The arrived event was succesfully processed and HSM resides in an allowed state.
 
#define RKH_TE_SM_EVT_NFOUND   (RKH_TE_SM_EVT_PROC + 1)
 The arrived event was't founded in the transition table.
 
#define RKH_TE_SM_GRD_FALSE   (RKH_TE_SM_EVT_NFOUND + 1)
 The transition was cancelled by guard function.
 
#define RKH_TE_SM_CND_NFOUND   (RKH_TE_SM_GRD_FALSE + 1)
 The branch function returned a value not founded in the branch table.
 
#define RKH_TE_SM_UNKN_STATE   (RKH_TE_SM_CND_NFOUND + 1)
 Unknown state.
 
#define RKH_TE_SM_EX_HLEVEL   (RKH_TE_SM_UNKN_STATE + 1)
 The transition exceeded the allowed hierarchical level.
 
#define RKH_TE_SM_EX_TSEG   (RKH_TE_SM_EX_HLEVEL + 1)
 The transition exceeded the allowed number of segments within a compound transtion.
 
#define RKH_TE_SM_EXE_ACT   (RKH_TE_SM_EX_TSEG + 1)
 Executes a behavior (action) of state machine, it could be an entry, exit, effect, init, preprocessor or guard.
 
#define RKH_TE_SM_DCH   (RKH_TE_SM_EXE_ACT + 1)
 Executes a state machine in a run-to-completation (RTC) model.
 
#define RKH_TE_TMR_INIT   RKH_TMR_START
 Initializes the previously allocated timer structure RKH_TMR_T.
 
#define RKH_TE_TMR_START   (RKH_TE_TMR_INIT + 1)
 Start a timer.
 
#define RKH_TE_TMR_STOP   (RKH_TE_TMR_START + 1)
 Stops a running timer.
 
#define RKH_TE_TMR_TOUT   (RKH_TE_TMR_STOP + 1)
 Timer expired.
 
#define RKH_TE_TMR_REM   (RKH_TE_TMR_TOUT + 1)
 Removes timer from the active timer list.
 
#define RKH_TE_FWK_EN   RKH_FWK_START
 Initializes the RKH framework.
 
#define RKH_TE_FWK_EX   (RKH_TE_FWK_EN + 1)
 Exit the RKH framework.
 
#define RKH_TE_FWK_EPREG   (RKH_TE_FWK_EX + 1)
 Registers a new event pool into the event pool list.
 
#define RKH_TE_FWK_AE   (RKH_TE_FWK_EPREG + 1)
 Allocates an event from the previously created event pool.
 
#define RKH_TE_FWK_GC   (RKH_TE_FWK_AE + 1)
 Attempt to recycle an event.
 
#define RKH_TE_FWK_GCR   (RKH_TE_FWK_GC + 1)
 Effective recycling event.
 
#define RKH_TE_FWK_OBJ   (RKH_TE_FWK_GCR + 1)
 Entry symbol table for memory object.
 
#define RKH_TE_FWK_SIG   (RKH_TE_FWK_OBJ + 1)
 Entry symbol table for event signal.
 
#define RKH_TE_FWK_FUN   (RKH_TE_FWK_SIG + 1)
 Entry symbol table for function object.
 
#define RKH_TE_FWK_EXE_FUN   (RKH_TE_FWK_FUN + 1)
 The function was executed.
 
#define RKH_TE_FWK_SYNC_EVT   (RKH_TE_FWK_EXE_FUN + 1)
 The function was synchronously executed. It is not explicitely used by the RKH, instead it's frequently placed on application source code.
 
#define RKH_TE_FWK_TUSR   (RKH_TE_FWK_SYNC_EVT + 1)
 Entry symbol table for user-defined trace events.
 
#define RKH_TE_FWK_TCFG   (RKH_TE_FWK_TUSR + 1)
 Send trace configuration to Trazer.
 
#define RKH_TE_FWK_ASSERT   (RKH_TE_FWK_TCFG + 1)
 Assertion expression was evaluated to false.
 
#define RKH_TE_FWK_AO   (RKH_TE_FWK_ASSERT + 1)
 Entry symbol table for active object.
 
#define RKH_TE_FWK_STATE   (RKH_TE_FWK_AO + 1)
 Entry symbol table for state object.
 
#define RKH_TE_FWK_PSTATE   (RKH_TE_FWK_STATE + 1)
 Entry symbol table for pseudostate object.
 
#define RKH_TE_FWK_TIMER   (RKH_TE_FWK_PSTATE + 1)
 Entry symbol table for timer object.
 
#define RKH_TE_FWK_EPOOL   (RKH_TE_FWK_TIMER + 1)
 Entry symbol table for event pool object.
 
#define RKH_TE_FWK_QUEUE   (RKH_TE_FWK_EPOOL + 1)
 Entry symbol table for queue object.
 
#define RKH_TE_FWK_ACTOR   (RKH_TE_FWK_QUEUE + 1)
 Entry symbol table for actor object.
 
#define RKH_TRC_BEGIN(eid_, prio_, sig_)
  More...
 
#define RKH_TRC_END()
  More...
 
#define RKH_TRC_BEGIN_NOCRIT(eid_, prio_, sig_)
  More...
 
#define RKH_TRC_BEGIN_WOAO_NOCRIT(eid_, sig_)
  More...
 
#define RKH_TRC_BEGIN_WOSIG_NOCRIT(eid_, prio_)
  More...
 
#define RKH_TRC_BEGIN_WOAOSIG_NOCRIT(eid_)
  More...
 
#define RKH_TRC_END_NOCRIT()
  More...
 
#define RKH_TRC_BEGIN_WOFIL(eid_)
  More...
 
#define RKH_TRC_END_WOFIL()
  More...
 
#define RKH_TRC_BEGIN_WOFIL_NOCRIT(eid_)    rkh_trc_begin(eid_);
  More...
 
#define RKH_TRC_END_WOFIL_NOCRIT()    rkh_trc_end(); \
  More...
 
#define RKH_TRC_BEGIN_DFT(eid_)
  More...
 
#define RKH_TRC_END_DFT()
  More...
 
#define RKH_TRC_U8_RAW(d)    rkh_trc_put((d))
 Insert a 1-byte without escaping it.
 
#define RKH_TRC_UI8(d)    rkh_trc_u8((rui8_t)(d))
 Insert a 1-byte data.
 
#define RKH_TRC_UI16(d)    rkh_trc_u16((d))
 Insert a 2-byte data.
 
#define RKH_TRC_UI32(d)    rkh_trc_u32((d))
 Insert a 4-byte data.
 
#define RKH_TRC_STR(s)    rkh_trc_str((s))
 Insert a string.
 
#define RKH_TRC_USR_BEGIN(eid_)
  More...
 
#define RKH_TRC_USR_END()
  More...
 
#define RKH_TRC_USR_BEGIN_NOCRIT(eid_)
  More...
 
#define RKH_TRC_USR_END_NOCRIT()
  More...
 
#define RKH_TUSR_I8(w_, d_)
 Output formatted ri8_t to the trace record.
 
#define RKH_TUSR_UI8(w_, d_)
 Output formatted rui8_t to the trace record.
 
#define RKH_TUSR_I16(w_, d_)
 Output formatted ri16_t to the trace record.
 
#define RKH_TUSR_UI16(w_, d_)
 Output formatted rui16_t to the trace record.
 
#define RKH_TUSR_I32(w_, d_)
 Output formatted ri32_t to the trace record.
 
#define RKH_TUSR_UI32(w_, d_)
 Output formatted rui32_t to the trace record.
 
#define RKH_TUSR_X32(w_, d_)
 Output formatted rui32_t to the trace record.
 
#define RKH_TUSR_STR(s_)    rkh_trc_fmt_str((s_))
 Output formatted zero-terminated ASCII string to the trace record.
 
#define RKH_TUSR_MEM(mem_, size_)    rkh_trc_fmt_mem((mem_), (size_))
 Output formatted memory block of up to 255 bytes to the trace record.
 
#define RKH_TUSR_OBJ(obj_)    rkh_trc_fmt_u32((rui8_t)RKH_OBJ_T, (rui32_t)(obj_))
 Output formatted object pointer to the trace record.
 
#define RKH_TUSR_FUN(fun_)    rkh_trc_fmt_u32((rui8_t)RKH_FUN_T, (rui32_t)(fun_))
 Output formatted function pointer to the trace record.
 
#define RKH_TUSR_SIG(sig_)    rkh_trc_fmt_u8((rui8_t)RKH_ESIG_T, (rui8_t)(sig_))
 Output formatted event signal to the trace record.
 
#define RKH_TRC_SYM(sym)    RKH_TRC_UI32((rui32_t)sym)
 Insert a object address as trace record argument.
 
#define RKH_TRC_SNDR(sym)    RKH_TRC_SYM(sym)
 Insert a sender object address as trace record argument.
 
#define RKH_TRC_FUN(sym)    RKH_TRC_UI32((rui32_t)sym)
 Insert a function address as trace record argument.
 
#define RKH_TRC_NTICK(nt)    RKH_TRC_UI8(nt)
  More...
 
#define RKH_TRC_NBLK(nb)    RKH_TRC_UI8(nb)
  More...
 
#define RKH_TRC_BSIZE(bs)    RKH_TRC_UI8(bs)
  More...
 
#define RKH_TRC_NE(ne)    RKH_TRC_UI8(ne)
  More...
 
#define RKH_TRC_SIG(e)    RKH_TRC_UI8(e)
  More...
 
#define RKH_TRC_ES(es)    RKH_TRC_UI8(es)
  More...
 
#define RKH_MP_START   GRPLSH(RKH_TG_MP)
 Trace event offset. More...
 
#define RKH_QUE_START   GRPLSH(RKH_TG_QUE)
 Trace event offset. More...
 
#define RKH_SMA_START   GRPLSH(RKH_TG_SMA)
 Trace event offset. More...
 
#define RKH_SM_START   GRPLSH(RKH_TG_SM)
 Trace event offset. More...
 
#define RKH_TMR_START   GRPLSH(RKH_TG_TMR)
 Trace event offset. More...
 
#define RKH_FWK_START   GRPLSH(RKH_TG_FWK)
 Trace event offset. More...
 
#define RKH_USR_START   GRPLSH(RKH_TG_USR)
 Trace event offset. More...
 
#define RKH_UT_START   GRPLSH(RKH_TG_UT)
 Trace event offset. More...
 
#define RKH_MP_TTBL_RANGE   1
  More...
 
#define RKH_QUE_TTBL_RANGE   1
  More...
 
#define RKH_SMA_TTBL_RANGE   2
  More...
 
#define RKH_SM_TTBL_RANGE   3
  More...
 
#define RKH_TIM_TTBL_RANGE   1
  More...
 
#define RKH_FWK_TTBL_RANGE   3
  More...
 
#define RKH_USR_TTBL_RANGE   4
  More...
 
#define RKH_UT_TTBL_RANGE   2
  More...
 

Typedefs

typedef rui8_t RKH_TE_ID_T
 Describes a trace event identification (ID). More...
 
typedef rui32_t RKH_TS_T
 Defines the size of trace timestamp. More...
 
typedef rui8_t RKH_TG_T
 Group of events.
 

Enumerations

enum  RKH_TRC_FMT {
  RKH_I8_T ,
  RKH_UI8_T ,
  RKH_I16_T ,
  RKH_UI16_T ,
  RKH_I32_T ,
  RKH_UI32_T ,
  RKH_X32_T ,
  RKH_STR_T ,
  RKH_MEM_T ,
  RKH_OBJ_T ,
  RKH_FUN_T ,
  RKH_ESIG_T
}
 Enumerates data formats recognized by Trazer. More...
 
enum  RKH_SUBTE_SM_EXE_ACT {
  RKH_SUBTE_SM_EXE_ACT_EFF ,
  RKH_SUBTE_SM_EXE_ACT_EN ,
  RKH_SUBTE_SM_EXE_ACT_EX ,
  RKH_SUBTE_SM_EXE_ACT_INI ,
  RKH_SUBTE_SM_EXE_ACT_PP ,
  RKH_SUBTE_SM_EXE_ACT_GRD
}
 Sub-event of RKH_TE_SM_EXE_ACT event. More...
 

Detailed Description

Defines constants and macros which are internally used by RKH trace facility.

Definition in file rkhtrc_define.h.

Macro Definition Documentation

◆ RKH_CFG_TRC_SIZEOF_TE_ID

#define RKH_CFG_TRC_SIZEOF_TE_ID   8

Specify the size of the trace event identification. The valid values [in bits] are 8, 16 or 32. Default is 8.

See also
RKH_TE_ID_T data type.
Note
In the future releases, it should be defined in the configuration file of the RKH framework.

Definition at line 75 of file rkhtrc_define.h.

◆ RKH_TRC_AO_ISOFF

#define RKH_TRC_AO_ISOFF (   prio)     && rkh_trc_symFil_isoff(RKHFilterSma, (RKH_TRC_FSLOT)(prio))

Test the state machine application (SMA) filter condition.

Parameters
[in]prioSMA priority.
Returns
'1' (RKH_TRUE) if the SMA is not filtered, otherwise '0' (RKH_FALSE).
Note
This macro is internal to RKH and the user application should not call it.

Definition at line 105 of file rkhtrc_define.h.

◆ RKH_TRC_SIG_ISOFF

#define RKH_TRC_SIG_ISOFF (   sig)
Value:
&& (RKH_TRC_IS_RESERVED_SIG(sig) || \
rkh_trc_symFil_isoff(RKHFilterSignal, (RKH_TRC_FSLOT)(sig)))
rui8_t RKH_TRC_FSLOT
This data type defines the size of filter table for AO and signals.

Test the event signal filter condition.

Parameters
[in]sigevent signal.
Returns
'1' (RKH_TRUE) if the signal is not filtered, otherwise '0' (RKH_FALSE).
Note
This macro is internal to RKH and the user application should not call it.

Definition at line 130 of file rkhtrc_define.h.

◆ RKH_TRC_MAX_EVENTS

#define RKH_TRC_MAX_EVENTS    (RKH_MAX_NUM_TE_PER_GROUP * RKH_TRC_MAX_GROUPS)

Specify the maximum number of trace events, this number is direclty related with the RKH_TE_<group>_<event> definitions. The smaller this number, the lower the RAM consumption. See trceftbl table.

Definition at line 165 of file rkhtrc_define.h.

◆ RKH_MP_START

#define RKH_MP_START   GRPLSH(RKH_TG_MP)

Trace event offset.

The trace event ID is arranged as:

event number = | G | G | G | E | E | E | E | E |
G's: group number.
E's: event's group.
The lower 5 bits (E's) of the event ID are used to determine the trace event, while the next three most significant bits (G's) are used to determine the corresponding group. Therefore, is able to define 8 groups and 32 events per group.

Definition at line 207 of file rkhtrc_define.h.

◆ RKH_QUE_START

#define RKH_QUE_START   GRPLSH(RKH_TG_QUE)

Trace event offset.

The trace event ID is arranged as:

event number = | G | G | G | E | E | E | E | E |
G's: group number.
E's: event's group.
The lower 5 bits (E's) of the event ID are used to determine the trace event, while the next three most significant bits (G's) are used to determine the corresponding group. Therefore, is able to define 8 groups and 32 events per group.

Definition at line 208 of file rkhtrc_define.h.

◆ RKH_SMA_START

#define RKH_SMA_START   GRPLSH(RKH_TG_SMA)

Trace event offset.

The trace event ID is arranged as:

event number = | G | G | G | E | E | E | E | E |
G's: group number.
E's: event's group.
The lower 5 bits (E's) of the event ID are used to determine the trace event, while the next three most significant bits (G's) are used to determine the corresponding group. Therefore, is able to define 8 groups and 32 events per group.

Definition at line 209 of file rkhtrc_define.h.

◆ RKH_SM_START

#define RKH_SM_START   GRPLSH(RKH_TG_SM)

Trace event offset.

The trace event ID is arranged as:

event number = | G | G | G | E | E | E | E | E |
G's: group number.
E's: event's group.
The lower 5 bits (E's) of the event ID are used to determine the trace event, while the next three most significant bits (G's) are used to determine the corresponding group. Therefore, is able to define 8 groups and 32 events per group.

Definition at line 210 of file rkhtrc_define.h.

◆ RKH_TMR_START

#define RKH_TMR_START   GRPLSH(RKH_TG_TMR)

Trace event offset.

The trace event ID is arranged as:

event number = | G | G | G | E | E | E | E | E |
G's: group number.
E's: event's group.
The lower 5 bits (E's) of the event ID are used to determine the trace event, while the next three most significant bits (G's) are used to determine the corresponding group. Therefore, is able to define 8 groups and 32 events per group.

Definition at line 211 of file rkhtrc_define.h.

◆ RKH_FWK_START

#define RKH_FWK_START   GRPLSH(RKH_TG_FWK)

Trace event offset.

The trace event ID is arranged as:

event number = | G | G | G | E | E | E | E | E |
G's: group number.
E's: event's group.
The lower 5 bits (E's) of the event ID are used to determine the trace event, while the next three most significant bits (G's) are used to determine the corresponding group. Therefore, is able to define 8 groups and 32 events per group.

Definition at line 212 of file rkhtrc_define.h.

◆ RKH_USR_START

#define RKH_USR_START   GRPLSH(RKH_TG_USR)

Trace event offset.

The trace event ID is arranged as:

event number = | G | G | G | E | E | E | E | E |
G's: group number.
E's: event's group.
The lower 5 bits (E's) of the event ID are used to determine the trace event, while the next three most significant bits (G's) are used to determine the corresponding group. Therefore, is able to define 8 groups and 32 events per group.

Definition at line 213 of file rkhtrc_define.h.

◆ RKH_UT_START

#define RKH_UT_START   GRPLSH(RKH_TG_UT)

Trace event offset.

The trace event ID is arranged as:

event number = | G | G | G | E | E | E | E | E |
G's: group number.
E's: event's group.
The lower 5 bits (E's) of the event ID are used to determine the trace event, while the next three most significant bits (G's) are used to determine the corresponding group. Therefore, is able to define 8 groups and 32 events per group.

Definition at line 214 of file rkhtrc_define.h.

◆ RKH_MP_TTBL_RANGE

#define RKH_MP_TTBL_RANGE   1

Max. number of used trace events in a particular group in octets, thus the desired value must be divided by 8 (1 -> 8 events).

Note
Must be less than or equal to RKH_MAX_NUM_TE_PER_GROUP/8.

Definition at line 223 of file rkhtrc_define.h.

◆ RKH_QUE_TTBL_RANGE

#define RKH_QUE_TTBL_RANGE   1

Max. number of used trace events in a particular group in octets, thus the desired value must be divided by 8 (1 -> 8 events).

Note
Must be less than or equal to RKH_MAX_NUM_TE_PER_GROUP/8.

Definition at line 224 of file rkhtrc_define.h.

◆ RKH_SMA_TTBL_RANGE

#define RKH_SMA_TTBL_RANGE   2

Max. number of used trace events in a particular group in octets, thus the desired value must be divided by 8 (1 -> 8 events).

Note
Must be less than or equal to RKH_MAX_NUM_TE_PER_GROUP/8.

Definition at line 225 of file rkhtrc_define.h.

◆ RKH_SM_TTBL_RANGE

#define RKH_SM_TTBL_RANGE   3

Max. number of used trace events in a particular group in octets, thus the desired value must be divided by 8 (1 -> 8 events).

Note
Must be less than or equal to RKH_MAX_NUM_TE_PER_GROUP/8.

Definition at line 226 of file rkhtrc_define.h.

◆ RKH_TIM_TTBL_RANGE

#define RKH_TIM_TTBL_RANGE   1

Max. number of used trace events in a particular group in octets, thus the desired value must be divided by 8 (1 -> 8 events).

Note
Must be less than or equal to RKH_MAX_NUM_TE_PER_GROUP/8.

Definition at line 227 of file rkhtrc_define.h.

◆ RKH_FWK_TTBL_RANGE

#define RKH_FWK_TTBL_RANGE   3

Max. number of used trace events in a particular group in octets, thus the desired value must be divided by 8 (1 -> 8 events).

Note
Must be less than or equal to RKH_MAX_NUM_TE_PER_GROUP/8.

Definition at line 228 of file rkhtrc_define.h.

◆ RKH_USR_TTBL_RANGE

#define RKH_USR_TTBL_RANGE   4

Max. number of used trace events in a particular group in octets, thus the desired value must be divided by 8 (1 -> 8 events).

Note
Must be less than or equal to RKH_MAX_NUM_TE_PER_GROUP/8.

Definition at line 229 of file rkhtrc_define.h.

◆ RKH_UT_TTBL_RANGE

#define RKH_UT_TTBL_RANGE   2

Max. number of used trace events in a particular group in octets, thus the desired value must be divided by 8 (1 -> 8 events).

Note
Must be less than or equal to RKH_MAX_NUM_TE_PER_GROUP/8.

Definition at line 230 of file rkhtrc_define.h.

◆ RKH_TOT_NUM_TRC_EVTS

#define RKH_TOT_NUM_TRC_EVTS
Value:
RKH_QUE_TTBL_RANGE + \
RKH_SMA_TTBL_RANGE + \
RKH_SM_TTBL_RANGE + \
RKH_TIM_TTBL_RANGE + \
RKH_FWK_TTBL_RANGE + \
RKH_USR_TTBL_RANGE + \
RKH_UT_TTBL_RANGE)
#define RKH_MP_TTBL_RANGE

Defines the total number of trace events.

Definition at line 236 of file rkhtrc_define.h.

◆ RKH_XOR

#define RKH_XOR   0x20

x-ored byte for stuffing a single byte

Definition at line 305 of file rkhtrc_define.h.

◆ RKH_FLG

#define RKH_FLG   0x7E

flag byte, used as a trace event delimiter

Definition at line 308 of file rkhtrc_define.h.

◆ RKH_ESC

#define RKH_ESC   0x7D

escape byte stuffing a single byte

Definition at line 311 of file rkhtrc_define.h.

◆ RKH_TRC_BEGIN

#define RKH_TRC_BEGIN (   eid_,
  prio_,
  sig_ 
)
Value:
if (rkh_trc_isoff_(eid_) \
{ \
RKH_ENTER_CRITICAL_(); \
rkh_trc_begin(eid_);
#define RKH_TRC_AO_ISOFF(prio)
Test the state machine application (SMA) filter condition.
#define RKH_TRC_SIG_ISOFF(sig)
Test the event signal filter condition.
rbool_t rkh_trc_isoff_(RKH_TE_ID_T e)
Test the group and event filter condition.

Each trace event always begins with the macro RKH_TRC_BEGIN() and ends with the matching macro RKH_TRC_END(). These macros are not terminated with the semicolon. This pair of macros locks interrupts at the beginning and unlocks at the end of each record.

Parameters
[in]eid_is the trace event ID. See RKH_TE_<group>_<event> definitions.
[in]prio_priority of active object.
[in]sig_signal.
Note
Both arguments are used in the on/off filter.
The runtime filter is optional and could be enabled or disabled with the RKH_CFG_TRC_RTFIL_EN in the rkhcfg.h file.
This macro always invokes the rkh_trc_begin() function.

Definition at line 571 of file rkhtrc_define.h.

◆ RKH_TRC_END

#define RKH_TRC_END ( )
Value:
RKH_EXIT_CRITICAL_(); \
}
void rkh_trc_end(void)
Terminate the recorded trace event.

Each trace event always begins with the macro RKH_TRC_BEGIN() and ends with the matching macro RKH_TRC_END(). These macros are not terminated with the semicolon. This pair of macros locks interrupts at the beginning and unlocks at the end of each record.

Note
This macro always invokes the rkh_trc_end() function.

Definition at line 609 of file rkhtrc_define.h.

◆ RKH_TRC_BEGIN_NOCRIT

#define RKH_TRC_BEGIN_NOCRIT (   eid_,
  prio_,
  sig_ 
)
Value:
if (rkh_trc_isoff_(eid_) \
{ \
rkh_trc_begin(eid_);

Idem RKH_TRC_BEGIN() macro but without entering critical section.

Parameters
[in]eid_is the trace event ID. See RKH_TE_<group>_<event> definitions.
[in]prio_priority of active object.
[in]sig_signal.

Definition at line 622 of file rkhtrc_define.h.

◆ RKH_TRC_BEGIN_WOAO_NOCRIT

#define RKH_TRC_BEGIN_WOAO_NOCRIT (   eid_,
  sig_ 
)
Value:
if (rkh_trc_isoff_(eid_) \
{ \
rkh_trc_begin(eid_);

Idem RKH_TRC_BEGIN_WOAO() macro but without entering critical section.

Parameters
[in]eid_is the trace event ID. See RKH_TE_<group>_<event> definitions.
[in]sig_signal.

Definition at line 637 of file rkhtrc_define.h.

◆ RKH_TRC_BEGIN_WOSIG_NOCRIT

#define RKH_TRC_BEGIN_WOSIG_NOCRIT (   eid_,
  prio_ 
)
Value:
if (rkh_trc_isoff_(eid_) \
RKH_TRC_AO_ISOFF(prio_)) \
{ \
rkh_trc_begin(eid_);

Idem RKH_TRC_BEGIN_WOSIG() macro but without entering critical section.

Parameters
[in]eid_is the trace event ID. See RKH_TE_<group>_<event> definitions.
[in]prio_priority of active object.

Definition at line 651 of file rkhtrc_define.h.

◆ RKH_TRC_BEGIN_WOAOSIG_NOCRIT

#define RKH_TRC_BEGIN_WOAOSIG_NOCRIT (   eid_)
Value:
if (rkh_trc_isoff_(eid_)) \
{ \
rkh_trc_begin(eid_);

Idem RKH_TRC_BEGIN_WOAOSIG() macro but without entering critical section.

Parameters
[in]eid_is the trace event ID. See RKH_TE_<group>_<event> definitions.

Definition at line 664 of file rkhtrc_define.h.

◆ RKH_TRC_END_NOCRIT

#define RKH_TRC_END_NOCRIT ( )
Value:
}

Idem RKH_TRC_EXIT() macro but without exiting critical section.

Definition at line 672 of file rkhtrc_define.h.

◆ RKH_TRC_BEGIN_WOFIL

#define RKH_TRC_BEGIN_WOFIL (   eid_)
Value:
RKH_ENTER_CRITICAL_(); \
rkh_trc_begin(eid_);
#define RKH_SR_ALLOC()
RKH need to disable interrupts in order to access critical sections of code, and re-enable interrupts...
Definition: rkhitl.h:2051

Idem RKH_TRC_BEGIN() macro but use it for trace events that are independent of any runtime filter.

Definition at line 716 of file rkhtrc_define.h.

◆ RKH_TRC_END_WOFIL

#define RKH_TRC_END_WOFIL ( )
Value:
RKH_EXIT_CRITICAL_();

Idem RKH_TRC_END() macro but use it for trace events that are independent of any runtime filter.

Definition at line 725 of file rkhtrc_define.h.

◆ RKH_TRC_BEGIN_WOFIL_NOCRIT

#define RKH_TRC_BEGIN_WOFIL_NOCRIT (   eid_)     rkh_trc_begin(eid_);

Idem RKH_TRC_BEGIN_WOFIL() macro but without entering critical section.

Definition at line 732 of file rkhtrc_define.h.

◆ RKH_TRC_END_WOFIL_NOCRIT

#define RKH_TRC_END_WOFIL_NOCRIT ( )     rkh_trc_end(); \

Idem RKH_TRC_END_WOFIL_NOCRIT() macro but without entering critical section.

Definition at line 739 of file rkhtrc_define.h.

◆ RKH_TRC_BEGIN_DFT

#define RKH_TRC_BEGIN_DFT (   eid_)
Value:
RKH_ENTER_CRITICAL_(); \
rkh_trc_clear_chk(); \
RKH_TRC_TE_ID(eid_);

Idem RKH_TRC_BEGIN() macro with default configuration, i.e. without timestamp, and number of sequence, but with 8-bit checksum.

Definition at line 746 of file rkhtrc_define.h.

◆ RKH_TRC_END_DFT

#define RKH_TRC_END_DFT ( )
Value:
RKH_EXIT_CRITICAL_();

Idem RKH_TRC_END() macro but use it for trace events that are independent of any runtime filter.

Definition at line 756 of file rkhtrc_define.h.

◆ RKH_TRC_USR_BEGIN

#define RKH_TRC_USR_BEGIN (   eid_)
Value:
if (rkh_trc_isoff_(eid_)) \
{ \
RKH_ENTER_CRITICAL_(); \
rkh_trc_begin(eid_);

Idem RKH_TRC_BEGIN() macro but use it for user trace events.

Definition at line 799 of file rkhtrc_define.h.

◆ RKH_TRC_USR_END

#define RKH_TRC_USR_END ( )
Value:
RKH_EXIT_CRITICAL_(); \
}

Idem RKH_TRC_END() macro but use it for user trace events.

Definition at line 809 of file rkhtrc_define.h.

◆ RKH_TRC_USR_BEGIN_NOCRIT

#define RKH_TRC_USR_BEGIN_NOCRIT (   eid_)
Value:
if (rkh_trc_isoff_(eid_)) \
{ \
rkh_trc_begin(eid_);

Idem RKH_TRC_USR_BEGIN() macro but without entering critical section.

Definition at line 818 of file rkhtrc_define.h.

◆ RKH_TRC_USR_END_NOCRIT

#define RKH_TRC_USR_END_NOCRIT ( )
Value:
}

Idem RKH_TRC_USR_END() macro but without exiting critical section.

Definition at line 826 of file rkhtrc_define.h.

◆ RKH_TRC_NTICK

#define RKH_TRC_NTICK (   nt)     RKH_TRC_UI8(nt)

Insert a ntick value as trace record argument.

Definition at line 1012 of file rkhtrc_define.h.

◆ RKH_TRC_NBLK

#define RKH_TRC_NBLK (   nb)     RKH_TRC_UI8(nb)

Insert a nblock value as trace record argument.

Definition at line 1029 of file rkhtrc_define.h.

◆ RKH_TRC_BSIZE

#define RKH_TRC_BSIZE (   bs)     RKH_TRC_UI8(bs)

Insert the block size value as trace record argument.

Definition at line 1070 of file rkhtrc_define.h.

◆ RKH_TRC_NE

#define RKH_TRC_NE (   ne)     RKH_TRC_UI8(ne)

Insert a nelem value as trace record argument.

Definition at line 1087 of file rkhtrc_define.h.

◆ RKH_TRC_SIG

#define RKH_TRC_SIG (   e)     RKH_TRC_UI8(e)

Insert a signal number as trace record argument.

Definition at line 1128 of file rkhtrc_define.h.

◆ RKH_TRC_ES

#define RKH_TRC_ES (   es)     RKH_TRC_UI8(es)

Insert an event size value as trace record argument.

Definition at line 1145 of file rkhtrc_define.h.

Typedef Documentation

◆ RKH_TE_ID_T

typedef rui8_t RKH_TE_ID_T

Describes a trace event identification (ID).

The trace event ID is arranged as: event number = | G | G | G | E | E | E | E | E |
G's: group number.
E's: event's group.
Where the lower 5 bits (E's) of the event ID are used to determine the trace event, while the next three most significant bits (G's) are used to determine the corresponding group. Therefore, is able to define 8 groups and 32 events per group.

Trace events are binary data consisting of a trace header and its associated event data. Every trace header is made up of a ID and a timestamp. The number of bytes used by the timestamp is configurable by RKH_TRC_SIZEOF_TS (1, 2 or 4 bytes). After the timestamp follows the event data. The content and size of the data portion of a trace event is determined by the event ID. All types of events are stored in a single ring buffer, called trace stream, using a variable event size. In this manner the recorder always holds the most recent history. On the other hand, all data are stored in little-endian order (least significant byte first). Also, they are stored into the trace stream 1 byte at a time, thus avoiding any potential data misalignment problems.

Note
The timestamp is optional, thus it could be eliminated from the trace event in compile-time with RKH_CFG_TRC_TSTAMP_EN = 0.

Definition at line 1215 of file rkhtrc_define.h.

◆ RKH_TS_T

typedef rui32_t RKH_TS_T

Defines the size of trace timestamp.

The valid values [in bits] are 8, 16 or 32. Default is 16. This type is configurable via the RKH_CFGPORT_TRC_SIZEOF_TSTAMP preprocessor option.

Definition at line 1237 of file rkhtrc_define.h.

Enumeration Type Documentation

◆ RKH_TRC_FMT

Enumerates data formats recognized by Trazer.

Trazer uses this enumeration is used only internally for the formatted user data elements.

Enumerator
RKH_I8_T 

signed 8-bit integer format

RKH_UI8_T 

unsigned 8-bit integer format

RKH_I16_T 

signed 16-bit integer format

RKH_UI16_T 

unsigned 16-bit integer format

RKH_I32_T 

signed 32-bit integer format

RKH_UI32_T 

unsigned 16-bit integer format

RKH_X32_T 

signed 16-bit integer in hex format

RKH_STR_T 

zero-terminated ASCII string format

RKH_MEM_T 

up to 255-bytes memory block format

RKH_OBJ_T 

object pointer format

RKH_FUN_T 

function pointer format

RKH_ESIG_T 

event signal format

Definition at line 1165 of file rkhtrc_define.h.

◆ RKH_SUBTE_SM_EXE_ACT

Sub-event of RKH_TE_SM_EXE_ACT event.

Enumerator
RKH_SUBTE_SM_EXE_ACT_EFF 

Executes a behavior (action) of state machine, it could be an entry, exit, effect, init, preprocessor or guard.

RKH_SUBTE_SM_EXE_ACT_EN 

Executes a behavior (action) of state machine, it could be an entry, exit, effect, init, preprocessor or guard.

RKH_SUBTE_SM_EXE_ACT_EX 

Executes a behavior (action) of state machine, it could be an entry, exit, effect, init, preprocessor or guard.

RKH_SUBTE_SM_EXE_ACT_INI 

Executes a behavior (action) of state machine, it could be an entry, exit, effect, init, preprocessor or guard.

RKH_SUBTE_SM_EXE_ACT_PP 

Executes a behavior (action) of state machine, it could be an entry, exit, effect, init, preprocessor or guard.

RKH_SUBTE_SM_EXE_ACT_GRD 

Executes a behavior (action) of state machine, it could be an entry, exit, effect, init, preprocessor or guard.

Definition at line 1261 of file rkhtrc_define.h.