RT-Thread USB学习笔记 - 硬件篇
RT-Thread USB学习笔记 - RTT最小系统移植
RT-Thread 应用笔记 基础通信系列
背景
- 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基础时钟、引脚等,可以到ST官网下载最新的版本。
- USB 线,主要用于供电、USB转串口、USB协议调试等。
- J-Link or ST-Link等,用于STM32 调试、下载。
开始移植
- 熟悉rt-thread 源码的文件目录结构
- rt-thread 源码,很大,内核与组件并不大,大在了BSP(板级支持包)。就像linux前期说的,内核维护,大部分时间用于BSP包的维护了。所以,建议移植时,裁剪,重构目录。
- 找到STM32F103RBT6 类似的BSP,然后复制、粘贴、修改MCU型号。
- menuconfig配置
- 修改rt-thread构建路径,注意rt-thread目录的变更
- 编译、下载,运行
以上,rt-thread最小系统已经跑起来了
* 把 template.uvprojx 删除,替换为目前的 project.uvprojx。否则下次scons后,MCU型号变了!
* 最小系统,搭建完成。
总结
- 使用大众MCU型号,如STM32,移植RT-Thread,比较容易。
- 有了MSH 串口(shell),后面开发起来会非常的高效。
- 后面需要开始驱动、设备框架的熟悉
- 可以编写或修改Kconfig(menuconfig),类似于【宏定义】的可视化配置,用于定制驱动、用户的应用。