YTM32B1HA0 Freertos中使用 Flexcan时,要注意将configTOTAL_HEAP_SIZE调大。
-
- 在调用SDK的FLEXCAN_DRV_Init时,会为每个mailbox都进行信号量的创建。
- YTM32B1HA0的CAN0和CAN1,mailbox都会有128个。
- 测试每个信号量占用heap空间88Bytes(gcc -O1)
- 初始化一个Can实例会占用掉 88*128=11264Bytes 的Heap空间。
SDK默认的Freertos Demo中configTOTAL_HEAP_SIZE只有8KBytes,需注意要适当调大,以满足任务栈及其他的空间占用。
测试方法:
size_t heap_before = xPortGetFreeHeapSize(); FLEXCAN_DRV_Init(0,&flexcanInitConfig0_State,&flexcanInitConfig0); size_t heap_after = xPortGetFreeHeapSize(); size_t heap_used = heap_before - heap_after; PRINTF("Heap used by the function: %d bytes\n", heap_used);
发帖前请查看
帮助没办法联网的电脑使用YCT
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...