本人有幸接触到了一个项目需要用到实时操作系统
首先
MCU型号是HC32F460
512K Flash-
192K SRAM
OTA架构在本人的另外一篇文章,这里不做多的描述
首先FreeRTOS操作系统有个全局管理层,里面就是只包含一个全局变量ptr
层次分析采用由下往上的分析方法,第一层为驱动,例如串口UART、SPI等等,那么prt结构如下
struct {
struct {...} uart_layer;
struct {...} spi_layer;
}ptr;
然后分析上一层,假设SPI服务于网络层,网络层用到的是Net_Mode,则
struct {
struct {
· struct {...} spi_layer;
} net_mode;
struct {...} uart_layer;
}
为何要嵌套,这里用到了模仿继承的原理,这里不做讲述,这样更符号编程架构组织,不懂可以多看别人的架构代卖,但凡开源大型的架构,都有类似的架构,封装加继承等等
在第二层的基础上应该就是应用层了,该层主要负责协调各种第二层的接口进行自己的task
此外
但凡上系统的项目,其日志多切繁杂,因此有必要有串口等级信息打印,该层不属于第几层
主要思维就是可以静态或者动态开启四个等级(error、warn、info、debug)的信息的打印
主要作用是在开发时只打印自己想要的代码日志。(温馨提示:很重要)
有条件的还可以补上云日志。这里不做描述。
最后
FreeRTOS最重要的是有一个任务管理层,该层在应用层和app层,主要提供任务的初始化,资源的分配,定时器的创建、信号量的创建等等。