@@ -62,7 +62,7 @@ MSH_CMD_EXPORT(version, show RT-Thread version information);
62
62
63
63
rt_inline void object_split (int len )
64
64
{
65
- while (len -- ) rt_kprintf ("-" );
65
+ while (len -- ) rt_kputs ("-" );
66
66
}
67
67
68
68
typedef struct
@@ -165,7 +165,9 @@ long list_thread(void)
165
165
rt_list_t * next = (rt_list_t * )RT_NULL ;
166
166
const char * item_title = "thread" ;
167
167
const size_t tcb_strlen = sizeof (void * ) * 2 + 2 ;
168
+ #ifdef RT_USING_CPU_USAGE_TRACER
168
169
const size_t usage_strlen = sizeof (void * ) + 1 ;
170
+ #endif
169
171
int maxlen ;
170
172
171
173
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)
174
176
maxlen = RT_NAME_MAX ;
175
177
176
178
#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" );
178
184
object_split (maxlen );
179
- rt_kprintf (" --- ---- --- ------- ---------- ---------- ------ ---------- -------" );
180
- rt_kprintf (" " );
185
+ rt_kputs (" --- ---- --- ------- ---------- ---------- ------ ---------- ------- " );
181
186
object_split (tcb_strlen );
182
- rt_kprintf (" " );
187
+ rt_kputs (" " );
188
+ #ifdef RT_USING_CPU_USAGE_TRACER
183
189
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" );
185
196
#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" );
187
202
object_split (maxlen );
188
- rt_kprintf (" --- ------- ---------- ---------- ------ ---------- -------" );
189
- rt_kprintf (" " );
203
+ rt_kputs (" --- ------- ---------- ---------- ------ ---------- ------- " );
190
204
object_split (tcb_strlen );
191
- rt_kprintf (" " );
205
+ rt_kputs (" " );
206
+ #ifdef RT_USING_CPU_USAGE_TRACER
192
207
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" );
194
214
#endif /*RT_USING_SMP*/
195
215
196
216
do
@@ -256,10 +276,9 @@ long list_thread(void)
256
276
rt_strerror (thread -> error ),
257
277
thread );
258
278
#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 );
262
280
#endif
281
+ rt_kprintf (" \n" );
263
282
#else
264
283
ptr = (rt_uint8_t * )thread -> stack_addr ;
265
284
while (* ptr == '#' ) ptr ++ ;
@@ -272,10 +291,9 @@ long list_thread(void)
272
291
rt_strerror (thread -> error ),
273
292
thread );
274
293
#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 );
278
295
#endif
296
+ rt_kputs ("\n" );
279
297
#endif
280
298
}
281
299
}
0 commit comments