![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FOS操作系统原理设计
杨善锦
一名AI算法工程师,
欢迎小店:https://shop418333081.taobao.com/?spm=pc_detail.27183998/evo365560b447259.202202.1.35147dd6JlDWdC (AI硬件和美食)
github : https://github.com/dreamflyforever
展开
-
FOS信号量管理
FOS信号量管理: 一般的RTOS会通过初始化信号量建立相对应的阻塞链表。这样做会增加使用资源。FOS主要通过semaphore阻塞队列管理信号量。把被semaphore阻塞的任务挂在该链表上。而且自始至终都使用一条链表。FOS在系统初始化时候需要初始化该链表。1、信号量初始化void sem_init(SEM *semaphore, U8 *name, U32 num){原创 2014-09-15 16:47:00 · 1101 阅读 · 0 评论 -
嵌入式实时操作系统FOS简介
FOS功能:1. 支持多任务运行, 支持机遇原创 2014-09-15 18:06:22 · 4847 阅读 · 4 评论 -
FOS的消息队列管理
FOS 消息队列什么是消息队列 消息队列的使用 消息队列的设计 什么消息队列想象一个场景,线程a断断续续的向线程b发送数据,线程b要根据接送到的数据去解析做逻辑处理,但是b线程是优先级比较低的任务,不会去实时处理数据,造成丢数据。如何解决这种问题,可以设想有个大buffer作为缓冲区,线程a发送的数据送到buffer,线程b从buffer提取数据,这样就可以解决线程a发送的数据丢失问题。如何管理buf原创 2017-06-10 14:15:32 · 618 阅读 · 0 评论 -
FOS调度算法
FOS调度算法是基于优先级任务调度的,期货原创 2014-07-08 22:40:43 · 1981 阅读 · 0 评论 -
FOS中断管理
一、FOS中断管理中断管理分软硬件。硬件分两种类型中断,一是中断向量表存放地址,一种是存放指令。在处理中断之前要初始化其栈指针二、软件上设计:中断发生,PC跳转到中断向量表,然后我们要做的事情如下:保存被中断的任务的上下文;增加中断嵌套次数变量;进入用户处理函数;1) 清中断;2)查找中断号,根据中断号调用相应的用户函数;减少中断原创 2014-05-03 21:02:18 · 1185 阅读 · 0 评论 -
FOS时间管理
FOS时间管理包括软定时器、延时函数两者管理(目前是这两者对象,后面会补充各种对象的timeout)。通过一条链表连接对象,由style标识特定对象。/*time manage*/typedef structTICK_STR{ LIST list; U8 style; //timer,delay,wait signer U32 timeout; TC原创 2014-05-03 17:12:05 · 1412 阅读 · 0 评论 -
驱动设备管理
设备管理作用 设备管理接口使用 设备管理实现 设备管理作用一个操作系统往往集成很多设备的驱动,比如led灯,按键,PWM,ADC,SD等等设备。如何管理 这些设备,使得应用层可以使用统一的方式去操作这些设备,类似linux操作所有设备当做操作 文件的方式,FOS也是这种方式,用户可以在驱动层去定义open,read,write,iocontrol,close 等接口,在应用层去做原创 2017-06-23 11:33:44 · 564 阅读 · 0 评论 -
FOS双向链表
双向链表作用 双向链表接口使用 双向链表实现 双向链表作用双向链表(以下用double list)是一种基本的数据结构,在FOS中,消息队列、阻塞队列、就绪队列、信号量队列等等都是由底层的double list串接起来的,相比单链表,double list的每一个节点都可以两个方向查找,方便遍历list。双向链表接口使用链表的基本操作增删查改, 增是增加链表的节点,主要确定增加在哪个节原创 2017-06-12 14:20:04 · 538 阅读 · 0 评论