- 简述
- 在嵌入式系统中,内存分配应根据系统特点选择使用
- 动态内存分配算法:普通业务系统,动态内存上限取决于硬件,使用效率高
- 静态内存分配算法:可靠性非常高的系统,需要考虑内存上限,使用效率低
- uC/OS内存管理是采用内存池的方式进行管理
- 静态划分一大块连续空间做为内存管理的空间,内部划分若干块
- 使用的时候就从内存池中获取内存块,使用完将其放回
- 核心机制:
- 内存池的创建
- 分配
- 释放
- 在嵌入式系统中,内存分配应根据系统特点选择使用
- 存储空间分类:
- 内部存储空间:RAM(本节所讲)
- 外部存储空间:ROM
- 运行机制
- 内存池(Memory Pool)是一种用于分配大量大小相同的内存对象的技术,可以加快内存分配/释放的速度
- 系统编译时,编译器静态划分一个数组做为系统的内存池,将其分成大小相等的内存块,通过链表链接起来
- 先创建内存池才能使用内存块,
- 内存控制块
- 内存池名称
- 起始地址
- 空闲内存块列表
- 大小
- 内存块数量
- 空闲内存块数量
- 应用场景
- 在不确定数组应该有多大的时候,静态方法,会浪费大量的内存空间,有可能会引起下标越界
- uC/OS将系统静态分配的大数组做为内存池,然后分配固定大小的内存块
- 如果某个任务内存需求很大,只能按照最大的内存块分配
- 常用函数
【11】uC/OS-III应用开发————>RAM内存管理(STM32F767)
最新推荐文章于 2024-08-30 16:47:23 发布
本文深入探讨了uC/OS中的内存管理机制,包括内存池的创建、分配和释放过程,以及如何通过内存池提高内存分配和释放的效率。文章还提供了具体的代码示例,展示了如何在实际应用中使用uC/OS的内存管理函数。

最低0.47元/天 解锁文章
900

被折叠的 条评论
为什么被折叠?



