![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
fans-rt 介绍
文章平均质量分 62
长相很安全
这个作者很懒,什么都没留下…
展开
-
fans-rt 任务调度-堆栈切换篇(1)任务切换的基本原理
一个多任务的操作系统可以同时运行多个任务,在只有一个CPU的情况下,怎么同时运行多个任务呢?其实就是操作系统控制CPU在多个任务之间来回切换,这种切换对于任务来说,可以是主动发起的(休眠、阻塞),也可以是不可感知的(优先级抢占、时间片流失)。由于切换的频率极高,速度极快,给用户的感觉就好像是同时在运行多个任务一样。那么,CPU是怎么在任务之间切换的呢?我们知道CPU运行程序的所有局部变量、需要重复原创 2015-07-08 01:39:59 · 1028 阅读 · 0 评论 -
fans-rt 任务调度-堆栈切换篇(2)堆栈模型
前面我们提到,任务的切换就是堆栈的切换(当然首先是任务上下文的切换),也通过代码简单的描述了堆栈切换的切换过程。但是,要成功从一个任务切换到另一个任务还必须了解CPU当前运行模式下,中断处理时的特性。例如,进入堆栈时会保存哪些寄存器,CPU是否支持硬件双堆栈(甚至更多层次的堆栈),如果支持多层堆栈,那么在进入中断前,外层堆栈保存哪些寄存器,内层堆栈保存哪些寄存器,是否会将外层堆栈指针保存在内层堆栈原创 2015-07-08 22:13:03 · 849 阅读 · 0 评论 -
fans-rt 任务调度-堆栈切换篇(4)tiny模型详细分析
优化后的Tiny模型代码: ; ; Copyright(C) 2013-2015, Fans-rt development team. ; ; All rights reserved. ; ; This is open source software. ; Learning and research can be unrestricted to modification原创 2015-07-11 23:32:23 · 511 阅读 · 0 评论 -
fans-rt 介绍(1)-什么是fans-rt
fans-rt 是一个开源实时操作系统项目(目前只实现了STM32的支持)。 已实现或部分实现的功能包括:任务管理、对象管理、系统级内存管理、IRQ管理、LPC服务管理、进程间通讯管理(EVENT/MUTEX,其他暂未完成)。 系统架构设计支持硬件级双堆栈(提供软件双堆栈),支持硬件任务切换中断,提供内核特权级保护,提供MPU支持。 系统全局内存管理 fans-rt 提供内核态和用户态原创 2015-07-05 03:29:23 · 506 阅读 · 0 评论 -
fans-rt 任务调度-堆栈切换篇(3)关于cortex-m3堆栈的入栈顺序说明
cortex-m3 STM32 MCU支持单条PUSH/POP指令对多个寄存器执行入栈出栈操作,入栈顺序按照寄存器编号的反序进行入栈,不以用户的编码顺序进行入栈(因为操作码以mask值运算),例如: PUSH {R0-R3} PUSH {R1, R0, R2, R3} PUSH {R3, R1, R2, R0} PUSH {R3, R1-R0}四种写法的执行结果是完全一致的,指令执行后,堆栈原创 2015-07-11 03:33:40 · 829 阅读 · 0 评论 -
fans-rt介绍(2)-系统功能介绍
一、系统功能 1、任务管理(完成度90%) 提供抢占式任务管理,支持256级优先级,支持1024个任务同时运行,相同优先级采用轮转调度,不同优先级采用抢占调度,调度时间复杂度O1。任务管理提供至多3级位图(256bit)最少1级位图(8bit)描述就绪状态,调度时查表获得最高优先级的就绪任务。支持多种堆栈模型,包括全局内核堆栈、局部内核堆栈,在tiny模式下所有任务使用单堆栈运行,以节约内存空原创 2015-07-11 01:29:43 · 493 阅读 · 0 评论 -
fans-rt 介绍(3)-可选组件(待实现)
二、可选组件 1.设备和驱动管理(DDM) 提供TINY模式和HUGE模式的设备管理架构 TINY架构 以节省内存为目的的简易设备管理架构,提供对设备节点的管理,不提供设备树的管理结构,提供电源管理支持,不提供热拔插支持,适用于64KB以下内存较小的单片机系统。 HUGE架构 支持总线(PCI/USB等)架构的设备和驱动管理,提供树形设备管理结构,提供电原创 2015-07-11 01:31:17 · 520 阅读 · 1 评论 -
fans-rt 介绍(4)-源码文件夹介绍
三、源码文件夹介绍 ├─boot ├─build (编译配置文件夹) │ └─stm32 ├─include │ ├─armcc │ ├─gcc │ └─stdc ├─libs │ ├─libapi (fans-rt API接口层) │ ├─libcal (fans-rt 内核适配层)原创 2015-07-11 01:42:55 · 681 阅读 · 0 评论