Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
BSP移植
国产MCU移植
沁恒微 CH32V103R-EVT BSP提交记录
发布于 2022-04-05 09:00:19 浏览:1658
订阅该版
[tocm] 记得去年有个国内厂商BSP制作活动,买了块 沁恒微CH32V103R-EVT开发板(板子丝印写的是CH32V103R-R1),但是临时有事,后来就没管了。最近在学习RISC-V架构,看了一下官方github上Master上该开发板的bsp还没有提交,RT_Thread_Studio的BSP包也没放出来,所以一起搞起。 # 1 准备 一般我们不会从零开始写一个BSP, 毕竟有些芯片的特性和寄存器地址也只有芯片制造商清楚,所以我们要在沁恒微(下面简称WCH)官方已有的rtthread例程基础上进行下一步。目前WCH推荐使用MounRiver Studio IDE(下面简称MRS)上进行相关芯片的开发, 下载地址为http://www.mounriver.com/download,我使用的是目前最新的为v1.7.0版本。 ![image-20220402203047076.png](https://oss-club.rt-thread.org/uploads/20220405/04d57c9664e542bc67377bb484395a27.png.webp) ## 1.1 MRS rt-thread demo ### 1.1.1 new rt-thread demo 创建过程比较简单,File-> New- > MounRiver Project 然后选择CH32V103对应的RT-Thread例程 ![image-20220402205756961.png](https://oss-club.rt-thread.org/uploads/20220405/854f1c771af352c1083ba97783dce11b.png) 生成的目录结构: ![image-20220404191754883.png](https://oss-club.rt-thread.org/uploads/20220405/946e70c5d3f4ac718e4dd640876a2a8a.png.webp) ### 1.1.2 验证demo 时刻保持怀疑的态度,先验证一些实际运行效果,也和后面移植的效果做对比 ![image-20220403093427837.png](https://oss-club.rt-thread.org/uploads/20220405/95b05308159ef4128460d04fabe3b886.png.webp) > 1. 初次下载或者Debug可能提示你需要升级WCH-LINK。不得不说WCH-LINK做的还不错,下载调试没出啥问题 #### 1.1.2.1 main thread main thread 在闪烁LED1, 开发板上并没有把GPIOA0和LED1 / LED2 pin 连接在一起,需要自己用杜邦线连接一下,才能看到效果。 ![image-20220403103441729.png](https://oss-club.rt-thread.org/uploads/20220405/4617c71ffa0e4dcbc27e188caf436039.png.webp) #### 1.1.2.2 MSH 打开串口看下MSH运行情况 ![image-20220403102030365.png](https://oss-club.rt-thread.org/uploads/20220405/4717e321c4ebd1c657f0c50bf01c6e32.png.webp) 😓输入乱码了,论坛上有小伙伴说是串口问题。断开默认的串口连接,使用自己的串口工具直连MCU的TX RX ,确实没问题了 ![image-20220403103550001.png](https://oss-club.rt-thread.org/uploads/20220405/c73a55cda67593d35221db823097c4eb.png.webp) > 另外你可以把自己串口接到PA9,PA10, 默认的跳线帽,可以不管,然后自带的串口也可以了,这样看来是WCH-LINK串口的电平有问题。 ## 1.2 rtthread master 拉取最新的rtthread master 分支 ``` git clone https://github.com/RT-Thread/rt-thread.git ``` > 如果你本地已有 rtthread仓库,git pull 最新的master即可 ## 1.3 工具准备 工欲善其事,必先利其器,git和beyondcompare 准备好,并配置git可以直接调用beyondcompare, 具体设置网上有。 其他工具, env 是必须的,vscode查看代码 。 # 2 BSP制作 ## 2.1 BSP 架构 制作之前先看下WCH已有的arm bsp 架构 ![299291dc0a6f57a61efc9d5362e62d11.png.webp](https://oss-club.rt-thread.org/uploads/20220405/299291dc0a6f57a61efc9d5362e62d11.png.webp) 对比MRS生成的rtthread demo ,发现该有文件都有,只是组织结构不同。我们需要做的事情如下: 1. 新建BSP目录 - 在`rtthread/bsp/wch` 下 copy 一份`arm`文件夹,改名为`risc-v` - 仿照arm架构,从MRS生成的rtthread demo 把相应文件放到对应的文件夹下,同时删除原arm 系列相关文件 2. 修改部分Sconscript确保能正确包含我们需要的文件,去除多余的文件 3. copy link.lds 4. 更改SConstruct 5. 先使用MRS demo的rtconfig.h 配置文件 6. 更改Kconfig 7. libcpu porting 8. 使用menuconfig生成rtconfig.h,测试 9. 提交准备:更新, 检查,文档,合并 ## 2.2 新建BSP目录 ### 2.1.1 新建git 分支 首先在最新master基础上新建一个bsp_ch32v103r-evt分支,用于追踪我们的更改 ``` git checkout -b feature/bsp_ch32v103r-evt master ``` ![image-20220404093806518.png](https://oss-club.rt-thread.org/uploads/20220405/fe02962577c08915a0bf7d2325aaad12.png.webp) ### 2.1.2 新建ch32v103r-evt BSP bsp/wch下先新建risc-v文件夹,并把同等级 bsp/wch/arm下的 下列文件和文件夹拷贝到 risc-v 文件夹下,同时重命名 ch32f203r-evt 为 ch32v103r-evt ![image-20220403211054395.png](https://oss-club.rt-thread.org/uploads/20220405/296bd206ff0c5ae1c184fef4ebd09e42.png.webp) 最终目录如下 ![image-20220403211707986.png](https://oss-club.rt-thread.org/uploads/20220405/9ffd354b3be7d8c5ea6b744c68db6c99.png) ## 2.3 从MRS Demo中更新 现需要把RT-Thread Demo里的相关文件按照已有的BSP架构复制到ch32v103r-evt 和 Libraries 目录,下面给出一个表格说明具体的copy情况: | 文件 | 来源(MRS RT-Thread Demo) | 备注 | | ------------------------------------------------------------ | -------------------------- | ------ | | ch32v103r-evt/application/main.c | User/main.c | | | ch32v103r-evt/board/board.c | rtthread/board.c | | | ch32v103r-evt/board/board.h | rtthread/board.h | | | ch32v103r-evt/board/ch32v10x_config.h | User/ch32v10x_config.h | | | ch32v103r-evt/board/ch32v10x_it.h | User/ch32v10x_it.h | | | ch32v103r-evt/board/ch32v10x_it.c | User/ch32v10x_it.c | | | ch32v103r-evt/board/debug.h | Debug/debug.h | | | ch32v103r-evt/board/debug.c | Debug/debug.c | | | ch32v103r-evt/board/linker_scripts/link.lds | .ld | 重命名 | | Libraries/ch32_drivers/drv_gpio.h | drivers/drv_gpio.c | | | Libraries/ch32_drivers/drv_gpio.c | drivers/drv_gpio.c | | | Libraries/ch32_drivers/drv_usart.h | drivers/drv_usart.h | | | Libraries/ch32_drivers/drv_usart.c | drivers/drv_usart.c | | | Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/core_riscv.c | Core/core_riscv.c | | | Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/core_riscv.h | Core/core_riscv.h | | | Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/include/ch32v10x.h | | | | Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/include/system_ch32v10x.h | User/system_ch32v10x.h | | | Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Source/system_ch32v10x.c | User/system_ch32v10x.c | | | Libraries/CH32V10x_StdPeriph_Driver/CMSIS/WCH/CH32V10x/Source/GCC/startup_ch32v10x.S | Startup/startup_ch32v10x.S | | | Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/inc | Peripheral/inc | 文件夹 | | Libraries/CH32V10x_StdPeriph_Driver/StdPeriph_Driver/src | Peripheral/src | 文件夹 | > 注意原来文件中存在的其他文件可以直接删除 ## 2.4 更改Sconscripts 更改过文件后,需要重新配置不同文件夹下的Sconsript, 才能使用Scons命令包含正确的源文件并编译,具体更改请查看提交的代码 | Sconscripts | 更改内容 | 备注 | | ---------------------------------------------- | --------- | ---- | | application/Sconscript | 无 | | | board/Sconscript | src | | | ./Sconscript | 无 | | | Libraries/ch32_drivers/Sconscript | src | | | Libraries/CH32V10x_StdPeriph_Driver/Sconscript | src, path | | ## 2.5 link.lds MRS也使用GCC 编译,所以可以直接使用其链接文件。 把MRS RT-Thread Demo 根目录下的.ld 文件copy 到 board/linker_scripts文件夹下,并重命名为link.lds ![image-20220404130929458.png](https://oss-club.rt-thread.org/uploads/20220405/6e743af7e68932bdeb5b276e0001e145.png.webp) ## 2.6 更改SConstruct 每个BSP目录下的都已一个SConstruct,起统领作用,由于更改了部分文件夹名字,该文件也需要相应修改 ![image-20220404100433295.png](https://oss-club.rt-thread.org/uploads/20220405/19b5ada54c4bd0fc097e3da73c11e80f.png) ## 2.7 更改rtconfig.py 该文件是scons 编译和GCC 相关配置, 从ARM架构变到RISC-V架构,好多编译配置都不同,现在的肯定不能再使用了。官方内核里有个gd32vf103v-eval bsp ,虽然不是一个芯片,同样的架构,具有很大的参考意义,把它拷贝到当前bsp的根目录进行替换,然后进行部分修改适配。 ### 2.7.1 rtconfig.CPU ![image-20220404101656247.png](https://oss-club.rt-thread.org/uploads/20220405/541c49d25a559a21522df1a59d97d4be.png.webp) ### 2.7.2 EXEC_PATH 先屏蔽18行左右默认 EXEC_PATH的使用,配置自己的risc-v 编译器位置。 ![image-20220404101903237.png](https://oss-club.rt-thread.org/uploads/20220405/aaebc4586672908ee668d0e0eb0d40e3.png.webp) 关于risc-v 编译器使用RT-Thread Studio 软件包里的RISC-V/ WCH 均可。 ![image-20220404131015226.png](https://oss-club.rt-thread.org/uploads/20220405/061e12c549770b47efc732f142fd7baf.png.webp) ### 2.7.3 LINK_FILE ![image-20220404102513714.png](https://oss-club.rt-thread.org/uploads/20220405/abd12a1b5a3330f4108bb55c01909c25.png.webp) ## 2.8 参考的rtconfig.h 把MRS RT-Thread Demo/ thread/rtconfig.h 拷贝到bsp根目录下,现在知道这份配置是可以的。Demo使用的是较老的v3.1.3版本, github上master刚刚升级到了v4.1.0 , 部分配置可能无效,或者默认新增一些配置,需要稍微调整。 > 最终的rtconfig.h 是由menuconfig直接生成的,当前只是先保证能跑起来,最后会参考这份配置重新生成。 ## 2.9 更改Kconfig ### 2.9.1 ./Kconfig 总的Kconfig 一般无需更改 ### 2.9.2 ch32v103r-evt/board/Kconfig 修改该Kconfig下芯片相关配置,同时删除一些为支持的外设 ![image-20220404115130339.png](https://oss-club.rt-thread.org/uploads/20220405/ec29f97c868855c211cd492d3bef9600.png.webp) > 目前只有UART1 外设 ### 2.9.3 Libraries/Kconfig rtconfig.py 配置了芯片架构;系列,只要用于选择具体内核和驱动文件编译,现在只有一个ch32v103,作用不大。 ``` config SOC_RISCV_FAMILY_CH32 bool config SOC_RISCV_SERIES_CH32V103 bool select ARCH_RISCV select SOC_RISCV_FAMILY_CH32 ``` > 在 2.9.2 中已经使能`SOC_RISCV_SERIES_CH32V103` ,所以ARCH_RISCV ,SOC_RISCV_FAMILY_CH32默认都会被选中 ## 2.10 Scons小测一下 ![image-20220404131612006.png](https://oss-club.rt-thread.org/uploads/20220405/e7a989be83400bc68576654e99b079ce.png) 忘了 libcpu的移植...... # 3 libcpu porting 以现有的gd32vf103v-eval bsp编译为基础, 对比了MRS Demo的porting. 发现大致上相同,但部分代码还是存在冲突。 手里的gd32vf103v-eval gd-link有问题, 不能烧录,改完也不能验证是否对其他bsp造成影响. 所以最后参考`nuclei`平台直接新建一个单独的ch32v1文件夹(后期考虑合并优化一下) ![image-20220404132135303.png](https://oss-club.rt-thread.org/uploads/20220405/e9b59760f55921b54d5ccf900696e5fb.png.webp) ## 3.1 ch32v1文件夹 1. 把MRS RT-Thread Demo下rtthread/libcpu/risc-v/common 所以文件copy到该目录 2. 把../nuclei/SConscript copy到该目录 ![image-20220404133319263.png](https://oss-club.rt-thread.org/uploads/20220405/07e3a1f936ddb045d3b5c63d11c84085.png) ## 3.2 risc-v/SConscript 修改rtthread/libcpu/risc-v/SConscript, 新增`ch32v1` 不编译common文件夹,编译刚刚创建的ch32v1文件夹 ![image-20220404134727063.png](https://oss-club.rt-thread.org/uploads/20220405/5759901d133c6794fa962efb4740ea92.png.webp) # 4 测试 ## 4.1 scons ![image-20220404152908610.png](https://oss-club.rt-thread.org/uploads/20220405/cc7927666ffc5510ed9bf269bdf96456.png) 非常幸运, MRS Demo 的rtconfig.h 成功通过,但是发现ch32_driver文件夹里的设备驱动未编译,查找原因: ch32_drivers/Sconscripts 里编译driver需要新增相应配置项 ![image-20220404154643004.png](https://oss-club.rt-thread.org/uploads/20220405/27816eea11bbfff0fe70a12855dac35c.png.webp) 在MRS Demo 的rtconfig.h新加 `#define SOC_RISCV_SERIES_CH32V103` `#define BSP_USING_UART`配置项,再次scons编译所有源文件 ![image-20220404155234758.png](https://oss-club.rt-thread.org/uploads/20220405/2363822ed7da7f664c4d6280e1dc5410.png) ## 4.2 board testing 打开WCH_RISC-V_Programmer下载软件,选择bsp目录下生成的`rtthread.bin` 文件,单击执行进行下载。 ![image-20220404201738121.png](https://oss-club.rt-thread.org/uploads/20220405/780550fe8588a0f55b4676f3ba0edfe8.png.webp) > WCH_RISC-V_Programmer下载软件 可以从 MRS IDE中直接导出 打开串口终端 ![image-20220404155702408.png](https://oss-club.rt-thread.org/uploads/20220405/29d1bc3d25520890322cd9ea9af42e99.png) 输出基本信息后就卡死了,MSH未运行,LED也不闪烁,感觉OS没跑起来。没办法只能用最新的kernel替换掉MRS RT-Thread里的源码,在 MRS IDE里使用WCH-link调试,发现最新源码未定义RT_USING_SMALL_MEM_AS_HEAP的情况下malloc函数为空。 在rtconfig.h 里新增 `#define RT_USING_SMALL_MEM_AS_HEAP` ,再次编译下载 : led ok ; MSH的ps等基本命令没有,感觉又是不兼容问题,等下优化再处理 ![image-20220404163834908.png](https://oss-club.rt-thread.org/uploads/20220405/ae4e174be19b8051a0e92b44aa56e37d.png) ## 4.3 menuconfig 生成 rtconfig.h 在保证基本正常运行的情况下,可以使用 menuconfig 生成 rtconfig.h并优化,调整比较繁琐,此处省略N多Compare! 最终运行结果如下 ![image-20220404162847332.png](https://oss-club.rt-thread.org/uploads/20220405/d3ffadb5fa6c079c5f3c62e29a9f4644.png) > - 上述提到的MSH 问题,在新的内核中默认配置 #define MSH_USING_BUILT_IN_COMMANDS 来开启msh 常用命令 > > - 该过程中需要修改drv_uart.c中的宏`RT_USING_UART1`为`BSP_USING_UART1` > > `RT_XXX` `BSP_XXX`是RTT 移植中最常见的问题,习惯就好! > > ![image-20220404165202138.png](https://oss-club.rt-thread.org/uploads/20220405/041a48794626c1e1bad5ad94ae94a154.png.webp) ## 4.4 packages testing 测试一下pkgs 命令是否正常 ![image-20220404220045718.png](https://oss-club.rt-thread.org/uploads/20220405/fcaa17d92ef3a21e9cba59548b2ea439.png) > 这个貌似没必要 # 5 提交准备 ## 5.1 git rebase 更新 github上rtthread master 分支更新很快,先rebase 一下保证再最新分支上提交,提前发现合并冲突 ``` LT@DESKTOP-Win10 MINGW64 /e/WorkSpaces/rt-thread (feature/bsp_ch32v103r_evt) $ git ck master Switched to branch 'master' Your branch is up to date with 'origin/master'. LT@DESKTOP-Win10 MINGW64 /e/WorkSpaces/rt-thread (master) $ git pull remote: Enumerating objects: 18, done. remote: Counting objects: 100% (16/16), done. remote: Compressing objects: 100% (14/14), done. remote: Total 18 (delta 2), reused 13 (delta 2), pack-reused 2 Unpacking objects: 100% (18/18), 32.33 KiB | 429.00 KiB/s, done. From https://github.com/RT-Thread/rt-thread a5dc6c490..039efbb07 master -> origin/master Updating a5dc6c490..039efbb07 Fast-forward bsp/stm32/libraries/HAL_Drivers/drv_usart_v2.c | 14 +- components/drivers/include/drivers/serial_v2.h | 33 +-- components/drivers/serial/serial_v2.c | 301 +++++++++++++++++++++++++ include/rtdef.h | 1 + 4 files changed, 334 insertions(+), 15 deletions(-) LT@DESKTOP-Win10 MINGW64 /e/WorkSpaces/rt-thread (master) $ git ck feature/bsp_ch32v103r_evt Switched to branch 'feature/bsp_ch32v103r_evt' LT@DESKTOP-Win10 MINGW64 /e/WorkSpaces/rt-thread (feature/bsp_ch32v103r_evt) $ git rebase master Successfully rebased and updated refs/heads/feature/bsp_ch32v103r_evt. LT@DESKTOP-Win10 MINGW64 /e/WorkSpaces/rt-thread (feature/bsp_ch32v103r_evt) $ git lg * 3a5400a2b - (HEAD -> feature/bsp_ch32v103r_evt) feat: add readme.md (5 seconds ago)
* f590b6221 - perf: use the menuconfig to generate rtconfig.h (5 seconds ago)
* 8b9d2fe75 - fix: add some neccessary macros in rtconfig.h (5 seconds ago)
* d0a5551a5 - fix: define SOC_ARM_SERIES_CH32V103 in rtconfig.h (5 seconds ago)
* 1702e144d - perf: remove board/system_ch32v10x.c (5 seconds ago)
* d8bea1932 - feat: add ch32v1 porting folder (5 seconds ago)
* 7fb0ebcad - feat: use the MRS's .ld and rena ``` ## 5.2 提交前检查 参考文档中心[BSP 提交自查](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/development-guide/bsp-selfcheck/bsp_selfcheck?id=bsp-提交自查) 检查一遍 ![image-20220404212410172.png](https://oss-club.rt-thread.org/uploads/20220405/da832019566817d6ca919d32b8cb7e08.png) ## 5.3 License 问题 仔细核对了一遍 MRS 提供的源码,确实都是 Apache license,或者直接copy RTT的。 大意了,应该提前确认的,幸好选择的是原厂Demo,不能搬运就白忙活了! ![image-20220405064703005.png](https://oss-club.rt-thread.org/uploads/20220405/8e626d7295fe4abde74703fbb49593ee.png.webp) ## 5.3 新增README.md ![image-20220404180532380.png](https://oss-club.rt-thread.org/uploads/20220405/f12ea308684858b0842b1f223e601ce0.png.webp) ## 5.4 合并提交 先提交到自己本地服务器,备份一下 ``` LT@DESKTOP-Win10 MINGW64 /e/WorkSpaces/rt-thread (feature/bsp_ch32v103r_evt) $ git remote -v gitea ssh://git@192.168.0.103:10022/Emb_RT-Thread/rt-thread.git (fetch) gitea ssh://git@192.168.0.103:10022/Emb_RT-Thread/rt-thread.git (push) github git@github.com:blta/rt-thread.git (fetch) github git@github.com:blta/rt-thread.git (push) origin https://github.com/RT-Thread/rt-thread.git (fetch) origin https://github.com/RT-Thread/rt-thread.git (push) LT@DESKTOP-Win10 MINGW64 /e/WorkSpaces/rt-thread (feature/bsp_ch32v103r_evt) $ git push gitea feature/bsp_ch32v103r_evt Enumerating objects: 4499, done. Counting objects: 100% (4024/4024), done. Delta compression using up to 8 threads Compressing objects: 100% (1465/1465), done. Writing objects: 100% (2773/2773), 3.14 MiB | 4.55 MiB/s, done. Total 2773 (delta 1853), reused 1792 (delta 1268), pack-reused 0 remote: Resolving deltas: 100% (1853/1853), completed with 432 local objects ``` 再次rebase 合并提交 ``` git rebase -i origin/master ``` ![image-20220404183239051.png](https://oss-club.rt-thread.org/uploads/20220405/217a5249704c348c15fcbad720db5e5f.png) 合并后仅剩一条用于提交的 commit ![image-20220404184504758.png](https://oss-club.rt-thread.org/uploads/20220405/a7f2300cb2f3051f3e2a451627a221dc.png.webp) ## 5.5 愉快地发起pull request 推送到自己的github上,发起pull request ``` LT@DESKTOP-Win10 MINGW64 /e/WorkSpaces/rt-thread (feature/bsp_ch32v103r_evt) $ git push github feature/bsp_ch32v103r_evt Enumerating objects: 388, done. Counting objects: 100% (388/388), done. Delta compression using up to 8 threads Compressing objects: 100% (345/345), done. Writing objects: 100% (382/382), 842.26 KiB | 1.45 MiB/s, done. Total 382 (delta 176), reused 71 (delta 27), pack-reused 0 remote: Resolving deltas: 100% (176/176), completed with 5 local objects. ``` # 总结: 第一次提交BSP,第一遍测试用了不到一天,第二遍边做边写文档用了近两天。 写文档,检查确实比较花时间(主要是纠结怎么写),也发现了第一次的一些问题,收获不少。总体来说这次比较顺利,MRS做了大部分工作,我只是搬移的角色,解决中间一些小问题。总结如下: - 先选择在该开发板上能跑起来的一个Demo, 建议先检查License,最好选MCU原厂的Demo(这个应该不存在问题) - 最好选择一个能Debug的IDE Demo,这样出了问题,单步走起,不慌 - Scons ,Kconfig 基本的架构需要了解一下 - 参考已有的BSP框架,一步一步添加源码,更改配置,同时使用一条条git记录,能保证思路清晰 - 善于利用工具辅助:git, beyondcompare, vscode 都是利器 - 提交准备要充分(不知道这个提交要被打回来几次) 希望对于打算做BSP的小伙伴有些参考意义 **另外 ,** RT-Stuido 对应的ch32v103r_evt软件包也做好了,但要等BSP提交合并了,才能放出来(需要rtthread latest分支里libcpu risc-v部分的支持)。提交BSP package的同时,也会写一篇文章介绍怎么做 RT-Stuido BSP package。 ![image-20220405075521234.png](https://oss-club.rt-thread.org/uploads/20220405/ef1f1d2b195e80726c1a3b3b37fa218b.png.webp)
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
blta
这家伙很懒,什么也没写!
文章
12
回答
9
被采纳
2
关注TA
发私信
相关文章
1
生成STM32F103 dist文件夹之后,如何移植在F407的程序上?
2
stm32芯片缺货涨价,是时候支持国产一波了
3
BSP工程添加片上flash问题
4
请教一下RTT官网下的F407ZGT6的BSP可以适用所有的F4芯片吗?
5
针对Nano的BSP提交标准
6
华大单片机HC32L13X系列,M0内核,怎么制作BSP?
7
移植bsp,在env上scons后,报.s启动文件有error是怎么回事?
8
关于官方的stm32L475VETx的SDK包编译下载不能使用的问题
9
bsp中rtconfig.h文件选错了芯片型号会带来什么影响呢?
10
求助5340芯片移植时在rtthread_startup出现hardfault?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部