RTX笔记0 - 概述
Keil RTX是一款专为ARM和Cortex-M设备设计的免专利、确定性实时操作系统。具有以下特点:
1. 开源:Keil RTX5(包括源代码)包含在Arm Keil MDK中。这个全功能,商用级RTOS是完全可配置的,没有限制。它是在Apache 2.0许可下发布的,完全在GitHub上开发。
2. 安全:(1)Keil RTX5通过PSA认证,集成了平台安全架构API。(2)有一个安全认证的Keil RTX5变种可作为功能安全应用的Arm运行时系统(FuSa RTS)的一部分。
3.灵活的调度:提供三种调度选项可供选择,(1)Pre-emptive 优先级调度,每个线程都有不同的优先级,并将一直运行,直到一个更高优先级的线程准备运行。(2)Round-Robin 循环调度,每个线程将运行一个固定的CPU运行时(时间片)。数据记录器/系统监视器通常采用循环调度,依次对所有传感器或数据源进行采样,而不进行优先级排序。(3)Co-operative 协作调度,每个线程都将运行,直到它被告知将控制权传递给另一个线程或调用阻塞的操作系统调用。协同多任务多见于需要固定执行顺序的应用程序中。
4.Deterministic Behavior 确定性行为,并不是每个实时操作系统都是确定性的。RTX提供完全确定的行为,这意味着事件和中断在预定义的时间(截止日期)内处理。您的应用程序可以依赖一致和已知的进程计时。
5.Designed for Embedded Systems,Keil RTX5是专门为运行在基于ARM Cortex-M的mcu上的应用程序编写的。它运行迅速,只需要最小的MCU资源,内存占用小至5KB (ROM)。
6.Source Code,Keil RTX5是在GitHub上开源。源代码包含在所有MDK版本中。如果您的产品需要认证,请使用它。
7.内存需求
Task Specifications | Performance |
---|---|
CODE Size | < 4.0 KBytes |
RAM Space for Kernel | < 300 Bytes + 128 Bytes User Stack |
RAM Space for a Task | TaskStackSize + 52 Bytes |
RAM Space for a Mailbox | MaxMessages*4 + 16 Bytes |
RAM Space for a Semaphore | 8 Bytes |
RAM Space for a Mutex | 12 Bytes |
RAM Space for a User Timer | 8 Bytes |
Hardware Requirements | SysTick timer |
8.性能
Task Specifications | Performance (Cycles) |
---|---|
Interrupt Latency 中断延时 | n/a, see note |
Initialize system, start task 初始化系统,启动任务 | 1,147 |
Create task (no task switch) 创建任务(不进行任务切换) | 403 |
Create task (with task switch) 创建任务(进行任务切换) | 461 |
Delete Task 任务删除 | 218 |
Task Switch 任务切换 | 192 |
Set event 设置时间 | 89 |
Send semaphore 发送信号量 | 72 |
Send message 发送消息 | 117 |
Features | |
---|---|
Multitasking | |
Round-Robin | |
Preemptive | |
Cooperative | |
Task Specifications | |
Defined Tasks (max) | Unlimited |
Active Tasks | 250 |
Defined Tasks (max) | Unlimited |
User Priorities | 1 - 254 |
Stack Checking | |
Context Switch Time | < 300 cycles |
Interrupt Lock-Out Time | - |
Timer/Signals | |
Timeouts | |
Intervals | |
User Timers | Unlimited |
Signals/Events | 16 per task |
Inter-Task Communication | |
Events (max) | Unlimited |
Signals/Events | 16 per task |
Semaphores (max) | Unlimited |
Mutexes (max) | Unlimited |
Mailboxes (max) | Unlimited |
Maillbox size | Unlimited (Default 20) |
Note
- Unlimited means that the RTX kernel does not impose any limitations on the number. However, the available system memory resources limit the number of items you can create.
- The RTX library for Cortex™-M3/-M4/-M7 does not disable interrupts. Interrupt latency is the same as without the RTX kernel. Interrupt latency for Cortex™-M0/M1 is <20 cycles.