搜索
bottom↓
回复: 27

大家怎么malloc数据?自己写malloc,还是库的?

[复制链接]

出615入1076汤圆

发表于 2021-11-9 15:33:04 | 显示全部楼层
SCREA 发表于 2021-11-9 14:43
之前一直被教导编译器的mallloc 容易碎片化,所以一直没用过。
您什么单片机用过编译器的malloc? ...

不用 malloc +1,非用不可就上 linux 了

除了碎片化問題,實時任務也絕對不允許使用 malloc

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出615入1076汤圆

发表于 2021-11-9 16:58:19 | 显示全部楼层
本帖最后由 dukelec 于 2021-11-9 17:18 编辑
SCREA 发表于 2021-11-9 16:21
您是不是遇到过坑点,能说下让大伙高兴高兴?


沒有啊

實時任務不允許使用 malloc 算是我的常識吧,即便是在實時 RT Preempt Linux 的用戶空間的實時任務,都不允許使用 malloc 的啊
對於很簡單的 mcu,沒有虛擬內存什麼的,理論上倒是可以用,只要確保有足夠的完整的剩餘內存就行
但是保證沒有碎片這一點本身就很困難

對於 mcu,本來 ram 就小,heap 的靜態數據和 stack 的動態數據把 ram 幾乎佔完了,heap 和 stack 之間還要留足夠的安全空間,沒空間給 malloc 做內存池了

一些需要 malloc 的場景,我會儘量用 鏈表 來代替,不擔心碎片化,同時也可以用於實時任務
即便發生忘記 free 的 bug,鏈表也比 malloc 更容易排錯

很複雜的需求,網絡、GUI 之類的,本來就是上 linux 更方便啊,很多用公司曾經用 MCU、小系統的項目,很早就開始轉用 linux 了,轉用的人越來越多
我和 cpu 原廠的人比較熟,所以比較清楚行業的這一轉變
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-2 15:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表