赞
踩
收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
RTX操作系统是由KEIL公司(已被并入Arm旗下)开发并进行升级维护的一款嵌入式实时操作系统,使用标准的C结构编写,运用RealView编译器进行编译,适用于 Arm Cortex-M 设备。它不仅仅是一个实时内核,还具备丰富的中间层组件,不但免费,而且代码也是开放的。
RTX的主要功能有开始和停止任务(进程),除此之外还支持进程通信,例如任务的同步、共享资源(外设或内存)的管理、任务之间消息的传递。开发者可以使用基本函数去开启实时运行器,去开始和终结任务,以及去传递任务间的控制(轮转调度)。开发者可以赋予任务优先级。
特点是支持时间片,抢占式和合作式调度。不限制数量的任务,每个任务都具有254的优先级。不限制数量的信号量,互斥信号量,消息邮箱和软定时器。支持多线程和线程安全操作。使用MDK基于对话框的配置向导,可以很方便的完成MDK的配置。
加州大学伯克利分校***-*** TinyOS
TinyOS最初是加州大学伯克利分校(UCBerkeley)和英特尔研究院(Intel Research)为嵌入智能微尘而开发的合作项目,之后逐渐演变成一个国际合作项目,即TinyOS联盟。TinyOS使用nesC语言编写,是一款开放源代码操作系统,它基于一种组件(Component-Based)的架构方式,使得能够快速实现各种应用。
TinyOS设计之初的目的是制作一个专属嵌入式无线传感器网络(WSN, wireless sensor network)的操作系统。但事实上,由于良好的可扩展性和足够小的代码尺寸,TinyOS在物联网的应用领域中也占有非常重要的地位。
TinyOS的用户社区十分活跃,其用户遍布学术界和产业界。从一年中TinyOS被下载超过35000次这一事实可以理解TinyOS的流行。TinyOS非常有效地用于各种场景中,例如传感器网络、智能建筑、智能电表等。
亚马逊***-*** FreeRTOS
FreeRTOS是一个迷你的实时操作系统内核,2003年由RichardBarry设计。作为一个轻量级的操作系统,整个核心代码只有3到4个C文件,为了让代码容易阅读、移植和维护,大部分的代码都是以C语言编写,只有一些函数(多数是架构特定排班副程序)采用汇编语言编写。
其特点是用户可配置内核功能、多平台的支持、目标代码小,简单易用强大的执行跟踪功能、堆栈溢出检测、没有限制的任务数量和任务优先级,多个任务可以分配相同的优先权、队列,二进制信号量,计数信号灯和递归通信和同步的任务、优先级继承。
FreeRTOS提供许多方法以实现多线程(threads)、多作业(task)、互斥锁(mutex)、信号量(semaphore)和软件计时器(software timer),有个为低耗电应用程序提供的无嘀嗒(tick-less)模式,线程的优先权管理也有支持。主要功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
该操作系统由于简单和易用,在轻量级的CPU上目前很多厂商都用这个国外系统,并已被经成功移植到35种不同的微控制器上。FreeRTOS采用MIT许可证许可。
微软***- Windows 10 IoT***
Windows 曾经叫做WindowsEmbedded,是微软的嵌入式系列产品家族,微软在开始发行Windows 10嵌入式版本时将"Windows Embedded"更名为"Windows IoT"。该系统以各种物联网设备为目标,从小型的工业网关到较大型且更复杂的设备 (例如:控制医疗设备、ATM),适合自动化制造、零售、医疗、军事、金融、航天等嵌入式设备所使用。
目前包括四大系列:Windows Embedded Standard、Windows Embedded Compact、Windows Embedded Enterprise、Windows Embedded POSReady。
2020年5月,微软宣布将把Windows 10 IoT Core及Windows 10 IoT Enterprise两个版本合并为一,预计2021年释出第一版,同时也承诺新版本将更精简,且增加执行Linux容器等新功能。
谷歌***- Fuchsia***
2016年,谷歌被曝出正在基于微内核Zircon研发名为“Fuchsia”的物联网OS,外界猜测Fuchsia是谷歌试图使用单一操作系统统一整个生态圈的尝试,即一个操作系统可以在智能手表、智能音箱、笔记本、智能手机等在内的设备上运行。
与基于Linux内核的Chrome OS和Android等不同,Fuchsia基于新的名为Zircon的微内核,受Little Kernel启发,用于嵌入式系统,主要使用C语言和C++编写。
Fuchsia的用户界面与应用使用“Flutter”开发,得益于Flutter提供的跨平台能力,用户可以在Android设备上安装一部分Fuchsia。
Fuchsia的形象标识是个粉红色的无限符号。作为免费和分发,采用三句版BSD,MIT和Apache 2.0软件许可证。
Linux基金会***- Zephyr***
Zephyr最初是风河系统公司在2015年11月推出的为物联网设备开发的“Rocket内核”,更早时称为“Microkernel Profile for VxWorks”,代码移植于2001年并购Eonic Systems得来的Virtuoso DSP RTOS。 2016年2月,它成为Linux基金会的项目而改称现名。
Zephyr是支持多种架构的小型实时操作系统,并针对资源受限的环境进行了优化。适用于从简单的嵌入式环境传感器和LED可穿戴设备,到复杂的智能手表和IoT无线网关。下面列出了Zephyr的主要功能:
在Zephyr设计中,安全性也很重要,设立了专门机制来维护或改进安全性。
Micrium***-μC/OS-II***
μC/OS由Micrium公司提供,是一个可移植、可固化的、可裁剪的、占先式多任务的开源实时内核,专为嵌入式应用设计,可用于8位、16位和32位单片机或数字信号处理器(DSP)。μC/OS-Ⅱ是在原版本μC/OS的基础上做了重大改进与升级,目前已经升级到了μC/OS-III。源代码开放、整洁、一致,注释详尽,适合系统开发,已有近十年的使用实践,有许多成功应用该实时内核的实例。
μC/OS-Ⅱ的主要特点如下:
严格地说,μC/OS仅是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。
嵌入式Linux
嵌入式linux是一类嵌入式操作系统的概称,这类型的操作系统皆以Linux内核为基础,被设计来使用于嵌入式设备。由于其源代码公开,人们可以任意修改,以满足自己的应用,并且查错也很容易。遵从GPL,无须为每例应用交纳许可证费。有大量的应用软件可用,其中大部分都遵从GPL,是开放源代码和免费的,可以稍加修改后应用于用户自己的系统。
此外还有大量的免费的优秀的开发工具,都遵从GPL并且是开放源代码的。有庞大的开发人员群体,无需专门的人才,只要懂Unix/Linux和C语言即可。随着Linux在中国的普及,这类人才越来越多。所以软件的开发和维护成本很低。此外稳定的网络功能是Linux本身具备的一个很大优点。内核精悍,运行所需资源少,典型的嵌入式Linux安装大概需要2MB的系统存储器。
嵌入式Linux和普通Linux并无本质区别,PC上用到的硬件嵌入式Linux几乎都支持。而且各种硬件的驱动程序源代码都可以得到,为用户编写自己专有硬件的驱动程序带来很大方便在嵌入式。
系统上运行Linux的一个缺点是Linux体系提供实时性能需要添加实时软件模块。而这些模块运行的内核空间正是操作系统实现调度策略、硬件中断异常和执行程序的部分。由于这些实时软件模块是在内核空间运行的,因此代码错误可能会破坏操作系统从而影响整个系统的可靠性,这对于实时应用将是一个非常严重的弱点。
RIM- QNX
QNX主要针对嵌入式系统市场,其本身虽然并不属于,但由于其支持,使得多数传统UNIX程序在微量修改(甚至不需修改)后即可在QNX上面编译与执行,算是一款商业实时操作系统。该产品开发于20世纪80年代初,后来改名为QNX软件系统公司,公司已被Research In Motion公司(RIM, 黑莓手机制造商)并购。
QNX是最成功的微内核操作系统之一,多数功能是以许多小型的task来执行,它们被称为server。这样的架构使得用户和开发者可以关闭不需要的功能,而不需要改变操作系统本身。
QNX Neutrino(2001)具有微内核实时平台,实时、稳定、可靠、运行速度快,已经被移植到许多平台,并且运行在嵌入式市场中使用的各种现代处理器上,例如X86、PowerPC等。QNX在汽车领域得到了极为广泛的应用,如保时捷跑车的音乐和媒体控制系统和美国陆军无人驾驶Crusher坦克的控制系统,还有RIM公司的blackberry playbook平板电脑。
Nucleus
Nucleus即时操作系统(Nucleus RTOS)是Mentor Graphics(已更名Siemens EDA)旗下Accelerated Technology公司所推出的嵌入式操作系统。Nucleus的好处是程序员不用再撰写板支持套装软件(BSP),并且约95%的代码用ANSI C编写,非常便于移植并能够支持大多数类型的处理器,同时可提供网络、图形用户界面、文件系统等模块支持。
在典型的目标环境中,NucleusPLUS核心代码区一般不超过20K字节大小。从实现角度来看,NucleusPLUS是一组C函数库,应用程序代码与核心函数库连接在一起,生成一个目标代码,下载到目标板的RAM中或直接烧录到目标板的ROM中执行。由于采用了软件组件的方法,Nucleus PLUS各个组件非常易于替换和复用。Nucleus PLUS的组件包括任务控制、内存管理、任务间通信、任务的同步与互斥、中断管理、定时器及I/O驱动等。
Nucleus RTOS提供注释严格的C源级代码给每一个用户。
微软***-*** ThreadX
ThreadX 是由美国Express Logic公司(2019年被微软收购)开发的实时操作系统。ThreadX的作者是Willian Lamie,他也曾是Nucleus的作者,并且曾是Express Logic公司的CEO。
ThreadX名字是由来有两个方面,线程(Thread)是操作系统的可执行单元, “X”表示上下文切换。ThreadX的线程共享同一内存空间,资源可共享。
和许多其他实时操作系统类似,ThreadX是多任务系统,采用抢占式调度,快速的中断响应,独立内存管理,支持线程间通信,互斥,事件和线程同步。
ThreadX主要的特点是支持优先级继承,抢占阈值的设计,微内核设计,代码空间占用小等。ThreadX源代码采用免版税使用模式(royalty-free)。
ThreadX 通常应用在嵌入式操作系统中。大部分的开发工作在主机上完成,主机运行Windows或Linux系统,交叉编译器可以在主机上生成目标系统的机器码,然后下载到目标板上运行。
几种可以识别threadx系统(OS-aware)的开发工具,包括 Wind River Workbench,ARM RealView,GreenHills Software’s MULTI, Metrowerks CodeWarrior, IAR C-SPY, Lauterbach TRACE32 和 visionCLICK。
ThreadX 支持的架构包括 ARM,X86, ARC, MIPS,Xtensa等等, 几乎涵盖所有主流CPU架构。
华为***-*** LiteOS
2015年Huawei LiteOS发布,2016年9月推出开源版本,Kernel源代码开源,大小只有10K,是华为针对物联网领域推出的轻量级物联网操作系统,是华为物联网战略的重要组成部分。具备轻量级、低功耗、互联互通、组件丰富、快速开发等关键能力,基于物联网领域业务特征打造领域性技术栈,为开发者提供 “一站式” 完整软件平台,有效降低开发门槛、缩短开发周期,可广泛应用于可穿戴设备、智能家居、车联网、LPWA等领域。
关键特性包括低功耗框架、OpenCPU架构、安全性设计、端云互通组件和SOTA远程升级等。
华为***-*** 鸿蒙HarmonyOS***(含LiteOS内核)***
华为HarmonyOS是一款面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。HarmonyOS的主要特点是分布式,包括软总线、设备虚拟化、数据管理和任务调度方面。同时具备一次开发,多端部署;统一OS,弹性部署的特点。
HarmonyOS主要有Linux、HarmonyOS内核、Lite OS三种内核,默认采用LiteOS,而且HarmonyOS内核文件中可以看到liteos-a和liteos-m字样,推测出HarmonyOS内核对于LiteOS内核具有一定的继承性。多内核设计可以在支持针对不同资源受限设备时,选则适合的内核。从另一个角度讲,LiteOS内核也不仅限于给HarmonyOS用,支持的硬件甚至比HarmonyOS还丰富一些,提供了更多内核案例和移植策略,从代码来看,它们都支持Cortex-M内核和Cortex-A内核。
——————小疑问:LiteOS和鸿蒙有啥不同?————
两者因对产品定位的不同,在对内存和资源的消耗上也有不同。
HUAWEI LiteOS因为其具有很高的剪裁特性,在硬件资源有限的时候的仅保留内核,可以剪裁到6KB ROM以及消耗2KB RAM资源,可以说对资源的消耗是低到一定程度,而HarmonyOS为了保证系统性能要求,对硬件的资源则是128K ROM及2MB RAM的要求。
所以HUAWEI LiteOS主打物联网业务领域,更适合硬件低配置、低成本、低功耗的应用场景;HarmonyOS更适合多媒体交互,需要Js增加开发效率的复杂大应用的场合使用。HarmonyOS目前的开发板支持还是以华为自研芯片为主,HUAWEI LiteOS除了支持华为自研芯片外,还支持了市场上主流的Arm开发学习板。
————————————————————————
阿里巴巴***-*** AliOS Things
阿里做OS起源于移动操作系统YunOS,距今已近10年,后整合升级为AliOS。其中AliOS Things是AliOS家族专门针对物联网领域的、高可裁剪、轻量级的嵌入式操作系统,致力于搭建云端一体化物联网基础设备。具备极致性能,极简开发、云端一体、丰富组建、安全防护等关键能力,并支持终端设备连接到阿里云Link,可广泛应用在智能家居、智慧城市、新出行等领域。
2017年10月,AliOS Things正式开源。
AliOS Things采用微内核架构,能够将在智能硬件上运行的软件容器化和在线化升级,这意味软硬件可以快速解耦、运维,降低了硬件厂商的生产与维护成本。据阿里官方介绍,这是一款专用于AIoT智能设备的操作系统,具备全新开发模式、在线裁剪工具、应用与内核分离、脚本语言支持、本地AI框架等特性。
另外,AliOS Things也是平头哥YoC软件平台的核心。
睿赛德***- RT-Thread***
RT-Thread发布于2006年,是一个集RTOS内核、中间件组件和开发者社区于一体的技术平台,由熊谱翔先生带领并集合开源社区力量开发而成,RT-Thread也是一个组件完整丰富、高度可伸缩、简易开发、超低功耗、高安全性的物联网操作系统。RT-Thread具备一个物联网操作系统平台所需的所有关键组件,例如GUI、网络协议栈、安全传输、低功耗组件等等。
官方资料显示,RT-Thread目前拥有国内最大的嵌入式开源社区,同时被广泛应用于能源、车载、医疗、消费电子等多个行业,累积装机量超过8亿台,成为国人自主开发、国内最成熟稳定和装机量最大的开源RTOS。
RT-Thread拥有良好的软件生态,支持市面上所有主流的编译工具如GCC、Keil、IAR等,工具链完善、友好,支持各类标准接口,如POSIX、CMSIS、C++应用环境、Javascript执行环境等,方便开发者移植各类应用程序。商用支持所有主流MCU架构,如ARM Cortex-M/R/A, MIPS, X86, Xtensa, C-Sky, RISC-V,几乎支持市场上所有主流的MCU和Wi-Fi芯片。
中移物联***-*** OneOS
OneOS是中国移动针对物联网领域推出的轻量级操作系统,2018年开始顶层设计,2020年6月正式对外发布开源版本。该系统具有可裁剪、跨平台、低功耗、高安全等特点,支持Arm Cortex-M/R/A、MIPS、RISC-V等主流CPU架构,兼容POSIX、CMSIS等标准接口,支持Micropython语言开发,提供图形化开发工具,能够有效提高开发效率并降低开发成本,帮助客户开发稳定可靠、安全易用的物联网应用。
OneOS遵循Apache许可证2.0版本,个人、企业客户可以免费在商业产品中使用,不需要公布源码,没有潜在商业风险。中移物联网表示,将秉承开放合作的态度,免费为客户提供适用于各种物联网场景的稳定系统。
腾讯***-*** TencentOS tiny
TencentOS tiny是腾讯面向物联网领域开发的实时操作系统,具有低功耗、低资源占用、模块化、安全可靠等特点,可有效提升物联网终端产品开发效率。
TencentOS tiny号称业界最小,只有1.8K,提供精简的RTOS内核,内核组件可裁剪可配置,可快速移植到多种主流MCU及模组芯片上。基于RTOS内核提供了丰富的物联网组件,内部集成主流物联网协议栈(如CoAP/MQTT/TLS/DTLS/LoRaWAN/NB-IoT 等),可助力物联网终端设备及业务快速接入腾讯云物联网平台。
有意思的是,这款操作系统推出不久后腾讯曾宣布,TencentOS将于2017年6月28日停止服务。当时给出的解释是,“因为第三方ROM市场萎缩,TencentOS要退出历史舞台了。”
但面对物联网市场的前景,2019年9月,腾讯还是宣布TencentOS tiny开源,希望以此进一步推动其物联网生态的繁荣。目前,TencentOS tiny已支持意法半导体、恩智浦、华大半导体、瑞兴恒方、国民技术等主流厂商多种芯片和模组。不过,与华为、阿里强势且全面的生态布局相比,腾讯还有很长一段路要走。
庆科***-*** MiCO
2014年7月,上海庆科(Mxchip)携手阿里云发布了MiCO(Micro-controller based Internet Connectivity Operating System),这是一个面向智能硬件优化设计的、运行在微控制器上的、高度可移植的操作系统和中间件开发平台。当时庆科称,这是中国首款真正意义上的物联网操作系统。
作为独立的系统,MiCO拥有开放架构,并不依赖于MCU型号,同时具有硬件抽象层(HAL)。此外,固件的应用开放接口已实现多种应用层协议:海尔、美的、AO、Apple MFi 、HomeKit、Siri语音控制等。MiCO包括了底层的芯片驱动、无线网络协议、射频控制技术、安全、应用框架等模块。
MiCO 内含一个面向 IoT 设备的实时操作系统内核,适合运行在资源受限的微控制设备上。此外,MiCO 还包含了网络通信协议栈、安全算法和协议、硬件抽象层、编程工具等开发 IoT 必不可少的软件功能包。MiCO 提供 MCU 平台的抽象化,使得基于 MiCO 的应用程序开发不需要关心 MCU 具体件功能的实现,通过 MiCO 中提供的各种编程组件快速构建 IoT 设备中的软件。
翼辉***-*** SylixOS
SylixOS是翼辉信息自主设计研发的大型嵌入式硬实时操作系统,从2006年便开始开发工作,据工信部评估报告内核自主化率100%。支持对称多处理器(SMP)平台,具有丰富的文件系统、网络系统以及众多设备驱动支持,并提供完善的集成开发环境。应用领域主要有网络设备、国防安全、工业自动化、轨道交通、电力、医疗、航空航天、汽车电子等。
从全球范围上看,SylixOS作为实时操作系统的后来者,在设计思路上借鉴了众多实时操作系统的设计思想,其中就包括RTEMS、VxWorks、ThreadX等。它的诞生可以摆脱国内一些关键性设备对国外嵌入式操作系统的依赖,为国内的嵌入式信息技术行业提供一个全新的选择。
为了保证 SylixOS 能够持续开发,并且吸引大批开发人员参与测试,SylixOS 目前是以公开源代码项目的形式存在。据官网显示,该操作系统源码已经授权给了多家国内科研机构,包括中国航天科工集团、中国航天科技集团、龙芯中科、国防科学技术大学等,推出了SylixOS海鹰翼辉、风云翼辉、龙芯翼辉、麒麟翼辉等发行版本。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eNgFqQWe-1641018507353)(https://raw.githubusercontent.com/xkyvvv/blogpic2/main/img/image-20220101141004017.png)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
mg_convert/ce74204b3faa9c99dcde17f0dacfb056.png#pic_center)
[外链图片转存中…(img-hilOkQIP-1715644138211)]
[外链图片转存中…(img-4lhAaRMI-1715644138212)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。