硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2666|回复: 2
收起左侧

[有问必答] stm32不使用os,有没有动态申请内存没什么碎片的方法

[复制链接]

5

主题

14

回帖

75

积分

初级会员

积分
75
发表于 2017-8-28 22:58:24 | 显示全部楼层 |阅读模式
如题,malloc貌似不好使,裸机状态有什么方法能开辟动态内存又没什么碎片么?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107034
QQ
发表于 2017-8-29 02:45:17 | 显示全部楼层
动态内存必然有有碎片化的,因为每次申请的大小都是随机的,不像uCOS那种的动态内存管理,就是个数组管理,每次申请的大小都是固定的。

用户要做的就是降低碎片问题。每次申请用完后,及时释放。
回复

使用道具 举报

0

主题

105

回帖

105

积分

初级会员

积分
105
发表于 2017-8-29 09:43:52 | 显示全部楼层
用连续的内存分块来做,每次申请的实际内存为“内存块大小*内存块数”,把内存块大小设置为你常用的申请大小大一点点(注意对齐),会有一定的空间浪费,但不至于出现很多小的碎片
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 07:22 , Processed in 0.160455 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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