一个超简易的非抢占式OS

2019-10-15 01:54发布

本帖最后由 一只风筝 于 2017-2-15 19:12 编辑

这两天在论坛上看到几个帖子,先附上传送门:
http://www.openedv.com/thread-22990-1-1.html
http://www.openedv.com/forum.php ... id=89015&highlight=ϵͳ
感觉哇,程序居然还能怎样写,感觉非常神奇,然后我把这两个帖子的精华合成到一个程序里,再修改了下,感觉还不错。
其实我觉得这东西也不能算一个OS,太简陋了,只有个调度器,其他什么都没有、/囧........
话不多说,先附上程序吧,调度器是基于时间片轮询的机制,延时是状态机机制实现。我试着在精英板跑了两个小灯任务,感觉还不错,道友们可以试试,看有什么问题没

-----------------------------------------------------------分割线---------------------------------------------------------------------------
忘记说了,系统时钟用的滴答定时器,在delay.c文件里,道友们可以注意下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
ianhom
2019-10-15 13:12
不知楼主的上传的代码流程是不是这样的:
创建三个task放到链表中,Scheduler_Tasks中历遍调用所有的task,而在每个task中判断延时是否结束,如果未结束就直接返回,去执行另一个task,如果结束则继续运行后续的代码,如果task后续没有代码,因为Os_Delay宏定义中line = 0, 返回该task开始处继续运行。

一周热门 更多>