博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
simpleOS 1.0
阅读量:4992 次
发布时间:2019-06-12

本文共 499 字,大约阅读时间需要 1 分钟。

做了一个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

 

转载于:https://www.cnblogs.com/zhazhalovecoding/p/5403932.html

你可能感兴趣的文章
Datatable get请求传参应用
查看>>
杭电1170
查看>>
3unit8
查看>>
kettle与各数据库建立链接的链接字符串
查看>>
【转】Apache Solr 访问权限控制
查看>>
PostgreSQL - 转义字符
查看>>
两步搞定一台电脑同时开启多个tomcat
查看>>
jQuery EasyUI弹出确认对话框(确认操作中.....)
查看>>
CentOS7 监控网络流量
查看>>
根据控件名称反射查找控件
查看>>
编写和执行C#代码的插件:CS-Script for Notepad++
查看>>
BZOJ3569: DZY Loves Chinese II(线性基构造)
查看>>
Android系统源码下载及使用(Android 14到19源码)
查看>>
绑定dropdownlist
查看>>
[LeetCode] Sudoku Solver
查看>>
实验四
查看>>
Python Day04
查看>>
Android新增API之AudioEffect中文API与应用实例
查看>>
颜色空间RGB与HSV(HSL)的转换
查看>>
swift 用协议实现代理传值功能
查看>>