打印

小菜简单介绍OS_MINI_C编写进展情况--日志

[复制链接]
2920|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
singleywy|  楼主 | 2011-3-7 20:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 singleywy 于 2011-3-8 19:39 编辑

日期:2011-3-7
Os_MINI_C,C语言多任务操作系统完整版,最新进展情况报告:(算是给自己一个激励,正在加紧调试中)

1)调度器已能完美运行,任务之间可以通过发送信号的方式,进行随意的切换;

2)系统服务函数,在后期中已经完善得差不多了,增加了更多的功能;并修补可能会出现的问题,以及潜在的缺陷、漏洞;

3)供任务调用的函数列表为:
extern uint8 OsTimeSet(uint8 timetick);
extern void OsSelfPend();
extern uint8 OsSemCreate(uint8 index,uint8 semdata);
extern uint8 OsSemDelete(uint8 index);
extern uint8 OsSemV(uint8 index);
extern uint8 OsSemP(uint8 index,uint8 timetick);
extern void OsMsgInitial();
extern uint8 OsMsgApply();
extern uint8 OsMsgRelease();
extern uint8 OsMsgSend(uint8 taskid,uint8 message);
extern uint8 OsMsgFIFOGet(Pdata8 getmsg);
extern uint8 OsMsgLIFOGet(Pdata8 getmsg);
extern uint8 IntMBoxSend(uint8 index,uint8 mail);
extern uint8 OsMBoxSend(uint8 index,uint8 mail);
extern uint8 OsMBoxGet(uint8 index,Pdata8 mail,uint8 timetick);
extern uint8 IntSignalSend(uint8 taskid);
extern uint8 OsSignalSend(uint8 taskid);
extern void OsSignalClear(uint8 taskid);
extern uint8 OsTaskWait(uint8 selecttype,uint8 timetick);
extern uint8 DelStackTest();
extern uint8 OsTaskDel(uint8 taskid);
extern void OsSelfDel();
extern void OsHandOver(uint16 taskhandle);
extern uint8 OsTaskBuild(uint16 taskhandle);
extern void OsTaskCreate(uint8 taskid,uint16 taskhandle);
extern void OsTaskStart(uint8 taskid,uint16 taskhandle);
extern void OsIntExit();
extern void OsTimeTick();
extern void SetTaskPrio(uint8 taskid,uint8 taskprio);
extern void OsSetPrio(uint8 taskprio);
extern uint8 GetTaskPrio( uint8 taskid );
extern uint8 OsGetPrio();
extern uint8 OsGetID();

4)压缩了代码,开启所用功能,并设置4个任务,其中一个系统任务,
    SYMBOL:  TASKD
    MODULE:  Os_core.obj (OS_CORE)
    ADDRESS: 04E4H
Program Size: data=116.2 xdata=0 code=1833
"OS_MINI_C" - 0 Error(s), 22 Warning(s).

5)信号量SEM,调试完毕,能够进行信号量删除与创建操作以及释放,申请

6)邮箱功能MailBox,调试完毕,任务之间能正确接收发送邮件

7)信号发送Signal,调试完毕,任务之间,可以通过发送信号来唤醒任务,或者清除信号使任务睡眠

8)任务删除功能,TaskDel,调试完毕,可以删除指定任务,即从RAM内存中清除,不是简单地设置标志位

9)其他系统服务在调试中,等待更新....

相关帖子

沙发
singleywy|  楼主 | 2011-3-7 20:11 | 只看该作者
O(∩_∩)O~,感谢大家上次对我的期待

使用特权

评论回复
板凳
singleywy|  楼主 | 2011-3-7 20:13 | 只看该作者
第四条内容,其中的警告来自于--(我开启系统服务的所用功能)部分系统函数,我没有调用

使用特权

评论回复
地板
singleywy|  楼主 | 2011-3-7 22:49 | 只看该作者
没人提出异议?

使用特权

评论回复
5
dong_abc| | 2011-3-7 23:45 | 只看该作者
~~~~~~~~~~~~·······

使用特权

评论回复
6
ayb_ice| | 2011-3-8 08:22 | 只看该作者
没人提出异议?
singleywy 发表于 2011-3-7 22:49

只有不大好听的建议

使用特权

评论回复
7
singleywy|  楼主 | 2011-3-8 09:52 | 只看该作者
6# ayb_ice
没有批评,就没有进步

使用特权

评论回复
8
ayb_ice| | 2011-3-8 10:20 | 只看该作者
6# ayb_ice
没有批评,就没有进步
singleywy 发表于 2011-3-8 09:52

8~16位机没有必须上RTOS,32位机呢一般要上高级的OS,何况KEIL还自带RTOS(8~32位机都有),一个OS要成熟还是要靠时间来验证的
所以说这些基本是演示用的
当然通过写RTOS,程序功力进步是巨大的,
所以还是顶一个

使用特权

评论回复
9
new1988| | 2011-3-8 11:24 | 只看该作者
自己能写出OS,至少对OS的原理蛮了解了,对于以后学高级的OS有很大的帮助!

使用特权

评论回复
10
singleywy|  楼主 | 2011-3-8 12:03 | 只看该作者

同意你的观点

本帖最后由 singleywy 于 2011-3-8 12:04 编辑

8# ayb_ice
恩,非常同意你的观点,因为我在网上搜罗资料时,也有人这么提出,一个成熟的RTOS,并不是依靠一个人完成的,而是需要更多人的来调试、整合,后人的逐步完善,如果单片机上要使用RTOS,宁可选择商业上成熟的RTOS,也不要选择自己编写的,况且,花费太多的精力来写一个不成熟的RTOS,还不如利用商业RTOS,编写完善的应用软件,现在的社会,时间就是财富,在巨人的肩膀上行走,你会看的更远。
我写这个,并不是为了工程需要,而是为了了解RTOS的过程,同时提高自己的编程能力,有人不是说过嘛,没有写过过万的C语言编程,不能算是了解C

使用特权

评论回复
11
singleywy|  楼主 | 2011-3-8 19:43 | 只看该作者
本帖最后由 singleywy 于 2011-3-8 19:50 编辑

继续更新日志:

9)任务建立TaskBuild功能,调试完毕,能够创建任意一个任务,如果有任务之前被删除,建立的任务可以完美继承先前被删除任务的任务号,优先级,但不继承先前任务的资源


10)任务自我删除并唤醒指定静止态任务,调试完毕,父任务删除之后,子任务可以完美继承被删除任务的任务号,优先级,但不继承父任务的资源

使用特权

评论回复
12
反质子| | 2011-3-9 13:00 | 只看该作者
顶一个

使用特权

评论回复
13
思宁| | 2011-3-12 00:34 | 只看该作者
向学长学习

使用特权

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

本版积分规则

0

主题

295

帖子

3

粉丝