MALLOC 始终返回 null
使用 Nucleo-F439ZI 和 STM32Cube IDE。中间件LWIP 和 CMSIS_OSv2。调用 malloc 时,返回 null。这部分应用程序所需的总字节数为 161。我的解决方法是声明一个 usigned char str。RTOS 堆设置为 50000。Project management 选项卡将 Minimum heap 设置为 0x200 并将 minimum stack 设置为 0x400。
实验了只有 5 个字符的 malloc。仍然返回 null。
这是什么原因导致的
堆空间不足导致的吧 建议用静态分配替代动态分配。 如果系统可用物理内存和虚拟内存都已被大量占用,无法满足新的内存分配请求,malloc就会返回null 可能是堆内存碎片化导致的。 检查LWIP 动态内存配置。 用互斥锁保护 malloc 调用,改用线程安全的内存分配器 需要使用RTOS里面的内存分配API。
页:
[1]