ucos-iii学习之内存对象

uC/OS-III 可以获得连续的内存块,内存块大小可以相同,所有的内存分区包含了整数个内存块。在特定的时间执行内存块的分配和释放。内存分区以内存块数组的形式被静态分配的。如果分配后不被释放,也可以调用 malloc()动态分配。
1.创建一个内存分区
调用 OSMemCreate()创建一个内存分区。
2.获得内存分区中的内存块
应用代码通过调用 OSMemGet()可以从内存分区中申请内存块。
3.归还内存块给内存分区
调用 OSMemPut()实现这个功能。
4.使用内存分区
OSMemCreate()只能在任务级被调用,但是 OSMemGet()和OSMemPut()可以在 ISR 中被调用。
5.总结
不要在嵌入式系统中使用 malloc()和 free(),因为这样会导致内存碎片。
可以用 malloc()动态的分配内存空间,但不要释放这些内存空间。
{就是说定义不需要释放的空间时可以使用 malloc(),这样能使所定义的空间的利用率接近为 100%}
用户可以创建任意个内存分区(限制于处理器的 RAM)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值