操作系统嵌入式物联网嵌入式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/gd32/risc-v/gd32vf103r-start 的 README 为主体系统讲解基于 RISC-V 内核Bumblebee 核的 GD32VF103R-START 评估板 BSP 的板载资源、外设支持、编译下载与 ENV 进阶配置流程。读完本文你将掌握从零把 RT-Thread 4.1.1 跑上 GD32VF103RB 芯片、通过 GD-Link 烧录、用 msh 控制台交互以及通过 menuconfig 按需裁剪片上外设UART/SPI/ADC/定时器/RTC 等的完整实战能力。开发板与 BSP 简介GD32VF103R-START 是兆易创新GigaDevice推出的 GD32VF1 系列 RISC-V 评估板板载主控为GD32VF103RB最高主频108MHz片上集成128KB Flash 与 32KB RAM。该 BSP 位于仓库 bsp/gd32/risc-v/gd32vf103r-start 目录是 RT-Thread 对 GD32VF103 RISC-V 平台的标准板级支持包内核版本为 RT-Thread 4.1.1对应 rtconfig.h 中的RT_VER_NUM 0x50300构建日期示例为 2022 年 6 月。开发板外观如下图所示常用板载资源根据 README.md 的说明该开发板常用板载资源如下主控芯片GD32VF103RB主频 108MHz128KB FLASH32KB RAMLED4 个分别挂接在LED1PA7、LED2PA8、LED3PA10、LED4PC13按键2 个K1为复位引脚K2为用户按键PA0常用接口USB 接口调试接口GD-Link板载调试器支持烧录与在线调试其中 LED1 的 PA7 引脚在示例工程 applications/main.c 中被定义为GET_PIN(A, 7)作为默认点灯实验的硬件依据。外设支持情况本 BSP 当前对外设的支持情况如下表所示摘自 README.md片上外设支持情况备注GPIO支持PA0, PA1... --- PIN: 0, 1...50UART支持UART0 - UART4I2C支持I2C1SPI支持SPI0 - SPI2ADC支持ADC0 - ADC1扩展模块支持情况备注暂无暂不支持暂不支持说明GPIO 的 PIN 编号映射遵循 RT-Thread 的引脚管理框架PA0 对应 PIN 0依次类推上表所列为 BSP 驱动层已实现的能力范围具体启用与否需通过 ENV 配置见下文进阶使用。从 board/Kconfig 的配置结构可以印证BSP 在On-chip Peripheral Drivers菜单下已内置 GPIO、UARTUART0~UART4含 RX DMA 开关、SPI1含 TX/RX DMA、软件 I2C1swi2c1、ADCADC0/ADC1、定时器TIM10/11/12、片上 RTC支持 LSE/LSI 时钟源选择与看门狗 WDT 等选项为 README 中支持的声明提供了配置级支撑。快速上手快速上手面向刚接触 RT-Thread 的新手遵循下面简单的步骤即可将 RT-Thread 操作系统运行在 GD32VF103R-START 开发板上看到 LED 闪烁的实验效果。本 BSP 默认提供GCC 工程工具链为riscv-none-embed-gcc见 rtconfig.py。硬件连接使用数据线连接开发板到 PCGD-Link 接口同时为开发板供电使用 USB 转 TTL 串口模块连接USART1打开电源开关。这里需要注意BSP 默认把控制台FinSH/msh输出绑定到uart1rtconfig.h 中的RT_CONSOLE_DEVICE_NAME uart1即是这一配置的直接体现因此串口连接必须接在 USART1 上才能看到系统输出。编译下载在 BSP 工程目录即bsp/gd32/risc-v/gd32vf103r-start下执行sconsscons会根据 rtconfig.py 中定义的编译参数自动完成源码扫描、依赖生成与链接。该脚本的关键构建信息包括架构/内核ARCH risc-vCPU bumblebeeGD32VF103 的 RISC-V 内核为平头哥 Bumblebee 核编译选项-marchrv32imac -mabiilp32并定义USE_PLIC、USE_M_TIME、NO_INIT等宏链接脚本libraries/GD32VF103_Firmware_Library/RISCV/env_Eclipse/GD32VF103xB.lds链接器包装-Wl,-wrapmemset与 board/board.c 中__wrap_memset的实现相对应后处理自动通过objcopy生成rtthread.bin镜像并输出size报告。编译成功后使用GD-Link将生成的rtthread.bin或 ELF下载到开发板即可。运行结果下载程序成功之后系统会自动运行表现为LED 闪烁。默认示例 applications/main.c 的逻辑为将 LED1PA7配置为输出模式后循环执行rt_pin_write置高/置低每 500ms 翻转一次电平即经典的 GPIO 点灯流程。接着在 PC 终端工具中打开对应串口串口参数为115200-8-1-N波特率 115200、8 数据位、1 停止位、无校验复位开发板后可以看到 RT-Thread 的启动输出信息\ | / - RT - Thread Operating System / | \ 4.1.1 build Jun 8 2022 00:49:01 2006 - 2022 Copyright by RT-Thread team msh 出现msh 提示符即表示 RT-Thread 已正常运行FinSH 控制台msh 模式就绪可以输入help、version等内置命令进行交互。进阶使用进阶使用面向需要在 RT-Thread 上使用更多开发板资源的开发者。通过 ENV 工具对 BSP 进行配置可以开启更多板载资源实现更多高级功能。此 BSP默认只开启了 GPIO 和串口 1 的功能对应 rtconfig.h 中的BSP_USING_GPIO、BSP_USING_UART、BSP_USING_UART1如需使用高级功能按如下步骤操作在 BSP 目录bsp/gd32/risc-v/gd32vf103r-start下打开 ENV 工具输入menuconfig命令配置工程配置好之后保存退出输入pkgs --update命令更新软件包如需要拉取在线软件包输入scons命令重新编译工程。menuconfig的配置入口由 Kconfig 定义它依次引用了 RT-Thread 根目录Kconfig内核与组件配置、board/Kconfig硬件驱动配置以及../libraries/KconfigGD32 驱动库配置形成完整的图形化配置界面。常用外设配置项详解以 board/Kconfig 为例进阶配置时最常涉及的选项包括配置项含义默认值BSP_USING_GPIO使能 GPIO自动选中RT_USING_PINyBSP_USING_UART使能 UART 总线自动选中RT_USING_SERIALyBSP_USING_UART0使能 UART0nBSP_USING_UART1使能 UART1控制台默认串口yBSP_UARTx_RX_USING_DMA使能对应串口的 RX DMA 接收选中RT_SERIAL_USING_DMAnBSP_USING_SPI使能 SPI 总线选中RT_USING_SPInBSP_USING_SPI1使能 SPI1 总线nBSP_SPI1_TX/RX_USING_DMASPI1 发送/接收 DMAnBSP_USING_SOFT_I2C1使能软件 I2C1swi2c1可配置 SCL/SDA 引脚号默认 24/25nBSP_USING_ADC0/ADC1使能 ADC0 / ADC1nBSP_USING_TIM10/11/12使能定时器 TIM10/TIM11/TIM12选中RT_USING_CLOCK_TIMEnBSP_USING_ONCHIP_RTC使能片上 RTC选中RT_USING_RTC可选择 LSE/LSI 时钟源nBSP_USING_WDT使能看门狗选中RT_USING_WDTn配置技巧UART0~UART4 与 SPI1 均提供了独立的 DMA 开关当需要高速、低 CPU 占用收发数据时可打开对应串口/SPI 的 DMA 选项软件 I2C1 的 SCL/SDA 引脚号通过RT_SOFT_I2C1_SCL_PIN/RT_SOFT_I2C1_SDA_PIN整型选项配置默认 24/25即 PB8/PB9 附近方便灵活挂接外部 I2C 器件。配置并重新编译后对应驱动的初始化代码会自动纳入构建。以串口驱动为例libraries/gd32_drivers/drv_usart.c 中注册了uart1等设备的引脚复用表与驱动入口rt_hw_usart_init()并在 board/board.c 的rt_hw_board_init()中被调用——这也解释了为什么默认工程只需打开 UART1 就能立即获得 msh 控制台。系统启动与板级初始化源码透视为了更好地理解为什么编译下载后系统就能跑起来可以结合板级初始化源码 board/board.c 梳理启动链路系统时钟节拍systick_config(TIMER_FREQ / RT_TICK_PER_SECOND)使用 RISC-V 平台定时器TIMER_MTIMECMP/TIMER_MTIME地址基址TIMER_CTRL_ADDR配置节拍中断并通过eclic_irq_enable(CLIC_INT_TMR, 0, 0)使能 CLIC 中断节拍中断服务eclic_mtip_handler()中清定时器计数后依次调用rt_interrupt_enter()、rt_tick_increase()、rt_interrupt_leave()驱动 RT-Thread 内核时钟节拍默认RT_TICK_PER_SECOND为 100即每 10ms 一个 tick见 rtconfig.h串口与控制台rt_hw_usart_init()完成 uart1 驱动注册rt_console_set_device(RT_CONSOLE_DEVICE_NAME)将 msh 输出绑定到 uart1组件自动初始化rt_components_board_init()触发板级组件初始化堆内存初始化rt_system_heap_init(HEAP_BEGIN, HEAP_END)使用链接脚本导出的_end/_heap_end符号建立系统堆对应 board/board.h 中的HEAP_BEGIN/HEAP_END宏。这一流程与 README下载程序成功之后系统会自动运行的描述完全吻合板级初始化完成 → 内核启动 → 用户main线程运行 LED 闪烁 → 串口输出启动 Banner 并进入msh 提示符。注意事项与维护信息本 BSP 默认仅提供 GCC 构建工程工具链路径在 rtconfig.py 中配置为riscv-none-embed-gcc的 bin 目录也支持通过环境变量RTT_EXEC_PATH覆盖如D:/gcc/xpack-riscv-none-embed-gcc-10.2.0-1.2/binREADME 中的注意事项章节目前标注为暂无该 BSP 的维护人为 BruceOu具体联系方式见 README.md 底部如有移植或使用问题可联系维护人反馈。相关参考文件BSP README本文主体板级初始化源码 与 板级头文件默认点灯示例默认内核与驱动配置硬件驱动配置菜单构建脚本与工具链配置GD32 驱动库含 UART/GPIO 等驱动实现赞分享操作系统嵌入式物联网嵌入式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 在 AT32F403A AT-START 开发板上的 BSP 移植与快速上手指南RT Thread 在 AT32F403A AT START 开发板上的 BSP 移植与快速上手指南 AT32F403A AT START 是雅特力Arter操作系统嵌入式物联网嵌入式OSRTOSRT-Thread 在 GD32305R-START 开发板上的 BSP 移植与使用指南RT Thread 在 GD32305R START 开发板上的 BSP 移植与使用指南 导读 GD32305R START 是兆易创新GigaDevice操作系统嵌入式物联网嵌入式OSRTOSRT-Thread 在 GD32407V-START 开发板上的 BSP 移植与使用指南RT Thread 在 GD32407V START 开发板上的 BSP 移植与使用指南 导读 本文以 RT Thread 开源仓库中 gd32407v st操作系统嵌入式物联网嵌入式OSRTOS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
