搜索
bottom↓
回复: 31

突然醒悟:单片机上最好的调度方法其实是基于事件的简单调度系统

[复制链接]

出0入0汤圆

发表于 2008-8-5 08:17:50 | 显示全部楼层 |阅读模式
small rtos->avrx->usmartx->protothreads->……

最近看了一下freemodbuss和z-stack代码,终于是醒悟过来。
单片机上最好的调度方法其实是基于事件的简单调度系统。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2008-8-5 08:27:24 | 显示全部楼层
愿闻其详

出0入0汤圆

发表于 2008-8-5 08:41:51 | 显示全部楼层
对MCU来讲硬件中断系统是最简单可靠的调度系统

出0入0汤圆

发表于 2008-8-5 08:45:38 | 显示全部楼层
ls正解。在小ram,小应用上讲操作系统,任务调度没意义。

出0入0汤圆

发表于 2008-8-5 09:24:29 | 显示全部楼层
RE, 以我的体会,传统的内存小于8KB的系统,还是让中断去实现多任务来得清新爽洁. AVR只有4KB max,位操作又不是重点,看来是适合裸奔!
只不过对于有实时要求的,必须支持中断嵌套,而且任务间通信也必须自己搞定,竞争紊乱也要自己避免。主循环应付没有强实时要求的工作绰绰有余,只不过不可避免要自律控制对大量全局变量的使用,还可能要自己去构建一个简单的以函数指针和队列为基础的分派机制。这些系统软件级别的负担,我想也是大型单片机项目开发中很刺激的地方
在新型32位单片机,像CM3上,我倒是真的看到了发挥rtos光和热的希望,让它既缩短开发周期,又保证实时性和可靠性要求


上官大哥可否把z-stack的鲜肉给大家尝尝?

出0入0汤圆

发表于 2008-8-5 09:26:18 | 显示全部楼层
本来就是,面向对象的概念差不多也是基于事件的处理方式

出0入0汤圆

发表于 2008-8-5 16:19:51 | 显示全部楼层
我现在在看《基于时间触发嵌入式系统设计模式 》也很不错

出0入0汤圆

发表于 2008-8-5 20:48:13 | 显示全部楼层
这类讨论,几年前所长就有高论,程序的结构变得简单易于管理(在面对大型的又没有用OS时,确实有效),但是代价是编译后的代码量可能变得异常庞大,不信你用protothreads的原理写个程序试试。

出0入0汤圆

发表于 2008-8-5 21:44:03 | 显示全部楼层
基于事件和基于时间触发都是需要的,看大家怎么用好了,思路很重要的

出0入0汤圆

发表于 2008-8-8 15:30:55 | 显示全部楼层
能不能讲讲基于事件的原理是什么?

出0入0汤圆

发表于 2008-8-8 18:10:38 | 显示全部楼层
protothreads写得很好笑,哈哈,第一次见到这么写东西的,难得啊

出0入0汤圆

 楼主| 发表于 2008-8-8 18:18:57 | 显示全部楼层
protothreads还是很好的。 不过使用起来有很多禁制。

据说UIP就是在protothreads上写的。

出0入0汤圆

发表于 2008-8-8 18:51:00 | 显示全部楼层
to 4楼:z-stack 免费的,TI的zigbee网站有下载

我还是没十分看懂z-stack的操作系统

如果有研究这个东东的,如果愿意交流一下的话加我QQ 75559327,我在做zigbee应用

出0入0汤圆

发表于 2008-8-8 19:42:17 | 显示全部楼层
基于时间触发嵌入式系统,合作式!!!

出0入0汤圆

发表于 2008-8-10 15:03:39 | 显示全部楼层
能不能讲讲基于事件的原理是什么?

出0入0汤圆

发表于 2008-8-10 16:04:21 | 显示全部楼层
基于事件和基于时间的有什么差别

出0入0汤圆

 楼主| 发表于 2008-8-10 20:38:34 | 显示全部楼层
也说不清楚。

我自己的理解,

当某个异步触发事件后,调度器就响应执行事件相应的事件函数或代码。
触发事件可以是中断,定时器或者程序软触发。

调度器可以有任务,也可以不用任务。

在没有任务情况下,主函数循环判断有没有事件触发,如果有事件触发,就执行相应的事件响应函数或代码。
在有任务的情况下,当某个任务有事件触发,调度器就使这个任务就就绪,然后在任务里执行相应的事件响应函数或代码。

任务可以看作是父事件,任务里的时间可以看作是子事件。触发事件相当于触发了一个子事件,响应时间相当于响应父时间里面的子事件。

出0入0汤圆

发表于 2008-8-11 00:56:55 | 显示全部楼层
这是我研究Z-stack 的学习笔记的OSAL部分........笔记是原创哦


(原文件名:OSAL_Page_1.jpg)

点击此处打开 ourdev_374034.jpg(文件大小:304K,只有300K以内的图片才能直接显示) (原文件名:OSAL_Page_2.jpg)

(原文件名:OSAL_Page_3.jpg)

点击此处下载 ourdev_374036.pdf(文件大小:73K) (原文件名:OSAL.pdf)

出0入0汤圆

发表于 2008-8-11 01:24:20 | 显示全部楼层
Z-stack的OSAL 是个占用资源很少的OS,估计代码几百字节,感觉是先占式的,基于事件工作的,可以使用,定时,事件,消息等,光是事件和消息应经可以满足绝大多数的应用了

我记得以前说过------>没有用习惯芯片级OS和不懂芯片级OS的人才会问“有必要吗?”
却遭来很多人的谩骂,被人笑话是杀鸡用牛刀....

不知道有多少人经常翻阅TI的网站,看人家提供的代码?里面很多代码都是基于简单的OS的....

我认为单片机使用OS,是一种编程理念,并不是非要使用那一种OS

我还是那句话:用惯了OS,真的不想用其他工作方式了

前2天我就用M88做了自己的一个OS,是基于事件的,系统的Tick竟然是看门狗复位,单片机1秒复位10的方式工作,每次复位后执行一个事件,运行起来感觉不错

出0入0汤圆

发表于 2008-8-11 11:56:28 | 显示全部楼层
基于时间可以这样理解:基于时间(事件),于是就统一了,都是基于事件的。
《基于时间触发嵌入式系统设计模式 》里介绍的其实就是因为对时间要求很高,所以所有任务都是基于时间(事件)触发的,并且对所有任务的运行时间都有严格限制的一种调度方式。

protothreads真的很不错,最小的基于事件的调度方式。protothreads的作者还是uip、lwip、 Contiki的作者,uip、 Contiki里面都有应用protothreads。Contiki是用于无线传感器网络的小型OS,大家可以比较一下Contiki和z-stack。

将protothreads和uip源码里面的timer配合使用完全可以实现基于时间触发,而且更灵活。

作者主页http://www.sics.se/~adam/

出0入0汤圆

发表于 2012-2-25 13:54:53 | 显示全部楼层
标记

出0入0汤圆

发表于 2012-2-25 21:31:25 | 显示全部楼层
mark!~~

出0入0汤圆

发表于 2012-2-25 21:45:20 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-25 21:50:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-26 00:10:43 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-10-8 13:07:33 | 显示全部楼层
嗯~ 受教了.

出0入0汤圆

发表于 2012-10-8 13:52:13 | 显示全部楼层
mark,受教了,最近在学习OS

出0入0汤圆

发表于 2013-4-20 14:11:26 | 显示全部楼层
laoma 发表于 2008-8-11 01:24
Z-stack的OSAL 是个占用资源很少的OS,估计代码几百字节,感觉是先占式的,基于事件工作的,可以使用,定时, ...

请问 可否给个下载链接,想学一下这种简单的os,或者是说一下TI哪个mcu的例程os比较经典。我来学习一下,多谢了、

出0入0汤圆

发表于 2013-4-21 14:08:38 来自手机 | 显示全部楼层
qp量子架构,基于状态机和事件驱动的…

出0入0汤圆

发表于 2013-4-21 16:07:45 | 显示全部楼层
路过,看看。。。

出0入0汤圆

发表于 2018-7-29 14:16:21 | 显示全部楼层
mark。。。。

出0入0汤圆

发表于 2018-8-10 11:17:26 | 显示全部楼层
10年前的帖子都挖出来了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 08:44

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表