uCOS内存管理
来源:互联网 发布:悟空crm 旗舰版 源码 编辑:程序博客网 时间:2024/04/30 07:28
ANSI C中,可以使用malloc()和free()两个函数来动态分配内存,在嵌入式系统中,一般不这么做。
uCOS中的内存管理是基于固定大小的存储块的分配和回收,相同大小的存储块链接在一起,组成若干组,比如8个字节的存储块为一组,16个字节的是另一组,当我们需要8个字节时,就从8个字节的组里Get拿出一个,用完后再Put回去,因为每次操作的都是固定大小的存储块,所以没有碎片的产生。
基本的使用方法
1.创建
INT8U Mem[BlockNum][BlockSize]; //要创建内存分区的大小
定义了一个内存分区,他包含BlockNum个内存块,每个内存块的长度为BlockSize.用来存储INT8U类型的数据
上面的定义只是在内存中划分出了分区即内存块区域,并没有动态分配内存区。
OS_MEM * Mem_Ptr = OSMemCreate(Mem, BlockNum, BlockSize, &err);/* 创建内存分区 */
2.从分区获取内存块
new_block_p = (block_t *)OSMemGet(CommRAMA_Ptr, &err);
获得内存块后,可以转换成你所要的存储类型
3.将内存块放回分区
OSMemPut(Mem_Ptr, new_block_p);
4.查询分区的状态
INT8U OSMemQuery(OS_MEM *pmem, OS_MEM_DATA *pdata)
该函数返回OS_MEM结构包含的信息,但使用了一个新的OS_MEM_DATA的数据结构,OS_MEM_DATA数据结构还包含了正被使用的内存块数目的域
- uCos的内存管理
- uCos的内存管理
- uCos的内存管理
- uCos的内存管理
- uCos-II内存管理
- uCOS内存管理
- ucos内存管理
- uCos的内存管理
- UCOS-II内存管理
- UCOS内存管理
- UCOS-II内存池管理
- 详解UCOS中的内存管理
- ucos内存管理 二维指针
- 详解UCOS中的内存管理
- 详解UCOS中的内存管理
- 详解UCOS中的内存管理
- ucos-ii示例7:内存管理测试
- UCOS-II的动态内存管理
- shell时间处理整理
- NAT(网络地址转换器)&UDP打洞
- ECSHOP因PHP版本导致的错误
- 安卓布局中的一点经验
- IntelliJ IDEA 配置SDK
- uCOS内存管理
- ios 横分割线 纵分割线
- TP3.2.3 无限极分类&&获取所有子分类包括自身
- Spring配置文件笔记
- μC/OS-II任务管理中的主要函数解析
- unity3d 第二天
- 第十八天:规划风险管理和识别风险
- Android Studio官方文档之创建可调整大小的位图
- MyBatis