diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\344\275\234\344\270\232/\347\254\254\344\270\200\345\244\251\344\275\234\344\270\232 20250721.md" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\344\275\234\344\270\232/\347\254\254\344\270\200\345\244\251\344\275\234\344\270\232 20250721.md" new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/20250721_note.md" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/20250721_note.md" new file mode 100644 index 0000000000000000000000000000000000000000..41c2f6661d2d8c885ac5ee20c42f0761f9ce5c38 --- /dev/null +++ "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/20250721_note.md" @@ -0,0 +1,147 @@ +# [RSOC25] DAY1 课程笔记:开发环境搭建与Git使用 + + + +## **1.开始前** + +### 1.1 什么是Git? + +Git 是一个**分布式版本控制系统**,每个开发者本地都拥有完整的代码仓库副本(包括历史记录和分支),无需依赖中央服务器即可提交、分支或查看历史。离线时仍可工作,网络恢复后同步更改即可。 + +采用**快照(Snapshot)模型**,每次提交保存文件的完整状态,而非仅记录差异,未修改的文件通过引用复用,节省存储空间并提升回滚速度。 + +#### Git 的基本概念 + +- 仓库(Repository):包含项目文件及版本历史的目录,通过``git init``或``git clone``创建。 + +- 提交(Commit):记录文件状态的快照,包含唯一哈希值、作者信息和提交说明。 + +- 工作区、暂存区、本地仓库: + + **工作区**:用户直接编辑的目录。 + + **暂存区(Index)**:临时存储待提交的更改,通过 `git add` 添加。 + + **本地仓库**:永久存储提交历史,通过``git commit``提交。 + +### 1.2 什么是QEMU和menuconfig? + +#### 1.2.1 **QEMU的作用** + +QEMU是一个开源的硬件模拟器,用于在没有物理开发板的情况下模拟ARM等架构的开发板环境。在RT-Thread中,QEMU主要用于: + +- 模拟开发板:如ARM-vexpress-A9开发板,提供虚拟的LCD、键盘、以太网卡等外设支持,方便开发者调试和验证RT-Thread系统功能。 +- 运行RT-Thread BSP:通过运行``qemu.bat``脚本启动虚拟环境,加载RT-Thread的板级支持包(BSP),并运行RT-Thread系统。 + +#### 1.2.2 **menuconfig的作用** + +`menuconfig`是RT-Thread Env工具提供的图形化配置界面,用于系统裁剪和功能定制: + +- 内核与组件配置:通过交互式菜单选择RT-Thread内核功能(如线程调度、内存管理)、组件(如文件系统、网络协议栈)的启用或关闭。 +- 软件包管理:集成RT-Thread的在线软件包生态(如MQTT、文件系统工具),支持一键下载和版本管理。 +- 自动生成配置:保存配置后自动生成``rtconfig.h``文件,定义宏开关(如``#define RT_USING_FINSH``),指导Scons编译系统构建工程。 +- 依赖处理:自动解决功能依赖关系,例如启用动态模块组件需同时打开文件系统和POSIX支持。 + +### 1.3 **RT-Thread 的 env 工具** + +在嵌入式开发领域,`env` 是 RT-Thread 操作系统提供的开发辅助工具,主要用于**系统配置、编译构建和软件包管理**。其核心功能包括:**图形化配置**、**软件包管理**、**工程构建**、**环境变量管理**。 + +- 快速搭建 RT-Thread 项目框架,适配不同硬件 BSP。 +- 动态加载第三方软件包(如 GUI 引擎或网络协议栈)。 +- 自动化生成 IDE 工程文件,提升开发效率。 + +## 2. 环境搭建与env使用 + +### 2.1 利用git获取RT-thread和env源码 + +创建一个文件夹作为项目主文件夹,进入文件夹,右键git bash,打开输入 + +``` +git clone https://gitee.com/rtthread/rt-thread.git +``` + +![1753093446924](figures/1753093446924.png) + +``` +git clone --recursive --depth 1 https://gitee.com/mirrors_RT-Thread/env-windows.git +``` + +![1753093413668](figures/1753093413668.png) + +耐心等候所有下载,回到**MINGW64**后才算真正完成。若在线获取失败,可以在[RT-Thread论坛](https://gitee.com/link?target=https%3A%2F%2Fclub.rt-thread.org%2Fask%2Farticle%2Faf8952fcf0ca464b.html)查看离线下载方法。 + +### 2.2 env工具激活 + +进入env-windows文件夹,运行env.bat文件。 + +![image-20250722094626269](figures/image-20250722094626269.png) + +环境激活成功后,右上角``settings->integration->register``注册env工具到右键菜单栏 + +![image-20250722095044001](figures/image-20250722095044001.png) + +注册成功之后右键菜单栏,进入RT-thread源代码目录利用ENV工具打开。 + +![image-20250722100103532](figures/image-20250722100103532.png) + +打开env工具,执行`menuconfig`命令,随意取消选中一项,再将其选中,使有更改痕迹。ESC退出并按Y保存,操作完成之后``.config``文件会自动从生成。 + +![image-20250722100559677](figures/image-20250722100559677.png) + +输入`pkgs --update`命令,等待更新完毕。 + +![image-20250722094810173](figures/image-20250722094810173.png) + +### 2.3 工程编译与运行 + +#### 2.3.1 Vscode下载和安装 + +前往[vscode官网](https://gitee.com/link?target=https%3A%2F%2Fcode.visualstudio.com%2F)下载并安装vscode。 + +![image-20250722101516910](figures/image-20250722101516910.png) + +#### 2.3.2 Scons构建脚本简介 + +在Vscode中打开``rt-thread\bsp\qemu-vexpress-a9``目录。 + +![image-20250722101917294](figures/image-20250722101917294.png) + +创建一个新的目录并将其纳入编译路径,在该目录下创建SConscript脚本。 + +![image-20250722102427361](figures/image-20250722102427361.png) + +### 2.3.3 简易工程编译 & 运行 + +main.c文件可以简单修改,改为``Hello RT-thread!``和``2025-RSOC``。 + +![image-20250722104807154](image721/image-20250722104807154.png) + +在RT-thread目录下打开env工具,进入bsp\qemu-vexpress-a9目录。输入`menuconfig`后保存生成配置文件,再`scons-j4`编译。 + +![image-20250722105051064](figures/image-20250722105051064.png) + +键入Ctrl+A,再按X键推出。 + +### 2.3.4 LVGL demo工程编译和运行 + +接上一节退出后执行`menuconfig`命令:``Hardware Drivers Config->Onboard Peripheral Drivers->Enable LVGL demo 和 Enable LVGL for LCD``,然后退出并保存。输入`scons-j4`编译,成功后输入`qemu.bat`,如下。 + +![image-20250722112542353](figures/image-20250722112542353.png) + +![image-20250722112626395](figures/image-20250722112626395.png) + +![image-20250722112641554](figures/image-20250722112641554.png) + + + +## 3. 总结 + +### 3.1 可供参考网站链接 + +[Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!(建议收藏)](https://gitee.com/link?target=https%3A%2F%2Fmp.weixin.qq.com%2Fs%2FraSGv-aLHjK1HUcLZvQBeA) + +[PR提交参教程Github](https://gitee.com/link?target=https%3A%2F%2Fgithub.com%2FHPUJSJSH%2FcodingForUs%2Fblob%2Fmain%2FPR%E6%8F%90%E4%BA%A4%E6%95%99%E7%A8%8B%2Freadme.md) + +### 3.2 关系图 + +![image-20250722114041878](figures/image-20250722114041878.png) \ No newline at end of file diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/1753093413668.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/1753093413668.png" new file mode 100644 index 0000000000000000000000000000000000000000..10b58f1de28c4bd437f5b3a0140b9871c14ef1b1 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/1753093413668.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/1753093446924.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/1753093446924.png" new file mode 100644 index 0000000000000000000000000000000000000000..cd52360f659173472875f428e5e56ab4d9f57a74 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/1753093446924.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722094626269.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722094626269.png" new file mode 100644 index 0000000000000000000000000000000000000000..86bb147505128f62bf97a3f41dc4ca78547bec62 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722094626269.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722094810173.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722094810173.png" new file mode 100644 index 0000000000000000000000000000000000000000..a0638ada2938b47acc49e10bda0aba733b1591bf Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722094810173.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722095044001.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722095044001.png" new file mode 100644 index 0000000000000000000000000000000000000000..3610be79f30913d0afaef2bfe21b07deee406109 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722095044001.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722100103532.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722100103532.png" new file mode 100644 index 0000000000000000000000000000000000000000..d60f3f61954f16c46067816c8bee16ae51282057 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722100103532.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722100559677.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722100559677.png" new file mode 100644 index 0000000000000000000000000000000000000000..31698e3b2bcabac8db031070ec4a295319ea79b9 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722100559677.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722101516910.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722101516910.png" new file mode 100644 index 0000000000000000000000000000000000000000..f7674d347dca4e5be95594387359a7de9def14ee Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722101516910.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722101917294.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722101917294.png" new file mode 100644 index 0000000000000000000000000000000000000000..3290b3ec445dc4f7e7f98dfc1fa4d9d831f31806 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722101917294.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722102427361.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722102427361.png" new file mode 100644 index 0000000000000000000000000000000000000000..a98aba052dcb6fc58c89c771fd2a8fa890aa5224 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722102427361.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722105051064.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722105051064.png" new file mode 100644 index 0000000000000000000000000000000000000000..8dce33843822ce8c2c4160290f33c3ff11c5764a Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722105051064.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112542353.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112542353.png" new file mode 100644 index 0000000000000000000000000000000000000000..b31632ca36116f0437c67da10f503abe2d800c45 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112542353.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112626395.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112626395.png" new file mode 100644 index 0000000000000000000000000000000000000000..cee569f20419553ba74b0ba90411cb2a87510ccf Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112626395.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112641554.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112641554.png" new file mode 100644 index 0000000000000000000000000000000000000000..a3893f3d42e34adcf26f1ee13099aa9183d236ca Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112641554.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722114041878.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722114041878.png" new file mode 100644 index 0000000000000000000000000000000000000000..9de13c7968b2e79939f11f61557ff672ed7a3751 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722114041878.png" differ