/**
***来源:RT-Thread 在校大学生雄鹰计划
***文档:RT-Thread 内核基础
***内容:RT-Thread 内核基础学习笔记
**/
一、RT-Thread 内核介绍
1、RT-Thread内核架构
1.1 内核处于硬件层之上
1.2 内核部分包括内核库、实时内核
内核库(kernel Library)有:kservice.h/kservice.c(提供内核服务的),这里的库仅用到一小部分C库函数
实时内核有:object.c(对象管理),schedule.c(实时调度器),thread.c(线程管理),ipc(线程间通信)
clock.c,timer.c(时钟、定时管理之类的),mem.c,memheap.c(内存管理的)
1.3 上面实时内核部分的源代码均位于kernel-sample文件夹目录下
2、线程调度:
2.1 线程是RT-thread操作系统中的最小的调度单位
2.2 线程调度算法:基于优先级的全抢占式多线程调度算法
2.3 哪些不能抢占:中断处理函数、调度器上锁部分的代码、禁止中断的代码
2.4 STM32默认配置是32个线程优先级,0代表是最高优先级,最低优先级给空闲线程使用
2.5 相同优先级的线程:支持创建,采用时间片的轮转调度算法进行调度,让每个线程运行相同时间
2.6 调度器寻找最高优先级的线程(就绪状态)时,所经历的时间是恒定。
2.7 线程数目只和硬件平台的具体内存有关
3、时钟管理
3.1 时钟节拍是RT-thread操作系统中最小的时钟单位
3.2 定时器的两类定时机制:
3.2.1 单次触发定时器,启动只会触发一次定时器事件,会自动停止,不需手动操作
3.2.2 周期触发定时器,启动会周期性触发定时器事件,不会自动停止,需用户手动
3.2.3 RT-Thread的定时器可以设置为HARD_TIMER模式或者SOFT_TIMER模式,此时需根据超时函数所处的上下文环境选择
4、线程间同步
4.1 RT-Thread采用信号量、互斥量与事件实现线程间同步。
4.2 线程通过对信号量、互斥量的获取与释放进行同步;
互斥量采用优先级继承方式解决实时操作系统常见的优先级翻转。
5、线程间通信
5.1 RT-Thread支持的通信机制:邮箱、消息队列等
5.2 邮箱:邮件的固定长度为4个字节大小
消息队列:不固定长度,将消息缓存在内存空间
5.3 邮箱效率更高效
5.4 通信机制支持:线程按按优先级等待、按先进先出方式获取
6、内存管理
6.1
RT-Thread 内核基础学习笔记
最新推荐文章于 2025-07-10 15:45:09 发布