搜索
bottom↓
楼主: rainyss

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

  [复制链接]

出0入0汤圆

发表于 2009-9-9 11:50:05 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-9-14 20:00:09 | 显示全部楼层
精彩...

出0入0汤圆

发表于 2009-9-14 20:11:31 | 显示全部楼层
精彩

出0入0汤圆

发表于 2009-9-14 23:59:12 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-9-15 01:51:23 | 显示全部楼层
MARK

出0入0汤圆

 楼主| 发表于 2009-10-2 10:30:30 | 显示全部楼层
【311楼】 szxy06dq 怪兽

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


“时分复用”。

出0入0汤圆

发表于 2009-10-2 10:47:57 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2009-10-2 11:19:39 | 显示全部楼层
MARK 或许以后用得着

出0入0汤圆

发表于 2009-10-2 11:40:25 | 显示全部楼层
太强悍了  标记慢慢看

出0入0汤圆

发表于 2009-10-2 16:24:16 | 显示全部楼层
强!

出0入0汤圆

发表于 2009-10-16 16:12:14 | 显示全部楼层
强帖要留名~~~~~~~~~~~~~~~

出0入0汤圆

发表于 2009-10-16 20:16:49 | 显示全部楼层
how cooL

出0入0汤圆

发表于 2009-10-17 22:43:07 | 显示全部楼层
牛啊!

出0入0汤圆

发表于 2009-11-7 01:22:00 | 显示全部楼层
好帖,建议置酷!

出0入0汤圆

发表于 2009-11-7 02:29:47 | 显示全部楼层
好贴,好贴!!!

出0入0汤圆

发表于 2009-11-7 07:13:00 | 显示全部楼层
gooooood

出0入0汤圆

发表于 2009-11-7 09:45:38 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-7 14:32:41 | 显示全部楼层
强帖!强人!

出0入0汤圆

发表于 2009-11-7 14:34:41 | 显示全部楼层
学习了!~

出0入76汤圆

发表于 2009-11-10 00:01:27 | 显示全部楼层
不错,值得收藏

出0入0汤圆

发表于 2009-11-13 22:30:13 | 显示全部楼层
好贴!先回帖再学习~~~

出0入0汤圆

发表于 2009-11-14 00:10:24 | 显示全部楼层
回帖继续看

出0入0汤圆

发表于 2009-11-15 19:38:46 | 显示全部楼层
强力贴,好东西,mark

出0入0汤圆

发表于 2009-11-15 21:00:10 | 显示全部楼层
占位!

出0入0汤圆

发表于 2009-11-15 22:16:49 | 显示全部楼层
学习。。。

出0入0汤圆

发表于 2009-11-15 22:16:51 | 显示全部楼层
学习。。。

出0入0汤圆

发表于 2009-11-16 00:09:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-16 08:36:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-16 09:07:31 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-16 16:53:31 | 显示全部楼层
学习……

出0入0汤圆

发表于 2009-11-16 17:57:56 | 显示全部楼层
标记一个  明天来好好看

出0入0汤圆

发表于 2009-11-16 18:05:15 | 显示全部楼层
这个要标记...

出0入0汤圆

发表于 2009-11-16 21:44:42 | 显示全部楼层
楼主太强了!

出0入0汤圆

发表于 2009-11-16 22:43:54 | 显示全部楼层
签下小名,慢慢看

出0入0汤圆

发表于 2009-11-17 13:55:31 | 显示全部楼层
Mark

出0入0汤圆

发表于 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芯片协同工作。(正在实现中,可选模块)

以上是经过修改后的操作系统特性。
源码还不成熟,先不贴出来,如果大家对哪部分比较感兴趣,欢迎一起探讨。

出0入0汤圆

发表于 2009-11-24 18:37:56 | 显示全部楼层
强贴,慢慢看。MARK。

出0入0汤圆

发表于 2009-11-24 20:12:49 | 显示全部楼层
记号

出0入0汤圆

发表于 2009-11-26 09:58:14 | 显示全部楼层

出0入0汤圆

发表于 2009-11-26 13:13:04 | 显示全部楼层
mark.

出0入112汤圆

发表于 2009-11-26 17:43:20 | 显示全部楼层
强!
学习了。

出0入0汤圆

发表于 2009-11-26 17:50:50 | 显示全部楼层
摸索

出0入0汤圆

发表于 2009-11-30 11:45:49 | 显示全部楼层
楼主强人加热心,有不董再来请教。

出0入0汤圆

发表于 2009-11-30 12:56:35 | 显示全部楼层
学习……

出0入0汤圆

发表于 2009-11-30 17:43:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-30 19:53:45 | 显示全部楼层
希望进一步完善!

出0入0汤圆

发表于 2009-12-1 22:24:20 | 显示全部楼层
标记

出0入0汤圆

发表于 2009-12-5 11:07:29 | 显示全部楼层
mark!

出0入0汤圆

发表于 2009-12-5 13:46:34 | 显示全部楼层
[complexs]:
    等着你上莱!

出0入0汤圆

发表于 2009-12-7 11:43:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-7 17:52:24 | 显示全部楼层
当牛人碰上了强帖。。

出0入0汤圆

发表于 2009-12-7 18:18:06 | 显示全部楼层
好贴~!

出70入0汤圆

发表于 2009-12-11 11:30:54 | 显示全部楼层
楼主写的这个程序并不算什么操作系统,每个任务都是不可剥夺的,说白了就是每个任务轮流运行,实质跟以下的代码没有区别的
while(1)
{
     task1();
     task2();
     task3();
} // 注:task里面的while(1)屏蔽掉
操作系统在宏观上看应该是并行执行的,而不是轮流执行,这种的话如果有个任务运行时间太长的话,其他任务等待时间就很长了

出0入0汤圆

发表于 2009-12-11 14:19:51 | 显示全部楼层
盖个楼,住下来

出0入0汤圆

发表于 2009-12-11 15:19:11 | 显示全部楼层
这个时代迫切需要LZ这样的热心人!我顶

出0入0汤圆

发表于 2009-12-11 15:32:11 | 显示全部楼层
mark

出70入0汤圆

发表于 2009-12-11 17:33:16 | 显示全部楼层
连脑子都不动下,连试都不试一下就回复个mark,真是无语。这程序是并行的吗?

出0入0汤圆

发表于 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];
}

出70入0汤圆

发表于 2009-12-11 21:47:36 | 显示全部楼层
【370楼】 eddia2000

SP = task_sp[task_id]; 这条语句是把某个函数的首地址传给sp,其实就相当于调用某个函数。不想多解释,你下载到单片机去执行下就知道,除非你根本没了解过操作系统原理

出0入0汤圆

 楼主| 发表于 2009-12-18 05:12:55 | 显示全部楼层
gshuang1.....无语

"连脑子都不动下,连试都不试一下就回复...."
"不想多解释,你下载到单片机去执行下就知道,除非你根本没了解过...."
   
这些全都是自已说的话,也恰恰是你自已犯下的错误.真想叫你把话吃回去,哈哈.

出0入0汤圆

发表于 2009-12-19 19:32:38 | 显示全部楼层
强人,学习中……

出0入0汤圆

发表于 2009-12-20 20:53:21 | 显示全部楼层
很好很强大

出0入0汤圆

发表于 2009-12-21 13:24:30 | 显示全部楼层
对应该做成时间轮片或者实时性的,否则和多弄几个函数没多大区别,另外为每个任务单独开辟一个内存空间太太太浪费了,不符和超小操作系统的环保风格,建议像uC一样做成一个列队,节约内存。

出0入0汤圆

发表于 2009-12-21 13:26:20 | 显示全部楼层
另外一个操作系统必须有内存回收和垃圾清理机制否则没有可靠性可言

出0入0汤圆

发表于 2009-12-21 22:03:34 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-12-23 09:17:02 | 显示全部楼层
据说这样可以MARK

出0入0汤圆

发表于 2009-12-23 09:29:24 | 显示全部楼层
太强了 学习了!

出0入0汤圆

发表于 2009-12-23 21:52:53 | 显示全部楼层
把他顶下来?!

出0入0汤圆

 楼主| 发表于 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

出0入0汤圆

发表于 2009-12-24 05:42:12 | 显示全部楼层
标记下  慢慢看……眼花了……

出0入0汤圆

发表于 2009-12-24 11:07:29 | 显示全部楼层
好东西

出0入0汤圆

发表于 2009-12-24 20:35:39 | 显示全部楼层
先mark
考完试再回来看。
我看到有论文将ucos放到51的。。。。。但是不知道怎么用,从楼主这里先学学。

出0入0汤圆

发表于 2009-12-25 10:39:45 | 显示全部楼层
虽然时间很久了,但还是学习到不少东西。谢谢!

出0入0汤圆

发表于 2009-12-25 12:26:26 | 显示全部楼层
你未免也太强了吧,望尘莫及啊啊

出0入16汤圆

发表于 2009-12-25 16:29:01 | 显示全部楼层
先mark,再慢慢看

出0入0汤圆

发表于 2009-12-25 16:59:39 | 显示全部楼层
good article!

出425入0汤圆

发表于 2009-12-25 19:31:47 | 显示全部楼层
看不懂,下次再来。

出0入0汤圆

发表于 2009-12-25 19:58:36 | 显示全部楼层
记号

出0入0汤圆

发表于 2009-12-25 20:01:00 | 显示全部楼层
操作系统原理 还有什么书 大家推荐一下 我们单片机出身的还应该看看什么书

出0入0汤圆

发表于 2009-12-26 20:57:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-26 22:03:10 | 显示全部楼层
《演变》ppt在哪里找哦?

出0入0汤圆

发表于 2009-12-27 04:41:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-27 18:25:53 | 显示全部楼层
学习,学习,再学习.

出0入0汤圆

发表于 2009-12-27 18:49:49 | 显示全部楼层
maxk!学习了

出0入0汤圆

发表于 2009-12-28 13:42:56 | 显示全部楼层
忍不住就想顶一下

出0入0汤圆

 楼主| 发表于 2009-12-28 16:15:05 | 显示全部楼层
【393楼】 yvhksovo
积分:85
派别:
等级:------
来自:
《演变》ppt在哪里找哦?  
   
在1楼.<<从单任务到多任务并行系统的演变>>

出0入0汤圆

发表于 2009-12-28 23:37:15 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2010-1-1 01:37:43 | 显示全部楼层
等学的时候再看~

出0入0汤圆

发表于 2010-1-7 22:28:05 | 显示全部楼层
太强悍,慢慢消化!

出0入0汤圆

发表于 2010-1-8 12:34:09 | 显示全部楼层
cool!

出0入0汤圆

发表于 2010-1-8 12:38:22 | 显示全部楼层
顶起!学习

出0入0汤圆

发表于 2010-1-8 12:57:26 | 显示全部楼层
留个记号!经常来看看!

出0入0汤圆

发表于 2010-1-10 20:39:07 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-1-10 20:53:12 | 显示全部楼层
看不懂~MARK

出0入0汤圆

发表于 2010-1-11 22:02:52 | 显示全部楼层
很好,mark

出0入0汤圆

发表于 2010-1-12 11:30:26 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-1-12 13:15:18 | 显示全部楼层
mark 正在学习中

出0入0汤圆

发表于 2010-1-13 09:49:15 | 显示全部楼层
强人来的,忍不住先顶下

出0入0汤圆

发表于 2010-1-13 19:27:03 | 显示全部楼层
谢谢,厉害啊!

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-20 01:18

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

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