单片机多任务处理方案

单片机只有一个cpu,一次只能执行一条指令,要处理多任务,相当于多个任务同时执行,只有靠分时。
如果没有实时操作系统,自己做多任务处理很难的。
如果是采集通信数据处理输入输出这样的常规任务,可以采用中断方式,中断服务程序处理实时任务,分析计算等任务放入主程序中。
多任务协调,可用状态自动机模型处理。
普通单片机内部只有一个核,只能顺序执行指令,同一时刻不能并行执行多条指令。
所谓的多任务,也是分时执行实现的。只是任务切换的非常快,人感觉不满任务的切换,像同时执行一样。
单片机要执行多任务,可以使用中断的方式,也可以使用操作系统,目前有一些适用于单片机的小型操作系统。
单个核心不可能真正同时处理两个任务。一般来说,单片机主要是处理外设中断,产生中断的时候,主循环是停止执行的,实际上是分时处理。如果要处理多个任务,最简单的是用实时系统rtos,创建多个任务即可,还可以定义优先级。如果要做到真正意义上的同时处理,就要用多核芯片。裸机系统可用片内定时器产生中断来切换任务。
首先、单片机多任务处理方案有哪些?
1、采用实时操作系统rtos
也是我们所说的实时操作系统,rtos本身已经实现了多任务调度算法,我们不在关心如何调度的问题,我们只需要根据rtos的api来创建多任务即可。常见的rtos有freertos,uc/os,华为liteos,t-thread等等。
2、采用有限状态机(state machine)
也可通过一幅简单的示意图(也叫「状态转移图」)表示出来:
在单片机程序设计中,如果一个系统需要处理一系列连续发生的任务,或在不同的模式下对输入进行不同的处理,常常使用有限状态机实现。例如测量、监测、控制等控制逻辑型应用。
其次、如何选择单片机多任务调度方案
和rtos相比,状态机占用的系统资源少,省去了系统调度定时器,没有rtos占用的内存也少了,但是需要程序人员来完成多任务调度。
从上面可以看出,如果单片机资源很有限,多任务逻辑又比较简单,建议选择状态机方法。如果多任务很复杂,功能比较多,单片机功能比较强,rtos占用的资源可以忽略不计,那就可以考虑采用rtos来完成。采用rtos可以比较容易的实现模块化设计。但是rtos需要注意的是多任务间的优先级和多任务间的通信问题。
最后、单片机多任务如何选择?
对于大部分编程来说其实一般的状态机就够了,小编也曾经十分推崇rtos,但是到后来发现,其实越是逻辑简单,程序越是容易编写,出错的概率越小。大道至简,小编现在大部分程序都是裸奔了,当然小编自创的异步编程也是相当的便利。

你觉得自动驾驶可靠吗
大功率1/4砖隔离式DC/DC转换器能够满足节能数据中心的需求
iOS10越狱遭苹果“黑手”,iOS10.2越狱被扼杀?iOS10.3是否快放出?
智能家居中的AI可以感受情感吗
如何找到一种既能垂直起降又具备较长续航时间的无人机
单片机多任务处理方案
STRAMA-MPS推出了第三代LED光伏模拟器
AirPods竟被老外爆炒至1.4万元!淘宝服了
跟大家聊聊BGP与OSPF
兆驰光元收到江西证监局辅导备案函
荣耀9什么时候上市最新消息:疑似华为荣耀9入网照曝光,配置、价格、发布日期这里都有
健身房应用的智能魔镜帮助我们体验智能健身的乐趣
芯闻3分钟:OLED概念板块全线飘红 这场红利角逐战谁是赢家?
光源频闪效应有哪些危害?
Cyntec高效uPOL模块MUN3CAD01-SB有什么特色
华为技术实力得到更多朋友圈的认可
Go为什么是2020年最受欢迎的语言?
Intel发布性能放大器软件工具 支持六款Intel处理器
传输线的四点基础知识
M8040A误码仪助力高速数字接口测试