Part Number:AM6412
我们修复了这个问题吗?我今天测试这个版本固件有这个问题,链接如下
PROCESSOR-SDK-J721E:R5F 上使用 100% CPU > FreeRTOS 应用程序(根据统计数据) – 处理器论坛 – 处理器 – TI E2E 支持论坛
wu wu:
AM6412的固件版本:mcu_plus_sdk_am64x_09_00_00_31
,
Shine:
最新的版本是09.01.00.39,如果还是这个问题,那就是还没修复。https://www.ti.com/tool/download/MCU-PLUS-SDK-AM64X
,
wu wu:
我看了关键代码mcu_plus_sdk_am64x_09_01_00_41\source\kernel\freertos\portable\TI_ARM_CLANG\ARM_CR5F\port.c 还是一样。请问这个有修复计划吗
,
Shine:
您现在用补丁修复可以吗?如果不可以的话,我需要去问一下产品线工程师。
,
wu wu:
补丁在哪里?
,
wu wu:
PROCESSOR-SDK-J721E那个是不同平台的,不能直接用
,
Shine:
麻烦发一下您的测试结果或log信息。
,
wu wu:
调用vTaskGetRunTimeStats,随着时间推移,会出现超过100%的CPU占用时间:
持续一段时间的数据,每隔2s打印出IDLE任务的CPU占用数据如下图:
,
Shine:
已咨询e2e产品线工程师,请关注下面帖子的回复。https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1315110/am6412-100-cpu-freertos
,
wu wu:
ok
,
Shine:
工程师还没回复,我去催一下。
,
Shine:
请问能发一下代码吗?方便我们工程师复现一下问题。Can you please share the sample code to reproduce the issue?
,
wu wu:
不行,看我这个任务数量,是个大工程,无法共享代码,不过测试是基于官方例程demo:EXAMPLES_ENET_LWIP_CPSW 进行构建的
,
Shine:
已跟进,请关注帖子的回复。
,
Shine:
如果无法共享代码,请告知相应的代码更改,以实现超过100%的CPU使用率。
,
wu wu:
void TaskIdle(void*v1,void *v2) {unsigned long idleTaskCounter=0;RTOS_log("goto idletask OK");while(1){char *printlist = pvPortMalloc(2048);//[2048];if(printlist==NULL) {RTOS_log("error @pvPortMalloc\r\n"); continue;}if(idleTaskCounter%(8*4)==0){RTOS_log("free/largest heap 2 = %d/%d i am a idletask...\r\n",__TI_heap_total_available(),__TI_heap_largest_available());//cpuRTOS_Log("CPU:\r\n");vTaskGetRunTimeStats(printlist);RTOS_Log("%s",printlist);}if(idleTaskCounter%(8*4)==4){//taskRTOS_Log("Task:\r\n");vTaskList (printlist);RTOS_Log("%s",printlist);}vTaskDelay(250);//idleTaskCounter++;vPortFree(printlist);} } void TaskIdle_creat() {_TaskParams params;params.stackstr = NULL;params.stackSize = 4096;params.taskname = "Task_Idle";params.priority = 5;RTOS_TaskCreat(TaskIdle, ¶ms, NULL);}可以把这个函数添加增加到main中:
然后持续观察4h以上,将打印的数据保存,作图后应该就可以发现
,
Shine:
已跟进,请关注帖子的回复。