☰
瑞萨 IOT-RA6M4 开发板运行 RT-Thread:BSP 快速上手、FSP 配置与 env 进阶指南
2026/9/25 5:10:03 网站建设 项目流程
  • 操作系统
  • 嵌入式
  • 物联网
  • 嵌入式OS
  • RTOS

【免费下载链接】rt-thread

RT-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 仓库中 瑞萨 IOT-RA6M4 开发板 BSP 说明 展开,系统讲解如何将 RT-Thread 移植运行到基于 R7FA6M4AF3CFP(Cortex-M33)的 IOT-RA6M4 评估板上:从 MDK5 编译、J-Flash Lite 烧录到串口验证的完整快速上手流程,再到使用瑞萨 FSP 3.5.0 配置工具与 RT-Thread env 工具使能更多片上外设的进阶方法。读完本文,你可以独立完成该板 BSP 的编译、下载、验证,并结合仓库源码理解其默认配置、Kconfig 外设选项与 PPP 联网方案的落地细节。

开发板与 BSP 概述

IOT-RA6M4 是一块基于瑞萨 RA6M4 MCU 群组的评估板,通过瑞萨灵活配置软件包(FSP)和 IDE,可帮助用户评估 RA6M4 的片上特性并开发嵌入式应用。该 BSP 位于仓库的 bsp/renesas/ra6m4-iot 目录下,与瑞萨 RA 系列通用驱动库 bsp/renesas/libraries 共同构成硬件抽象基础。

开发板常用板载资源如下:

  • MCU:R7FA6M4AF3CFP,200MHz,Arm Cortex-M33 内核,1MB 代码闪存,256kB SRAM;
  • 调试接口:板载 J-Link 接口;
  • 扩展接口:两个 PMOD 连接器。

外设支持情况

该 BSP 对外设的支持情况如下(摘自 BSP 说明文档):

片上外设支持情况备注
UART支持UART6 为默认日志输出端口
GPIO支持
IIC支持软件
WDT支持
RTC支持
ADC支持
DAC支持
SPI支持
FLASH支持
PWM支持
CAN支持
SDIO支持
外接 WiFi 模块支持RW007 WiFi 网络模块
外接温湿度传感器支持HS300x 温湿度模块
外接室内空气质量传感器支持zmod4410 模块
移远 Cat.1 模块支持使用 PPP 方式上网

这些外设的“支持”并非全部默认编译进固件。从源码结构看,仓库当前默认的是最小体量配置:在 rtconfig.h 中只使能了BSP_USING_GPIO、BSP_USING_UART和BSP_USING_UART6,其余外设需要后续通过 env 工具(Kconfig)和 FSP 配置按需开启。片上外设的 Kconfig 选项集中定义在 board/Kconfig,覆盖 UART0~UART9(含 DMA 与收发缓冲区大小配置)、硬件 I2C、SPI0/SPI1(支持 DTC 免 CPU 搬运)、ADC0/ADC1、DAC0/DAC1、PWM0~PWM9(GPT 32/16 位输出)、SDHI0/SDHI1(SDIO,自动选中 DFS 与 POSIX 文件接口)、CAN0/CAN1,以及可工作在 SPI/I2C/UART 三种模式下的 SCI0~SCI9 控制器。

快速上手:MDK5 编译与 J-Flash Lite 烧录

硬件连接

  • 使用 USB 数据线连接开发板到 PC,通过板载 J-Link 接口下载和 DEBUG 程序;
  • 使用 USB 转串口工具连接 UART6:P305(TXD)、P304(RXD),用于查看系统日志。

编译与下载

BSP 说明文档指出,快速上手目前仅提供 MDK5 工程:

  1. 双击 project.uvprojx 打开 MDK5 工程并编译。
  2. 烧录需使用 SEGGER J-Flash Lite 工具,建议使用 V7.50 及以上版本。
  3. 在 J-Flash Lite 中选择芯片型号R7FA6M4AF进入工具,选择 MDK 编译产物/object/ra6m4.hex,点击 Program Device 开始烧录。

从构建脚本看,该工程同时定义了 Keil(armclang)与 GCC 两套工具链参数:rtconfig.py 中 Keil 分支使用--scatter script/fsp.scat分散加载,GCC 分支使用-T script/fsp.ld链接脚本,目标架构均针对 Cortex-M33(-mcpu=cortex-m33/--cpu Cortex-M33),因此scons --target=mdk5等命令实际也是基于该脚本重新生成 MDK 工程。

查看运行结果

下载成功后系统自动运行并打印启动信息。在终端工具中打开对应串口(115200-8-1-N),复位设备后即可看到 RT-Thread 的输出。输入help命令可查看系统支持的 shell 命令:

\ | / - RT - Thread Operating System / | \ 4.0.4 build Oct 11 2021 2006 - 2021 Copyright by rt-thread team Hello RT-Thread! msh > msh >help RT-Thread shell commands: reboot - Reboot System help - RT - Thread shell help. ps - List threads in the system. free - Show the memory usage in the system. hello - say hello world clear - clear the terminal screen version - show RT - Thread version information list_thread - list thread list_sem - list semaphore in system list_event - list event in system list_mutex - list mutex in system list_mailbox - list mail box in system list_msgqueue - list message queue in system list_timer - list timer in system list_device - list device in system list - list all commands in system msh >

应用入口函数

应用层入口函数位于 src/hal_entry.c 中的void hal_entry(void),用户编写的源文件可直接放在src目录下(由 SConscript 收集./src/*.c编入 Applications 分组)。默认示例通过 GPIO 设备驱动翻转 LED3(映射到端口 1 的 PIN 14,即BSP_IO_PORT_01_PIN_14):

#define LED3_PIN BSP_IO_PORT_01_PIN_14 void hal_entry(void) { rt_kprintf("\nHello RT-Thread!\n"); while (1) { rt_pin_write(LED3_PIN, PIN_HIGH); rt_thread_mdelay(500); rt_pin_write(LED3_PIN, PIN_LOW); rt_thread_mdelay(500); } }

默认内核与驱动配置解读

结合 rtconfig.h 可以看到当前 BSP 的关键默认配置,理解它们有助于定位日志、内存等行为:

  • 控制台:RT_USING_CONSOLE且RT_CONSOLE_DEVICE_NAME为"uart6"(rtconfig.h#L105-L109),与“UART6 为默认日志输出端口”的说明一致;
  • 串口驱动:启用RT_USING_SERIAL_V2新串口框架并开启RT_SERIAL_USING_DMA,UART6 接收缓冲区 256 字节(BSP_UART6_RX_BUFSIZE),发送缓冲区为 0(中断/阻塞发送);
  • 内核参数:RT_TICK_PER_SECOND 1000、RT_THREAD_PRIORITY_MAX 32(32 级优先级)、小堆作为系统堆(RT_USING_SMALL_MEM_AS_HEAP);
  • 组件层:启用 Finsh/MSH 命令行(FINSH_THREAD_STACK_SIZE 4096、FINSH_USING_HISTORY等)与RT_USING_USER_MAIN。

FSP 侧的 UART 实例配置由 r_sci_uart_cfg.h 定义,当前关闭了 FIFO、DTC 与流控支持,属于最小化默认配置。板级内存布局(256kB SRAM 顶端作为堆结束地址)见 board/board.h。

进阶使用一:使用 FSP 配置外设

如果需要修改瑞萨 BSP 的外设配置或添加新的外设端口,必须使用瑞萨FSP 3.5.0配置工具,请严格按下述步骤操作(配置问题可到 RT-Thread 社区论坛提问):

  1. 下载并安装 FSP 3.5.0;
  2. 安装完成后,需要添加 IOT-RA6M4 开发板的官方板级支持包,即docs目录下的Xiaoxiongpai_BSP_FSP3.5.0.rar(见 bsp/renesas/ra6m4-iot/docs 目录),并按瑞萨官方说明将其导入 FSP;
  3. 参考仓库文档 RA系列使用FSP配置外设驱动.md:在 MDK 中通过添加自定义命名来打开当前工程的 FSP 配置;
  4. 仓库 bsp 默认使能最小体量配置,使能 env 外设配置的完整步骤为:
    • 在 bsp 目录下打开 env 工具,执行scons --target=mdk5生成 MDK 工程;
    • 打开project.uvprojx,选择导航栏Software Components,找到Flex Software下RA Configuration旁的配置按钮,工具会自动查找本机安装的 FSP 版本,选择指定版本后进入 FSP;
    • 在 FSP 中可以看到已配置完成的外设,点击Generate Project Content即可生成所需驱动文件(生成物会落回 ra_gen 与 ra_cfg 等目录);
    • 回到 env,使能所需的外设配置后保存退出,再次生成工程即可。

更完整的 RA 系列外设驱动添加方法与教程,可继续阅读 RA系列外设驱动添加指南.md、RA系列BSP外设驱动使用教程.md 与 RA系列驱动介绍.md。

进阶使用二:env 工具使能组件与软件包

BSP 默认只开启了 UART6 功能。若要使用更多高级功能(组件、软件包等),需利用 env 工具配置,步骤如下:

  1. 在 bsp 目录下打开 env 工具;
  2. 输入menuconfig配置工程,配置完成后保存退出;
  3. 输入pkgs --update更新软件包;
  4. 输入scons --target=mdk5重新生成工程。

menuconfig中“Hardware Drivers Config”菜单即来自 board/Kconfig,例如使能BSP_USING_ADC后再勾选BSP_USING_ADC0即可打开 ADC0 驱动;而片上 GPIO/UART 等基础驱动的公共实现位于 bsp/renesas/libraries/HAL_Drivers 目录,由根 Kconfig 中的rsource "../libraries/Kconfig"与板级配置合并引入。

实战案例:Cat.1 模块 PPP 入网

板级 Kconfig 中“Board extended module Drivers”菜单提供了BSP_USING_LWIP_PPP(Enable ppp function)选项,选中后会自动使能 UART、UART2 与 PPP_Device 软件包(board/Kconfig#L768-L777)。仓库内附有完整操作文档 使用PPP方式上网.md,要点如下:

  • PPP 入网是 4G Cat.1 模块除 AT 命令外的另一种入网方式:将 PCI-E 接口的 Cat.1 板卡插入板上接口并连接天线,插入 SIM 卡(注意插卡方向);
  • RT-Thread 侧需要打开 lwIP 协议栈(TCPIP 线程栈大小建议增加到 2048 以上),并通过PPP_Device软件包完成 PPP 解析与拨号;
  • 配置 PPP_Device 时按手机卡运营商选取 APN,并将ppp device uart name配置为uart2;
  • 由于通信模块引脚由用户自行选配,可能需微调驱动代码,例如该板上 EC20 的复位引脚与系统复位引脚公用,应将复位引脚配置改为 -1;
  • 在 FSP 中打开 UART2 端口并保存退出;编译、下载后手动按下开发板 RESET 按钮复位,确保芯片和模块都重启,等待片刻后自动连接;
  • 连接成功后使用ifconfig查看网络状态,用ping命令测试连通性。

FAQ

使用 MDK 的 DEBUG 时遇到 “Error: Flash Download failed Cortex-M33” 怎么办?

可按照下图操作,修改 Utilities 中的下载选项(取消使用默认的 Flash Download 算法流程,改用板载 J-Link 的 SWD 下载参数):

参考资料与延伸阅读

  • BSP 说明文档:bsp/renesas/ra6m4-iot/README.md
  • PPP 联网文档:bsp/renesas/ra6m4-iot/docs/使用PPP方式上网.md
  • RA 系列 FSP 配置教程:bsp/renesas/docs/RA系列使用FSP配置外设驱动.md
  • 关键源码:src/hal_entry.c、rtconfig.h、rtconfig.py、board/Kconfig
  • 瑞萨官方资料(RA MCU 基础知识、RA6 快速设计指南、RA6M4 数据手册与用户手册)以及开发板用户手册docs/开发板手册.docx,可在瑞萨官网与 bsp/renesas/ra6m4-iot/docs 目录中获取

如对 IOT-RA6M4 感兴趣并有希望分享的项目,欢迎按 RT-Thread 的贡献流程向仓库提交代码。

  • 操作系统
  • 嵌入式
  • 物联网
  • 嵌入式OS
  • RTOS

【免费下载链接】rt-thread

RT-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
点击查看免费下载

相关推荐

上一篇:ScyllaDB在共享环境中的优化配置指南
下一篇:FlutterBoost应用冷启动优化:5个预编译与资源预加载技巧

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询