ARM 单片机裸机任务调度框架

前言:

在没有使用操作系统的情况下,一个合理的裸机任务调度方式,可以更好的提供数据的处理,和用户体验,有多种任务调度的方式。


方案 1:

从上到下的任务调度方式,C语言程序的代码是在main函数中从上到下一个个的进行调度的,这种任务调度方式在实际的开发中并不提倡,所有业务模块全部在main函数中哈while死循环中放,实际上这种方案并不值得提倡。


方案 2:

按需分配的任务调度方式,这种方案是使用定时器中断和时间片分配机制实现的,在while循环中每一个业务功能模块对应一个时间片的标志,如果这些时间片标志位为true,那么就会执行调度对应的业务功能模块。


方案 3:

第三种程序任务调度框架,和业务相关的代码仅仅出现在数组初始化的函数中,业务功能函数的地址等保存在函数指针变量中。


任务调度框架代码

。。。

结语:

仅介绍任务调度框架,具体使用第三种的任务调度方式,参考郭天祥老师ARM32教程仅用于学习参考。

相关推荐
代码小将1 分钟前
力扣992做题笔记
算法·leetcode
编程绿豆侠3 分钟前
力扣HOT100之二叉树:199. 二叉树的右视图
算法·leetcode·职场和发展
万物此臻4 分钟前
C#编写软件添加菜单栏
开发语言·c#
whaosoft-14314 分钟前
51c嵌入式※~合集7~Linux
嵌入式硬件
RongSen3329 分钟前
Python海龟绘图(Turtle Graphics)核心函数和关键要点
开发语言·python
小贾要学习30 分钟前
【C语言】贪吃蛇小游戏
c语言·开发语言·游戏
人类恶.39 分钟前
C 语言学习笔记(函数2)
c语言·笔记·学习
程序员爱钓鱼43 分钟前
defer关键字:延迟调用机制-《Go语言实战指南》
开发语言·后端·golang
免檒1 小时前
Go内存管理
开发语言·网络·golang·操作系统
飞川撸码1 小时前
【LeetCode 热题100】17:电话号码的字母组合(详细解析)(Go语言版)
算法·leetcode·golang·dfs