amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
楼主: rainyss

给51 DIY超轻量级多任务操作系统

  [复制链接]
发表于 2009-8-26 11:01:20 | 显示全部楼层
好贴
发表于 2009-8-26 11:15:32 | 显示全部楼层
拜读,谢谢。
发表于 2009-8-27 23:24:16 | 显示全部楼层
mark
发表于 2009-8-28 00:36:13 | 显示全部楼层
有空要慢慢研究才行
发表于 2009-8-28 21:03:34 | 显示全部楼层
记号。
发表于 2009-8-30 11:22:59 | 显示全部楼层
先mark
发表于 2009-9-2 17:16:11 | 显示全部楼层
记号,要慢慢研究
发表于 2009-9-2 22:24:21 | 显示全部楼层
good
发表于 2009-9-8 18:32:55 | 显示全部楼层
记号一下
发表于 2009-9-8 22:25:02 | 显示全部楼层
记号了!
头像被屏蔽
发表于 2009-9-8 23:26:38 | 显示全部楼层
记号,虽然现在看不懂改天来慢慢消化
发表于 2009-9-9 09:07:22 | 显示全部楼层
感觉分时复用好
发表于 2009-9-9 11:50:05 | 显示全部楼层
MARK
发表于 2009-9-14 20:00:09 | 显示全部楼层
精彩...
发表于 2009-9-14 20:11:31 | 显示全部楼层
精彩
发表于 2009-9-14 23:59:12 | 显示全部楼层
mark
发表于 2009-9-15 01:51:23 | 显示全部楼层
MARK
 楼主| 发表于 2009-10-2 10:30:30 | 显示全部楼层
【311楼】 szxy06dq 怪兽

积分:52
派别:
等级:------
来自:安徽合肥
感觉分时复用好  
__________________________


“时分复用”。
发表于 2009-10-2 10:47:57 | 显示全部楼层
学习一下
发表于 2009-10-2 11:19:39 | 显示全部楼层
MARK 或许以后用得着
发表于 2009-10-2 11:40:25 | 显示全部楼层
太强悍了  标记慢慢看
发表于 2009-10-2 16:24:16 | 显示全部楼层
强!
发表于 2009-10-16 16:12:14 | 显示全部楼层
强帖要留名~~~~~~~~~~~~~~~
发表于 2009-10-16 20:16:49 | 显示全部楼层
how cooL
发表于 2009-10-17 22:43:07 | 显示全部楼层
牛啊!
发表于 2009-11-7 01:22:00 | 显示全部楼层
好帖,建议置酷!
发表于 2009-11-7 02:29:47 | 显示全部楼层
好贴,好贴!!!
发表于 2009-11-7 07:13:00 | 显示全部楼层
gooooood
发表于 2009-11-7 09:45:38 | 显示全部楼层
mark
发表于 2009-11-7 14:32:41 | 显示全部楼层
强帖!强人!
发表于 2009-11-7 14:34:41 | 显示全部楼层
学习了!~
发表于 2009-11-10 00:01:27 | 显示全部楼层
不错,值得收藏
发表于 2009-11-13 22:30:13 | 显示全部楼层
好贴!先回帖再学习~~~
发表于 2009-11-14 00:10:24 | 显示全部楼层
回帖继续看
发表于 2009-11-15 19:38:46 | 显示全部楼层
强力贴,好东西,mark
发表于 2009-11-15 21:00:10 | 显示全部楼层
占位!
发表于 2009-11-15 22:16:49 | 显示全部楼层
学习。。。
发表于 2009-11-15 22:16:51 | 显示全部楼层
学习。。。
发表于 2009-11-16 00:09:44 | 显示全部楼层
mark
发表于 2009-11-16 08:36:24 | 显示全部楼层
mark
发表于 2009-11-16 09:07:31 | 显示全部楼层
mark
发表于 2009-11-16 16:53:31 | 显示全部楼层
学习……
发表于 2009-11-16 17:57:56 | 显示全部楼层
标记一个  明天来好好看
发表于 2009-11-16 18:05:15 | 显示全部楼层
这个要标记...
发表于 2009-11-16 21:44:42 | 显示全部楼层
楼主太强了!
发表于 2009-11-16 22:43:54 | 显示全部楼层
签下小名,慢慢看
发表于 2009-11-17 13:55:31 | 显示全部楼层
Mark
发表于 2009-11-24 16:44:45 | 显示全部楼层
LZ的这篇文章,的确精彩,强贴留个名~!

先介绍一下本人,我是做软件的(很纯的,只做软件)。
对于操作系统,时间片轮转,进程调度及操作系统的一些其他软件性功能,比较熟悉。

最近,正在研究单片机,自学模电,数电。
某日突发奇想,想要给51上一个操作系统,于是乎找到了LZ的这篇强贴!
我不得不承认,LZ的思想的确非常的奇特,至少我没有想过,通过代码“主动”释放资源。
一语点醒梦中人!

但是,经过我仔细研究之后,发现了这个操作系统中的若干个不足,因此恐怕LZ的系统,无法得到真正的应用。
同时,我也参考了uCOS for 51的操作系统实现,认为系统代码太多(达2K),依靠优先级的方法也不太可取(纯属个人观点)
于是乎,加以改进!

新操作系统的特性,包括以下几点:
1. 我认为,主动释放资源方式欠妥,因此采用时钟中断,以时间片轮转的方式,强行切换。
2. 采取LZ使用静态变量的方法,即程序中所有变量均采用静态变量定义,减少堆栈切换时间消耗。
3. 增加多任务/单任务切换宏定义(通过禁止/开启时钟中断)。
4. 采用任务列表,维护并切换任务。
4. 允许任务退出(将任务从任务列表中消除)。
5. 允许任务实事创建(将任务加入任务列表)。
6. 使用消息队列,为每个任务单独创建消息队列,同时可以向任意任务发送消息。(只发送消息,并不采用PC os中的回调处理,以节省开销)。
7. 才用宏开关的方式,允许自定义系统模块(模拟Linux上的Module).
8. 新增多机通讯部分(模拟PC上的管道通信),允许多块51芯片协同工作。(正在实现中,可选模块)

以上是经过修改后的操作系统特性。
源码还不成熟,先不贴出来,如果大家对哪部分比较感兴趣,欢迎一起探讨。
发表于 2009-11-24 18:37:56 | 显示全部楼层
强贴,慢慢看。MARK。
发表于 2009-11-24 20:12:49 | 显示全部楼层
记号
发表于 2009-11-26 09:58:14 | 显示全部楼层
发表于 2009-11-26 13:13:04 | 显示全部楼层
mark.
发表于 2009-11-26 17:43:20 | 显示全部楼层
强!
学习了。
发表于 2009-11-26 17:50:50 | 显示全部楼层
摸索
发表于 2009-11-30 11:45:49 | 显示全部楼层
楼主强人加热心,有不董再来请教。
发表于 2009-11-30 12:56:35 | 显示全部楼层
学习……
发表于 2009-11-30 17:43:29 | 显示全部楼层
mark
发表于 2009-11-30 19:53:45 | 显示全部楼层
希望进一步完善!
发表于 2009-12-1 22:24:20 | 显示全部楼层
标记
发表于 2009-12-5 11:07:29 | 显示全部楼层
mark!
发表于 2009-12-5 13:46:34 | 显示全部楼层
[complexs]:
    等着你上莱!
发表于 2009-12-7 11:43:51 | 显示全部楼层
mark
发表于 2009-12-7 17:52:24 | 显示全部楼层
当牛人碰上了强帖。。
发表于 2009-12-7 18:18:06 | 显示全部楼层
好贴~!
发表于 2009-12-11 11:30:54 | 显示全部楼层
楼主写的这个程序并不算什么操作系统,每个任务都是不可剥夺的,说白了就是每个任务轮流运行,实质跟以下的代码没有区别的
while(1)
{
     task1();
     task2();
     task3();
} // 注:task里面的while(1)屏蔽掉
操作系统在宏观上看应该是并行执行的,而不是轮流执行,这种的话如果有个任务运行时间太长的话,其他任务等待时间就很长了
发表于 2009-12-11 14:19:51 | 显示全部楼层
盖个楼,住下来
发表于 2009-12-11 15:19:11 | 显示全部楼层
这个时代迫切需要LZ这样的热心人!我顶
发表于 2009-12-11 15:32:11 | 显示全部楼层
mark
发表于 2009-12-11 17:33:16 | 显示全部楼层
连脑子都不动下,连试都不试一下就回复个mark,真是无语。这程序是并行的吗?
发表于 2009-12-11 19:05:43 | 显示全部楼层
[gshuang1]

你的说法不对,没有看清它是怎么运用task_switch()的工作的:


//任务切换函数(任务调度器)
void task_switch(){
task_sp[task_id] = SP;

if(++task_id == MAX_TASKS)
task_id = 0;

SP = task_sp[task_id];
}
发表于 2009-12-11 21:47:36 | 显示全部楼层
【370楼】 eddia2000

SP = task_sp[task_id]; 这条语句是把某个函数的首地址传给sp,其实就相当于调用某个函数。不想多解释,你下载到单片机去执行下就知道,除非你根本没了解过操作系统原理
 楼主| 发表于 2009-12-18 05:12:55 | 显示全部楼层
gshuang1.....无语

"连脑子都不动下,连试都不试一下就回复...."
"不想多解释,你下载到单片机去执行下就知道,除非你根本没了解过...."
   
这些全都是自已说的话,也恰恰是你自已犯下的错误.真想叫你把话吃回去,哈哈.
发表于 2009-12-19 19:32:38 | 显示全部楼层
强人,学习中……
发表于 2009-12-20 20:53:21 | 显示全部楼层
很好很强大
发表于 2009-12-21 13:24:30 | 显示全部楼层
对应该做成时间轮片或者实时性的,否则和多弄几个函数没多大区别,另外为每个任务单独开辟一个内存空间太太太浪费了,不符和超小操作系统的环保风格,建议像uC一样做成一个列队,节约内存。
发表于 2009-12-21 13:26:20 | 显示全部楼层
另外一个操作系统必须有内存回收和垃圾清理机制否则没有可靠性可言
发表于 2009-12-21 22:03:34 | 显示全部楼层
MARK
发表于 2009-12-23 09:17:02 | 显示全部楼层
据说这样可以MARK
发表于 2009-12-23 09:29:24 | 显示全部楼层
太强了 学习了!
发表于 2009-12-23 21:52:53 | 显示全部楼层
把他顶下来?!
 楼主| 发表于 2009-12-23 23:42:06 | 显示全部楼层
【375楼】 first_vip
积分:5
派别:
等级:------
来自:
对应该做成时间轮片或者实时性的,否则和多弄几个函数没多大区别,另外为每个任务单独开辟一个内存空间太太太浪费了,不符和超小操作系统的环保风格,建议像uC一样做成一个列队,节约内存。  
   
2009-12-21,13:24:30   资料  邮件           编辑  删除   

【376楼】 first_vip
积分:5
派别:
等级:------
来自:
另外一个操作系统必须有内存回收和垃圾清理机制否则没有可靠性可言  
   


两组发言矛盾

不管怎么样,还是回应你矛盾的提问吧

没内存回收?要求整上,否则没实用价值
OK,有内存回收了,但没标准API?要求整上,否则没实用价值
OK,有标准API了,没显示器键盘接口?要求整上,否则没实用价值
OK,有显示器了,不支持标准显示器?要求整上,否则没实用价值
OK,支持标准显示器了,不支持图形模式?要求整上,否则没实用价值
.....
哇,运行在51上的windows 7
发表于 2009-12-24 05:42:12 | 显示全部楼层
标记下  慢慢看……眼花了……
发表于 2009-12-24 11:07:29 | 显示全部楼层
好东西
发表于 2009-12-24 20:35:39 | 显示全部楼层
先mark
考完试再回来看。
我看到有论文将ucos放到51的。。。。。但是不知道怎么用,从楼主这里先学学。
发表于 2009-12-25 10:39:45 | 显示全部楼层
虽然时间很久了,但还是学习到不少东西。谢谢!
发表于 2009-12-25 12:26:26 | 显示全部楼层
你未免也太强了吧,望尘莫及啊啊
发表于 2009-12-25 16:29:01 | 显示全部楼层
先mark,再慢慢看
发表于 2009-12-25 16:59:39 | 显示全部楼层
good article!
发表于 2009-12-25 19:31:47 | 显示全部楼层
看不懂,下次再来。
发表于 2009-12-25 19:58:36 | 显示全部楼层
记号
发表于 2009-12-25 20:01:00 | 显示全部楼层
操作系统原理 还有什么书 大家推荐一下 我们单片机出身的还应该看看什么书
发表于 2009-12-26 20:57:50 | 显示全部楼层
mark
发表于 2009-12-26 22:03:10 | 显示全部楼层
《演变》ppt在哪里找哦?
发表于 2009-12-27 04:41:49 | 显示全部楼层
mark
发表于 2009-12-27 18:25:53 | 显示全部楼层
学习,学习,再学习.
发表于 2009-12-27 18:49:49 | 显示全部楼层
maxk!学习了
发表于 2009-12-28 13:42:56 | 显示全部楼层
忍不住就想顶一下
 楼主| 发表于 2009-12-28 16:15:05 | 显示全部楼层
【393楼】 yvhksovo
积分:85
派别:
等级:------
来自:
《演变》ppt在哪里找哦?  
   
在1楼.<<从单任务到多任务并行系统的演变>>
发表于 2009-12-28 23:37:15 | 显示全部楼层
学习一下
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2019-11-22 14:21

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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