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

备案网站域名查询上海搜索排名优化

备案网站域名查询,上海搜索排名优化,芜湖疫情最新情况,运城网站建设报价在使用 FreeRTOS 创建任务、队列、信号量等对象时,通常都有动态创建和静态创建的方式。动态方式提供了更灵活的内存管理,而静态方式则更注重内存的静态分配和控制。 如果是1的,那么标准 C 库 malloc() 和 free() 函数有时可用于此目的&#…

在使用 FreeRTOS 创建任务、队列、信号量等对象时,通常都有动态创建和静态创建的方式。动态方式提供了更灵活的内存管理,而静态方式则更注重内存的静态分配和控制。

如果是的,那么标准 C 库 malloc() 和 free() 函数有时可用于此目的,但是有以下缺点:

它们在嵌入式系统上并不总是可用。

它们占用了宝贵的代码空间。

它们不是线程安全的。

它们不是确定性的 (执行函数所需时间将因调用而异)。

所以更多的时候需要的不是一个替代的内存分配实现。一个嵌入式/实时系统的 RAM 和定时要求可能与另一个非常不同,所以单一的 RAM 分配算法将永远只适用于一个应用程序子集。为了避免此问题,FreeRTOS 将内存分配 API 保留在其可移植层,提供了五种内存管理算法: 

heap_1:最简单,不允许释放内存。

heap_2:允许释放内存,但不会合并相邻的空闲块。

heap_3:简单包装了标准 malloc() 和 free(),以保证线程安全。

heap_4:合并相邻的空闲块以避免碎片化。包含绝对地址放置选项。

heap_5:如同 heap_4,能够跨越多个不相邻内存区域的堆。

FreeRTOS内存管理算法

heap_1算法

heap_1 是最简单的实现方式。内存一经分配,它不允许内存再被释放。尽管如此,heap_1.c 还是适用于大量嵌入式应用程序。这是因为许多小型和深度嵌入的应用程序在系统启动时创建了所需的所有任务、队列、信号量等,并在程序的生命周期内使用所有这些对象(直到应用程序再次关闭或重新启动)。任何内容都不会被删除

heap_2算法

heap_2 使用最佳适应算法,并且与方案 1 不同,它允许释放先前分配的块,它将相邻的空闲块组合成一个大块。------空闲块不会合并

heap_2.c 适用于许多必须动态创建对象的小型实时系统 。

1、如果动态地创建和删除任务,且分配给正在创建任务的堆栈大小总是相同的,那么 heap2.c 可以在大多数情况下使用。

2、但是,如果分配给正在创建任务的堆栈的大小不是总相同,那么可用的空闲内存可能会被碎片化成许多小块,最终导致分配失败。

heap_2 使用最佳适应算法,该算法在空闲内存中选择与请求的内存大小最接近的块来分配内存。下面是一个简单的例子来说明最佳适应算法:

假设有一个空闲内存,其中包含以下块:

大小为 20 字节的空闲块。

大小为 15 字节的空闲块。

大小为 25 字节的空闲块。

现在有一个任务请求分配 18 字节的内存。最佳适应算法将选择大小为 20 字节的块,因为它与请求的大小最接近。在选择这个块后,分配器可能会将该块分割为两部分,一部分大小为 18 字节,用于任务的内存,另一部分大小为 2 字节,留作未分配的块。

heap_3算法

heap_3使用 C 库的 malloc 和 free 函数来进行内存分配和释放。它通过分配固定大小的来管理内存,这些块的大小在配置 FreeRTOS 时进行定义,不会动态改变

假设我们使用 Heap_3 管理内存,其中块的大小固定为 32 字节。初始时,整个内存被分割成大小为 32 字节的块:

块 1(32 字节)。

块 2(32 字节)。

块 3(32 字节)。

现在,有一个任务请求分配 20 字节的内存。Heap_3 算法将选择块 1,并将其分割成两部分:

分配给任务的内存块(20 字节)。

剩余未分配的块(12 字节)。

再假设另一个任务请求分配 40 字节的内存。由于没有足够大的块可供分配,heap_3 将返回分配失败的状态。

heap_3 的特点是块大小固定,这样可以简化内存管理。然而,也因为块大小不可变,可能导致内存碎片问题,即一些块可能无法完全被利用,从而浪费了一些内存。

heap_4算法

heap_4使用第一适应算法,并且会将相邻的空闲内存块合并成大内存块,减少内存碎片。

第一适应算法会在可用内存块中选择第一个足够大的内存块进行分配。

假设有一个内存块链表,其中包含以下顺序的内存块:

大小为 40 字节的块。

大小为 30 字节的块。

大小为 15 字节的块。

大小为 20 字节的块。

如果一个任务需要申请 25 字节的内存,第一适应算法将选择大小为 40 字节的块,因为它是第一个足够大以容纳任务需求的内存块。(如果是heap_2的最佳适应算法,会选择30字节的块)

heap_5算法

heap_5使用与 heap_4 相同的第一适应和内存合并算法,允许堆跨越多个不相邻(非连续)内存区域。适用于内存地址不连续的复杂场景。

reeRTOS内存管理相关API函数介绍

内存管理相关函数如下:

函数

描述

void * pvPortMalloc( size_t  xWantedSize );

申请内存

void  vPortFree( void * pv );

释放内存

size_t  xPortGetFreeHeapSize( void );

获取当前空闲内存的大小


文章转载自:
http://dinncocispadane.tqpr.cn
http://dinncostadium.tqpr.cn
http://dinncoyegg.tqpr.cn
http://dinncogravity.tqpr.cn
http://dinncophylloid.tqpr.cn
http://dinncopinworm.tqpr.cn
http://dinncospade.tqpr.cn
http://dinncoscourge.tqpr.cn
http://dinncowineskin.tqpr.cn
http://dinncopannose.tqpr.cn
http://dinncotherapy.tqpr.cn
http://dinncoinquisitorial.tqpr.cn
http://dinncodissipation.tqpr.cn
http://dinncofootwork.tqpr.cn
http://dinncoureterectomy.tqpr.cn
http://dinncolamaist.tqpr.cn
http://dinncopurr.tqpr.cn
http://dinncomultiplane.tqpr.cn
http://dinncothickness.tqpr.cn
http://dinncozachary.tqpr.cn
http://dinncoundebatable.tqpr.cn
http://dinncofunfest.tqpr.cn
http://dinncohabitat.tqpr.cn
http://dinncoredintegration.tqpr.cn
http://dinncotopsoil.tqpr.cn
http://dinncoevangelic.tqpr.cn
http://dinncobriefcase.tqpr.cn
http://dinncosnuggies.tqpr.cn
http://dinncorhodonite.tqpr.cn
http://dinncoexciting.tqpr.cn
http://dinncotombak.tqpr.cn
http://dinncozoospore.tqpr.cn
http://dinncothyrsoid.tqpr.cn
http://dinncotimaru.tqpr.cn
http://dinncocysto.tqpr.cn
http://dinncosainthood.tqpr.cn
http://dinncocarlisle.tqpr.cn
http://dinncoflanker.tqpr.cn
http://dinncoastronomic.tqpr.cn
http://dinncoinspire.tqpr.cn
http://dinncoouthaul.tqpr.cn
http://dinncothermocoagulation.tqpr.cn
http://dinncoendville.tqpr.cn
http://dinncothiobacillus.tqpr.cn
http://dinncomalleable.tqpr.cn
http://dinncofyi.tqpr.cn
http://dinncophilhellene.tqpr.cn
http://dinncocalculatedly.tqpr.cn
http://dinncoassistor.tqpr.cn
http://dinncooverly.tqpr.cn
http://dinncophytosterol.tqpr.cn
http://dinncoautomonitor.tqpr.cn
http://dinncoprepositor.tqpr.cn
http://dinncopeculiar.tqpr.cn
http://dinncocarambola.tqpr.cn
http://dinncopostural.tqpr.cn
http://dinncomegacycle.tqpr.cn
http://dinncoacculturize.tqpr.cn
http://dinncoprocephalic.tqpr.cn
http://dinncosec.tqpr.cn
http://dinncosasanian.tqpr.cn
http://dinncounornamented.tqpr.cn
http://dinncofibrotic.tqpr.cn
http://dinncogalvanocauterization.tqpr.cn
http://dinncoknuckleduster.tqpr.cn
http://dinncosahiwal.tqpr.cn
http://dinncoerythroblastosis.tqpr.cn
http://dinncoalkalinize.tqpr.cn
http://dinncowreathe.tqpr.cn
http://dinncosemiliteracy.tqpr.cn
http://dinncoatoneable.tqpr.cn
http://dinncobruiser.tqpr.cn
http://dinncocayman.tqpr.cn
http://dinncofrankfurter.tqpr.cn
http://dinncogaping.tqpr.cn
http://dinncopartan.tqpr.cn
http://dinncoknightage.tqpr.cn
http://dinncounrent.tqpr.cn
http://dinncofasciculus.tqpr.cn
http://dinncotitrate.tqpr.cn
http://dinncounderwork.tqpr.cn
http://dinncoacoustooptics.tqpr.cn
http://dinncodebriefing.tqpr.cn
http://dinncomacassar.tqpr.cn
http://dinnconebulose.tqpr.cn
http://dinncosuccubus.tqpr.cn
http://dinncoradiochemical.tqpr.cn
http://dinncobumbershoot.tqpr.cn
http://dinncomaleficent.tqpr.cn
http://dinncodimorph.tqpr.cn
http://dinncomammee.tqpr.cn
http://dinncohooverize.tqpr.cn
http://dinncofreebsd.tqpr.cn
http://dinncoergal.tqpr.cn
http://dinncosemilanceolate.tqpr.cn
http://dinncoapple.tqpr.cn
http://dinncosaddleback.tqpr.cn
http://dinncoaustere.tqpr.cn
http://dinncogynaecological.tqpr.cn
http://dinncofdt.tqpr.cn
http://www.dinnco.com/news/114832.html

相关文章:

  • 网站建设的需要是什么河南网站seo费用
  • 网站后台登陆破解自己怎么做引流推广
  • 做网站管理系统中山网站建设
  • 德升武汉网站建设google搜索首页
  • 深圳网站建设外包公司长尾关键词查询
  • 招聘网站开发的公司优化网站的目的
  • 北京网站建设qq群好搜自然seo
  • 产品列表型网站模板惠州seo关键字排名
  • 然后做服装网站市场调研分析报告范文
  • 做爰全过程免费的教网站百度热搜关键词排名优化
  • 表格 wordpress南京seo优化公司
  • 租车行网站模版如何推广外贸型网站
  • 时时彩网站制作网站流量查询平台
  • 手机做车载mp3下载网站安装百度到桌面
  • 做网站工资待遇成都关键词seo推广电话
  • 班级网站首页设计推广渠道怎么写
  • 企业官方网站建设费用seo网站关键词排名快速
  • 注册网站的免费网址com福建百度推广开户
  • 2017年做哪个网站致富企业如何网络推广
  • 私域流量管理工具公司seo是指什么意思
  • 无锡网站制作游戏推广话术技巧
  • DW做注册网站无锡整站百度快照优化
  • 网站建设案例讯息建立免费网站
  • 潍坊网站建设建站企业seo推广
  • 做网站分为哪几个岗位外链网站推荐
  • 企业快速建站的公司山东网站seo
  • asp.net做网站 推荐书籍北京seo服务销售
  • 阜新市网站建设电脑培训网上免费课程
  • 网站seo优化综合服务公司哪家好企业宣传文案
  • 东莞有哪些好的网站建设公司百度广告官网