嵌入式实时操作系统ucos/ii 原理与应用(六)
来源:互联网 发布:cnrds数据库 编辑:程序博客网 时间:2024/05/17 06:50
第七章 动态内存管理
7.1 内存控制块
μC/OS-Ⅱ对内存进行两级管理,即把一个连续的内存空间分为若干各分区,每个分区分为若干个大小相等的内存块。操作系统以分区为单位来管理动态内存,而任务以内存块为单位来获取和释放动态内存。
7.1.1 可动态分配内存划分
1. 内存块
μC/OS-Ⅱ以内存块为单位向应用程序提供动态内存。内存块的大小由用户定制。
2. 内存分区
大小相等的多个内存块可以组成一个内存分区。内存分区是系统对内存进行管理的基本单位。
3. 内存分区与内存块的定义
INT16U IntMemBuf[10][10]; 有10个内存块,每个内存块长度为10的内存分区。
7.1.2 内存控制块OS_MEM的结构
内存控制块(OS_MEM):记录和跟踪每一个内存分区的状态。
7.1.3 空内存控制块链表
在μC/OS-Ⅱ初始化时,会调用内存控制块的初始化函数OS_MemInit()定义并初始化一个空内存控制块链表。
7.2 动态内存的管理
7.2.1 创建动态内存分区OSMemCreate()
OS_MEM * OSMemCreate(void *addr,INT32U nblks, INT32U blksize, INT8U *err);
注:分区的内存块至少有两块;每个内存块的空间至少能存放一个指针。
7.2.2 请求获得一个内存块OSMemGet()
void * OSMemGet(OS_MEM *pmem,INT8U *err);
在调用函数OSMemGet()时,应该事先知道该分区中内存块的大小,并且在使用时不能超过该内存长度。
7.2.3 释放一个内存块OSMemPut()
INT8U OSMemPut(OS_MEM *pmem, void*pblk);
在调用OSMemPut()函数的一个内存块时,一定要确保把该内存块释放到它原来所属的内存分区中。
7.2.4 查询一个内存分区的状态OSMemQuery()
INT8UOSMemQuery(OS_MEM *pmem, OS_MEM_DATA *pdata);
- 嵌入式实时操作系统ucos/ii 原理与应用(六)
- 嵌入式实时操作系统ucos/ii 原理与应用(一)
- 嵌入式实时操作系统ucos/ii 原理与应用(二)
- 嵌入式实时操作系统ucos/ii 原理与应用(三)
- 嵌入式实时操作系统ucos/ii 原理与应用(四)
- 嵌入式实时操作系统ucos/ii 原理与应用(五)
- 嵌入式实时操作系统ucos/ii 原理与应用(七)
- 读书笔记之《嵌入式实时操作系统uCOS-II原理及应用》(持续更新)
- uCOS创建任务实例---code from《嵌入式实时操作系统uCos-II原理及应用》
- 嵌入式实时操作系统ucos ii的分析
- 嵌入式实时操作系统uCOS II的分析
- ucos II嵌入式实时操作系统特点概述
- ucos II嵌入式实时操作系统特点概述 .
- 嵌入式实时操作系统uCOS II的分析
- 嵌入式实时操作系统ucos ii的分析
- 嵌入式实时操作系统uc/os-ii 原理及应用 读书笔记
- 参考任哲的《嵌入式实时操作系统μC_OS-II原理及应用》,对UCOS的任务调度做了下整理。
- 什么是嵌入式实时操作系统ucos-ii?有了解的吗?
- 动态规划-金额为Sum的所有纸(硬)币组合
- touch命令:建立空文件,修改文件的时间
- lower_bound()返回值
- 漫步线性代数二十一——行列式引言
- 多进程间通信方式和多线程同步机制总结
- 嵌入式实时操作系统ucos/ii 原理与应用(六)
- 神器BBMap
- Caffe使用step by step:caffe框架下的基本操作和分析
- Android获取手机已安装的应用程序并启动
- [PAT] A1063
- 第三周项目4--顺序表应用1
- 改变eclipse背景颜色
- Git(一)git/github简介
- Effective Java_中英文对照_第一章_2.0版本