Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Markdown
RT-Thread Studio
gitee
【RSOC26】RT-Thread 入门初识:系统架构、工程运行与开源协作
发布于 2026-08-18 02:46:35 浏览:107
订阅该版
[tocm] ## 一、RT-Thread 实时操作系统概述 ### 1.发展历程 RT-Thread 是一个开源的实时操作系统,经过多年发展,已形成完整的生态体系。 ### 2.整体架构 RT-Thread 采用分层设计,自底向上分为: - **组件RT-Thread软件包:**运行于RT-Thread操作系统上,面向不同应用领域的通用软件,由描述信息、源代码或库文件组成。RT-Thread提供。了开放的软件包平台,这里存放了官方提供或开。发者提供的软件包,该平台为开发者提供了众多可重用软件包的选择。因为这些软件包具有很强的可重用性,模块化程度很高,极大的方便应用开发者在最短时间内,打造出自己想要的系统。 - **组件与服务层:**组件是基于RT-Thread内核之上的上层软件,例如虚拟文件系统、FinSH命令行界面、网络框架、设备框架等。采用模块化设计,做到组件内部高内聚,组件之间低耦合。 - **内核层:**是RT-Thread的核心部分,包括了内核系统中对象的实现,例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等;libcpu/BSP(芯片移植相关文件/板级支持包)与硬件密切相关,由外设驱动和CPU移植构成。 > 官网:https://www.rt-thread.org/ ## 二、工程创建与运行 ### 1.工程创建 1、在RT-Thread Studio中,找到“文件->新建->RT-Thread项目”,单击“RT-Thread项目”,就可以打开图b所示“新建RT-Thread项目”选项卡。 2、如图,设置项目名称为“hello_rtt”、项目保存位置、选择项目所用芯片的厂商和型号等信息,单击“完成”,RT-Thread Studio就会帮我们新建一个名字为“hello_rtt”的RT-Thread项目。  新建完项目后,在RT-Thread Studio的“项目资源管理器”中,可以看到项目的目录树  项目树有多个分支,每个分支都有各自的作用,下表对项目树的各个分支进行说明: | 目录 | 描述 | | ------------------ | ------------------------------------------------------------ | | RT-Thread Settings | 对其双击可以打开RT-Thread的图形化配置工具 | | CubeMX Settings | 对其双击可以打开STM32CubeMX图形化配置工具,对STM32芯片的硬件外设进行配置 | | applications | 用户应用程序目录,所有应用程序都可以放到这里,其中包括main.c | | Debug | 项目编译过程文件目录,如编译过程产生的.o文件等 | | drivers | 和硬件平台相关的设备驱动文件目录 | | libraries | 和平台相关的底层库。对于STM32平台,目前版本使用的STM32官方的HAL库作为平台底层驱动库 | | linkscripts | 项目的链接脚本 | | rt-thread | rt-thread内核代码 | | rtconfig.h | rt-thread的配置文件,在RT-Thread Settings中所做的修改,都会改变这个文件,这个文件不能手动修改 | 下载程序(调试器下载)  ### 2.工程运行 #### (1)系统启动流程(关键函数) | 阶段 | 函数 | 作用 | | :----------- | :---------------------------- | :--------------------------------- | | 硬件初始化 | `rt_hw_board_init()` | 初始化时钟、串口、内存等 | | 版本信息 | `rt_show_version()` | 输出系统横幅(RT-Thread 版本信息) | | 定时器初始化 | `rt_system_timer_init()` | 初始化系统定时器 | | 调度器初始化 | `rt_system_scheduler_init()` | 初始化调度器数据结构 | | 应用初始化 | `rt_application_init()` | 创建 main 线程(应用入口) | | 空闲线程 | `rt_thread_idle_init()` | 创建 idle 空闲线程 | | 启动调度器 | `rt_system_scheduler_start()` | 开始调度就绪线程 | #### (2)线程状态转换 - 创建方式: - `rt_thread_create()`:动态创建(自动分配 TCB 和栈) - `rt_thread_init()`:静态初始化(用户提供 TCB 和栈) - 状态流转:**初始态 → 就绪态 → 运行态 → 挂起态 → 关闭态** - `rt_thread_startup()` 将线程从初始态转为就绪态。 - 调度器启动后,根据优先级和时间片进行调度 #### (3)嵌入式工程编译流程 - **编辑** → **编译** → **汇编** → **烧录(下载)** - 编译生成 `.elf` 和 `.bin` 文件,通过 ST-Link 烧录至 Flash。 #### (4)断点调试 - 设置断点后,程序运行至断点暂停,可查看变量、寄存器、调用栈。 - 单步执行(Step Over / Step Into)帮助定位逻辑错误。 - 调试完成后终止调试,再点击下载固化程序。 ## 三、Markdown 语法规范 ### 1.标题 - 一级:`# 标题` - 二级:`## 标题` - 三级:`### 标题` (几级标题就几个 `#`,注意空格) ### 2.代码段 - **行内代码**:用两个反引号包裹(``代码``),例如 `printf()`。 - **代码块**:用三个反引号包裹并指定语言(如 `c ` ```),或直接使用三个反引号。 示例: ```c #include
int main() { return 0; } ``` ### 3.表格 - 使用竖线 `|` 分隔列,横线 `---` 分隔表头与内容。 - 对齐方式:左对齐 `:---`,居中 `:---:`,右对齐 `---:`。 示例: | t1 | t2 | | :--: | :--: | | DAY1 | DAY2 | 快捷插入表格:`Ctrl + T` ### 4.高亮与加粗 - **高亮**:使用反引号包裹(`高亮`)或特定语法(根据平台)。 - **加粗**:使用两个星号包裹(**加粗**)。 ### 5.图片管理 建议将图片保存至 `./figures` 目录,引用相对路径,防止迁移丢失。 ## 四、Git 基础操作与开源协作 ### 1. 安装与配置 - 安装 Git 和 TortoiseGit(可选汉化包)。 - 注册 Gitee 账号,新建仓库。 - 在本地文件夹右键 `Open Git Bash here` 打开终端。 #### (1)配置用户信息 bash ```c git config --global user.name "你的姓名" git config --global user.email"你的邮箱" git config --list #查看配置 ``` (去掉 `--global` 仅对当前仓库生效) 查看配置:`git config --list` #### (2)生成 SSH 公钥(免密推送) bash ```c ssh-keygen -t rsa -b 4096 -C "your_email@example.com"#生成密钥 cat ~/.ssh/id_ras.pub #查看公钥 ``` 将公钥复制到 Gitee → 设置 → SSH 公钥 → 添加。 验证:`ssh -T git@gitee.com` 显示 `successfully` 即成功。 #### (3)设置远程仓库 URL(SSH 方式) bash ```c git remote set-url origin git@gitee.com:your_username/your_repo.git ``` ### 2. 常用 Git 命令速查 | 命令 | 作用 | | :---------------------------------- | :------------------------- | | `git init` | 初始化当前目录为仓库 | | `git pull origin master` | 拉取远程 master 分支 | | `git add
` | 添加文件到暂存区 | | `git commit -m "message"` | 提交暂存内容并添加日志 | | `git push origin master` | 推送本地 master 到远程 | | `git fetch origin master` | 仅下载远程更新(不合并) | | `git remote -v` | 查看远程仓库地址 | | `git checkout -b
` | 创建并切换到新分支 | | `git switch
` | 切换分支 | | `git stash` | 暂存当前未提交修改 | | `git branch -d
` | 删除本地分支(安全) | | `git branch -D
` | 强制删除本地分支 | | `git push origin --delete
` | 删除远程分支 | | `git fetch -p` | 清理本地残留的远程分支记录 | ### 3. 分支操作与同步 #### (1)创建并推送新分支 bash ```c git checkout -b test # 创建并切换 git add . git commit -m "说明" git push origin test # 首次推送需指定远程分支 # 或 git push -u origin test # 关联上游,之后可直接 git push ``` #### (2)查看分支 bash ```c git branch # 本地 git branch -r # 远程 git branch -a # 所有(本地+远程) ``` #### (3)合并与变基 - **merge**:产生合并节点,保留分叉历史,较安全。 - **rebase**:将提交“嫁接”到目标分支,使历史线性,但风险较高。 #### (4)解决合并冲突 冲突原因:多个分支基于不同时间点修改同一文件。 1. 同步上游(fork 仓库点击“同步”)。 2. 在冲突分支执行 `git merge` 或 `git rebase`。 3. 手动解决冲突,然后 `git add` 和 `git commit`。 4. 推送后 PR 自动更新。 ### 4. Fork 与 PR 流程 - **Fork** 上游仓库(保持原仓库不变)。 - 在本地克隆自己的 fork,创建功能分支(如 `day1`)。 - 修改并推送到自己的远程分支。 - 在 Gitee 上点击“创建 PR”,选择源分支与目标分支(上游 master),填写标题与描述,指定审核人(如小组长)。 - 审核通过后合并。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
金阳阳
这家伙很懒,什么也没写!
文章
1
回答
0
被采纳
0
关注TA
发私信
相关文章
1
rt_thread studio 啥时候能用呢
2
RT_Thread使用反馈帖子
3
RTT studio 下的 AT指令问题。
4
什么时候RTT Sdudio支持Ubuntu,Deepin和UOS操作系统
5
rt thread Studio 关于J-LINK下载问题
6
RT-Thread studio 调试设置问题
7
RTT-Studio 如何设置调试配置参数?
8
rt_thread studio 软件包配置
9
RT-Studio目前只能开发STM32的项目吗?
10
rtt studio 生成hex名字修改
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
【最新活动】RT-Thread论坛活动正在进行(2026年5月活动已更新)
4
国产MCU移植系列教程汇总,欢迎查看!
5
机器人操作系统 (ROS2) 和 RT-Thread 通信
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
五分钟玩转RT-Thread新社区
8
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
9
STM32的“GPU”——DMA2D实例详解
10
RT-Thread隐藏的宝藏之completion
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
Bootloader
AT
Hardfault
CAN总线
ART-Pi
FinSH
DMA
USB
RT-Thread
SCons
文件系统
RT-Thread Nano
线程
MQTT
STM32
FAL
rt-smart
BSP
cubemx
RTC
WIZnet_W5500
PWM
I2C_IIC
UART
packages_软件包
GD32
ota在线升级
ESP8266
freemodbus
flash
keil_MDK
编译报错
ADC
潘多拉开发板_Pandora
flashDB
Debug
ulog
msh
rt_mq_消息队列_msg_queue
socket
MicroPython
SDIO总线
中断
SFUD
QEMU
本月问答贡献
crystal266
3
个答案
1
次被采纳
CYFS
3
个答案
1
次被采纳
oxlm
1
个答案
1
次被采纳
王棒棒
1
个答案
1
次被采纳
wdfk_prog
1
个答案
1
次被采纳
本月文章贡献
Ewan11111
3
篇文章
1
次点赞
longtsing
1
篇文章
4
次点赞
RTT_Studio
1
篇文章
4
次点赞
枫雪天
1
篇文章
3
次点赞
PVNR_2505
1
篇文章
3
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部