UCOSIII其他内容导航不迷路
UCOSIII操作系统-简介
【UCOSIII操作系统】任务篇(1)创建任务
【UCOSIII操作系统】任务篇(2)相关API函数
【UCOSIII操作系统】系统初始化篇(1)系统初始化
【UCOSIII操作系统】系统初始化篇(2)CPU,SysTick,内存初始化
【UCOSIII操作系统】硬件初始化篇(1)硬件初始化以及开始运行系统
【UCOSIII操作系统】消息队列篇(1)消息队列
【UCOSIII操作系统】消息队列篇(2)任务消息队列
【UCOSIII操作系统】信号量与互斥量篇(1)信号量
【UCOSIII操作系统】信号量与互斥量篇(2)互斥量
【UCOSIII操作系统】信号量与互斥量篇(3)任务信号量
【UCOSIII操作系统】事件篇
【UCOSIII操作系统】中断管理篇
【UCOSIII操作系统】临界段篇
【UCOSIII操作系统】软件定时器篇
已完结
说在前面:
这个内容不适合0基础的人,因为这里只讲了应用层面的东西,并没有深入内核讲解,所以要从零开始学UCOSIII的朋友,可以先去学完入门内容,再来观看这个笔记加深印象。
这篇文章是个人学习整理,如有错误请指正
UCOSIII操作系统——内存管理篇
据说UCOSIII的内存管理并不是那么的好用,而且我也从来没有用过
所以这里就简单写一下函数,等需要用到的时候再做仔细整理学习
内存池创建函数->OSMemCreate()
- 函数原型
void OSMemCreate (OS_MEM *p_mem, //内存池控制块
CPU_CHAR *p_name, //命名内存池
void *p_addr, //内存池首地址
OS_MEM_QTY n_blks, //内存块数目
OS_MEM_SIZE blk_size, //内存块大小(单位:字节)
OS_ERR *p_err) //返回错误类型
- 范例
OS_MEM mem; //声明内存管理对象
uint8_t ucArray [ 3 ] [ 20 ]; //声明内存池大小
OS_ERR err;
/* 创建内存管理对象 mem */
OSMemCreate ((OS_MEM *)&mem, //指向内存管理对象
(CPU_CHAR *)"Mem For Test", //命名内存管理对象
(void *)ucArray, //内存池的首地址
(OS_MEM_QTY )3, //内存池中内存块数目
(OS_MEM_SIZE )20, //内存块的字节数目
(OS_ERR *)&err); //返回错误类型
内存申请函数->OSMemGet()
- 函数原型
void *OSMemGet (OS_MEM *p_mem,//内存管理对象
OS_ERR *p_err)//返回错误类型
- 范例
/* 向 mem 获取内存块 */
p_mem_blk = OSMemGet ((OS_MEM *)&mem, //指向内存管理对象
(OS_ERR *)&err); //返回错误类型
内存释放函数->OSMemPut()
- 函数原型
void OSMemPut (OS_MEM *p_mem,//内存管理对象
void *p_blk,//要退回的内存块
OS_ERR *p_err)//返回错误类型
- 范例
OSMemPut ((OS_MEM *)&mem, //指向内存管理对象
(void *)pMsg, //内存块的首地址
(OS_ERR *)&err); //返回错误类型