zoukankan      html  css  js  c++  java
  • simpleOS 1.0

    做了一个so simple的OS,本不好意思多说的。。。。不过还是说下吧。

    首先,买不起开发板的我没有办完完成一件事,那就是保存任务上下文,因为这个过程实际上是将寄存器的值存放到任务堆栈中去的。

    而要想实现,因为要访问寄存器,所以这个需要用到汇编代码,本机window显然没法模拟。

    (有时间研究下Linux或者买个开发板看看能不能解决)

    所以,最后的实现结果,实际上是每次选择优先级最高的任务去完成,这样就不存在抢占的问题了,不复杂。

    大致为OSTaskCreate()创建任务,OSTaskDel()删除任务,OSSched()调度程序,OSTaskIdle()空闲任务,OSInit()操作系统初始化。

    OSSched()选择优先级最高的任务,如何快速选择?uC/OS中的方法是个不错的选择:

    http://www.cnblogs.com/gylei/archive/2012/05/31/2528776.html

    好了剩下的就不复杂了,具体见代码吧:

    View Code

     

  • 相关阅读:
    codevs 1450 xth 的旅行
    Loj #6287 诗歌
    Codeforces 323C Two permutations
    Spoj MKTHNUM
    [TJOI2015]弦论
    Spoj SUBLEX
    bzoj 4338: BJOI2015 糖果
    bzoj 3462: DZY Loves Math II
    bzoj 2843: 极地旅行社
    清北学堂模拟赛d4t5 b
  • 原文地址:https://www.cnblogs.com/zhazhalovecoding/p/5403932.html
Copyright © 2011-2022 走看看