QTools  8.0.1
Collection of Host-Based Tools
Loading...
Searching...
No Matches
qpc_qs.h File Reference

Go to the source code of this file.

Classes

class  QS
 
struct  QSpyId
 
struct  QS_Filter
 
struct  QS_TProbe
 
class  QHsmDummy
 
class  QActiveDummy
 

Macros

#define QS_INIT(arg_)
 
#define QS_EXIT()
 
#define QS_OUTPUT()
 
#define QS_RX_INPUT()
 
#define QS_GLB_FILTER(rec_)
 
#define QS_LOC_FILTER(qsId_)
 
#define QS_BEGIN_ID(rec_, qsId_)
 
#define QS_END()
 
#define QS_FLUSH()
 
#define QS_BEGIN_INCRIT(rec_, qsId_)
 
#define QS_END_INCRIT()
 
#define QS_GLB_CHECK_(rec_)
 
#define QS_LOC_CHECK_(qsId_)
 
#define QS_REC_DONE()
 
#define QS_I8(width_, data_)
 
#define QS_U8(width_, data_)
 
#define QS_I16(width_, data_)
 
#define QS_U16(width_, data_)
 
#define QS_I32(width_, data_)
 
#define QS_U32(width_, data_)
 
#define QS_I64(width_, data_)
 
#define QS_U64(width_, data_)
 
#define QS_F32(width_, data_)
 
#define QS_F64(width_, data_)
 
#define QS_STR(str_)
 
#define QS_MEM(mem_, size_)
 
#define QS_ENUM(group_, value_)
 
#define QS_TIME_PRE()
 
#define QS_SIG(sig_, obj_)
 
#define QS_SIG_DICTIONARY(sig_, obj_)
 
#define QS_OBJ_DICTIONARY(obj_)
 
#define QS_OBJ_ARR_DICTIONARY(obj_, idx_)
 
#define QS_FUN_DICTIONARY(fun_)
 
#define QS_USR_DICTIONARY(rec_)
 
#define QS_ENUM_DICTIONARY(value_, group_)
 
#define QS_RX_PUT(b_)
 
#define QS_TR_CRIT_ENTRY()
 
#define QS_TR_CRIT_EXIT()
 
#define QS_TR_ISR_ENTRY(isrnest, prio)
 
#define QS_ONLY(code_)
 
#define QS_ASSERTION(module_, id_, delay_)
 
#define QS_EOD   ((uint16_t)0xFFFFU)
 
#define QS_CMD   ((uint8_t)7U)
 
#define QS_HEX_FMT   ((uint8_t)0x0FU)
 
#define QS_CRIT_STAT   QF_CRIT_STAT
 
#define QS_CRIT_ENTRY()
 
#define QS_CRIT_EXIT()
 
#define QS_MEM_SYS()
 
#define QS_MEM_APP()
 
#define QUTEST_ON_POST   124
 
#define QS_TEST_PROBE_DEF(fun_)
 
#define QS_TEST_PROBE(code_)
 
#define QS_TEST_PROBE_ID(id_, code_)
 
#define QS_TEST_PAUSE()
 

Typedefs

typedef uint32_t QSTimeCtr
 

Enumerations

enum  QS_preType {
  QS_I8_ENUM_T , QS_U8_T , QS_I16_T , QS_U16_T ,
  QS_I32_T , QS_U32_T , QS_F32_T , QS_F64_T ,
  QS_STR_T , QS_MEM_T , QS_SIG_T , QS_OBJ_T ,
  QS_FUN_T , QS_I64_T , QS_U64_T
}
 Enumerates data elements for app-specific trace records. More...
 

Functions

void QS_TR_ISR_EXIT (uint_fast8_t isrnest, uint_fast8_t prio)
 

Macro Definition Documentation

◆ QS_INIT

#define QS_INIT ( arg_)
Value:
(QS_onStartup(arg_))

Definition at line 314 of file qpc_qs.h.

◆ QS_EXIT

#define QS_EXIT ( )
Value:
(QS_onCleanup())

Definition at line 317 of file qpc_qs.h.

◆ QS_OUTPUT

#define QS_OUTPUT ( )
Value:
(QS_output())

Definition at line 320 of file qpc_qs.h.

◆ QS_RX_INPUT

#define QS_RX_INPUT ( )
Value:
(QS_rx_input())

Definition at line 323 of file qpc_qs.h.

◆ QS_GLB_FILTER

#define QS_GLB_FILTER ( rec_)
Value:
(QS_glbFilter_((int_fast16_t)(rec_)))

Definition at line 326 of file qpc_qs.h.

◆ QS_LOC_FILTER

#define QS_LOC_FILTER ( qsId_)
Value:
(QS_locFilter_((int_fast16_t)(qsId_)))

Definition at line 329 of file qpc_qs.h.

◆ QS_BEGIN_ID

#define QS_BEGIN_ID ( rec_,
qsId_ )
Value:
if (QS_GLB_CHECK_(rec_) && QS_LOC_CHECK_(qsId_)) { \
QS_CRIT_STAT \
QS_CRIT_ENTRY(); \
QS_MEM_SYS(); \
QS_beginRec_((uint_fast8_t)(rec_)); \
QS_TIME_PRE(); {
#define QS_GLB_CHECK_(rec_)
Definition qpc_qs.h:362
#define QS_LOC_CHECK_(qsId_)
Definition qpc_qs.h:367

Definition at line 332 of file qpc_qs.h.

◆ QS_END

#define QS_END ( )
Value:
} \
QS_endRec_(); \
QS_MEM_APP(); \
QS_CRIT_EXIT(); \
}

Definition at line 341 of file qpc_qs.h.

◆ QS_FLUSH

#define QS_FLUSH ( )
Value:
(QS_onFlush())

Definition at line 348 of file qpc_qs.h.

◆ QS_BEGIN_INCRIT

#define QS_BEGIN_INCRIT ( rec_,
qsId_ )
Value:
if (QS_GLB_CHECK_(rec_) && QS_LOC_CHECK_(qsId_)) { \
QS_beginRec_((uint_fast8_t)(rec_)); \
QS_TIME_PRE(); {

Definition at line 351 of file qpc_qs.h.

◆ QS_END_INCRIT

#define QS_END_INCRIT ( )
Value:
} \
QS_endRec_(); \
}

Definition at line 357 of file qpc_qs.h.

◆ QS_GLB_CHECK_

#define QS_GLB_CHECK_ ( rec_)
Value:
(((uint_fast8_t)QS_filt_.glb[(uint_fast8_t)(rec_) >> 3U] \
& ((uint_fast8_t)1U << ((uint_fast8_t)(rec_) & 7U))) != 0U)

Definition at line 362 of file qpc_qs.h.

◆ QS_LOC_CHECK_

#define QS_LOC_CHECK_ ( qsId_)
Value:
(((uint_fast8_t)QS_filt_.loc[(uint_fast8_t)(qsId_) >> 3U] \
& ((uint_fast8_t)1U << ((uint_fast8_t)(qsId_) & 7U))) != 0U)

Definition at line 367 of file qpc_qs.h.

◆ QS_REC_DONE

#define QS_REC_DONE ( )
Value:
((void)0)

Definition at line 373 of file qpc_qs.h.

◆ QS_I8

#define QS_I8 ( width_,
data_ )
Value:
(QS_u8_fmt_((uint8_t)(((width_) << 4U) & 0x7U) | (uint8_t)QS_I8_ENUM_T, \
(data_)))
@ QS_I8_ENUM_T
signed 8-bit integer or enum format
Definition qpc_qs.h:638

Definition at line 377 of file qpc_qs.h.

◆ QS_U8

#define QS_U8 ( width_,
data_ )
Value:
(QS_u8_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_U8_T, (data_)))
@ QS_U8_T
unsigned 8-bit integer format
Definition qpc_qs.h:639

Definition at line 382 of file qpc_qs.h.

◆ QS_I16

#define QS_I16 ( width_,
data_ )
Value:
(QS_u16_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_I16_T, (data_)))
@ QS_I16_T
signed 16-bit integer format
Definition qpc_qs.h:640

Definition at line 386 of file qpc_qs.h.

◆ QS_U16

#define QS_U16 ( width_,
data_ )
Value:
(QS_u16_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_U16_T, (data_)))
@ QS_U16_T
unsigned 16-bit integer format
Definition qpc_qs.h:641

Definition at line 390 of file qpc_qs.h.

◆ QS_I32

#define QS_I32 ( width_,
data_ )
Value:
(QS_u32_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_I32_T, (data_)))
@ QS_I32_T
signed 32-bit integer format
Definition qpc_qs.h:642

Definition at line 394 of file qpc_qs.h.

◆ QS_U32

#define QS_U32 ( width_,
data_ )
Value:
(QS_u32_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_U32_T, (data_)))
@ QS_U32_T
unsigned 32-bit integer format
Definition qpc_qs.h:643

Definition at line 398 of file qpc_qs.h.

◆ QS_I64

#define QS_I64 ( width_,
data_ )
Value:
(QS_u64_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_I64_T, (data_)))
@ QS_I64_T
signed 64-bit integer format
Definition qpc_qs.h:651

Definition at line 402 of file qpc_qs.h.

◆ QS_U64

#define QS_U64 ( width_,
data_ )
Value:
(QS_u64_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_U64_T, (data_)))
@ QS_U64_T
unsigned 64-bit integer format
Definition qpc_qs.h:652

Definition at line 406 of file qpc_qs.h.

◆ QS_F32

#define QS_F32 ( width_,
data_ )
Value:
(QS_f32_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_F32_T, (data_)))
@ QS_F32_T
32-bit floating point format
Definition qpc_qs.h:644

Definition at line 410 of file qpc_qs.h.

◆ QS_F64

#define QS_F64 ( width_,
data_ )
Value:
(QS_f64_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_F64_T, (data_)))
@ QS_F64_T
64-bit floating point format
Definition qpc_qs.h:645

Definition at line 414 of file qpc_qs.h.

◆ QS_STR

#define QS_STR ( str_)
Value:
(QS_str_fmt_((str_)))

Definition at line 418 of file qpc_qs.h.

◆ QS_MEM

#define QS_MEM ( mem_,
size_ )
Value:
(QS_mem_fmt_((mem_), (size_)))

Definition at line 421 of file qpc_qs.h.

◆ QS_ENUM

#define QS_ENUM ( group_,
value_ )
Value:
(QS_u8_fmt_((uint8_t)(0x80U | ((group_) << 4U)) | (uint8_t)QS_I8_ENUM_T,\
(uint8_t)(value_)))

Definition at line 424 of file qpc_qs.h.

◆ QS_TIME_PRE

#define QS_TIME_PRE ( )
Value:
(QS_u32_raw_(QS_onGetTime()))

Definition at line 435 of file qpc_qs.h.

◆ QS_SIG

#define QS_SIG ( sig_,
obj_ )
Value:
QS_u16_fmt_(QS_SIG_T, (sig_)); \
QS_obj_raw_(obj_)
@ QS_SIG_T
event signal format
Definition qpc_qs.h:648

Definition at line 477 of file qpc_qs.h.

◆ QS_SIG_DICTIONARY

#define QS_SIG_DICTIONARY ( sig_,
obj_ )
Value:
(QS_sig_dict_pre_((QSignal)(sig_), (obj_), #sig_))
uint16_t QSignal
Definition qspy.h:34

Definition at line 490 of file qpc_qs.h.

◆ QS_OBJ_DICTIONARY

#define QS_OBJ_DICTIONARY ( obj_)
Value:
(QS_obj_dict_pre_((obj_), #obj_))

Definition at line 494 of file qpc_qs.h.

◆ QS_OBJ_ARR_DICTIONARY

#define QS_OBJ_ARR_DICTIONARY ( obj_,
idx_ )
Value:
(QS_obj_arr_dict_pre_((obj_), (idx_), #obj_))

Definition at line 498 of file qpc_qs.h.

◆ QS_FUN_DICTIONARY

#define QS_FUN_DICTIONARY ( fun_)
Value:
(QS_fun_dict_pre_((void (*)(void))(fun_), #fun_))

Definition at line 502 of file qpc_qs.h.

◆ QS_USR_DICTIONARY

#define QS_USR_DICTIONARY ( rec_)
Value:
(QS_usr_dict_pre_((rec_), #rec_))

Definition at line 506 of file qpc_qs.h.

◆ QS_ENUM_DICTIONARY

#define QS_ENUM_DICTIONARY ( value_,
group_ )
Value:
(QS_enum_dict_pre_((value_), (group_), #value_))

Definition at line 510 of file qpc_qs.h.

◆ QS_RX_PUT

#define QS_RX_PUT ( b_)
Value:
(QS_rxPut((b_)))

Definition at line 514 of file qpc_qs.h.

◆ QS_TR_CRIT_ENTRY

#define QS_TR_CRIT_ENTRY ( )

Definition at line 517 of file qpc_qs.h.

◆ QS_TR_CRIT_EXIT

#define QS_TR_CRIT_EXIT ( )

Definition at line 520 of file qpc_qs.h.

◆ QS_TR_ISR_ENTRY

#define QS_TR_ISR_ENTRY ( isrnest,
prio )
Value:
do { \
QS_BEGIN_PRE(QS_QF_ISR_ENTRY, 0U) \
QS_TIME_PRE(); \
QS_2u8_raw_(isrnest, prio); \
QS_END_PRE() \
}
@ QS_QF_ISR_ENTRY
an ISR was entered
Definition qpc_qs.h:121

Definition at line 523 of file qpc_qs.h.

◆ QS_ONLY

#define QS_ONLY ( code_)
Value:
(code_)

Definition at line 536 of file qpc_qs.h.

◆ QS_ASSERTION

#define QS_ASSERTION ( module_,
id_,
delay_ )
Value:
(QS_assertion_pre_((module_), (id_), (delay_)))

Definition at line 539 of file qpc_qs.h.

◆ QS_EOD

#define QS_EOD   ((uint16_t)0xFFFFU)

Definition at line 543 of file qpc_qs.h.

◆ QS_CMD

#define QS_CMD   ((uint8_t)7U)

Definition at line 546 of file qpc_qs.h.

◆ QS_HEX_FMT

#define QS_HEX_FMT   ((uint8_t)0x0FU)

Definition at line 549 of file qpc_qs.h.

◆ QS_CRIT_STAT

#define QS_CRIT_STAT   QF_CRIT_STAT

Definition at line 553 of file qpc_qs.h.

◆ QS_CRIT_ENTRY

#define QS_CRIT_ENTRY ( )
Value:
QF_CRIT_ENTRY()

Definition at line 558 of file qpc_qs.h.

◆ QS_CRIT_EXIT

#define QS_CRIT_EXIT ( )
Value:
QF_CRIT_EXIT()

Definition at line 563 of file qpc_qs.h.

◆ QS_MEM_SYS

#define QS_MEM_SYS ( )
Value:
QF_MEM_SYS()

Definition at line 568 of file qpc_qs.h.

◆ QS_MEM_APP

#define QS_MEM_APP ( )
Value:
QF_MEM_APP()

Definition at line 573 of file qpc_qs.h.

◆ QUTEST_ON_POST

#define QUTEST_ON_POST   124

Definition at line 728 of file qpc_qs.h.

◆ QS_TEST_PROBE_DEF

#define QS_TEST_PROBE_DEF ( fun_)
Value:
uint32_t const qs_tp_ = QS_getTestProbe_((void (*)(void))(fun_));

Definition at line 842 of file qpc_qs.h.

◆ QS_TEST_PROBE

#define QS_TEST_PROBE ( code_)
Value:
if (qs_tp_ != 0U) { code_ }

Definition at line 845 of file qpc_qs.h.

◆ QS_TEST_PROBE_ID

#define QS_TEST_PROBE_ID ( id_,
code_ )
Value:
if (qs_tp_ == (uint32_t)(id_)) { code_ }

Definition at line 848 of file qpc_qs.h.

◆ QS_TEST_PAUSE

#define QS_TEST_PAUSE ( )
Value:
(QS_test_pause_())

Definition at line 851 of file qpc_qs.h.

Typedef Documentation

◆ QSTimeCtr

typedef uint32_t QSTimeCtr

Definition at line 294 of file qpc_qs.h.

Enumeration Type Documentation

◆ QS_preType

enum QS_preType

Enumerates data elements for app-specific trace records.

Enumerator
QS_I8_ENUM_T 

signed 8-bit integer or enum format

QS_U8_T 

unsigned 8-bit integer format

QS_I16_T 

signed 16-bit integer format

QS_U16_T 

unsigned 16-bit integer format

QS_I32_T 

signed 32-bit integer format

QS_U32_T 

unsigned 32-bit integer format

QS_F32_T 

32-bit floating point format

QS_F64_T 

64-bit floating point format

QS_STR_T 

zero-terminated ASCII string format

QS_MEM_T 

up to 255-bytes memory block format

QS_SIG_T 

event signal format

QS_OBJ_T 

object pointer format

QS_FUN_T 

function pointer format

QS_I64_T 

signed 64-bit integer format

QS_U64_T 

unsigned 64-bit integer format

Definition at line 637 of file qpc_qs.h.

Function Documentation

◆ QS_TR_ISR_EXIT()

void QS_TR_ISR_EXIT ( uint_fast8_t isrnest,
uint_fast8_t prio )