目录
前言:功能模块
一、RT-Thread 源代码目录结构
二、支持的CPU架构
三、SRC内核代码
前言:功能模块
一、RT-Thread 源代码目录结构
从RT-Thread的GitHub官网上面下载了内核源码,下载链接如下
https://github.com/RT-Thread/rt-thread/tags
解压出压缩包后主目录下如下:
目录 | 说明 |
---|---|
github | 打开里面只有一个readme文件,可以删除; |
bsp | 顾明思议,是包含了很多平台的扳级支持包,留一个自己有用的就可以; |
components | RT-Thread外部组件代码,如Finsh、Lwip、文件系统; |
documentation | 一些介绍性的文档,包括其代码风格 ; |
examples | 各种示例应用程序的示例代码,是很好的学习素材 ; |
include | 一些.h头文件; |
libcpu | 各类CPU芯片/内核的移植代码,比如STM32 ; |
src | RT-Thread内核代码文件; |
tools | 使用 scon 自动化创建工具时需要的一些文件; |
.gitattributes | 有关git的一个文件,不过多讲述; |
.gitignore | 有关git的一个文件,不过多讲述; |
.travis.yml | 有关git的一个文件,不过多描述; |
AUTHORS | 开发者贡献信息; |
ChangeLog.md | 该版本和该版本之前的变更日志 ; |
Kconfig | 对内核和组件的功能进行配置,对组件进行自由裁剪; |
License | 类似于许可证的存在; |
README.md | 关于RT-Thread英文版说明; |
README_zh.md | 关于RT-Thread中文版说明。 |
RT-Thread 的源代码目录结构主要包括以下几个主要部分:
-
BSP(Board Support Package):该目录下包含了具体硬件平台的支持代码,每个硬件平台都有一个对应的 BSP 目录。在该目录中,通常包含了启动文件、时钟配置、中断管理、外设驱动等与硬件相关的代码。
-
Libcpu:该目录包含了与具体处理器平台相关的代码,包括处理器的寄存器定义、中断处理机制等。
-
Components:该目录下包含了 RT-Thread 提供的各种功能组件和功能模块,例如文件系统(FS)、网络协议栈(Net)、GUI 界面库(GUI)、TCP/IP 协议栈(lwIP)、USB 支持库等。开发者可以根据需求选择并集成相应的组件。
-
Examples:该目录下包含了一些应用示例程序,演示了如何使用 RT-Thread 的各种功能和组件。这些示例程序对初学者来说是非常有用的参考。
-
src/Kernel:该目录是 RT-Thread 操作系统内核的核心代码所在位置。它包含了线程管理、任务调度、内存管理、中断管理、时钟管理等与操作系统相关的代码。
-
src/RT-Thread:该目录包含了 RT-Thread 系统的核心代码和头文件,包括内核初始化、任务调度、时间管理、线程操作等。
-
Tools:该目录下包含了一些工具和脚本文件,用于编译和调试 RT-Thread 系统。
此外,还有一些其他的目录和文件,用于存放配置信息、编译工具链、编译输出等。
二、支持的CPU架构
RT-Thread RTOS 支持许多架构,并且已经涵盖了当前应用中的主要架构。
涉及的架构和芯片制造商有:
-
ARM Cortex-M0/M0+:如芯片制造商 ST
-
ARM Cortex-M3:如芯片制造商 ST、全志、灵动等.
-
ARM Cortex-M4:如芯片制造商 ST、Nuvton、NXP、GigaDevice、Realtek、Ambiq Micro 等
-
ARM Cortex-M7:如芯片制造商 ST、NXP
-
ARM Cortex-M23:如芯片制造商 GigaDevice
-
ARM Cortex-R4
-
ARM Cortex-A8/A9:如芯片制造商 NXP
-
ARM7:如芯片制造商 Samsung
-
ARM9:如芯片制造商 Allwinner、Xilinx 、GOKE
-
ARM11:如芯片制造商 Fullhan
-
MIPS32:如芯片制造商 loongson、Ingenic
-
RISC-V:如芯片制造商 Hifive、Kendryte
-
ARC:如芯片制造商 SYNOPSYS
-
DSP:如芯片制造商 TI
-
C-Sky
-
x86
三、SRC内核代码
在 RT-Thread 源代码中,src 目录是其中一个主要目录,它包含了 RT-Thread 操作系统的核心代码。src 目录通常包括以下几个子目录:
-
rt-thread:该目录包含了 RT-Thread 操作系统的核心代码,包括任务管理、线程调度、中断处理、内存管理、定时器管理等与操作系统运行相关的功能。
-
components:内部组件,该目录包含了 RT-Thread 提供的各种功能模块和组件的源代码。例如文件系统、网络协议栈、GUI 界面库、USB 驱动等。开发者可以根据需要选择并集成适合的组件。
-
device:该目录包含了设备驱动相关的源代码。每个子目录通常对应一种设备类型,例如串口设备、以太网设备、SPI 设备等。在这些子目录中,你可以找到设备驱动的初始化、读写函数等与设备操作相关的代码。
-
libcpu:该目录包含了与具体处理器平台相关的源代码文件,用于支持 RT-Thread 在不同处理器平台上的移植和运行。
-
sal:该目录包含了供应商抽象层 (System Abstraction Layer) 的源代码。这些代码提供了对底层硬件的访问接口,支持 RT-Thread 在不同的硬件平台上进行移植和使用。
-
user:该目录是用户自定义的目录,用于存放用户自己开发的应用程序和功能模块。
-
finsh:该目录包含了 RT-Thread 的命令行 shell 组件 FinSH 的源代码。FinSH 提供了一个交互式的命令行界面,使用户能够通过命令行与 RT-Thread 进行交互。