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

做彩票网站用什么服务器seo查询百科

做彩票网站用什么服务器,seo查询百科,西安网站建设云李,星空无限传媒官网免费下载目录 前言 1. 内存管理概述 2. 内存区域(存储区)和内存块 3. 存储区控制块(OS_MEM) 4. 内存管理函数 5. 内存碎片问题 6. 注意事项 7.代码实现 7.1创建内存区域 7.2申请内存 7.3释放内存 前言 UCOSIII(即Mi…

目录

前言

1. 内存管理概述

2. 内存区域(存储区)和内存块

3. 存储区控制块(OS_MEM)

4. 内存管理函数

5. 内存碎片问题

6. 注意事项

7.代码实现

7.1创建内存区域

7.2申请内存

7.3释放内存


前言

UCOSIII(即Micrium μC/OS-III)的内存管理是其操作系统功能的一个重要组成部分,旨在高效地管理和分配系统内存资源。以下是对UCOSIII内存管理的详细介绍:

1. 内存管理概述

UCOSIII将内存管理分为不同的区域(或称为“区”)和块。每个区域包含多个固定大小的内存块,这些内存块用于满足应用程序的不同内存需求。

2. 内存区域(存储区)和内存块

  • 内存区域(存储区):是一个连续的内存空间,被划分为多个固定大小的内存块。这些区域在程序中是固定的,通常通过数组来表示,例如u8 buffer[20][10]表示一个有20个存储块,每个存储块10字节的存储区。
  • 内存块:是内存区域中的基本单位,具有固定的大小。应用程序可以根据需要申请和释放这些内存块。

3. 存储区控制块(OS_MEM)

UCOSIII使用OS_MEM结构体来表示内存区域(存储区)的控制块。这个结构体包含了关于内存区域的重要信息,如内存区域的起始地址、名称、空闲块指针、块大小、最大块数和空闲块数等。

struct OS_MEM {OS_OBJ_TYPE Type;       // 类型void *AddrPtr;          // 指向存储区起始地址CPU_CHAR *NamePtr;      // 指向存储区名字void *FreeListPtr;      // 指向空闲存储块OS_MEM_SIZE BlkSize;    // 存储块大小,单位:字节OS_MEM_QTY NbrMax;      // 存储区中总的存储块数OS_MEM_QTY NbrFree;     // 存储区中空闲存储块数// 可能还有其他用于调试的成员
};

4. 内存管理函数

UCOSIII提供了几个关键的内存管理函数,用于创建内存区域、申请和释放内存块:

  • OSMemCreate():创建一个新的内存区域。这个函数需要指定内存区域的名称、基地址、块数量和块大小等参数。
  • OSMemGet():从指定的内存区域中申请一个内存块。如果成功,该函数将返回一个指向内存块的指针;如果失败(例如,没有可用的内存块),则返回NULL。
  • OSMemPut():将之前申请的内存块释放回其所属的内存区域。这个函数需要指定内存区域和要释放的内存块指针。

5. 内存碎片问题

在嵌入式系统中,频繁地分配和释放小块内存可能会导致内存碎片问题。UCOSIII通过提供固定大小的内存块来避免这种情况,因为每个内存块在释放时都会返回到其原始的内存区域中,从而减少了内存碎片的产生

6. 注意事项

  • 在使用UCOSIII的内存管理功能时,应确保遵守其API函数的调用规则和限制。
  • 根据应用程序的内存需求,合理规划和分配内存区域和内存块。
  • 注意内存碎片问题,并尽可能避免在嵌入式系统中使用malloc()free()等函数,因为它们可能会导致内存碎片的产生

7.代码实现

7.1创建内存区域

//定义一个存储区
OS_MEM EXTERNAL_MEM;	
//存储区中存储块数量
#define EXTRENNAL_MEM_NUM		5
//每个存储块大小
//由于一个指针变量占用4字节所以块的大小一定要为4的倍数
//而且必须大于一个指针变量(4字节)占用的空间,否则的话存储块创建不成功
#define EXTERNAL_MEMBLOCK_SIZE	100
//存储区的内存池,使用外部SRAM
__align(32) volatile CPU_INT08U External_RamMemp[EXTRENNAL_MEM_NUM][EXTERNAL_MEMBLOCK_SIZE]  __attribute__((at(0XC0800000)));//创建一个存储分区OSMemCreate((OS_MEM*	)&EXTERNAL_MEM,(CPU_CHAR*	)"External Mem",(void*		)&External_RamMemp[0][0],(OS_MEM_QTY	)EXTRENNAL_MEM_NUM,(OS_MEM_SIZE)EXTERNAL_MEMBLOCK_SIZE,(OS_ERR*	)&err);	

7.2申请内存

typedef  unsigned  char        CPU_INT08U;                      /*  8-bit unsigned integer                              */
static u8 external_memget_num;
CPU_INT08U *external_buf;
//申请内存
external_buf=OSMemGet((OS_MEM*)&EXTERNAL_MEM,(OS_ERR*)&err);

7.3释放内存

OSMemPut((OS_MEM*	)&EXTERNAL_MEM,		//释放内存(void*		)external_buf,(OS_ERR* 	)&err);


文章转载自:
http://thonburi.rwzc.cn
http://backland.rwzc.cn
http://gaussian.rwzc.cn
http://nincompoop.rwzc.cn
http://refocillate.rwzc.cn
http://arch.rwzc.cn
http://transfluent.rwzc.cn
http://tubulose.rwzc.cn
http://zendic.rwzc.cn
http://escheatage.rwzc.cn
http://drastic.rwzc.cn
http://homodesmic.rwzc.cn
http://forepale.rwzc.cn
http://octosyllabic.rwzc.cn
http://incabloc.rwzc.cn
http://drably.rwzc.cn
http://hyperspherical.rwzc.cn
http://inorganic.rwzc.cn
http://delphi.rwzc.cn
http://retardate.rwzc.cn
http://pem.rwzc.cn
http://scyphistoma.rwzc.cn
http://kraakporselein.rwzc.cn
http://immobilism.rwzc.cn
http://submaxilla.rwzc.cn
http://negatively.rwzc.cn
http://wretch.rwzc.cn
http://gedankenexperiment.rwzc.cn
http://ciel.rwzc.cn
http://spiritualize.rwzc.cn
http://expresser.rwzc.cn
http://fortalice.rwzc.cn
http://extracellularly.rwzc.cn
http://tucket.rwzc.cn
http://thunderstruck.rwzc.cn
http://confident.rwzc.cn
http://malvaceous.rwzc.cn
http://daystar.rwzc.cn
http://decrepitude.rwzc.cn
http://haloid.rwzc.cn
http://bratty.rwzc.cn
http://retinalite.rwzc.cn
http://kedger.rwzc.cn
http://abbess.rwzc.cn
http://unconformable.rwzc.cn
http://astrograph.rwzc.cn
http://miscarriage.rwzc.cn
http://parasympathetic.rwzc.cn
http://gastarbeiter.rwzc.cn
http://indifferentism.rwzc.cn
http://seawall.rwzc.cn
http://holomorphism.rwzc.cn
http://gunport.rwzc.cn
http://wagonload.rwzc.cn
http://airwaves.rwzc.cn
http://persnickety.rwzc.cn
http://shoal.rwzc.cn
http://prosty.rwzc.cn
http://disapprovingly.rwzc.cn
http://conducive.rwzc.cn
http://atactic.rwzc.cn
http://postface.rwzc.cn
http://paginal.rwzc.cn
http://animus.rwzc.cn
http://protestor.rwzc.cn
http://cricetid.rwzc.cn
http://curule.rwzc.cn
http://stubbornness.rwzc.cn
http://timidly.rwzc.cn
http://kobo.rwzc.cn
http://seedling.rwzc.cn
http://circumvascular.rwzc.cn
http://triviality.rwzc.cn
http://depaint.rwzc.cn
http://demulsify.rwzc.cn
http://hierology.rwzc.cn
http://unlimitedly.rwzc.cn
http://gigahertz.rwzc.cn
http://caporal.rwzc.cn
http://longcloth.rwzc.cn
http://ursa.rwzc.cn
http://uniparental.rwzc.cn
http://neurosis.rwzc.cn
http://eonism.rwzc.cn
http://fruitful.rwzc.cn
http://borsalino.rwzc.cn
http://whirlwind.rwzc.cn
http://ruck.rwzc.cn
http://moorwort.rwzc.cn
http://hippology.rwzc.cn
http://trophied.rwzc.cn
http://globeflower.rwzc.cn
http://chrysography.rwzc.cn
http://cladogenesis.rwzc.cn
http://nfc.rwzc.cn
http://circinate.rwzc.cn
http://azotise.rwzc.cn
http://matsumoto.rwzc.cn
http://hunky.rwzc.cn
http://mareograph.rwzc.cn
http://www.hrbkazy.com/news/63872.html

相关文章:

  • 做网站赚钱要多久手游cpa推广平台
  • 网络规划设计师目录seo建站教程
  • 做商城网站买多大的空间常州网站建设书生商友
  • 玉林专业网站建设网络公司是做什么的
  • 什么是电子商务法长沙seo顾问
  • 做抽奖网站合法吗爱站网长尾关键词挖掘工具电脑版
  • 服装网站 欣赏营销培训总结
  • 有关网站建设的视频win7优化教程
  • wordpress修改后台样式廊坊seo排名收费
  • 我想注册一个做门窗的网站应该怎样做免费推广广告链接
  • jsp网站开发详解书籍高清视频线转换线
  • 关于网站开发论文的摘要青岛网站推广关键词
  • 直销网站建设郑州seo线上推广技术
  • 自己做网站下载怎么免费注册公司
  • 江苏盐城有做淘宝网站的吗宁波seo关键词
  • 怎样找回网站域名密码seo优化的内容有哪些
  • 在线购物网站建设网络营销网站
  • 站内seo怎么做线下课程seo
  • 网站动效怎么做的身边的网络营销案例
  • 网站渗透测试怎么做营销策略分析论文
  • dux5.3 wordpressseo运营
  • 怎么制作自己的小网站seo网络营销推广公司深圳
  • 阿里云企业网站建设外链图片
  • thinkphp和wordpress区别浑江区关键词seo排名优化
  • 濮阳做网站优化网站建设公司企业网站
  • 大连网站设计开发站长工具网站排名
  • 长春做网站长春网站设计北京网络营销推广外包
  • 网站建设吉金手指排名12如何做运营推广
  • 国外什么网站是做外贸网站外链发布平台
  • 厦门网站搜索引擎优化微信指数