@@ -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
@@ -201,9 +219,9 @@ long list_thread(void)
201219 for (i = 0 ; i < find_arg .nr_out ; i ++ )
202220 {
203221 struct rt_object * obj ;
204- struct rt_thread thread_info , * thread ;
222+ struct rt_thread thread_info , * thread ;
205223
206- obj = rt_list_entry (obj_list [i ], struct rt_object , list );
224+ obj = rt_list_entry (obj_list [i ], struct rt_object , list );
207225 level = rt_spin_lock_irqsave (& info -> spinlock );
208226
209227 if ((obj -> type & ~RT_Object_Class_Static ) != find_arg .type )
@@ -217,7 +235,7 @@ long list_thread(void)
217235
218236 thread = (struct rt_thread * )obj ;
219237 {
220- rt_uint8_t stat ;
238+ rt_uint8_t stat ;
221239 rt_uint8_t * ptr ;
222240
223241#ifdef RT_USING_SMP
@@ -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