第一章、前言
1.1裸机的软件写法
1,轮询系统
复制代码
1
2
3
4
5
6
7
8
9
10void main() { sys_init() while(1) { task_1(); task_2(); ....... } }
任务处理在循环中依次执行。
2,前后台系统
中断被成为前台,无限循环被成为后台。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18void main() { sys_init(); while(1) { task_1();//任务1 if(flag==1) { task_2();//任务2 } ....... } } void ISR()//中断 { flag=1;//标志 //task_2();//如果执行时间较多会放到后台系统执行 }
裸机系统的任务主要依靠标志位或者循环依次执行
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14void main() { sys_init(); while(1)//周期性控制 周期性freertos有优势 任务多周期越难控制 { task_1();//任务1 if(flag==1) { task_2();//任务2 } task_3(); ....... } }
裸机的这种写法有一个局限当任务变得较多时任务写起来将会非常麻烦。
裸机优缺点
优点:架构简单,栈共享,内存小适合,没有资源抢占,适合一个人能搞定的小项目。
缺点:大型项目架构不好做,
1.2 RTOS
任务状态:
运行:正在执行。
就绪:已有执行能力但有同一个优先级或者更高优先级的任务在执行而没有运行。
阻塞:在等待某一个触发事件,而没有执行。
挂起:不参与任务调度。
RTOS优缺点
优点:实时性(任务多的时候),多任务,适合多人协作(任务划分清楚,任务间通信)
缺点:资源占用多,任务规划耗时较多,存在资源互斥,任务间同步等问题。
注意:如果从事MCU级别的嵌入式软件开发一定要掌握RTOS!
最后
以上就是小巧火最近收集整理的关于freertos 学习笔记——第一章、裸机进阶RTOS第一章、前言的全部内容,更多相关freertos内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复