@@ -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