之前看过原子哥的FreeRTOS开发手册,但是对整个项目 怎么架构还不是很清楚。由于最近工作需要上FreeRTOS,所以决定通过MiniFly来学习一下FreeRTOS的架构。
一、main 函数
int main()
{
systemInit(); /*底层硬件初始化*/
xTaskCreate(startTask, "START_TASK", 300, NULL, 2, &startTaskHandle); /*创建起始任务*/
vTaskStartScheduler(); /*开启任务调度*/
while(1){};
}
main函数很简洁,初始化硬件-----然后建立一个开始任务-----接下来开启系统调度。
内容比较多的是在初始化硬件中,需要把用到的IO,串口,变量、信号量,队列等初始化完。
二、开始任务
开始任务创建了10个任务,在前面用序号1-10标出来了。方便后面对照。开始任务的作用就是创建其它任务,创建完后就把自己给删除了。
因为调度器已经开启,所以在这里创建任务时,需要进入临界保护,就是关中断
使用printf函数需要重定义, 现在暂时没有找到在哪里重定义了。
三、每个文件结构
每个.c文件就是一个模块,每个模块都有以下内容组成:
1、包含需要的头文件
2、定义本模块用到的变量,用关键字static限制了变量只在本模块使用
3、声明本模块的函数,方便本模块写在前面的函数可以调用写在后面的函数。
4、编写本模块函数
例子如下图:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)