IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> RT-Thread BSP制作 -> 正文阅读

[嵌入式]RT-Thread BSP制作

前记:

????RT-Thread ---- 工程笔记系列https://blog.csdn.net/yanwennian/article/details/124518569?spm=1001.2014.3001.5501


?环境:

1.MCU:STM32F103VCT6
2.RTOS Version:V4.1.0


目录

1. 准备工作

1.1 下载RT-Thread 4.10源码.

1.2 下载并配置ENV工具.

1.3 下载并安装CubeMX工具.

2. 复制通用模板

2.1 从源码打开 STM32F10x BSP 通用模板路径.

2.2 复制 STM32F10x 模板文件夹 到 STM32 的BSP目录。

??2.3 修改为自己的项目名称。

3. 使用 CubeMX 工具配置工程

3.1 ?打开CubeMX配置文件.

3.2 选择使用RT-Thread源码配置的版本.?

3.3 CubeMX自动加载到选定的版本配置.

3.4 在 CubeMX 工程中将芯片型号为 STM32F103RCTx?

3.5 保存CubeMX工程.

3.6 配置下载方式.?

3.7 配置时钟源.?

3.8 配置串口外设.?

3.9 配置时钟树.?

3.10 设置Cube MX工程名和保存路径.?

3.11 生成CubeMX工程文档.?

3.12 拷贝系统时钟配置初始化函数.

3.13 在 RT-Thread源码模板的board.h 文件中配置 FLASH 和 RAM 的相关参数.

3.14 堆内存配置预习.

4. 修改 BSP 中的 Kconfig 文件

4.1 Kconfig文件路径.?

4.2 芯片型号和系列修改.

4.3 BSP 上的外设支持选项添加.?

5. 修改构建工程相关文件

5.1 修改链接脚本.

5.2 MDK 使用的链接脚本 link.sct修改.?

5.3 iar 使用的链接脚本 link.icf修改.?

5.4 gcc 编译器使用的链接脚本 link.lds修改.?

5.5 修改构建脚本

5.6 修改工程模板.

6. 重新生成工程

6.1 在项目工程根目录,打开ENV工具.

6.2 在 Env 界面输入命令 menuconfig对工程进行配置.?

6.3 生成 MDK5 工程.

7. BSP功能验证.

7.1 打开MDK 5 工程.?

7.2 编译MDK 5工程.?

7.3 烧录Hex文件.

7.4 结果验证.

8. 制作完成的BSP工程源文件.


严文年 -- 记于苏州


1. 准备工作

1.1 下载RT-Thread 4.10源码.

参考:通过git / SVN 管理源代码的相关章节.

1.2 下载并配置ENV工具.

参考:ENV配置及使用的相关章节.

1.3 下载并安装CubeMX工具.

参考:CubeMX下载及安装的相关章节.

2. 复制通用模板

2.1 从源码打开 STM32F10x BSP 通用模板路径.

2.2 复制 STM32F10x 模板文件夹 到 STM32 的BSP目录。

?2.3 修改为自己的项目名称。

3. 使用 CubeMX 工具配置工程

3.1 ?打开CubeMX配置文件.

3.2 选择使用RT-Thread源码配置的版本.

3.3 CubeMX自动加载到选定的版本配置.

备注:

1.此过程需要访问CubeMX服务器,电脑要连接互联网.

2.需要检查防火墙是否拦截CubeMX的自动更新进程。

??

3.4 在 CubeMX 工程中将芯片型号为 STM32F103RCTx

3.5 保存CubeMX工程.

?

3.6 配置下载方式.

3.7 配置时钟源.

3.8 配置串口外设.

3.9 配置时钟树.

3.10 设置Cube MX工程名和保存路径.

3.11 生成CubeMX工程文档.

3.12 拷贝系统时钟配置初始化函数.

备注:

1.RT-Thread默认使用MCU内部时钟.

1.在RT-Thread源码 board.c 文件中存放了函数 SystemClock_Config() ,该函数负责初始化系统时钟。当使用 CubeMX 工具对系统时钟重新配置的时候,需要更新这个函数。

2.该函数由 CubeMX 工具根据实际配置重新生成,默认存放在../board/CubeMX_Config/Src/main.c 文件中。但是该文件并没有被包含到我们的工程中,因此需要将这个函数从 main.c 中拷贝该函数到 board.c 文件中,替代源码中默认的内部时钟配置函数。

??

3.13 在 RT-Thread源码模板的board.h 文件中配置 FLASH 和 RAM 的相关参数.

1.这个文件中需要修改的是 STM32_FLASH_SIZE 和 STM32_SRAM_SIZE 这两个宏控制的参数。本次制作的 BSP 所用的 STM32F103RCTx 芯片的 flash 大小为 256k,ram 的大小为 48k,因此对该文件作出如下的修改:

备注:

部分MCU的FLASH和RAM空间是不连续的,修改时参考Keil配置界面的空间分段信息设置。

3.14 堆内存配置预习.

1. 通常情况下,系统 RAM 中的一部分内存空间会被用作堆内存。下面代码的作用是,在不同编译器下规定堆内存的起始地址 HEAP_BEGIN 和结束地址 HEAP_END。这里 HEAP_BEGIN 和 HEAP_END 的值需要和后面 [第5章节修改链接脚本] 章节所修改的配置相一致。

2.在某些系列的芯片中,芯片 RAM 可能分布在不连续的多块内存区域上。此时堆内存的位置可以和系统内存在同一片连续的内存区域,也可以存放在一片独立的内存区域中。例如在 L4 系列的芯片上,就可以将堆内存配置在起始地址为 0x20000000 的大小为 96k 的内存空间,而将 0x10000000 开始的 32k 内存空间用作系统运行内存。

4. 修改 BSP 中的 Kconfig 文件

4.1 Kconfig文件路径.

4.2 芯片型号和系列修改.

1. 芯片型号和系列修改规则.

4.3 BSP 上的外设支持选项添加.

5. 修改构建工程相关文件

5.1 修改链接脚本.

1. 脚本文件路径.

备注:

部分MCU的FLASH和RAM空间是不连续的,修改时参考Keil配置界面的空间分段信息设置。

5.2 MDK 使用的链接脚本 link.sct修改.

5.3 iar 使用的链接脚本 link.icf修改.

5.4 gcc 编译器使用的链接脚本 link.lds修改.

5.5 修改构建脚本

1. SConscript 脚本决定 MDK/IAR 工程的生成以及编译过程中要添加文件。在这一步中需要修改芯片型号以及芯片启动文件的地址.

2. 在CubeMX生成的工程文件中查询启动文件名称.

3. 在启动文件中查询MCU目标芯片型号的宏定义,HAL库将使用这个宏定义做判断.

4. 修改构建脚本中的启动文件和目标芯片型号宏定义.

5.6 修改工程模板.

1. 工程模板路径.

2.打开并配置工程模板的目标芯片.

3.配置工程模板的输出文件信息.

4.配置工程模板的debug配置.

6. 重新生成工程

备注

重新生成工程需要使用 Env 工具。

6.1 在项目工程根目录,打开ENV工具.

1. 在项目工程根目录,打开ENV工具.

6.2 在 Env 界面输入命令 menuconfig对工程进行配置.

?

??

6.3 生成 MDK5 工程.

1.输入命令 scons --target=mdk5 -s 重新生成 MDK5 的工程.

2.重新生成工程成功.

7. BSP功能验证.

7.1 打开MDK 5 工程.

7.2 编译MDK 5工程.

7.3 烧录Hex文件.

备注:

也可以选择自己常用的烧录工具.或者使用debug工具直接烧录.

7.4 结果验证.

8. 制作完成的BSP工程源文件.


后记:

????RT-Thread ---- 工程笔记系列https://blog.csdn.net/yanwennian/article/details/124518569?spm=1001.2014.3001.5501

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:35:52  更:2022-05-05 11:38:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:44:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码