嵌入式实时操作系统
从系统对规定时间的敏感性要求来看,实时系统可以分为硬实时系统和软实时系统。
非实时系统:超过规定时间,效用缓慢下降
软实时系统:超过规定时间,效用迅速下降
硬实时系统:超过规定时间,效用立即归零
前后台系统&任务优先级
快速入门RT-Thread
Real Time-Thread
任务是通过线程实现的,任务调度器➡️线程调度器
C语言编写,面向对象
2017.7极简内核NANO版本:3KB Flash、1.2KB RAM
非常适用于成本、功耗受限的场合
RT-Thread软件架构图
RT-Thread精简内核文件夹目录
RT-Thread精简内核工程目录
内核基础
RT-Thread内核及底层结构
内核库是为了保证内核能够独立运行的一套小型类似C库的函数实现子集。
线程调度:
是RT-Thread中最小的调度单位,算法为优先级的全抢占式多线程调度算法(除了中断处理函数、调度器上锁部分的代码和禁止中断的代码不可抢占之外,系统的其他部分都是可以抢占的,包括线程调度器自身。)
支持256个线程优先级,STM32默认32个线程优先级,可通过配置文件更改
0 优先级代表最高优先级
支持多个线程优先级相同:采用算法➡️时间片的轮转调度算法(每个线程运行时间相同)
线程数目只和硬件平台的具体内存相关
时钟管理:
以时钟节拍为基础
两类定时器事件:单次触发定时器,周期触发定时器
线程间同步
采用信号量、互斥量与事件集实现线程间同步
线程间通信
支持邮箱和消息队列等通信机制
内存管理
支持静态内存池管理及动态内存堆管理
I/O设备管理
将I2C等作为外设设备,统一通过设备注册完成
RT-Thread启动流程
startup_stm32f103xe.s➡️C代码,RT-Thread系统功能初始化➡️main()
网友评论