本帖最后由 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)其他系统服务在调试中,等待更新.... |