• 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

     

  • 相关阅读:
    misc子系统
    Spring boot+RabbitMQ环境
    Linux input
    lnmp环境的搭建
    DDD的.NET开发框架
    【踩坑记】从HybridApp到ReactNative
    Migrating from IntelliJ Projects
    Windows下Redis中RedisQFork位置调整
    远程仓库版本回退方法 good
    maven repository
  • 原文地址:https://www.cnblogs.com/zhazhalovecoding/p/5403932.html
Copyright © 2020-2023  润新知