【联盛德 W800 Arduino开发板】新体验3)freeRTOS软件调查
研究W800芯片的freertos体验非常棒! 感谢面包板社区! 感谢联盛德!
--<历史链接>--
【联盛德 W800 Arduino开发板】新体验1)背景调查
【联盛德 W800 Arduino开发板】新体验2)开发环境搭建
(接上回)
在这样一个板子上跑应用程序,大概可以有几种方法:
1:编译成一个固件(firmwire)下载到单板(FLASH中)上电即自动执行
1.1:自制OS,单任务单进程,ALL_in_one,ALL_by_定制
1.2:采用Arduino软件架构,简化编程和下载
1.3:采用其他嵌入式OS,开源工具链来编译和下载
2:分为通用固件+用户代码两部分:
通用固件比如(microPython/LuaOS),厂家只要在单板出厂前下载一次就行了,
单板此后的全部生命周期都不需要修改 (类似BootRom);
用户只要编写自己的 .py/.lua 源文件,下发到单板即可(解释执行,甚至都不需要编译)
本单板采用 1.2/1.3 两种方法
1: 既然叫W800 Arduino,那它一定支持Arduino软件架构 ( 即:用processing架构来开发)
1.1)W800 Arduino作为Arduino开发板的开发
1.2)arduino W800
2: 大家都认为Arduino像玩具, 那么支持"高级一点"的OS,就很自然了
大家的选择是: 实时操作系统
----- < 为什么不能选择 Linux 系统?>
----- < 答案是: 系统资源不允许~~单板的硬件资源不够Linux造的~~~>--
----------------------------------
1) RTos定义
实时操作系统(Real Time OS),是一个大类的统称:
和单任务/单进程系统或基于中断响应的系统不同;
RTOS本质是:OS多任务管理和调度时,如何保证"实时性"问题,并着重在这个分支上进化;
RTOS关键是: 任务区分优先级; 高优先级任务可抢占低优先级任务CPU时间; 即:可剥夺内核
2) RTos 分类
2.1国内主导RTos:
UCDOS : Universal Control DOS:北京希望电脑公司开发,既是中文平台,也是RTOS
RT_Thread : 始于2006年,由中国开源社区主导开发,既有RTOS内核,还有丰富的中间件组件
DJYOS :都江堰操作系统,国内原创,来自中秦公司
2.2:国外主导RTos:
VxWorks (商业) 风河公司于1983年推出,用于战斧导弹,爱国者导弹,F-16、FA-18、B-2飞机,好奇号火星车等
μC/OS (商业) 由Micrium公司开发,通过FAA认证,符合 RTCA-DO-178B标准,最新版μC/OS-III
embOS (商业) Embeded Oscilloscope. 由捷克技术大学(CTU)开发,最初作为多功能示波器用
RTLinux :实时Linux分支,开发20年后,于2024年10月进入了主流Linux内核
RTX :Real-Time eXtension,由IntervalZero公司对Windows内核修改扩展而成,是实时Windows子系统
freeRTos (开源) <见下面详述> ; 以它为基础, 有openRTos, safeRTos 等商业变种
----------------------------------
由于支撑 RTOS 的系统资源往往少得可怜(尤其是RAM资源),所以能在小RAM的单片机上运行的 RTOS 只有少数几个,
并且 RTOS 全都符合: 源码公开、可裁减、可移植、实时性好、高可靠性,和完全免费 等特点, 你说巧不巧了吧~~~~
FreeRTOS 是比较流行的开源嵌入式 RTOS 之一 (注意: FreeRTOS并不是Linux!!)
FreeRTOS 是由 Richard Barry 创建于2003年.
当时他为 WHIS 工作,为公司贡献了下金蛋的母鸡. <见最后的 "代码英雄">
WHIS 公司全名: WITTENSTEIN high integrity systems,隶属于WITTENSTEIN集团,总部位于英国。
WHIS 最初是集团的航空航天部门,专注于高完整性和安全关键嵌入式系统设计。
2007年, WHS 推出商业变种1: SAFERTOS : 它完全基于FreeRTOS功能模型,
并且通过IEC61508 -3 SIL 3、ISO 26262 ASIL D预认证
2017 年,AWS 宣布管理 FreeRTOS, 然后推出了商业变种2: OPENRTOS
它和 FreeRTOS 内核共享相同的代码库
以上两种商用版本 SAFERTOS/OPENRTOS 和 开源版本的 FreeRTOS大部分用户API一致
----------------------------------
freeRTos特点有
1:用C语言编写 (只有极少数和处理器相关代码用汇编编写)
功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,
基本可满足小系统需要。是一种:开源/免费,简单易用,广泛可移植,可裁剪,可剥夺的多任务内核.
(核心代码在 \wm_iot_sdk\components\freertos\)
研究不同于 Linux 的操作系统代码,给我带来很多的乐趣~~~
2:freeRTos对资源要求较低,支持的硬件平台丰富;社区完备,在RTOS家族中影响力大
轻量级:FreeRTOS的内核代码非常精简,可以在非常有限的资源(如几KB的RAM和ROM)上运行。
可配置:用户可以根据需要配置FreeRTOS,只包含所需的功能,从而进一步减少资源占用。
跨平台:支持多种微控制器和处理器架构,包括ARM Cortex-M、PIC、AVR、ESP32等。
实时性:提供了基于优先级的任务调度,确保高优先级任务能够尽快得到执行,满足实时性要求。
功能丰富:除任务调度和同步机制外,还提供队列、定时器、事件标志组等高级功能。
易于使用:API设计直观,易于学习和使用,同时提供了丰富的文档和示例代码。
---------------------------------------------
代码英雄
Richard Barry