当前位置: 首页 > news >正文

中国建设网站企业网上银行业务功能个人网站备案注意事项

中国建设网站企业网上银行业务功能,个人网站备案注意事项,五矿瑞和上海建设有限公司网站,现在lol谁做教学视频网站一、简介 LiteOS将内核与内存管理分开实现,操作系统内核仅规定了必要的内存管理函数原型,而不关心这些内存管理函数是如何实现的。 LiteOS内存管理模块管理系统的内存资源,包括:初始化、分配、释放。 不采用C标准库中的内存管理函…

一、简介

        LiteOS将内核与内存管理分开实现,操作系统内核仅规定了必要的内存管理函数原型,而不关心这些内存管理函数是如何实现的。

        LiteOS内存管理模块管理系统的内存资源,包括:初始化分配释放

        不采用C标准库中的内存管理函数malloc和free的原因如下:

  1. 小型嵌入式设备的RAM不足,导致这些函数在有些情况下无法使用
  2. 内存管理的函数实现代码量可能非常大,占据了相当大的一块代码空间。
  3. 不安全,执行时间不确定。
  4. 容易产生碎片。这两个函数会使得连接器配置变得非常复杂。

        内存池是线程安全的固定大小的内存块。它的操作速度比动态分配的堆要快得多,而且不会受到碎片的影响。由于是线程安全的,所以,可以从中断中访问

        内存池可以看做是一个固定大小,且大小相同内存块的链表从池中分配内存,只是从列表中解除块链,并将控制权交给用户。释放内存到池,只是将块重新链到空闲链表中

         共享内存是线程间交换信息的基本模型之一。与使用消息队列相比,使用内存池交换数据可以在线程之间共享更复杂的对象

Memory Pool

二、特点

        内存管理模块通过对内存的释放、申请操作,来管理用户和OS对内存的使用。使内存的利用率和使用率达到最优,同时最大限度地解决系统的内存碎片问题。

        内存管理分为:静态内存管理和动态内存管理。

        静态内存管理:在静态内存池中分配用户初始化时预设(固定)大小的内存块

  •         优点:分配和释放效率高,静态内存池中无碎片
  •         缺点:只能申请到初始化预设的内存块,不能按需申请。

        动态内存:在动态内存池中分配用户指定大小的内存块

  •         优点:按需分配
  •         缺点:内存池可能会存在碎片

        注:小熊派目前使用的都是动态内存的方式。

三、API介绍

      osMemoryPoolNew

        函数功能:

        创建内存池。不能在中断中调用。

        函数原型:

osMemoryPoolId_t osMemoryPoolNew (uint32_t block_count, uint32_t block_size, const osMemoryPoolAttr_t *attr);

        参数:

        block_count:申请的内存块个数

        block_size:每个内存块的大小

        attr:属性。自定义内存时使用,默认为NULL

        返回值:

        NULL:失败

        其他值:内存池ID

        实例:

osMemoryPoolId_t mpid_MemPool = NULL;
mpid_MemPool = osMemoryPoolNew(MEMPOOL_OBJECTS,sizeof(MEM_BLOCK_t),NULL);

      osMemoryPoolAlloc

        函数功能:

        从内存池中申请内存块。如果内存池空,则挂起,直到有内存块可用。如果超时时间为0,可在中断中调用

        函数原型:

void *osMemoryPoolAlloc (osMemoryPoolId_t mp_id, uint32_t timeout);

        参数:

        mp_id:内存池ID。创建内存池osMemoryPoolNew时获得。

        timeout:等待超时时间

        返回值:

        获取到的内存块地址

        实例:

MEM_BLOCK_t *pMem = NULL;
osMemoryPoolId_t mpid_MemPool = NULL;pMem = osMemoryPoolAlloc(mpid_MemPool,100);

      osMemoryPoolFree

        函数功能:

        释放内存块到内存池中。可在中断中调用

        函数原型:

osStatus_t osMemoryPoolFree (osMemoryPoolId_t mp_id, void *block);

        参数:

        mp_id:内存池ID。创建内存池osMemoryPoolNew时获得

        block:要释放的内存块地址。osMemoryPoolAlloc的返回值

        返回值:

        osOK:成功、

        其他值:失败

        实例:

osMemoryPoolId_t mpid_MemPool = NULL;
MEM_BLOCK_t *pMem = NULL;
osStatus_t rst = osMemoryPoolFree(mpid_MemPool,pMem);

      osMemoryPoolDelete

        函数功能:

        删除内存池。不能在中断中使用

        函数原型:

osStatus_t osMemoryPoolDelete (osMemoryPoolId_t mp_id);

        参数:

        mp_id:内存池ID。创建内存池osMemoryPoolNew时获得。

        返回值:

        osOK:成功、

        其他值:失败

        实例:

osMemoryPoolId_t mpid_MemPool = NULL;
osStatus_t ret = osMemoryPoolDelete(mpid_MemPool);

四、实例

        待补充。

http://www.yayakq.cn/news/37101/

相关文章:

  • 超云建站威廉网站建设
  • 苏州园区手机网站制作网站建设 如何友情链接
  • 网站建设规划设计公司排名wordpress 滑块验证码
  • h5网站建设报价多少钱跨境电商手机app平台
  • 2019做网站必须做可信网站吗有哪些网页设计软件
  • 内蒙古建设协会网站做婚恋网站
  • 霸州放心的网络建站网站关键词提升
  • 都匀市城乡建设局网站易语言做网站登陆
  • 深圳网站建设怎么注册安全工程师题库免费版
  • 北京最大做网站的公司有哪些医疗器械备案
  • 电子商务网站规划、电子商务网站建设wordpress伪静态优化
  • 如何做网站商铺wordpress网站加密码破解
  • 龙华做棋牌网站建设杭州巴顿品牌设计
  • 微信上的网站在线书店网站怎么做
  • 做一家拍卖网站需要什么资质WordPress百度智能小程序
  • php网站 config珠海网站开发
  • 做化妆品的网站郑州建设网站制作公司
  • 最好的网站建设公司有哪些网站开发招标技术规范书
  • 做微商想做个网站无锡做网站多少钱
  • 天津做网站哪家好wordpress转移整站
  • 宁波网站建设策划公司排名中企动力邮箱手机版
  • 做漫画封面的网站wordpress建站企业
  • 可信赖的做网站pc端网站
  • 福建省住房和建设网站东莞品牌网站设计公司
  • 新乡市延津县建设局网站专门做红酒的网站
  • 安徽网站建设流程活动策划方案
  • 怎么注册公司的网站东莞建设网网上平台
  • 百度地图开发网站wordpress编码查看
  • 如何做好网站内链深圳公司手机网站制作
  • 聊城网站建设哪个好易企cms网站模板