五大适合STM32的嵌入式操作系统
STM的开发环境及工具介绍

STM的开发环境及工具介绍随着科技的进步,嵌入式系统在各行各业中的应用越来越广泛。
STM32是一款由意法半导体(STMicroelectronics)推出的32位嵌入式开发平台,它以其高性能、低功耗和丰富的外设特性而备受开发者的青睐。
为了更好地开发STM32系列芯片,合适的开发环境和工具是必不可少的。
本文将为您介绍STM的开发环境及相关工具。
一、开发环境介绍1. STM32CubeIDESTM32CubeIDE是由STMicroelectronics开发的一款集成开发环境(IDE),旨在为STM32系列提供全面的开发工具。
它基于Eclipse开发框架,提供了强大的代码编辑、编译、调试和仿真功能。
同时,STM32CubeIDE还集成了STM32Cube软件包,可以帮助开发者快速构建应用程序。
2. Keil MDKKeil MDK是一款流行的嵌入式开发环境,适用于多种ARM架构的微控制器系列。
它支持对STM32芯片的开发,并且提供了易于使用的图形化界面和强大的调试功能。
Keil MDK还包含了一套全面的开发工具,如编译器、链接器和调试器,方便开发者进行全面的开发任务。
二、常用工具介绍1. STM32CubeMXSTM32CubeMX是一款图形化配置工具,它可以帮助开发者快速生成STM32系列的初始代码框架。
通过选择硬件外设和配置参数,开发者可以轻松生成C代码,并且可以方便地导入到开发环境中进行二次开发。
STM32CubeMX还可以自动生成初始化代码和驱动程序,大大简化了开发流程。
2. ST-Link调试器ST-Link是一款常用的调试器和编程器,适用于STM32开发。
它可以通过USB接口与开发板进行连接,并提供了调试和编程的功能。
ST-Link调试器支持多种调试接口,如JTAG和SWD,可支持各种调试需求。
开发者可以借助ST-Link调试器进行程序的烧录、调试和性能分析,提高开发效率。
3. STM32Cube软件包STM32Cube软件包是由STMicroelectronics提供的一套软件资源集合,旨在简化STM32芯片的开发。
基于STM32的嵌入式系统实验平台设计

・技术在线 - 32 -2017年10月下 第20期(总第422期)10.3969/j.issn.1671-489X.2017.20.032基于STM32的嵌入式系统实验平台设计*◆杨卫波 阮秀凯 崔桂华摘 要 针对嵌入式原理与应用的本科教学,设计基于Coretex-M4内核的嵌入式系统实验平台。
实验平台以STM32F407IGT6微处理器为控制核心,采用模块化方法进行硬件设计,并提供丰富的接口;开发四个层次的实验项目,实验项目设计循序渐进,有利于培养具有创新思维的嵌入式开发人才。
教学实践表明,该实验平台能够满足教学要求,可以增强嵌入式课程的教学效果。
关键词 嵌入式系统;STM32;实验平台中图分类号:G642.423 文献标识码:B 文章编号:1671-489X(2017)20-0032-03Design of Embedded System Experiment Platform based on STM32//YANG Weibo, RUAN Xiukai, CUI GuihuaAbstract An embedded experimental teaching platform based on Coretex-M4 was designed for the undergraduate teaching of embe-dded principle and application. The experiment platform with STM 32F407IGT6 microprocessor adopted modular design , and provided lots of interface in the system. Four levels of experiment items were designed, and the experimental projects were progressive, which was benefi cial to the development of embedded talents with creative thin-king. The teaching practice demonstrated that the experimental plat -form can meet the teaching requirements, and can improve the tea -ching effect of embedded courses.Key words embedded system; STM32; experiment platform1 前言嵌入式原理与应用是电子与信息类学科的一门专业必修课。
基于STM32单片机的嵌入式系统开发与应用研究

基于STM32单片机的嵌入式系统开发与应用研究一、概述随着科技的不断发展,嵌入式系统已成为今天的主流技术之一。
它不仅广泛应用于汽车、航空、机器人等领域,还被广泛应用于生活中的各种产品中。
其中,基于STM32单片机的嵌入式系统因为其先进的架构和性能优势,在嵌入式系统领域中得到了广泛的应用。
本文将介绍基于STM32单片机的嵌入式系统开发与应用研究,包括STM32单片机的技术特点、系统设计开发流程以及应用案例分析等内容。
二、STM32单片机技术特点STM32单片机是欧洲ST公司推出的一种高性能、低功耗的嵌入式系统单片机。
它采用ARM Cortex-M3内核,拥有高速的闪存、大容量的SRAM和多种外设接口,可以轻松满足嵌入式系统的各种需求。
此外,STM32单片机还具有以下技术特点:1.强大的计算能力:采用Cortex-M3内核,主频高达72MHz,能够满足高要求的计算需求。
2.多样化的外设:包括多种串口、SPI、CAN、USB等外设接口,可以适应不同的应用场景。
3.低功耗设计:采用了深度睡眠模式和动态电压调节技术,能够极大地降低系统的功耗。
4.丰富的软件支持:提供了一整套完整的软件开发套件,包括编译器、调试器、IDE等,开发者能够轻松完成系统开发。
以上这些特点使得STM32单片机成为了目前市场上最为成熟和先进的嵌入式系统单片机之一。
三、系统设计开发流程基于STM32单片机的嵌入式系统开发可以分为以下几个步骤:1.确定需求和规格:在进行系统设计前,需要明确系统的功能、性能要求、外设接口等各种需求和规格。
2.选择芯片型号:根据需求和规格,选择适合的芯片型号,STM32单片机有多个型号可供选择,可以根据实际需求选择不同的型号。
3.硬件设计:根据所选的芯片型号设计电路原理图和PCB板。
4.软件设计:根据硬件设计完成软件编写,可以采用C语言、汇编语言等编程语言。
5.调试和验证:完成硬件和软件的开发后,进行调试和验证,确保系统可以正常工作。
单片机嵌入式操作系统选择指南 适合你的系统

单片机嵌入式操作系统选择指南适合你的系统在嵌入式系统领域,单片机是一种重要的组成部分,而选择合适的操作系统对于单片机的功能和性能起着决定性的作用。
本文将介绍一些常见的单片机嵌入式操作系统,并针对不同应用场景提供一些建议,以帮助选择适合你的系统。
一、嵌入式操作系统的重要性嵌入式系统通常用于控制和管理各种设备,如智能家居、医疗设备、交通工具等。
选择合适的嵌入式操作系统可以提升系统的稳定性、安全性和性能。
以下是一些常见的嵌入式操作系统。
二、常见的嵌入式操作系统1. 实时操作系统(RTOS)实时操作系统(RTOS)是一种专门设计用于处理实时任务的操作系统。
它具有以下特点:高度可靠、响应时间短、实时性强。
常见的RTOS有嵌入式Linux、FreeRTOS、uC/OS等。
2. 裸机编程裸机编程是指直接在单片机上编写程序,不依赖于操作系统。
这种方式效率高,资源占用少,但对开发者的要求较高。
3. 嵌入式Linux嵌入式Linux是一种基于Linux内核的操作系统,具有强大的功能和广泛的应用领域。
它支持多线程、网络连接、文件系统等特性,适用于对功能要求较高的嵌入式系统。
4. uC/OSuC/OS是一种采用优先级调度算法的实时操作系统,具有较小的内存占用和快速的响应时间。
它适用于对实时性要求较高的系统,如工业自动化和航空航天。
5. FreeRTOSFreeRTOS是一种开源的实时操作系统,具有小巧、高效、可靠的特点。
它适用于资源受限、对实时性要求较高的系统,如传感器节点和嵌入式设备。
三、选择适合的操作系统在选择嵌入式操作系统时,需要考虑以下几个因素:1. 功能需求首先需要明确系统的功能需求,包括任务调度、网络连接、文件系统等。
根据需求选择适合的操作系统。
2. 系统的资源限制考虑系统的处理能力、内存大小等资源限制。
对于资源受限的系统,选择轻量级的操作系统或裸机编程可能更为合适。
3. 开发人员的经验和技术开发人员的经验和技术能力对选择操作系统也起着关键的作用。
基于STM32的嵌入式PLC的设计

基于STM32的嵌入式PLC的设计嵌入式PLC(Programmable Logic Controller)是一种常见的工业自动化设备,用于控制和监测机械和工业过程。
基于STM32的嵌入式PLC设计具有高性能、低功耗和可靠性的特点。
本文将介绍基于STM32的嵌入式PLC的设计原理和关键特性。
一、设计原理嵌入式PLC基于STM32是通过使用STM32系列微控制器实现的。
STM32是意法半导体公司推出的一款32位微控制器,具有高性能、低功耗和丰富的外设接口。
嵌入式PLC利用STM32的高性能处理能力和丰富的外设接口,可以实现高速响应和多种输入输出功能。
设计过程包括以下几个步骤:1.硬件设计:选择合适的STM32微控制器作为主控芯片,设计电路板,包括与外部设备的连接和电源电路的设计。
2.软件开发:使用C语言或者其他高级语言开发PLC控制程序。
该程序控制输入输出设备并响应外部输入信号。
3.调试和测试:将开发好的软件烧录到STM32微控制器中,连接外部输入输出设备进行调试和测试。
二、关键特性1.高性能:STM32微控制器具有高性能处理能力,可以快速响应外部输入信号并实时控制输出设备。
2.多种输入输出接口:STM32系列微控制器具有多个通用输入输出引脚,可以连接各种传感器和执行器。
同时,也可以使用外扩IO板来扩展输入输出接口的数量。
3.丰富的通信接口:基于STM32的嵌入式PLC支持多种通信接口,如UART、SPI、I2C等。
这使得PLC可以与其他外部设备进行通信,实现数据交换和远程控制。
4. 实时操作系统支持:STM32系列微控制器支持实时操作系统(RTOS),如FreeRTOS和uC/OS等。
这些操作系统可以帮助开发人员更好地管理任务和处理中断。
5.低功耗:STM32微控制器具有低功耗特性,可以降低系统的能耗。
这对于一些对能耗要求较高的应用场景非常有利。
6.可靠性:STM32微控制器具有良好的抗干扰能力和稳定性,可以经受恶劣的工作环境和高负载情况。
一个核的STM32H7不够用,试试双核的!

敬请登录网站在线投稿2019年第8期93一个核的S T M32H7不够用,试试双核的!本刊记者薛士然在工业控制㊁智能家居应用中,人机界面设计俨然成为标配㊂如何设计出美观的人机界面又不影响控制的实时性,对嵌入式工程师来说,是一个需要认真权衡的难题㊂对于喜欢使用S TM32的工程师,S T2016年底推出的高性能系列S TM32H7是个选择,但是一个内核要兼顾两方面考虑,也着实难为它了㊂为了帮助客户解决这个难题,近期S T推出了双核S TM32H7㊂据S T微控制器事业部S TM32高性能产品线高级市场经理R e n a u d B o u z e r e a u介绍,此次推出的双核S TM32H7是目前全球性能最强大的微控制器㊂双核各司其职,让设计更简单双核S TM32H7中采用一颗A r m C o r t e x M系列中性能最高㊁480MH z的C o r t e x M7内核,以及一颗240 MH z的C o r t e x M4内核㊂据R e n a u d B o u z e r e a u介绍,双核S TM32H7创下了1327D M I P S和3224C o r e M a r k的性能新纪录,而友商的产品在600MH z下C o r e M a r k测试成绩为2950㊂强大的C o r t e x M7内核搭配双精度F P U㊁M P U㊁先进的D S P和L1C a c h e,能够帮助工程师设计出先进的人机界面;实时性较好的C o r t e x M4内核搭配单精度F P U㊁D S P㊁M P U和A R T A c c e l e r a t o r,让设计的产品更好地完成实时性工作㊂两个内核可以独立运行,两套任务可以并行进行,所以采用双核S TM32H7做设计,能够完美实现人机界面等辅助功能和实时控制功能的统一㊂两个内核各司其职,工程师无需在二者之间因为分配资源而作权衡考虑㊂工程师可能会有这样的疑问:我已经习惯了用单核产品做开发,双核会不会让开发过程变得复杂?对于这个问题,R e n a u d B o u z e r e a u这样解释:在硬件方面,双核S TM32H7内置了硬件信号量,将两个内核同步,如果一个内核正在占用某些外设,另一个内核会同步知道,无需工程师在设计中考虑关于外设的分配情况,因此工程师只需要关注于功能的实现即可;在软件方面,很多第三方供应商(如F r e e R T O S等),都会支持双核设计,工程师使用起来非常便利㊂如果工程师想把现有设计升级,比如增加更复杂的图形用户界面,可以把以前在单核C o r t e x M4 M C U上的旧代码迁移到S TM32H7C o r t e x M4上,同时在C o r t e x M7上运行新G U I㊂使用双核S TM32H7还有非常重要的一个优势:如果使用单核产品做开发,用户界面代码和实时控制功能代码需要由同一个团队来完成,而采用双核S TM32H7,用户界面和实时控制两部分功能开发可以分开,由两个团队并行进行,从而大大缩短项目的开发周期㊂可以说,采用双核S TM32H7,不仅两个内核各司其职,工程师也可以各司其职㊂主D M A,让两个内核数据传输不出错两个内核放在同一个封装中,最棘手的问题就是数据传输㊂如果仅仅一个内核,数据传输通常不会发生错误,但是两个内核与共同的外设连接,数据传输发生错误的几率就会变大,而且后果会非常严重㊂为了解决这个问题,双核S TM32H7内部设计了主D MA(D i r e c t M e m o r y A c-c e s s),其能处理记忆体和外设之间最复杂的数据传输配置,保证不会出现数据传输错误,并且无需C P U干预㊂为了提高S TM32H7的能效,其中的两个内核都有各自独立的电源域,在不需要时可以单独关闭,这样一来, S TM32H7既拥有高性能,也兼顾了低功耗㊂S F I,确保生产流程更安全安全是网络时代绕不开的话题㊂R e n a u d B o u z e r e a u 介绍,双核S TM32H7采用专属的硬件加密技术和哈希硬件加速,而不像其他产品采用软件加密,一方面可以使客户的产品安全性更高,另一方面还可以减轻90%以上的C P U工作负荷㊂双核S TM32H7配备预安装密钥和原生安全服务,包括安全固件安装(S F I)㊂S F I允许客户在世界任何地方订购标准产品,并将加密固件交付给外部编程公司,避免未加密的代码泄露㊂除此之外,S TM32H7还内置安全启动和安全固件更新支持功能,保障空中下载升级和补丁的安全㊂S TM32广受欢迎,离不开其强大的生态系统支持!与其他S TM32产品一样,S T也为双核S TM32H7配齐了开发工具,包括S TM32C u b e H7固件模块和应用程序源代码㊁评估板㊁开发套件和N u c l e o开发板㊂S T M32上运行L i n u x,这事不远了!喜欢使用S TM32做开发的工程师问,什么时候可以在S TM32上跑L i n u x?R e n a u d B o u z e r e a u透露,S T公司已经推出内置2个C o r t e x A和一个C o r t e x M4的3核S TM32M P1,此系列产品可以运行L i n u x,来满足工程师更多样的需求,预计今年下半年会进入中国市场㊂S T M32这款经典的产品家族,成员依然在继续扩大,当你发现单核产品开发遇到困难或者希望使设计更完美的时候,试试双核S T M32H7,一定会给你柳暗花明的惊喜!。
嵌入式操作系统有哪些

嵌入式操作系统有哪些嵌入式操作系统有哪些嵌入式操作系统是一段在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于其上的各个任务,它根据各个任务的要求,进行资源(包括存储器、外设等)管理、消息管理、任务调度、异常处理等工作。
在有嵌入式操作系统支持的系统中,每个任务有一个优先级,根据各个任务的优先级,动态地切换各个任务,保证对实时性的要求。
经过多年的发展,比较流行的嵌入式操作系统如下:1、VxWorksVxWorks 操作系统是美国WindRiver公司于1983年设计开发的一种实时嵌入式操作系统(RTOS),由于具有高性能的系统内核和友好的用户开发环境。
VxWorks的突出特点:可靠性、实时性和可裁减性。
它是目前嵌入式系统领域中使用最广泛、市场占有率最高的操作系统。
它支持多种处理器,如x86、i960、Sun Sparc、Motorola Mc68xxx、MIPS RX000、Power PC等。
大多数的VxWorks API是专有的.,采用GNU 的编译和调试器,具有集成开发环境T ornado 系列。
它属于商业型操作系统,目前国内很多大的公司都采用此操作系统进行嵌入式系统的开发,如中兴通讯、华为等。
2、pSOS该系统是一个模块化、高性能的实时操作系统,专为嵌入式微处理器设计,提供一个完全的多任务环境,在定制的或者商业化的硬件上具有高性能和高可靠性,可以让开发者根据操作系统的功能和内存需求定制每一个应用所需的系统。
开发者可以利用它来实现从简单的单个独立设备到复杂的、网络化的多处理器系统。
3、Windows EmbeddedWindows Embedded 产品家族是Microsoft的产品,主要是用于建立支持具有丰富应用程序和服务的32嵌入时系统,从而针对广泛的用户需求提供灵活解决方案。
此外,同支持更快的“产品上市速度”并降低开发成本,Windows Embedded 产品家族还能保证开发人员立于竞争前沿。
基于STM32的嵌入式系统实验平台设计

资源。其特点 如下 : 1 ) 低成本 , 核 心芯 片的价格不
提 升。
关键 词 : 嵌入 式 系统 ; S T M3 2 ; 研 究生教 育实验平 台 ; 开放式 实验教 学模 式 中图分 类号 : T P 3 i 文 献标 识码 : A 文章编 号 : 1 0 0 5 — 3 8 2 4 ( 2 0 1 3 J 0 6 - 0 0 8 5 — 0 3
是设计用于高性能 的开放应用平台 , 例如智能手机 和平板 电脑 等 。 R分 支用 于 高端 的嵌 入 式 系统 , 例 如对实时性与速度并 重的系统。M 分支用 于深度 嵌入的、 单片机风格 的系统 中 。上述 3个分支涉
实验平 台采用 3 . 3 V供 电, 在设计上包括 了程 N-NTg  ̄ 、 供电、 调试( 串口打印信息) 3位一体, 所有的一切 只需要 一根 U S B线就可 以使用 。只要 及到的 A R M芯片结构和性能并不相同, 从学 习的渐 学生身旁有 电脑 , 就可以使用这个开发平 台, 这样极 进性考虑 , 其 中的 M分支也就是 以 A R M C o r t e x M 3 大地拓展了学生的学习时间与空问。
过 十几 元 , 使学 生 能够 人 手 一 块 实验 板 ; 2 ) 易携带 , 板 子外 观 只有 8 c m×1 0( 3 1 3 3 ; 3 ) 功能 丰 富 , 实 验平 台 贴 合 现在 嵌入 式 最 新 的技 术 , 包 括触 摸 输 入 、 S D卡
的实验平台, 以期从教学与实践 2个层面推动大学 生创新能力与工程实践能力 的培养。 嵌 入式 课 程可 以选 择 的 实 验平 台有 很 多 , 国 内 高 校不 约 而 同地选 择 了以 A R M 为 内核 结 构 的 系列 芯 片 为实 验平 台 的 核 心 。A R M 结 构 的 系列 芯 片 发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
五大适合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是针对没有MMU的处理器设计的,不能使用处理器的虚拟内存管理技术,只能采用实存储器管理策略。
系统使用分页内存分配方式,在启动时对实际存储器进行分页。
系统对内存的访问是直接的,操作系统对内存空间没有保护,多个进程可共享一个运行空间,所以,即使是一个无特权进程调用一个无效指针也会触发一个地址错误,并有可能引起程序崩溃甚至系统崩溃。
μClinux操作系统的中断管理是将中断处理分为两部分:顶半处理和底半处理。
在顶半处理中,必须关中断运行,且仅进行必要的、非常少、速度快的处理,其他处理交给底半处理;底半处理执行那些复杂、耗时的处理,而且接受中断。
因为系统中存在有许多中断的底半处理,所以会引起系统中断处理的延时。
μClinux对文件系统支持良好,由于μClinux继承了Linux完善的文件系统性能,它支持ROMFS、NFS、ext2、MS-DOS、JFFS等文件系统。
但一般采用ROMFS文件系统,这种文件系统相对于一般的文件系统(如ext2)占用更少的空间。
但是ROMFS文件系统不支持动态擦写保存,对于系统需要动态保存的数据须采用虚拟RAM盘/JFFS的方法进行处理。
在对硬件的支持上,由于μClinux继承了Linux的大部分性能,所以至少需要512KB的RAM空间,lMB的ROM/Flash 空间。
在μClinux的移植方面,。
μClinux是Linux针对嵌入式系统的一种改良,其结构比较复杂。
移植μClinux,目标处理器除了需要修改与处理器相关的代码外,还需要足够容量的外部ROM和RAM。
综上可知,μClinux最大特点在于针对无MMU处理器设计,这对于没有MMU功能的stm32f103来说是合适的,但移植此系统需要至少512KB的RAM空间,1MB的ROM/FLASH 空间,而stmf103拥有256K的FLASH,需要外接存储器,这就增加了硬件设计的成本。
μClinux结构复杂,移植相对困难,内核也较大,其实时性也差一些,若开发的嵌入式产品注重文件系统和与网络应用则μCli nux是一个不错的选择。
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、eCoseCos(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适合用于一些商业级或工业级对成本敏感的嵌入式系统,例如消费电子领域中的一些应用。
4、FreeRTOS由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS 等少数实时操作系统能在小RAM单片机上运行。
相对于C/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行,其最新版本为6.0版。
作为一个轻量级的操作系统,FreeRTOS提供的功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。
FreeRTOS内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU总是让处于就绪态的、优先级最高的任务先运行。
FreeRT0S内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下,同一优先级的任务共享CPU的使用时间。
FreeRTOS的内核可根据用户需要设置为可剥夺型内核或不可剥夺型内核。
当FreeRTOS被设置为可剥夺型内核时,处于就绪态的高优先级任务能剥夺低优先级任务的CPU使用权,这样可保证系统满足实时性的要求;当FreeRTOS 被设置为不可剥夺型内核时,处于就绪态的高优先级任务只有等当前运行任务主动释放CPU的使用权后才能获得运行,这样可提高CPU的运行效率。
FreeRTOS的移植:FreeRTOS操作系统可以被方便地移植到不同处理器上工作,现已提供了ARM、MSP430、AVR、PIC、C8051F等多款处理器的移植。
FrceRTOS在不同处理器上的移植类似于μC/0S一II,故本文不再详述FreeRTOS的移植。
此外,TCP/IP协议栈μIP已被移植到FreeRTOS上,具体代码可见FreeRTOS网站FreeRTOS的不足:相对于常见的μC/OS—II操作系统,FreeRTOS操作系统既有优点也存在不足。
其不足之处,一方面体现在系统的服务功能上,如FreeRTOS只提供了消息队列和信号量的实现,无法以后进先出的顺序向消息队列发送消息;另一方面,FreeRTOS只是一个操作系统内核,需外扩第三方的GUI(图形用户界面)、TCP/IP协议栈、FS(文件系统)等才能实现一个较复杂的系统,不像μC/OS-II可以和μC/GUI、μC/FS、μC/TCP-IP等无缝结合。
5、都江堰操作系统(djyos)都江堰操作系统,简称djyos,得名于一个伟大的水利工程:都江堰。
与传统操作系统不同,djyos不是以线程而是以事件为调度核心,这种调度算法使程序员摆脱模拟计算机执行过程编写程序的思维方式,而是按人类认知世界的方式编写应用程序,就如同在嵌入式编程中引入了VC似的。
djyos的调度算法使程序员可以摆脱线程和进程的束缚,djyos没有有关线程的api,一个完全不懂线程知识的程序员也可以顺利地在djyos下编写应用程序。
djyos 操作系统是以事件为核心进行调度的,这种调度策略使程序员可以按人类认知事物的习惯而不是计算机的习惯来编程。