caicaptain2 发表于 2023-2-20 13:41:57

FreeRTOS与EventRecorder的内存需求冲突的案例

EventRecorder 需要的缓存是不能初始化的,需要定义这个内存区域为“NoInit”。
但是FreeRTOS的缓存(heap)是需要定义为初始化零的,否则会hardfault。

最近调试代码时,0x1000000处的ccm足够大,所以都分配给FreeRTOS和EventRecorder做缓存。
默认情况下,ccm是初始化零的。 EventRecorder经常不正常,把ccm改成“NoInit”后就正常了。
诡异的是,电路板在持续通电的时候,改“NoInit”后更新程序,FreeRTOS也是正常的。导致几天前调试的时候以为程序正常无误的。
几天后,再次调试的时候,电路板再次上电,程序在建立第一个任务时候就进入hardfault了,抑郁了好一会儿。

所以,在代码中同时启用FreeRTOS和EventRecorder时,一定要注意分配给不同的RAM区。


页: [1]
查看完整版本: FreeRTOS与EventRecorder的内存需求冲突的案例