裸机怎么跑多任务呢?

2019-03-23 17:56发布

最近遇到点麻烦,裸机跑多任务不知道怎么搞了,翻了论坛的帖子,找到了这篇讲时间轮询的原帖地址问题是帖中的方法怎么解决当单个任务执行时间过长的情况呢?比如我要跟从机通信,而通信速率非常之慢,或者刷屏刷的也很慢,这个问题也可以说成是,怎么解决任务当中delay函数的实现……
看了ucos里面的解决方法,需要保护任务现场用汇编,如果这样不如直接上操作系统,不知道这个问题在裸机下是如何解决的?


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
汤权
1楼-- · 2019-03-23 23:31
 精彩回答 2  元偷偷看……
littleshrimp
2楼-- · 2019-03-24 02:47
飞鸿浩劫
3楼-- · 2019-03-24 07:26
本帖最后由 飞鸿浩劫 于 2016-11-21 18:17 编辑
汤权 发表于 2016-11-21 18:01
既然裸机就没有真正的多任务了,有一种“操作系统”是共享栈空间的操作系统,貌似在Zigbee系统中应用的很多 ...

新人没做过完整的项目,也没有人交代……当初写代码的时候没考虑清楚,现在写了十多天,驱动写完发现问题了
大任务里面主要是运算太多或者夹杂的延时很长,能不能用状态机把大任务分割成小段,对于里面的大延时重新给任务计时器赋值,这样是不是可以用状态机保存大任务的状态?或者说用状态机把大任务分割成小任务
飞鸿浩劫
4楼-- · 2019-03-24 08:31
 精彩回答 2  元偷偷看……
汤权
5楼-- · 2019-03-24 13:42
飞鸿浩劫 发表于 2016-11-21 18:12
新人没做过完整的项目,也没有人交代……当初写代码的时候没考虑清楚,现在写了十多天,驱动写完发现问题 ...

定时器定时中断实现状态机是可以的,可以实现延时时间的充分利用,不知道你的具体要求是什么也不知道具体怎么说。
飞鸿浩劫
6楼-- · 2019-03-24 16:56
汤权 发表于 2016-11-21 18:43
定时器定时中断实现状态机是可以的,可以实现延时时间的充分利用,不知道你的具体要求是什么也不知道具体 ...

我就是觉得状态机,可以每次运行一个状态,可以拆分大任务,用的stm32,定时器看看用Systick吧,这个问题上午问我老大,老大说看看有多少定时器,需要多少任务需要大延时,一个任务来一个定时器用突然觉得没法交流了……

一周热门 更多>