RT-Thread 内核基础学习笔记

本文档详细介绍了RT-Thread实时操作系统内核的基础知识,包括内核架构、线程调度、时钟管理、线程间同步与通信、内存管理和I/O设备管理。此外,还阐述了RT-Thread的启动流程、程序内存分布、自动初始化机制以及内核对象模型。内容深入浅出,适合嵌入式开发者学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
***来源: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值