Przeglądaj źródła

RTX5: enhanced event EvrRtxThreadCreated (added name)

Robert Rostohar 7 lat temu
rodzic
commit
f28ad45337

+ 1 - 1
CMSIS/DoxyGen/RTOS2/src/rtx_evr.txt

@@ -353,7 +353,7 @@ In case when \ref osThreadAttr_t "thread attributes" are provided in the API cal
 */
 
 /**
-\fn void EvrRtxThreadCreated (osThreadId_t thread_id, uint32_t thread_addr)
+\fn void EvrRtxThreadCreated (osThreadId_t thread_id, uint32_t thread_addr, const char *name)
 \details
 The event \b ThreadCreated is generated when the function \ref osThreadNew successfully creates a thread object.
 

+ 3 - 2
CMSIS/RTOS2/RTX/Include/rtx_evr.h

@@ -408,11 +408,12 @@ extern void EvrRtxThreadNew (osThreadFunc_t func, void *argument, const osThread
   \brief  Event on successful thread create (Op)
   \param[in]  thread_id     thread ID obtained by \ref osThreadNew or \ref osThreadGetId.
   \param[in]  thread_addr   thread entry address.
+  \param[in]  name          pointer to thread object name.
 */
 #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_CREATED_DISABLE))
-extern void EvrRtxThreadCreated (osThreadId_t thread_id, uint32_t thread_addr);
+extern void EvrRtxThreadCreated (osThreadId_t thread_id, uint32_t thread_addr, const char *name);
 #else
-#define EvrRtxThreadCreated(thread_id, thread_addr)
+#define EvrRtxThreadCreated(thread_id, thread_addr, name)
 #endif
 
 /**

+ 1 - 0
CMSIS/RTOS2/RTX/RTX5.scvd

@@ -1522,6 +1522,7 @@
     <event id="0xF200 + 0x01" level="API"    property="ThreadNew"                                                                         value="func=%S[val1], argument=%x[val2], attr=%x[val3]" info="osThreadNew function was called."/>
     <event id="0xF200 + 0x02" level="Detail" property="ThreadNew"                                                                         value="name=%x[val1.name], attr_bits=%x[val1.attr_bits], cb_mem=%x[val1.cb_mem], cb_size=%d[val1.cb_size], stack_mem=%x[val1.stack_mem], stack_size=%d[val1.stack_size], priority=%E[val7, rtx_th_priority:id]" val1="osThreadAttr_t" info="Attributes structure for thread object."/>
     <event id="0xF200 + 0x03" level="Op"     property="ThreadCreated"    tracking="Start" state="Ready"    handle="val1" hname="%S[val2]" value="thread_id=%x[val1]" info="Thread object was created."/>
+    <event id="0xF200 + 0x2C" level="Op"     property="ThreadCreated"    tracking="Start" state="Ready"    handle="val1" hname="%N[val2]" value="thread_id=%x[val1]" info="Thread object was created."/>
     <event id="0xF200 + 0x04" level="API"    property="ThreadGetName"                                                                     value="thread_id=%x[val1], name=%N[val2]" info="osThreadGetName function was called and object name was retrieved."/>
     <event id="0xF200 + 0x06" level="API"    property="ThreadGetId"                                                                       value="thread_id=%x[val1]" info="osThreadGetId function was called and current running thread id was retrieved."/>
     <event id="0xF200 + 0x07" level="API"    property="ThreadGetState"                                                                    value="thread_id=%x[val1], state=%E[val2, rtx_th_state:id]" info="osThreadGetState function was called and thread state was retrieved."/>

+ 9 - 3
CMSIS/RTOS2/RTX/Source/rtx_evr.c

@@ -67,7 +67,8 @@
 #define EvtRtxThreadError                   EventID(EventLevelError,  EvtRtxThreadNo, 0x00U)
 #define EvtRtxThreadNew                     EventID(EventLevelAPI,    EvtRtxThreadNo, 0x01U)
 #define EvtRtxThreadNew_Detail              EventID(EventLevelDetail, EvtRtxThreadNo, 0x02U)
-#define EvtRtxThreadCreated                 EventID(EventLevelOp,     EvtRtxThreadNo, 0x03U)
+#define EvtRtxThreadCreated_Addr            EventID(EventLevelOp,     EvtRtxThreadNo, 0x03U)
+#define EvtRtxThreadCreated_Name            EventID(EventLevelOp,     EvtRtxThreadNo, 0x2CU)
 #define EvtRtxThreadGetName                 EventID(EventLevelAPI,    EvtRtxThreadNo, 0x04U)
 #define EvtRtxThreadGetId                   EventID(EventLevelAPI,    EvtRtxThreadNo, 0x06U)
 #define EvtRtxThreadGetState                EventID(EventLevelAPI,    EvtRtxThreadNo, 0x07U)
@@ -551,12 +552,17 @@ __WEAK void EvrRtxThreadNew (osThreadFunc_t func, void *argument, const osThread
 #endif
 
 #if (!defined(EVR_RTX_DISABLE) && (OS_EVR_THREAD != 0) && !defined(EVR_RTX_THREAD_CREATED_DISABLE))
-__WEAK void EvrRtxThreadCreated (osThreadId_t thread_id, uint32_t thread_addr) {
+__WEAK void EvrRtxThreadCreated (osThreadId_t thread_id, uint32_t thread_addr, const char *name) {
 #if defined(RTE_Compiler_EventRecorder)
-  (void)EventRecord2(EvtRtxThreadCreated, (uint32_t)thread_id, thread_addr);
+  if (name != NULL) {
+    (void)EventRecord2(EvtRtxThreadCreated_Name, (uint32_t)thread_id, (uint32_t)name);
+  } else {
+    (void)EventRecord2(EvtRtxThreadCreated_Addr, (uint32_t)thread_id, thread_addr);
+  }
 #else
   (void)thread_id;
   (void)thread_addr;
+  (void)name;
 #endif
 }
 #endif

+ 1 - 1
CMSIS/RTOS2/RTX/Source/rtx_thread.c

@@ -816,7 +816,7 @@ static osThreadId_t svcRtxThreadNew (osThreadFunc_t func, void *argument, const
     // Register post ISR processing function
     osRtxInfo.post_process.thread = osRtxThreadPostProcess;
 
-    EvrRtxThreadCreated(thread, thread->thread_addr);
+    EvrRtxThreadCreated(thread, thread->thread_addr, thread->name);
   } else {
     EvrRtxThreadError(NULL, (int32_t)osErrorNoMemory);
   }