fans-rt介绍(2)-系统功能介绍

原创 2015年07月11日 01:29:43
一、系统功能
1、任务管理(完成度90%)
提供抢占式任务管理,支持256级优先级,支持1024个任务同时运行,相同优先级采用轮转调度,不同优先级采用抢占调度,调度时间复杂度O1。任务管理提供至多3级位图(256bit)最少1级位图(8bit)描述就绪状态,调度时查表获得最高优先级的就绪任务。支持多种堆栈模型,包括全局内核堆栈、局部内核堆栈,在tiny模式下所有任务使用单堆栈运行,以节约内存空间,其他模式下普通任务采用双堆栈方式以便保护系统内核。
2、系统功能调用管理(完成度100%)
提供内核服务管理,所有内核服务均注册到服务软中断上,在中断上下文中完成服务功能,为减少服务所开销的CPU时间片保证系统实时性提高系统对中断的响应速度,所有内核服务均只提供原子化的单一功能,对于复杂的API调用由API层完成对系统功能的集成和组合,例如创建任务的API功能被划分为任务上下文对象分配、用户堆栈分配、用户堆栈初始化、内核堆栈分配、内核堆栈初始化、局部堆分配、局部变量管理对象分配等一系列原子化的步骤。
3、中断管理(100%)
提供至多256个中断管理,支持共享中断,支持中断优先级抢占。
4、内存管理(完成度50%)
内存采用2级管理,分为系统全局内存管理和应用全局堆管理、任务局部堆管理,系统全局内存管理由MMS服务完成,提供较大的页分配,支持最多8个Region,每个 Region最大64MB,最多可管理512MB内存,所有内存管理活动必须先通过MMS分配。应用全局堆管理由HMS提供,提供较小的块分配,所有任务共享全局堆,全局堆的管理数据和堆空间完全隔离,以防止应用程序缺陷导致问题扩散。局部堆为任务独享,局部堆的分配和释放均在应用层完成。系统支持tiny内存模型 (不编译全局内存管理模块),内核最小内存需求3KB(1个IDLE任务,1个BOOT任务,以及1KB管理数据)。全局内存和堆的分配和释放均使用Buddy算法。
5、类和对象管理(完成度100%)
提供类和对象管理,允许驱动程序或其他内核模块向系统注册类。对象管理的内存分配采用2级索引方式,相同大小的对象使用一个对象容器(Container)进行管理,每个容器中有若干个池(POOL),每个POOL中有若干个块(BLOCK),容器描述符使用最大32BIT的位图描述BLOCK的空闲状态,分配时通过2次查表获得空闲块的ID。系统内核所使用的各种对象(例如任务上下文对象、IPC对象、堆栈对象、局部变量对象等)均由对象管理器统一管理。对象分为命名对象(唯一名称,不可重名)和无名对象。
6、IPC服务(完成度40%)
事件(100%) 互斥体(100%) 信号量(20%) 信号量集(20%) 管道FIFO(0%) 邮箱(0%) 消息队列(0%)
7、内核闹铃(完成度0%)
在系统时钟中断中执行,闹铃分为单次闹铃和周期闹铃。
  单次闹铃:在指定闹铃时间超时后,只闹一次。
  周期闹铃:以指定周期频率回调闹铃函数。
8.任务局部变量(完成度0%)
为任务提供局部变量空间,在创建任务时可根据需求配置所需要的局部变量数量。
版权声明:本文为博主原创文章,未经博主允许不得转载。

fans-rt 介绍(4)-源码文件夹介绍

三、源码文件夹介绍 ├─boot ├─build (编译配置文件夹) │ └─stm32 ├─include │ ├─armcc │ ├─gcc │ ...
  • sevek
  • sevek
  • 2015年07月11日 01:42
  • 361

【怎样在fans-rt上进行开发】1.windows 系统下 gcc 交叉编译环境搭建(cortex-m3)

【相关软件】 1.msys shell 2.arm-none-eabi-gcc for windows 3.Jlink驱动 【安装】 一、msys shell 的安装 1.下载 打开 http://w...
  • sevek
  • sevek
  • 2015年08月16日 15:46
  • 761

fans-rt 任务调度-堆栈切换篇(2)堆栈模型

前面我们提到,任务的切换就是堆栈的切换(当然首先是任务上下文的切换),也通过代码简单的描述了堆栈切换的切换过程。但是,要成功从一个任务切换到另一个任务还必须了解CPU当前运行模式下,中断处理时的特性。...
  • sevek
  • sevek
  • 2015年07月08日 22:13
  • 489

fans-rt 任务调度-堆栈切换篇(4)tiny模型详细分析

优化后的Tiny模型代码: ; ; Copyright(C) 2013-2015, Fans-rt development team. ; ; All rights reserved. ...
  • sevek
  • sevek
  • 2015年07月11日 23:32
  • 272

FANS-RT 任务同步对象设计方案

一、特性流程及涉及模块框图 二、特性总体需求 1.创建对象   创建事件对象   创建互斥体对象   创建信号量对象   创建信号量集对象 2.捕获对象(通过对象名称) 3.向...
  • sevek
  • sevek
  • 2015年07月28日 00:18
  • 207

fans-rt 0.11内核架构设计缺陷分析

fans-rt 0.11版本在近期的测试中发现一些与系统架构上的设计缺陷,主要表现在实时性和空间占用两个方面,在0.12版本中将着重解决这些问题。 1.实时性问题 fans-rt 0.11版本内核架构...
  • sevek
  • sevek
  • 2015年08月28日 07:28
  • 277

Fans-rt 任务局部变量特性设计方案(需求分解)

FANS-RT 任务局部变量特性设计方案 一、特性流程简图 二、特性总体需求 1.创建局部变量对象 2.获得局部变量键 3.释放局部变量键 4.根据局部变量键设置变量值 5.根据局部变量键...
  • sevek
  • sevek
  • 2015年07月17日 01:36
  • 175

如何使用jlink+gdb在stm32上调试fans-rt

【相关软件】 windows xp MinGW arm-none-eabi-gcc arm-none-eabi-gdb JLink_V490 驱动  【操作步骤】 1.运行JLink.exe ...
  • sevek
  • sevek
  • 2015年07月23日 02:00
  • 303

RT-Thread 基于STM32F1xx HAL 库的学习笔记(2)---加入pin功能支持

RT-Thread的pin功能是个有意思的功能,在系统注册成misc之后,可以在进程中对芯片的IO引脚进行配置和读写。 虽然在components\drivers\misc目录下pin.c中实现了中...

RT-Thread ---开启基于RTGUI的LCD显示功能(2)<编译测试>

软件环境:Win7,Keil MDK 4.72a, IAR EWARM 7.2, GCC 4.2,Python 2.7 ,SCons 2.3.2 硬件环境:Armfly STM32F103Z...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:fans-rt介绍(2)-系统功能介绍
举报原因:
原因补充:

(最多只允许输入30个字)