《最新嵌入式实时操作系统COS原理与实践6PPT课件》由会员分享,可在线阅读,更多相关《最新嵌入式实时操作系统COS原理与实践6PPT课件(17页珍藏版)》请在金锄头文库上搜索。
1、嵌入式实时操作系统嵌入式实时操作系统COSCOS原理原理与实践与实践6 6作者卢有亮作者卢有亮图书图书PPT和全部代码下载和全部代码下载http:/ 内存管理6.1 内存管理数据结构6.1.1内存控制块6.1.2 内存控制块实体6.1.3 空闲内存控制块链表6.1.4 内存分区6.2 内存控制块初始化6.3 创建内存分区6.4内存分区获取6.5内存分区释放6.6查询内存分区的状态6.7内存管理实例习题作者卢有亮作者卢有亮图书图书PPT和全部代码下载和全部代码下载http:/ 可见OS_MemInit,对内存控制块MCB进行了初始化,构建了空闲MCB链表。但并未执行创建内存分区及分配内存的操作。
2、作者卢有亮作者卢有亮图书图书PPT和全部代码下载和全部代码下载http:/ blksize,表示每一个内存块的大小,第四个参数是指向整数的指针perr,用来返回函数运行过程中的信息。表6.5创建内存分区函数OSMemCreate()解析作者卢有亮作者卢有亮图书图书PPT和全部代码下载和全部代码下载http:/ 作者卢有亮作者卢有亮图书图书PPT和全部代码下载和全部代码下载http:/ 作者卢有亮作者卢有亮图书图书PPT和全部代码下载和全部代码下载http:/ 3.将释放的块归还给空闲内存块链表,插入到表头然后返回。从本节的OSMemPut和上节OSMemGet,很明显,实现了内存的动态分配,并
3、且一次分配和释放最小是一个内存块,保证了内存中不会存在很多小的碎片。作者卢有亮作者卢有亮图书图书PPT和全部代码下载和全部代码下载http:/ 查询内存分区状态函数OSMemQuery()解析作者卢有亮作者卢有亮图书图书PPT和全部代码下载和全部代码下载http:/ 表6.10 内存分区管理例程该例程的流程为:1.创建分区,如果创建失败则给出出错信息,删除本任务。如果创建成功给出成功的提示。2.进入主循环。本任务是一个无限循环结构。每6次循环将require的值取逻辑反,这样6次请求后6次释放。3.根据require的值进行请求或释放,根据返回的结果信息给出提示。4.调用OSMemQuery提取分区信息,打印出来。继续循环。作者卢有亮作者卢有亮图书图书PPT和全部代码下载和全部代码下载http:/ 结束语结束语谢谢大家聆听!谢谢大家聆听!17