尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

RT-Thread STM32G030-Tiny-Board BSP 开发指南:从快速上手到外设扩展

RT-Thread STM32G030-Tiny-Board BSP 开发指南:从快速上手到外设扩展 操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载导读本文基于 RT-Thread 仓库中bsp/stm32/stm32g030-tiny-board板级支持包BSP编写面向希望将 RT-Thread 5.2.0 运行到 STM32G030C8T6 这颗 Arm Cortex-M0 内核 MCU 上的开发者。文章以官方 BSP 说明文档为主线结合 BSP 目录下的源码、Kconfig 配置与构建脚本完整覆盖开发板资源、外设支持现状、MDK5 快速上手指引、ENV 进阶配置流程、串口映射注意事项并补充了 LED 点灯程序与时钟初始化等底层实现细节帮助读者一步到位地把系统跑起来并逐步点亮更多板载外设。开发板与 BSP 简介stm32g030-tiny-board是 hywing 为 STM32g030-tiny-board 开发板提供的 RT-Thread BSP板级支持包。该开发板基于STM32G030C8T6芯片属于 Arm Cortex-M0 内核最高主频 64MHz片上资源为64KB FLASH、8KB SRAM同时提供标准 JTAG/SWD 调试接口板载资源精简但足以充分发挥芯片性能。开发板外观如下图所示围绕该芯片的内存布局board/board.h 中定义了与硬件强相关的地址参数FLASH 起始地址0x08000000、容量64 * 1024字节内部 SRAM 容量定义为 8KB堆区HEAP以__bss_end为起点、以STM32_SRAM_END0x20000000 8 * 1024为终点RT-Thread 的动态内存分配即在此区间内工作。外设支持情况BSP 当前对外设的支持情况如下表所示板载外设支持情况备注USB 转串口支持片上外设支持情况备注GPIO支持UART支持UART1从 BSP 的默认配置 rtconfig.h 可以看到硬件驱动层面默认开启了BSP_USING_GPIO依赖 RT-Thread 的RT_USING_PIN设备框架与BSP_USING_UART/BSP_USING_UART1依赖RT_USING_SERIAL并且系统控制台设备被指定为uart1RT_CONSOLE_DEVICE_NAME uart1。也就是说上电后默认就能通过串口 1 看到 RT-Thread 的 MSH 命令行交互。默认开启的功能相对精简若要使用 ADC、I2C、SPI、PWM 等其他片上外设需要按下文「进阶使用」章节通过 ENV 工具进行配置。使用说明使用说明分为「快速上手」与「进阶使用」两个章节前者面向刚接触 RT-Thread 的新手遵循简单步骤即可将 RT-Thread 运行起来并看到实验效果后者面向需要驱动更多板载资源的开发者通过 ENV 工具对 BSP 进行配置开启更多高级功能。快速上手本 BSP 为开发者提供了 MDK5 工程并支持 GCC 开发环境。下面以 MDK5 开发环境为例介绍如何将系统运行起来。请注意在执行编译工作前请先打开 ENV 执行以下指令该指令用于拉取必要的 HAL 库及 CMSIS 库否则无法通过编译pkgs --update这一步与 BSP 的构建机制直接相关查看 BSP 根目录的 SConscript 可以发现编译时会向工程注入STM32G030xx宏定义而 STM32G0 的 HAL 驱动与 CMSIS 头文件并不随 BSP 源码直接分发而是以软件包package的形式管理——默认配置中启用了PKG_USING_STM32G0_HAL_DRIVER、PKG_USING_STM32G0_CMSIS_DRIVER与PKG_USING_CMSIS_CORE见 rtconfig.h。因此首次构建前必须先运行pkgs --update把依赖包拉取到packages目录否则头文件缺失会导致编译失败。硬件连接使用数据线连接开发板到 PC打开电源开关。编译下载双击project.uvprojx文件打开 MDK5 工程编译并下载程序到开发板。工程默认配置使用 ST_LINK 仿真器下载程序在通过 ST_LINK 连接开发板的基础上点击下载按钮即可下载程序到开发板。工程文件project.uvprojx由 ENV/SCons 生成因此如果在进阶使用中修改了配置需要通过scons --targetmdk5重新生成工程后再编译下载。运行结果下载程序成功之后系统会自动运行LED 循环点亮。连接开发板对应串口到 PC在终端工具里打开相应的串口115200-8-1-N即波特率 115200、8 位数据位、1 位停止位、无校验复位设备后可以看到 RT-Thread 的输出信息\ | / - RT - Thread Operating System / | \ 5.2.0 build Dec 2 2024 11:35:30 2006 - 2024 Copyright by RT-Thread team msh 当msh 提示符出现时说明 RT-Thread 内核、finsh/MSH 组件已正常运行可以在命令行中直接输入 RT-Thread 命令进行交互。注意输出中的版本号5.2.0与 rtconfig.h 中RT_VER_NUM 0x50300对应代表内核版本 5.3.0 之前的 5.2.x 分支。LED 循环点亮的实现位于 applications/main.cmain函数把PB4引脚GET_PIN(B, 4)配置为输出模式随后进入while(1)循环以rt_pin_write输出高低电平并配合rt_thread_mdelay(500)实现 500ms 间隔的闪烁同时通过rt_kprintf打印提示信息——这是理解 RT-Thread 引脚 APIrt_pin_mode/rt_pin_write最直观的入门示例。进阶使用此 BSP 默认只开启了 GPIO 和串口 1 的功能如果需使用更多高级功能需要利用 ENV 工具对 BSP 进行配置步骤如下在 bsp 下打开 env 工具。输入menuconfig命令配置工程配置好之后保存退出。输入pkgs --update命令更新软件包。输入scons --targetmdk5命令重新生成工程。完成上述四步后即可在 MDK5 中重新编译下载将新配置的外设驱动加入固件。menuconfig 中的可配置项在menuconfig界面中外设开关集中在Hardware Drivers Config → On-chip Peripheral Drivers菜单下其选项定义见 board/Kconfig。以默认开启的 GPIO 与 UART1 为例主要可配置项包括配置项默认值说明BSP_USING_GPIOy使能 GPIO选中后自动依赖RT_USING_PIN引脚设备框架BSP_USING_UART/BSP_USING_UART1y使能 UART1自动依赖RT_USING_SERIAL串口设备框架BSP_STM32_UART_V1_TX_TIMEOUT2000UART1串口驱动 v1发送超时单位 msBSP_UART1_RX_USING_DMAnUART1 接收 DMA需开启RT_SERIAL_USING_DMABSP_UART1_TX_USING_DMAnUART1 发送 DMA需开启RT_SERIAL_USING_DMABSP_UART1_RX_BUFSIZE256UART1 接收缓冲区大小范围 64~65535串口驱动 v2BSP_UART1_TX_BUFSIZE0UART1 发送缓冲区大小范围 0~65535串口驱动 v2BSP_UART1_DMA_PING_BUFSIZE64UART1 接收 DMA ping-pong 缓冲区大小范围 32~65535从默认配置 rtconfig.h 可以看到当前 BSP 采用串口驱动 v1RT_USING_SERIAL_V1并已打开RT_SERIAL_USING_DMA使能位因此 RX/TX DMA 两个选项在 Kconfig 中处于可选状态若切换为 v2 驱动则可进一步通过RX_BUFSIZE、TX_BUFSIZE等参数调整缓冲策略。底层外设驱动统一由source $(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig引入即 bsp/stm32/libraries/HAL_Drivers 下的公共驱动实现。本章节更多详细的介绍请参考 STM32 系列 BSP 外设驱动使用教程。注意事项调试串口为串口 1引脚映射说明PB6 ------ USART1_TX PB7 ------ USART1_RX即 USART1 的发送引脚为 PB6、接收引脚为 PB7串口线连接时需按此对应关系接线。控制台与 MSH 均复用该串口因此在进阶配置中若要更换调试串口或重映射引脚需要同步修改 board/CubeMX_Config 中的引脚配置与rtconfig.h中的RT_CONSOLE_DEVICE_NAME。板级初始化与系统时钟配置位于 board/board.cSystemClock_Config使用内部高速时钟HSIRCC_OSCILLATORTYPE_HSI作为系统时钟源未使能 PLLAHB/APB1 均不分频FLASH 等待周期为 0——这是默认功耗与性能均衡的时钟方案如需更高主频可在该函数中调整 PLL 配置。联系人信息维护人hywing赞分享操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载相关推荐RT-Thread 在 STM32F401 WeAct BlackPill 上的 BSP 开发指南从快速上手到外设驱动深度扩展RT Thread 在 STM32F401 WeAct BlackPill 上的 BSP 开发指南从快速上手到外设驱动深度扩展 本篇指南围绕 RT Threa操作系统嵌入式物联网嵌入式OSRTOSQMK Firmware 2020 年 11 月 28 日 Breaking Change 发布说明键盘迁移、核心新特性与构建流程解读QMK Firmware 2020 年 11 月 28 日 Breaking Change 发布说明键盘迁移、核心新特性与构建流程解读 QMK Firmwar操作系统嵌入式物联网嵌入式OSRTOSWasp 页面与路由Pages Routes入门用 route 与 page 声明构建 React 应用导航Wasp 页面与路由Pages Routes入门用 route 与 page 声明构建 React 应用导航 在 Wasp 中页面与路由的声明式配置操作系统嵌入式物联网嵌入式OSRTOS上一篇tfenv 使用教程下一篇Lobsterpicker 使用教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表