OS:任务级设计,任务间耦合小;改变裸机前后台设计方案中后台任务轮训无优先级重要任务得不到确定性响应;伪并行,提高利用率。

在keilv4.74最后一个版本之后,KIELV5将KEIL-RTX该为CMSIS_RL_RTX(做了CMSIS的封装),适用于Cortex-M系列。

优点:性能和embos都差不多,移植非常简单,使能和添加RTX_Conf_CM.c(配置也是图形化方式)即可,免费,keil中带调试支持。

也可以以源码方式移植,见安富莱教程。

配置要点:

  • Number of concurrent running tasks:最多人数数(不包括空闲任务,实际任务应该小于等于改值)
  • Number of tasks with user-provided stack :用户自定义堆栈大小的任务数:其它的都是按缺省Task stack size ;一般先选择一个比较大的,通过调试再修改,其中M3和未使用FPU的M4系统栈=64(16个寄存器*4字节)*中断嵌套层数;而使用FPU的M4为200((16+极端情况34个浮点寄存器)*4)。堆栈大小与任务切换的现场保护与恢复,形参大小,局部变量,中断进入与嵌套。系统栈和任务栈:M3/M4的双堆栈结构,中断函数发生时的中断嵌套用的是系统栈MSP(在启动文件中,通过图形化配置改变,也可以在cubumX中改变),而RTX所有的任务使用的是PSP的任务栈(8字节对齐可以使用unint64_t)。
  • Run in privileged mode :是否使能特权机模式
  • Tick Timer Configuration :使用哪个定时器,定时器主频,系统时钟节拍数。
  • ISR FIFO Queue size :调用中断服务程序时将此请求放到缓冲区中。

OS函数及流程:

1 初始化:有3个函数,中间那个常用,任务优先级为1~254,数值越小优先级越低,也支持任务具有相同的优先级,设计方法:RTX推荐的

IRQ任务(最高):由中断服务程序触发,阻塞式(只有这样高优先级任务才可以得到执行的机会)。

高优先级后任务(次高):人机交互的输入(按键监测、触摸监测)、消息的解析处理(串口、usb等)

低优先级的时间片任务(一般):周期性的处理,如显示(LCD/数码管、图形显示等)

空闲任务:系统任务。

2任何创建:4个函数

3任务删除:2个函数,参数为ID,若为0表示删除当前正在运行的任务。空闲任务作用:保证系统不超负荷的100%运行,可添加低功耗方法。

4 任务优先级更改:2个函数,参数为ID,prio

特权模式和用户模式:特权模式下才可访问的外设(systick NVIC  MPU  SCB 特殊功能寄存器(程序状态寄存器组/中断屏蔽寄存器组、控制寄存器));在非特权模式下访问和配置系统控制寄存器如NVIC会引起硬件异常。

4.1在用户模式下初始化核心外设寄存器的方法:1 在操作系统初始化之前做核心外设初始化 2使用SVC软中断。

4.2模式切换方法:CONTROL[0]=0或者在hander模式下,更改值可进入用户模式;用户模式只有SVC才可以进入特权模式

keil-rtx的更多相关文章

  1. Keil RTX systick 初始化

    在STM32F215上移植Keil的RTX操作系统,随便设置下就能好使,但是当我想知道systick到底是怎么设置的时候,就得翻翻代码了,原来在 rt_HAL_CM.h中以一个内联函数的形式定义的 _ ...

  2. Keil RTX使用 os_mut_init 报Hard Fault 错误解决记录

    首先确定你的软件是在互斥信号初始化的位置,在以下几个位置,将会报Hard Fault 错误: (1).os_sys_init_user 用户线程创建之前 (2).os_tsk_create_user之 ...

  3. Keil的RTX特性

    Keil RTX是为ARM和Cortex-M设备设计的免版税,确定性的实时操作系统.它允许您创建同时执行多个功能的程序,并帮助创建更好的结构和更容易维护的应用程序. 特征 具有源代码的免版权,确定性R ...

  4. STM32F429i-DISCO FreeRTOS keil STM32CubeMX

    目标: 在STM32F429 Disco开发板上用FreeRTOS双线程点亮双闪led. 准备: 0. STM32F429i-DISCO 1. keil ARMMDK 5.13 2. STM32Cub ...

  5. [RTOS]--uCOS、FreeRTOS、RTThread、RTX等RTOS的对比之特点

    本篇博客就来细数这几个RTOS的特点.   以下内容均来自官方网站或者官方手册Feature的Google翻译的加了我的一些调整,没有任何主观成分. 1. FreeRTOS   FreeRTOS是专为 ...

  6. uTenux——软件底层驱动组织结构介绍

    经过第一节对uTenux初步认识和第二节对uTenux\AT91SAM3S4C开发板的硬件结构的介绍,这一节我们将要学习的是uTenux\AT91SAM3S4C的软件底层驱动. 在悠龙公司的官网或者u ...

  7. CMSIS_RTOS_Tutorial自译中文版

    一.序言 本资料是Trevor Martin编写的<The Designers Guide to the Cortex-M Processor Family>的摘要,并得到Elsevier ...

  8. MDK editions for Nuvoton devices

    10 Sep 2018 MDK editions for Nuvoton devices For users of Nuvoton devices, Keil® MDK increases its a ...

  9. keil_rtx特点

    Keil RTX是一个专为ARM及Cortex M系列处理器开发的无版税的确定的实时操作系统.它允许工程师建立多任务同步并行的程序软件,同时也能帮助使程序代码更加结构化和便于维护.   产品亮点 所有 ...

  10. CMSIS-RTOS 时间管理之时间延迟Time Delay

    时间管理 Time Management 此RTOS除了可以把你的应用代码作为线程运行,它还可以提供一些时间服务功能,使用这些功能你就可以访问RTOS的一些系统调用. 时间延迟Time Delay 在 ...

随机推荐

  1. php设置编码格式的方法

    a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb2312"),静态页面添加<meta htt ...

  2. Thread,Service和AsyncTask

    Thread,Service和AsyncTask这三种东西,似乎都是用来执行后台耗时操作的: 印象里Service是「超过5s的耗时操作就应该放进去」,但是Service实际上仍然是主线程,所以,在S ...

  3. star score

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  4. linux 下文件恢复工具extundelete介绍

        下载 http://extundelete.sourceforge.net/ bunzip2 extundelete-0.2.0.tar.bz2 tar xvf extundelete-0.2 ...

  5. zjoi2015d1题解

    闲来无事做了丽洁姐姐的题 t1给一棵树 每个点有点权 每次修改点权 修改后询问每个点到树的带权重心的带权距离是多少 每个点度数不超过20 很显然的一个点分树... 我们记一下 每个点的子树中的所有点到 ...

  6. zero to one (2)

    kali虚拟机整理 关于kali的虚拟机,我搞崩过很多次,重新安装了很多次,也遇到了很多问题,有一些解决不了的就重新安装,费时费力,要善于用虚拟机. 关于网络配置的问题 关于网络配置,在这里我想主要记 ...

  7. 「51Nod1639」绑鞋带(概率

    1639 绑鞋带  基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 有n根鞋带混在一起,现在重复n次以下操作:随机抽出两个鞋带头,把它们绑在一起.可 ...

  8. WPF架构分析

    1.DisptcherObject提供了线程和并发模型,实现了消息系统. 2.DependencyObject提供了更改通知,实现了绑定,样式. 3.Visual是托管API和非托管API(milco ...

  9. C# Unit Test 备注

    1. UT工程的编译一定要让依赖的dll在同一目录,即和测试目标dll运行的环境一样. 比如 Demo-UT测试Demo工程, 则Demo工程依赖的所有dll必须和Demo输出的可执行环境Demo.d ...

  10. complexType

    //decltype的表达式如果是加上括号的变量,结果将是引用 decltype((variable)) ruiy; //此变量的数据类型是引用(但此处变量的申明语句是错误的,引用不是对象,指向的对象 ...