大家好,我正在使用搭载 FreeRTOS 的 PN7462AU 平台,SDK 示例已配置为使用 heap_3.c。我目前遇到了内存溢出问题,想更深入地了解堆的配置。
由于 heap_3 使用标准库中的 malloc()/free(),因此无法使用 xPortGetFreeHeapSize() 等函数以及堆统计信息。为了了解堆的使用情况,并可能增加可用堆空间,我尝试通过禁用 heap_3.c 来切换到 heap_4.c并启用 heap_4.c。然而,进行此项更改后,应用程序在启动时会卡住。
我有以下几个问题:
在 PN7462AU 上将 heap_3 切换为 heap_4 是否安全且值得推荐?
如何确定 heap_3 当前可用的内存量?
由于 heap_3 不支持 xportgetFreeHeapSize (),因此推荐使用哪些方法来监测堆使用情况和检测内存耗尽?
从 heap_3 迁移到 heap_4 时,还需要进行哪些额外的配置更改(例如 configTOTAL_HEAP_SIZE、链接器脚本更改、内存区域等)?
如果能提供关于 PN7462AU 和 FreeRTOS 的具体指导或示例,将不胜感激。
谢谢
你好@uday_gowda ,
NFC读取器库提供了示例,展示了如何使用 PN7462 实现 FreeRTOS,这可能会有所帮助。另外,我建议参阅AN11784 ,它提供了有关将 RTOS 与 PN7462 集成的指导,您可以参考该文档。
MCUXpresso IDE 还包含多个用于 FreeRTOS 应用程序的调试功能。特别是,“堆使用情况视图”可以帮到你。更多详情请参阅MCUXpresso IDE 25.06 FreeRTOS 调试指南第 3.6 章。
最后,请注意PN7462只有12k的SRAM。
BR
哈比卜