嵌入式实时操作系统

2019-10-16  本文已影响0人  coolguyy

嵌入式实时操作系统

从系统对规定时间的敏感性要求来看,实时系统可以分为硬实时系统和软实时系统。

非实时系统:超过规定时间,效用缓慢下降

软实时系统:超过规定时间,效用迅速下降

硬实时系统:超过规定时间,效用立即归零

前后台系统&任务优先级

快速入门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()

上一篇 下一篇

猜你喜欢

热点阅读