C omputer Engineering and Applications计算机工程与应用2016,52(13)
1 引言
FreeRTOS 是一个轻量级的嵌入式实时操作系统,
具有源码公开、可移植、可裁减的特点,它实现的任务没
有数量限制,内核支持优先级调度和轮转调度算法,用
户可以很方便地将其移植到各种嵌入式控制器上进行
开发设计
[1]
。虽然 FreeRTOS 的内核较小但可提供比较
齐全的功能,包括内存管理、时间管理、任务管理、消息
队列、信号量、记录功能等,基本上能够满足微型嵌入式
实时系统的设计需求
[2]
。在实际嵌入式产品开发中,为
了降低成本 ,其 资源通常是 受限 的,因此内 存资 源分
配 是嵌入式产 品开 发中 需要 考虑的主要问题之一
[3]
。
FreeRTOS 的最新版本中提供了四种内存分配方案,包
括静态与动态内存分配方式,在固定内存分配过程中其
效果都较好,但对不同大小的内存分配需求会产生较多
的内存碎片,同时其分配时间也难以确定。
为了改善嵌入式实时操作系统的性能,提高其内存
分配效率,研究者们提 出了 多种动态内 存分 配算法 ,
文 献 [4-5]对其 进行了 深 入研究 。本文 分析和 比 较了
FreeRTOS内存管理方案的分析与改进
刘 林
1
,朱 青
1
,何昭晖
2
LIU Lin
1
, ZHU Qing
1
, HE Zhaohui
2
1.湖南大学 电气与信息工程学院,长沙 410082
2.威胜集团有限公司,长沙 410205
1.College of Electrical a nd Information Engineering, Hunan Uni versity, Changsha 410082, China
2.Wasion Group Ltd., Changsha 410205, China
LIU Lin, ZHU Qing, HE Zhaohui. Analysis and improvem ent of memory ma nagement scheme in FreeRTOS. Com-
puter Engineering and Ap plications, 2016, 52(13):76-80.
Abstract:The memory managem ent shceme of Free Real Time Operating System(FreeRTOS)has some shortcomings,
such as uncertain allocation time, frequent cutting, low utilization rate as well as inadequate consolidation mechanism,
this paper adopts a strategy of“precised cutting”and“delayed merging”in order to re duce memory fragment and raise
utilization rate furthest. Thus it introduces TLS F(Two-Level Segregated Fi t)algorithm into FreeRTOS, using two levels
of bitmap index to manage its dynamic memory and improving i ts process of memory allocation as well as release, then
conducts th e experimental test on the STM32 platform which ports with FreeRTOS. At last, t he resu lts show that this
method improve s the speed of memor y allocation and reduces memory fragmentation rate.
Key words:FreeRTOS; memory management; Two-Level Segregated Fit(TLSF)algorithm; STM32 platform; memory fragment
摘 要:针对 FreeRTOS 内存管理方案分配时间不确定,切割次数较多,利用率低及合并机制不足等缺点,采用一种
“精确切割”和“延时合并”相结合的策略以最大限度减少内存碎片,提高内存利用率。具体实现方法是在 FreeRTOS
中引入 TLSF(Two-le vel Segre gated Fit)算法数据结构,采用二级位图索引对动态内存进行管理,并改进 T LSF算法
的内存分配和释放过程;最后将改进的算法以及 FreeRTOS 移植到 STM32 开发平台上进行实验测试。测试结果表明
该方法提高了 FreeRTOS的内存分配速度,减少了内存碎片率。
关键词:FreeRTOS操作系统;内存管理;TLSF算法;STM32 开发平台;内存碎片
文献标志码:A 中图分类号:TP316.2 doi:10.3778/j.issn.1002-8331.1407-0 557
基金项目:国家高技术研究发展计划(863)(No.2011AA05A120)。
作 者 简 介 :刘 林(1988—),男 ,硕 士 ,主 要 研 究 领 域为电 路 与 系 统 、嵌 入 式 系 统 及 应 用 ,E-mai l:114853 0988@qq.com;朱 青
(1968—),女,博士,副教授,博士生导师,主要研究领域为现代网络与通信技术、数字信号处理;何昭晖(1976—),男,
硕士,嵌入式软件工程师,主要研究领域为智能配电、物联网技术。
收稿日期:2014-08-08 修回日期:2014-10-09 文章编号:1002-8331(2016)13-0076-05
CNKI网络优先出版:2015-03-20, http://www.cnki.net/kcms/detail/11.2127.TP.20150320.1511.014.html
76