| |
|
开发:
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制作 |
前记: ?环境: 1.MCU:STM32F103VCT6 目录 2.1 从源码打开 STM32F10x BSP 通用模板路径. 2.2 复制 STM32F10x 模板文件夹 到 STM32 的BSP目录。 3.4 在 CubeMX 工程中将芯片型号为 STM32F103RCTx? 3.13 在 RT-Thread源码模板的board.h 文件中配置 FLASH 和 RAM 的相关参数. 5.4 gcc 编译器使用的链接脚本 link.lds修改.? 严文年 -- 记于苏州 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 工程中将芯片型号为 STM32F103RCTx3.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工程源文件.后记: |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |