FreeRTOS初相识

前言

欲剖析FreeRTOS,首先得从其框架着手,从粗到细,再从细回归到粗,最终大一统。

在收集了解FreeRTOS相关信息的过程中,首先让我感到意外的是,它是由亚马逊的团队进行开发和维护,然而和这个名字联系起来,又感觉有点反差萌,不过这倒也是它的最大特色--免费。拥有亚马逊这顶带着光环的帽子,是不是也让大家将它作为选项之一立下汗马功劳呢?毕竟巨人的肩膀给人感觉更稳重,可靠,不过我认为,作为一家企业,如果其愿景是成为行业领跑者,必须具备在巨人将肩膀撤离的情况下,继续生存发展的能力。我一直这么认为,这两年发生的事,也证实了这一点。

闲话少叙,言归正传,本次了解一下FreeRTOS的框架和目录结构。

识"大体"

关于FreeRTOS架构及其在系统中的位置,下面这张图表示的很清楚,橙色方框部分即为亚马逊提供的:

FreeRTOS初相识

可见,系统的软件方面,FreeRTOS之上为用户应用,之下为厂家提供的操作硬件的适配库,其除了内核外,还提供了一些连接协议,WiFi管理库,蓝牙管理库,无线更新,基础库等,这些组件,无疑为产品化应用攒下深厚的内功。其中部分内容,单个单词能认识,连起来就不知道是啥玩意了,从亚马逊官网上摘下来,先建立起一个初步印象:


FreeRTOS初相识


下一步准备剖析内核,在正式剖析内核之前,自然需要把代码下载下来,先并分析其目录结构。

FreeRTOS有很多下载途径,如FreeRTOS官网(https://www.freertos.org/),Amazon FreeRTOS控制台以及GitHub,大致分析三种下载方式的差异,如下表:


FreeRTOS初相识


综上,考虑到肯定需要实操,而当前没有实体平台可用,则采用通过Amazon FreeRTOS控制台方式下载下来的基于Windows仿真环境代码,其代码量少,方便理清逻辑,也很方便进行实操。

目录结构如下:

FreeRTOS初相识

<code>AmazonFreeRTOS
-- demos                   demo程序
-- freertos_kernel     FreeRTOS内核程序
-- libraries                 一些标准库,厂商库,第三库等
-- projects                 IDE工程文件

-- tests                       项目测试用脚本,代码等
-- tools                      工具
-- vendors                 平台厂商开发的驱动等
-- CHANGELOG.md
-- checksums.json
-- CMakeLists.txt
-- CODE_OF_CONDUCT.md
-- CONTRIBUTING.md
-- directories.txt
-- LICENSE
-- PreLoad.cmake
-- README.md/<code>

也可以和Free RTOS官方网站的代码目录结构进行对比一下

FreeRTOS初相识

前面Amazon FreeRTOS的目录freertos_kernel就完整对应这里的Source。而这里的Demo目录,则包含了多达170多个平台Demo程序。

且听下回

现在对系统架构及目录结构知道个一二了,可以开始探索FreeRTOS内核了!


分享到:


相關文章: