打印
[应用相关]

大家来献策, 为STM32打造一个高效精炼的RTOS

[复制链接]
11301|88
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
airwill|  楼主 | 2014-2-20 10:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    各位尊敬的网友同志们, 大家好. 先做个报告.
  自从大约十年前啃了那本邵贝贝《嵌入式实时操作系统μC/OS-2(第2版)》, 一直非常热衷于钻研在单片机里的编程技术.
  事实上, 单片机(嵌入式系统)里通常所有的应用都不是单任务的. 往往检测到一个按键后, 后面的 20mS 的消抖延时, 就能错过很多该做的事情. 当然有很多办法利用好那 20mS 延时时间, 但 RTOS 无疑是这些编程技术中很优秀的办法之一.
  ucOS 在嵌入式 RTOS 无疑是个佼佼者之一. 功能和稳定性方面值得推崇. 但是我感觉内部比较庞大的数据链表等结构处理导致系统的内存开销也不小, 同时对任务切换导致的时间开销也不小, 导致 ucOS 的时钟节拍不能设定得太小.
  不说那么多了, 希望大量来献策, 希望打造一个时间节拍在毫秒以下, 开销尽可能小的 RTOS.
  首先请大家给她提点要求. 该提供什么样的功能.
  
参与之前, 希望参与的朋友有机会先了解以下 RTOS, 有空也可以先看以下 《Cortex-M3 权威指南》.
沙发
gaoyang9992006| | 2014-2-20 10:48 | 只看该作者
嗯,楼主想法不错,有空大家一起研究。ST的产品以性价比赢得了不错的市场口碑。值得一学

使用特权

评论回复
板凳
香水橙| | 2014-2-20 11:09 | 只看该作者
用状态机+中断的架构完全可以很好地解决问题,不必强求使用RTOS。

使用RTOS可以提高开发的效率,但肯定降低资源的使用效率。

使用特权

评论回复
地板
jlwg| | 2014-2-20 11:23 | 只看该作者
本帖最后由 jlwg 于 2014-2-20 11:42 编辑


对于72M乃至36Mhz的stm32,运行ucos,时钟节拍设置为1ms,毫无压力,不知道楼主说的"时钟节拍不能设定太小"是什么意思?1ms的时钟节拍不够小吗?如果1ms的节拍都无法满足您的要求,您就应该考虑修改您的设计思路了,而不是考虑改操作系统.

使用特权

评论回复
5
outstanding| | 2014-2-20 11:32 | 只看该作者

使用特权

评论回复
6
dirtwillfly| | 2014-2-20 11:56 | 只看该作者
支持。楼主准备在哪款芯片里验证RTOS?

ps;楼主好牛叉,一个贴能散200分

使用特权

评论回复
7
jlwg| | 2014-2-20 12:03 | 只看该作者
如何散200分?我曾经一个帖子里散20分都三不出去,系统只支持每个人给3分,如果回帖的人少于7个,就散不了20分.这个是怎么回事?

使用特权

评论回复
8
mmuuss586| | 2014-2-20 12:08 | 只看该作者
实时性怎么样呢?和裸机比

使用特权

评论回复
9
jlwg| | 2014-2-20 12:21 | 只看该作者
mmuuss586 发表于 2014-2-20 12:08
实时性怎么样呢?和裸机比

除非您的裸机功能完全基于中断的前后台方式,否则,裸机系统,别谈事实性.非前后台的裸机,哪有事实性可言.

使用特权

评论回复
10
lxyppc| | 2014-2-20 13:22 | 只看该作者
众口难调,楼主还不如教大家如何写

使用特权

评论回复
11
wwzx2513| | 2014-2-20 13:25 | 只看该作者
200分好多呀,我现在有多少分了?帮顶,系统正在学,有想法再提。

使用特权

评论回复
12
dong_abc| | 2014-2-20 14:39 | 只看该作者
C:\Keil\ARM\Pack\ARM\CMSIS\3.20.4\CMSIS_RTX\SRC

使用特权

评论回复
13
shaobing1231| | 2014-2-20 14:55 | 只看该作者
MDK自带一个 RTOS ,但是我没用过。
前后台异能答题搞定这个问题。RTOS 的实时性也不是绝对的RT,也是在某个可准确计算出的延迟内得出结果 然后这个时间符合你的需求,就OK了。
UCOS 其实就挺好的,很好的兼容了各种不同的需求,如果楼主有不同的需求 可以对他的源码进行修改。自己搞一个未尝不可,但是站在巨人的肩膀上,你看的更高,而且更快。

使用特权

评论回复
14
yjwpm| | 2014-2-20 14:55 | 只看该作者
至于OS这方面,你要自己打造的话,我先给你泼一盆冷水,如果说你的OS能超越RT-Thread的话,那你可以做,如果你认为RTT不是你的目标,那好你能否有把握超越FreeRTOS,这也不行,如果你还要超越更高的目标那你试试ChibiOS这个可是切换速度最快的。像其他的比如RTX、eCos、ucOS、openRTOS、safeRTOS、Raw-OS这几个你是否可以超越呢,做不到的话,就不要做了。。。

OS在实际的产品项目中还是要使用可靠的,你要自己学习使用时可以的,但是不要拿出来害人就成。。

使用特权

评论回复
评论
jlwg 2014-2-20 16:42 回复TA
明白人,支持 
15
sxhhhjicbb| | 2014-2-20 15:23 | 只看该作者
shaobing1231 发表于 2014-2-20 14:55
MDK自带一个 RTOS ,但是我没用过。
前后台异能答题搞定这个问题。RTOS 的实时性也不是绝对的RT,也是在某 ...

内置的叫rtx,在一个项目上用过。OK。

使用特权

评论回复
16
ar_m_cu| | 2014-2-20 15:35 | 只看该作者
楼主想法不错,顶一个。

使用特权

评论回复
17
frlop| | 2014-2-20 15:43 | 只看该作者
支持一记。

使用特权

评论回复
18
john_lee| | 2014-2-20 16:48 | 只看该作者
在 72MHz 的 cortex-m3 上,普通的 RTOS 的任务抢占时间都可以做到 5-10us,系统节拍设置为 1ms 周期基本无压力,我就长期使用 1ms,更短的周期(比如 500us)对大多数应用环境也应该压力不大。

使用特权

评论回复
19
jlwg| | 2014-2-20 17:07 | 只看该作者
john_lee 发表于 2014-2-20 16:48
在 72MHz 的 cortex-m3 上,普通的 RTOS 的任务抢占时间都可以做到 5-10us,系统节拍设置为 1ms 周期基本无 ...

实际上,操作系统的节拍没有任何理由设置为小于1ms,对于小于1ms的实时性要求,完全可以用中断来实现,而大于1ms的实时性要求,可以用任务来实现.这也是所有rtos的对实时性的处理方式.即分两个层次,一个是中断,一个是任务.这两个层次,满足了不同的实时性要求.
当节拍小于1ms时,任务切换的开销增加,效率降低..这中情况下,还不如直接用中断来保证实时性.

--------------------------------------------
**用keil,16年不动摇,因为2020年,**就到期了

使用特权

评论回复
20
shuidi_wangdan| | 2014-2-20 17:30 | 只看该作者
积极学习!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:欢迎进入 TI 模拟技术论坛!

556

主题

17720

帖子

884

粉丝