发新帖我要提问
12
返回列表
打印
[LKS32 软件]

为什么单片机上的程序不建议使用malloc?

[复制链接]
楼主: backlugin
手机看帖
扫描二维码
随时随地手机跟帖
21
adolphcocker| | 2025-3-15 00:03 | 只看该作者 回帖奖励 |倒序浏览
malloc 需要遍历空闲块或合并碎片,可能导致不可预测的执行时间

使用特权

评论回复
22
vivilyly| | 2025-3-15 03:07 | 只看该作者
大多数单片机的片上 RAM 非常有限,通常只有几 KB 或十几 KB,甚至更少。使用 malloc 进行动态内存分配可能会导致内存碎片,使得剩余的内存无法有效利用。

使用特权

评论回复
23
timfordlare| | 2025-3-15 07:33 | 只看该作者
内存泄漏在嵌入式系统中不易察觉,尤其在小内存场景下,可能引发随机故障。

使用特权

评论回复
24
youtome| | 2025-3-15 11:41 | 只看该作者
动态内存分配(如malloc)的延迟是不确定的,可能会因为内存分配失败或内存碎片问题导致程序的执行时间不稳定,甚至系统崩溃。因此,在这些应用中更倾向于使用静态内存分配或使用固定大小的内存池来避免这些问题。

使用特权

评论回复
25
星空魔法师| | 2025-3-19 19:56 | 只看该作者
难怪单片机上不建议用malloc,那有没有什么简单的办法可以检测内存碎片呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则