@@ -62,7 +62,7 @@ MSH_CMD_EXPORT(version, show RT-Thread version information);
6262
6363rt_inline void object_split (int len )
6464{
65- while (len -- ) rt_kprintf ("-" );
65+ while (len -- ) rt_kputs ("-" );
6666}
6767
6868typedef struct
@@ -165,7 +165,9 @@ long list_thread(void)
165165 rt_list_t * next = (rt_list_t * )RT_NULL ;
166166 const char * item_title = "thread" ;
167167 const size_t tcb_strlen = sizeof (void * ) * 2 + 2 ;
168+ #ifdef RT_USING_CPU_USAGE_TRACER
168169 const size_t usage_strlen = sizeof (void * ) + 1 ;
170+ #endif
169171 int maxlen ;
170172
171173 list_find_init (& find_arg , RT_Object_Class_Thread , obj_list , sizeof (obj_list ) / sizeof (obj_list [0 ]));
@@ -174,23 +176,41 @@ long list_thread(void)
174176 maxlen = RT_NAME_MAX ;
175177
176178#ifdef RT_USING_SMP
177- rt_kprintf ("%-*.*s cpu bind pri status sp stack size max used left tick error tcb addr usage\n" , maxlen , maxlen , item_title );
179+ rt_kprintf ("%-*.*s cpu bind pri status sp stack size max used left tick error tcb addr " , maxlen , maxlen , item_title );
180+ #ifdef RT_USING_CPU_USAGE_TRACER
181+ rt_kputs ("usage count last time" );
182+ #endif
183+ rt_kputs ("\n" );
178184 object_split (maxlen );
179- rt_kprintf (" --- ---- --- ------- ---------- ---------- ------ ---------- -------" );
180- rt_kprintf (" " );
185+ rt_kputs (" --- ---- --- ------- ---------- ---------- ------ ---------- ------- " );
181186 object_split (tcb_strlen );
182- rt_kprintf (" " );
187+ rt_kputs (" " );
188+ #ifdef RT_USING_CPU_USAGE_TRACER
183189 object_split (usage_strlen );
184- rt_kprintf ("\n" );
190+ rt_kputs (" " );
191+ object_split (8 );
192+ rt_kputs (" " );
193+ object_split (10 );
194+ #endif
195+ rt_kputs ("\n" );
185196#else
186- rt_kprintf ("%-*.*s pri status sp stack size max used left tick error tcb addr usage\n" , maxlen , maxlen , item_title );
197+ rt_kprintf ("%-*.*s pri status sp stack size max used left tick error tcb addr " , maxlen , maxlen , item_title );
198+ #ifdef RT_USING_CPU_USAGE_TRACER
199+ rt_kputs ("usage count last time" );
200+ #endif
201+ rt_kputs ("\n" );
187202 object_split (maxlen );
188- rt_kprintf (" --- ------- ---------- ---------- ------ ---------- -------" );
189- rt_kprintf (" " );
203+ rt_kputs (" --- ------- ---------- ---------- ------ ---------- ------- " );
190204 object_split (tcb_strlen );
191- rt_kprintf (" " );
205+ rt_kputs (" " );
206+ #ifdef RT_USING_CPU_USAGE_TRACER
192207 object_split (usage_strlen );
193- rt_kprintf ("\n" );
208+ rt_kputs (" " );
209+ object_split (8 );
210+ rt_kputs (" " );
211+ object_split (10 );
212+ #endif
213+ rt_kputs ("\n" );
194214#endif /*RT_USING_SMP*/
195215
196216 do
@@ -256,10 +276,9 @@ long list_thread(void)
256276 rt_strerror (thread -> error ),
257277 thread );
258278#ifdef RT_USING_CPU_USAGE_TRACER
259- rt_kprintf (" %3d%%\n" , rt_thread_get_usage (thread ));
260- #else
261- rt_kprintf (" N/A\n" );
279+ rt_kprintf (" %3d%%%8d%10d" , rt_thread_get_usage (thread ), thread -> ctx_count , thread -> ctx_last_time );
262280#endif
281+ rt_kprintf (" \n" );
263282#else
264283 ptr = (rt_uint8_t * )thread -> stack_addr ;
265284 while (* ptr == '#' ) ptr ++ ;
@@ -272,10 +291,9 @@ long list_thread(void)
272291 rt_strerror (thread -> error ),
273292 thread );
274293#ifdef RT_USING_CPU_USAGE_TRACER
275- rt_kprintf (" %3d%%\n" , rt_thread_get_usage (thread ));
276- #else
277- rt_kprintf (" N/A\n" );
294+ rt_kprintf (" %3d%%%8d%10d" , rt_thread_get_usage (thread ), thread -> ctx_count , thread -> ctx_last_time );
278295#endif
296+ rt_kputs ("\n" );
279297#endif
280298 }
281299 }
0 commit comments