Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread
USB
移植问题
RT-Thread USB学习笔记 - RTT最小系统移植
发布于 2020-12-12 12:56:59 浏览:2276
订阅该版
[tocm] [RT-Thread 入门学习笔记 - 目录](https://club.rt-thread.org/ask/article/3420.html) [RT-Thread USB学习笔记 - 硬件篇](https://club.rt-thread.org/ask/article/2396.html) [RT-Thread USB学习笔记 - RTT最小系统移植](https://club.rt-thread.org/ask/article/2398.html) [RT-Thread 基础通信应用笔记系列](https://club.rt-thread.org/ask/article/2329.html) ## 背景 * RT-Thread 的使用不久,加深下RT-Thread开发经验。 * 打算研究一下基于RT-Thread的应用开发,如USB设备的开发 * 基础硬件已经搭建完成,裸机代码初步调通。 * 把RT-Thread 移植到STM32F103RBT6上。 ## 最小系统 * 很多用户喜欢Nano版本的RT-Thread,然后移植finsh(我一般称为MSH shell CMD等!!),遇到问题,然后求助 * 纯研究技术,就像学校里学习,没有诱惑或是内驱,无法真正掌握技术的核心。 * 技术,要学以致用,深入研究。 * 技术有高端、低端之分?对个人来讲,你没有掌握的,就是高端,掌握了精通的东西,就是低端。 * 因为STM32F103RB 的Flash与RAM还是较大的,因此,直接使用RT-Thread完整的工程代码移植。 * 万事开头难,所以,先搭建起最小系统环境,再不断添枝加叶,不断去完善。 ## 前期准备 * 初步看下官方的文档,RT-Thread官方的文档比较正式、全面系统。 * 或许刚接触RT-Thread的人,被海量的文章吓到了。其实,总要有个初步的了解。 * RTOS只是工具,不是目的,目的是快速开发、敏捷开发,实现应用需求。 * 为什么不用vxworks、Linux,直接使用USB(主从机都有,很成熟!)。都用现成的,老板还要用我们工程师做甚? * 下载RT-Thread 官方的源码 ``` //码云,速度较快 https://gitee.com/rtthread/rt-thread.git //github,速度较慢!! https://github.com/RT-Thread/rt-thread.git ``` * 下载RT-Thread ENV工具,用于scons 构建工程,menuconfig图形菜单配置(类似linux下的menuconfig),用起来很高效。 ``` // ENV 等工具的下载 https://www.rt-thread.org/page/download.html ``` * 这里使用Keil MDK5开发,当然也可以使用:RT-Thread Studio * 建议下载 STM32CubeMX,目的可以图形化的配置STM32基础时钟、引脚等,快速生成裸机BSP工程,可以到ST官网下载最新的版本。 * USB 线,主要用于供电、USB转串口、USB协议调试等。 * J-Link or ST-Link等,用于STM32 调试、下载。 ## 前期准备 * 熟悉rt-thread 源码的文件目录结构 ![2020-12-12_121320.png](/uploads/20201212/2d84fbbdcf0335d30c7358dedb08d52b.png) * rt-thread 源码,很大,内核与组件并不大,大在了BSP(板级支持包)。 * 就像linux前期说的,内核维护,大部分时间用于BSP包的维护了。 * 所以建议移植时进行裁剪,重构部分目录。 ![2020-12-12_121925.png](/uploads/20201212/abd211414abb5d3ed61da9a235e5cacc.png) ![2020-12-12_123006.png](/uploads/20201212/b630d17d2948237843a6dc397078e445.png) ![2020-12-12_123038.png](/uploads/20201212/333ef1bcba16ba8bf901ccf7a5192fb0.png) * 找到STM32F103RBT6 类似的BSP,然后复制、粘贴、修改MCU型号。 ![2020-12-12_123206.png](/uploads/20201212/5eb72f50087257eaa445ac538f8f1909.png) ![2020-12-12_123433.png](/uploads/20201212/277b0b4b8d94c4f6f117a9097a246372.png) ![2020-12-12_123601.png](/uploads/20201212/77b4f0fd367e4f1f29f6a1f2d64d2902.png) * 修改RT-Thread构建路径,重新构建工程的【目录结构】 ![2020-12-12_123647.png](/uploads/20201212/226f0c212dc8ec11825a6be5f2a77cd5.png) ![2020-12-12_123735.png](/uploads/20201212/557851475f8ea07fc686e52c0a03d5e6.png) ![2020-12-12_123854.png](/uploads/20201212/423d7d9a8f90db15aa54a2964a81b57a.png) ![2020-12-12_123937.png](/uploads/20201212/b72ce17fbd57d2da47cb0d3f5c7dab35.png) ![2020-12-12_124224.png](/uploads/20201212/789beaef56606c7bbe5729cf6b315af6.png) ![2020-12-12_124329.png](/uploads/20201212/967aebdd8da6b26060df04ac10a2799c.png) ![2020-12-12_124857.png](/uploads/20201212/b1fe0cdba07d7658a412c5cd8405a7ee.png) * 编译、下载并运行 ![2020-12-12_125014.png](/uploads/20201212/98c6bb8ef9067ac144a30e0f08703cf3.png) * 把 `template.uvprojx` 删除,替换为目前的 `project.uvprojx`,或者修改 `template.uvprojx` 并保存,否则下次scons后,MCU型号等设置【被恢复】了 * 简单的最小系统,很快搭建完成。 ## 总结 * 使用大众MCU型号,如STM32,移植RT-Thread会比较容易。 * 有了MSH 串口(shell),后面开发起来会非常的高效。 * 后面需要开始驱动、设备框架的熟悉 * 可以编写或修改工程的Kconfig,利用RT-Thread ENV工具的`menuconfig`图形配置方法,管理整个工程的【宏定义】 * 利用RT-Thread ENV 的 `scons`,灵活的定制工程的编译、构建等。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
张世争
学以致用
文章
131
回答
804
被采纳
173
关注TA
发私信
相关文章
1
请教USB Host
2
STM32F4调试USB 读卡器(Slave)提示格式化
3
急求 STM32F4 USB Device MSC+SD 的相关问题
4
USB 框架问题
5
USB键盘
6
LPC17xx 如何添加USB HOST设备
7
RT-Thread目前支持USB HOST了吗?
8
USB HOST的支持问题
9
RTT 2.0.1 USB存储设备问题,枚举到USBREQ_GET_MAX_LUN后复位
10
USB库已经很久没更新了
推荐文章
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
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
踩姑娘的小蘑菇
7
个答案
3
次被采纳
a1012112796
20
个答案
2
次被采纳
张世争
11
个答案
2
次被采纳
rv666
9
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
6
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部