适合STM32的有哪些嵌入式操作系统

基于stm平台且满足实时控制要求操作系统,有以下5种可供移植选择。分别为μclinux、μc/os-ii、ecos、freertos和都江堰操作系统(djyos)。下面分别介绍这五种嵌入式操作系统的特点及不足。
1、μclinux
μclinux是一种优秀的嵌入式linux版本,其全称为micro-control linux,从字面意思看是指微控制linux。同标准的linux相比,μclinux的内核非常小,但是它仍然继承了linux操作系统的主要特性,包括良好的稳定性和移植性、强大的网络功能、出色的文件系统支持、标准丰富的api,以及tcp/ip网络协议等。因为没有mmu内存管理单元,所以其多任务的实现需要一定技巧。
μclinux在结构上继承了标准linux的多任务实现方式,分为实时进程和普通进程,分别采用先来先服务和时间片轮转调度,仅针对中低档嵌入式cpu特点进行改良,且不支持内核抢占,实时性一般。
μclinux操作系统的中断管理是将中断处理分为两部分:顶半处理和底半处理。在顶半处理中,必须关中断运行,且仅进行必要的、非常少、速度快的处理,其他处理交给底半处理;底半处理执行那些复杂、耗时的处理,而且接受中断。因为系统中存在有许多中断的底半处理,所以会引起系统中断处理的延时。
μclinux对文件系统支持良好,由于μclinux继承了linux完善的文件系统性能,它支持romfs、nfs、ext2、ms-dos、jffs等文件系统。但一般采用romfs文件系统,这种文件系统相对于一般的文件系统(如ext2)占用更少的空间。但是romfs文件系统不支持动态擦写保存,对于系统需要动态保存的数据须采用虚拟ram盘/jffs的方法进行处理。
综上可知,μclinux最大特点在于针对无mmu处理器设计,这对于没有mmu功能的stm32f103来说是合适的,但移植此系统需要至少512kb的ram空间,1mb的rom/flash空间,而stmf103拥有256k的flash,需要外接存储器,这就增加了硬件设计的成本。μclinux结构复杂,移植相对困难,内核也较大,其实时性也差一些,若开发的嵌入式产品注重文件系统和与网络应用则μclinux是一个不错的选择。
2、μc/os-ii
μc/os-ii是在μc/os的基础上发展起来的,是用c语言编写的一个结构小巧、抢占式的多任务实时内核。μc/os-ii能管理64个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和扩展性强等特点。
对于实时性的满足上,由于μc/os-ii内核是针对实时系统的要求设计实现的,所以只支持基于固定优先级抢占式调度;调度方法简单,可以满足较高的实时性要求。
在内存管理上,μc/os-ii把连续的大块内存按分区来管理,每个分区中都包含整数个大小相同的内存块,但不同分区之间内存的大小可以不同。用户动态分配内存时,只须选择一个适当的分区,按块来分配内存,释放时将该块放回到以前所属的分区,这样就消除了因多次动态分配和释放内存所引起的碎片问题。
μc/os-ii中断处理比较简单。一个中断向量上只能挂一个中断服务子程序isr,而且用户代码必须都在isr(中断服务程序)中完成。
isr需要做的事情越多,中断延时也就越长。
内核所能支持的最大嵌套深度为255。
在文件系统的支持方面,由于μc/os-ii是面向中小型嵌入式系统的,即使包含全部功能,编译后内核也不到10 kb,所以系统本身并没有提供对文件系统的支持。但是μc/os-ii具有良好的扩展性能,如果需要也可自行加入文件系统的内容。
在对硬件的支持上,μc/os-ii能够支持当前流行的大部分cpu,μc/os-ii由于本身内核就很小,经过裁剪后的代码最小可以为2kb,所需的最小数据ram空间为4 kb,μc/os-ii的移植相对比较简单,只需要修改与处理器相关的代码就可以。
综上可知,μc/os-ii是一个结构简单、功能完备和实时性很强的嵌入式操作系统内核,针对于没有mmu功能的cpu,它是非常合适的。它需要很少的内核代码空间和数据存储空间,拥有良好的实时性,良好的可扩展性能,并且是开源的,网上拥有很多的资料和实例,所以很适合向stm32f103这款cpu上移植。
3、ecos
ecos(embedded configurable operating system),即嵌入式可配置操作系统。它是一个源代码开放的可配置、可移植、面向深度嵌入式应用的实时操作系统。最大特点是配置灵活,采用模块化设计,核心部分由小同的组件构成,包括内核、c语言库和底层运行包等。每个组件可提供大量的配置选项(实时内核也可作为可选配置),使用ecos提供的配置工具可以很方便地配置,并通过不同的配置使得ecos能够满足不同的嵌入式应用要求。
在实时性反面,由于ecos调度方法丰富,提供了两种基于优先级的调度器(即位图调度器和多级队列调度器),允许用户在进行配置时选择其中一个调度器,适应性好。因此在实时性方面表现良好。
在内存管理上ecos对内存分配既不分段也不分页,而是采用一种基于内存池的动态内存分配机制。通过两种内存池来实现两种内存管理方法:一种是变长的内存池;另一种是定长的内存池,类似于vxworks的管理方案。
在中断管理上ecos使用了分层式中断处理机制,把中断处理分为传统的isr(中断服务程序)和滞后中断服务程序dsr(递延服务程序)。类似于μclinux的处理机制,这种机制可以在中断允许时运行dsr,因此在处理较低优先级中断时允许高优先级的中断和处理。为了极大地缩短中断延时,isr应当可以快速运行。如果中断引起的服务量少,则isr可以单独处理中断;如果中断服务复杂,则isr只屏蔽中断源,然后交由dsr(递延服务程序)处理。
ecos操作系统的可配置性非常强大,用户可以自己加入所需的文件系统。ecos操作系统同样支持当前流行的大部分嵌入式cpu,ecos操作系统可以在16位、32位和64位等不同体系结构之间移植。ecos由于本身内核就很小,经过裁剪后的代码最小可以为10 kb,所需的最小数据ram空间为10 kb。
在系统移植方面ecos操作系统的可移植性很好,要比μc/os-ii和μclinux容易。
综上所述,ecos最大特点是配置灵活,并且支持无mmu的cpu的移植,开源且具有很好的移植性,也比较合适于移植到stm32平台的cpu上。但ecos的应用还不是太广泛,还没有像μc/os-ii那样普遍,并且资料也没有μc/os-ii多。ecos适合用于一些商业级或工业级对成本敏感的嵌入式系统,例如消费电子领域中的一些应用。
来源:电子工程专辑

KnuEdge芯片秘研十年 Intel/谷歌受冲击?
兆易创新GigaDevice正式发布了GD32E232系列超值型微控制器
龙文冲压拉伸片料重叠检测解决方案
安霸与Motional携手合作,共同打造无人驾驶汽车
10G EPON将在FTTB/C/N率先应用
适合STM32的有哪些嵌入式操作系统
芯百特推出CB6318 5G通信功率放大器
英码深元“三位一体”AI场景化解决方案,助力多地化工园区快速实现智慧化转型!
电极片常见缺陷 电极片缺陷检测方法 电极片缺陷对电池性能的影响
元太上半年营收创12年同期新高
MEMS(微机电系统检测及失效分析
CES2012:三星NX200携附件参展
轻薄手机的未来在哪里?
比科奇与博葳通实现小基站BBU LTE软件对接并完成满速率、超容量商用测试
华为凤凰引擎首次商用
Netgear新推出的夜鹰网将以更低的价格提供Wi-Fi 6
苹果13promax512g预计价格多少
基于实时操作系统μc/OS-II与SPCE061的嵌入式多传感器测控系统
针对低功耗的设计
中国电信与中国联通将共建共享5G无线接入网