【11】uC/OS-III应用开发————>RAM内存管理(STM32F767)

本文深入探讨了uC/OS中的内存管理机制,包括内存池的创建、分配和释放过程,以及如何通过内存池提高内存分配和释放的效率。文章还提供了具体的代码示例,展示了如何在实际应用中使用uC/OS的内存管理函数。
  1. 简述
    1. 在嵌入式系统中,内存分配应根据系统特点选择使用
      1. 动态内存分配算法:普通业务系统,动态内存上限取决于硬件,使用效率高
      2. 静态内存分配算法:可靠性非常高的系统,需要考虑内存上限,使用效率低
    2. uC/OS内存管理是采用内存池的方式进行管理
    3. 静态划分一大块连续空间做为内存管理的空间,内部划分若干块
    4. 使用的时候就从内存池中获取内存块,使用完将其放回
    5. 核心机制:
      1. 内存池的创建
      2. 分配
      3. 释放
  2. 存储空间分类:
    1. 内部存储空间:RAM(本节所讲)
    2. 外部存储空间:ROM
  3. 运行机制
    1. 内存池(Memory Pool)是一种用于分配大量大小相同的内存对象的技术,可以加快内存分配/释放的速度
    2. 系统编译时,编译器静态划分一个数组做为系统的内存池,将其分成大小相等的内存块,通过链表链接起来
    3. 先创建内存池才能使用内存块,
    4. 内存控制块
      1. 内存池名称
      2. 起始地址
      3. 空闲内存块列表
      4. 大小
      5. 内存块数量
      6. 空闲内存块数量
  4. 应用场景
    1. 在不确定数组应该有多大的时候,静态方法,会浪费大量的内存空间,有可能会引起下标越界
    2. uC/OS将系统静态分配的大数组做为内存池,然后分配固定大小的内存块
    3. 如果某个任务内存需求很大,只能按照最大的内存块分配
  5. 常用函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值