@@ -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
@@ -174,23 +174,41 @@ long list_thread(void)
174174 maxlen = RT_NAME_MAX ;
175175
176176#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 );
177+ rt_kprintf ("%-*.*s cpu bind pri status sp stack size max used left tick error tcb addr " , maxlen , maxlen , item_title );
178+ #ifdef RT_USING_CPU_USAGE_TRACER
179+ rt_kputs ("usage count last time" );
180+ #endif
181+ rt_kputs ("\n" );
178182 object_split (maxlen );
179- rt_kprintf (" --- ---- --- ------- ---------- ---------- ------ ---------- -------" );
180- rt_kprintf (" " );
183+ rt_kputs (" --- ---- --- ------- ---------- ---------- ------ ---------- ------- " );
181184 object_split (tcb_strlen );
182- rt_kprintf (" " );
185+ rt_kputs (" " );
186+ #ifdef RT_USING_CPU_USAGE_TRACER
183187 object_split (usage_strlen );
184- rt_kprintf ("\n" );
188+ rt_kputs (" " );
189+ object_split (8 );
190+ rt_kputs (" " );
191+ object_split (10 );
192+ #endif
193+ rt_kputs ("\n" );
185194#else
186- rt_kprintf ("%-*.*s pri status sp stack size max used left tick error tcb addr usage\n" , maxlen , maxlen , item_title );
195+ rt_kprintf ("%-*.*s pri status sp stack size max used left tick error tcb addr " , maxlen , maxlen , item_title );
196+ #ifdef RT_USING_CPU_USAGE_TRACER
197+ rt_kputs ("usage count last time" );
198+ #endif
199+ rt_kputs ("\n" );
187200 object_split (maxlen );
188- rt_kprintf (" --- ------- ---------- ---------- ------ ---------- -------" );
189- rt_kprintf (" " );
201+ rt_kputs (" --- ------- ---------- ---------- ------ ---------- ------- " );
190202 object_split (tcb_strlen );
191- rt_kprintf (" " );
203+ rt_kputs (" " );
204+ #ifdef RT_USING_CPU_USAGE_TRACER
192205 object_split (usage_strlen );
193- rt_kprintf ("\n" );
206+ rt_kputs (" " );
207+ object_split (8 );
208+ rt_kputs (" " );
209+ object_split (10 );
210+ #endif
211+ rt_kputs ("\n" );
194212#endif /*RT_USING_SMP*/
195213
196214 do
@@ -256,26 +274,24 @@ long list_thread(void)
256274 rt_strerror (thread -> error ),
257275 thread );
258276#ifdef RT_USING_CPU_USAGE_TRACER
259- rt_kprintf (" %3d%%\n" , rt_thread_get_usage (thread ));
260- #else
261- rt_kprintf (" N/A\n" );
277+ rt_kprintf (" %3d%%%8d%10d" , rt_thread_get_usage (thread ), thread -> ctx_count , thread -> ctx_last_time );
262278#endif
279+ rt_kprintf (" \n" );
263280#else
264281 ptr = (rt_uint8_t * )thread -> stack_addr ;
265282 while (* ptr == '#' ) ptr ++ ;
266283 rt_kprintf (" 0x%08x 0x%08x %02d%% 0x%08x %s %p" ,
267284 thread -> stack_size + ((rt_ubase_t )thread -> stack_addr - (rt_ubase_t )thread -> sp ),
268285 thread -> stack_size ,
269286 (thread -> stack_size - ((rt_ubase_t ) ptr - (rt_ubase_t ) thread -> stack_addr )) * 100
270- / thread -> stack_size ,
287+ / thread -> stack_size ,
271288 RT_SCHED_PRIV (thread ).remaining_tick ,
272289 rt_strerror (thread -> error ),
273290 thread );
274291#ifdef RT_USING_CPU_USAGE_TRACER
275- rt_kprintf (" %3d%%\n" , rt_thread_get_usage (thread ));
276- #else
277- rt_kprintf (" N/A\n" );
292+ rt_kprintf (" %3d%%%8d%10d" , rt_thread_get_usage (thread ), thread -> ctx_count , thread -> ctx_last_time );
278293#endif
294+ rt_kputs ("\n" );
279295#endif
280296 }
281297 }
0 commit comments