kernel/freertos: enable runtime status function. [2/3]

PD#SWPL-68240

Problem:
Add new fearture.

Solution:
Format the content of task_stats cli command.

Verify:
td401/td403

Change-Id: I18baa4f296c985e40c206aff6c68d3fbdd8b054e
Signed-off-by: Xiaohu.Huang <xiaohu.huang@amlogic.com>
diff --git a/tasks.c b/tasks.c
index 2932815..228e046 100644
--- a/tasks.c
+++ b/tasks.c
@@ -4439,6 +4439,8 @@
 	TaskStatus_t *pxTaskStatusArray;
 	UBaseType_t uxArraySize, x;
 	char cStatus;
+	uint32_t ulTotalTime, ulStatsAsPercentage;
+
 
 		/*
 		 * PLEASE NOTE:
@@ -4480,7 +4482,8 @@
 		if( pxTaskStatusArray != NULL )
 		{
 			/* Generate the (binary) data. */
-			uxArraySize = uxTaskGetSystemState( pxTaskStatusArray, uxArraySize, NULL );
+			uxArraySize = uxTaskGetSystemState( pxTaskStatusArray, uxArraySize, &ulTotalTime );
+			ulTotalTime /= 100UL;
 
 			/* Create a human readable table from the binary data. */
 			for( x = 0; x < uxArraySize; x++ )
@@ -4513,8 +4516,17 @@
 				can be printed in tabular form more easily. */
 				pcWriteBuffer = prvWriteNameToBuffer( pcWriteBuffer, pxTaskStatusArray[ x ].pcTaskName );
 
+
+				ulStatsAsPercentage = ulTotalTime == 0 ? 0 : pxTaskStatusArray[ x ].ulRunTimeCounter / ulTotalTime;
 				/* Write the rest of the string. */
-				sprintf( pcWriteBuffer, "\t\t%c\t%u\t\t%u\t\t%u\t\t%u\t\t%u\r\n", cStatus, ( unsigned int ) pxTaskStatusArray[ x ].uxCurrentPriority, ( unsigned int ) pxTaskStatusArray[ x ].usStackHighWaterMark, ( unsigned int ) pxTaskStatusArray[ x ].uStackTotal, ( unsigned int ) pxTaskStatusArray[ x ].xTaskNumber, ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter ); /*lint !e586 sprintf() allowed as this is compiled with many compilers and this is a utility function only - not part of the core kernel implementation. */
+				sprintf( pcWriteBuffer, "\t%u\t%c\t%u\t\t%u\t\t%u\t\t%u\t%u\t\r\n",
+					( unsigned int ) pxTaskStatusArray[ x ].xTaskNumber,
+					cStatus,
+					( unsigned int ) pxTaskStatusArray[ x ].uxCurrentPriority,
+					( unsigned int ) pxTaskStatusArray[ x ].uStackTotal,
+					( unsigned int ) pxTaskStatusArray[ x ].usStackHighWaterMark,
+					( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter,
+					( unsigned int ) ulStatsAsPercentage);
 				pcWriteBuffer += strlen( pcWriteBuffer ); /*lint !e9016 Pointer arithmetic ok on char pointers especially as in this case where it best denotes the intent of the code. */
 			}