当前位置:首页 >> 单片机入门 >> 裸奔已经可以满足需求了,那么为什么还要OS?

裸奔已经可以满足需求了,那么为什么还要OS?

单片机 OS 作者:admin 来源:不详 发布时间:2018-05-18 21:11:07   浏览:1

为什么要裸奔?

理由1:裸奔已经可以满足需求了,那么为什么还要OS?

理由2:os很高大上,但是能被hold住么?

以上两点差不多就OK了。

一般说,单片机,就是搞点简单的东西。简单不是贬义,乔布斯总说自己要做最简单易用的作品,所以说我们遵从简单的设计原则,是没有问题的了。

那么如何裸奔呢?

看到21IC网站很多所谓大牛给出了所谓的架构,感觉高大山的架构,在我看来都是差的一塌糊涂,纯属照猫画虎,形式主义罢了。

最经典而完美的架构就是

main{

INT K ;

init();

while(1) {

INT J = K;

}

}

IRQ {

K++;

}

就是前后台 的架构。当然这样说放到论坛里面肯定被喷。但这里没人喷。所以可以胡说八道了。

好的架构一定是隔离,大家互不干涉。说起来简单,做起来不易。如何做到互不干涉,有些是一定要有交叉了。比如定时器。首先提到定时器,因为太太重要了。基本山搞懂了定时器,就搞定了架构的很大一部分。看看哪些PLC的定时器的涉及,猜猜他们是怎么实现的。比如你可以实现这样一个定时器

if (timeup(n ms)) {

//do something

}

如果实现了这样一个函数,在各个所谓的任务中都用这个函数。基本上架构就很清晰了。

那么对于串口发送这种需要耗时的功能?咋办?如果有DMA,那么就用上。如果你有500个字节要发送,你还想实时性比较高,若没有DMA,那么很抱歉,裸奔没有办法搞定,即便是实时性OS,也很难办。如果接收方判断两个字符的间距的话,如modbus。那么发送必须是高优先级的,若采用os。

基本就这些了。

裸奔,感觉就是完全可以掌控得住。

如果要集成一些代码,比如我最近要集成canopen的代码,于是我就觉得我的代码整体可靠性要下降一档。心理上真的如此觉得。对自己就是这么自信。

如果要用os,那么也要熟读。弄透。然后采用。这样才觉得过瘾。否则感觉没有掌控力。

啰啰嗦嗦,说了废话,可见今天是废话连篇了。

编辑:admin  最后修改时间:2018-05-22