【UCOSIII操作系统】内存管理篇

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); //返回错误类型
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值