19.1-uC/OS-III内存管理应用
2024-10-16 13:56:16
一个处理器,在不断地分配和释放内存的过程中,一整块连续的内存被分散为很多离散的小块内存, 这些叫做内存碎片,
内存碎片过多会导致内存的浪费。 uC/OS 的内存管理机制就是为了尽量减少内存碎片。大致的思路是一次性取出一个较大
的内存分区,把这个内存分区分成若干个内存块,然后将内存块逐个串成单向链表。每次要用到内存块就从内存分区中取出一块,
用完就放回去。这跟消息队列的消息池的使用原理是一样的。
1.使能
如果想要使用内存管理机制,就必须事先使能内存管理。内存管理的使能位于“os_cfg.h”。
2.OSMemCreate ()
要使用 uC/OS 的内存管理必须先声明和创建内存管理对象,调用 OSMemCreate () 函数
可以创建一个内存管理对象。 注意, 内存分区一经创建便不能删除,系统没有提供相应的删
除函数。OSMemCreate () 函数的定义位于“os_mem.c”。
3.OSMemGet ()
OSMemGet () 函数用于向内存管理对象获取一个空闲内存块。
4.OSMemPut ()
OSMemPut () 函数用于把内存块退还回内存管理对象(内存分区)。
最新文章
- linux TLS 线程本地变量
- 031医疗项目-模块三:药品供应商目录模块——供货商药品目录查询功能----------sql补充知识
- 解决eclipse中maven web工程打包成war(发布到tomcar)时lib中没有jar包的解决方法
- 使用GIT来管理代码的心得
- 如何在Mininet中修改host的IP地址
- sqlplus 可以登录 plsql 不能登录
- git 删除分支和删除文件夹
- PHP pear安装出现 Warning: require_once(Structures/Graph.php)...错误
- 小脚本一则---CDH的批量部署中,如果是从ESXI的VCENTER的模板生成的虚拟机,如何快速搞定网络网络卡配置?
- 为什么选择使用 Dropbox 而不是其他品牌同步工具(不要加上多余的功能,要极致和专注)
- input text设置字体
- 字符串输入时的strlen()与\0
- 操作 numpy 数组的常用函数
- PHP MySQL Order By 关键词
- python 3下基于select模型的事件驱动机制程序
- C语言下double转char*或者std::string,可以精确转换不含多余的0
- Redis 实战篇之搭建集群
- hadoop记录-Hadoop参数汇总
- 洛谷P1135 奇怪的电梯【bfs】
- 《DSP using MATLAB》Problem 5.31