ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

RT-Thread EK-RA8M1 BSP 实战指南:在 Renesas RA8M1(Cortex-M85 480MHz)开发板上快速跑通 RT-Thread

RT-Thread EK-RA8M1 BSP 实战指南:在 Renesas RA8M1(Cortex-M85 480MHz)开发板上快速跑通 RT-Thread 操作系统嵌入式物联网嵌入式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/renesas/ra8m1-ek板级支持包BSP为主线介绍 EK-RA8M1 评估板的硬件资源、BSP 默认支持的外设、基于 MDK5 的编译烧录与运行验证流程以及如何通过 ENV 工具和 FSPFlex Software Package进一步配置更多板级资源。读完本文后你可以在 EK-RA8M1 开发板Renesas RA8M1480MHz Arm Cortex-M85 内核上完成 RT-Thread 的完整部署并掌握该 BSP 从最小配置到高级功能扩展的配置路径。1. 开发板硬件资源概述EK-RA8M1 评估板基于 Renesas RA8M1 MCU 开发用于快速评估 RA8 系列 MCU 的功能特性。该 BSP 目录为 bsp/renesas/ra8m1-ek从源码目录结构看整个 BSP 按照FSP 生成代码 板级代码 应用入口的方式组织ra/目录存放 FSP 框架代码与板级初始化ra_cfg/目录存放 FSP 引脚与模块配置头文件ra_gen/目录存放 FSP 生成的公共数据与向量表board/目录存放 RT-Thread 侧的板级移植代码src/hal_entry.c则是应用层入口。开发板主要板载资源如下引自 README_EN.mdMCUR7FA8M1AH480MHzArm Cortex-M85 内核2MB Flash1MB SRAMJ-Link OB板上调试器支持 SWD 下载OSPI FLASH64Mx8 外部串行 NOR Flash引脚OSPI_CS、OSPI_CK、OSPI_DQ0~DQ7、OSPI_DS等已在 FSP 引脚配置中定义USB-Host / USB-Device引脚USBHS_VBUS、USBFS_P/N等CANFDCAN_RXD、CAN_TXD引脚以太网板上提供 ETH_A / ETH_B 两组 RMII 网络接口引脚包括ETH_A_TXD0/1、ETH_B_TXD0/1、ETH_A_MDIO、ETH_A_MDC等2 组 PMOD Arduino micro BUS 扩展接口3 个用户 LEDLED1/LED2/LED33 个按键2 个用户按键USER_S1、USER_S2 1 个复位按键板级引脚映射由 FSP 生成的 bsp_pin_cfg.h 统一描述例如用户按键USER_S1为BSP_IO_PORT_00_PIN_09LED1/LED2/LED3 分别为BSP_IO_PORT_06_PIN_00、BSP_IO_PORT_04_PIN_14、BSP_IO_PORT_01_PIN_07。板级 LED 抽象见 board_leds.c其中g_bsp_prv_leds[]数组按 LED1、LED2、LED3 顺序登记了三个 IOPORT 引脚供BSP_LED_On/Off等 FSP 板级接口调用。BSP 当前对片上外设驱动的支持情况如下该表直接继承自官方文档片上外设驱动支持情况备注UART支持UART9 为默认日志输出端口GPIO支持从目录结构看默认 BSP 只集成了r_ioportGPIO与r_sci_b_uartUART两个 FSP 驱动实例分别位于 r_ioport.c 和 r_sci_b_uart.c这与最小 footprint的默认配置策略一致。2. 快速上手MDK5 编译、下载与运行验证官方文档说明该 BSP 当前仅提供 MDK5 工程以下以 MDK5 开发环境为例介绍如何运行系统。2.1 编译与下载编译双击 BSP 根目录下的 project.uvprojx 文件在 MDK5 中打开工程并编译。下载点击 MDK 的 Debug 按钮通过板上 J-Link OB 下载并调试。2.2 运行结果验证程序下载成功后系统自动运行并打印系统信息。将开发板对应的串口连接到 PC用终端工具打开串口波特率 115200-8-1-N复位设备即可看到 RT-Thread 的输出信息。输入help命令可以查看系统支持的命令。默认输出示例initialize rti_board_start:0 done \ | / - RT - Thread Operating System / | \ 5.1.0 build Oct 30 2023 16:14:05 2006 - 2022 Copyright by RT-Thread team do components initialization. initialize rti_board_end:0 done initialize finsh_system_init:0 done Hello RT-Thread! msh 2.3 应用层入口函数应用层入口函数位于 hal_entry.c 的void hal_entry(void)中自己创建的新源文件可以直接放在 BSP 的src目录。官方文档给出的示例代码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); } }对照仓库中当前的实际实现hal_entry.c#L19-L32宏LED_PIN被定义为BSP_IO_PORT_06_PIN_00即板上 LED1该文件同时按RT_USING_NANO宏区分drv_gpio.h与rtdevice.h两个头文件路径说明该 BSP 兼容 Nano 与标准两种内核裁剪形态。rt_pin_write()是 RT-Thread GPIO 统一驱动接口其背后通过 FSP 的r_ioport驱动完成寄存器级操作rt_thread_mdelay(500)则体现了 RT-Thread 作为 RTOS 的基本能力任务级毫秒延时而不需要忙等待。3. BSP 目录结构与工程生成机制理解 BSP 的目录划分有助于后续扩展功能目录/文件作用ra/fsp/FSP 框架与驱动源码含bsp/时钟、中断、MCU 信息、r_ioport/、r_sci_b_uart/ra/board/ra8m1_ek/板级初始化board_init.c、board_leds.c、board_ethernet_phy.hra_cfg/fsp_cfg/FSP 生成配置头文件引脚配置、IOPORT/SCI_B_UART 模块配置、MCU 器件配置ra_gen/FSP 生成的公共数据common_data.c、hal_data.c、pin_data.c、vector_data.c与main.cscript/链接脚本GCC/Clang 用fsp.ld/memory_regions.ldMDK 用fsp.scat/memory_regions.scatboard/RT-Thread 板级移植层board.h、ra8_it.c等rtconfig.py工具链与编译参数定义从 rtconfig.py 可以看到该 BSP 支持三种工具链Keil MDKarmclang目标文件为.axf链接脚本为script/fsp.scatCPU 指定为--cpu Cortex-M85编译选项含-mcpuCortex-M85 -mfpuneon-fp-armv8 -mfloat-abihardGCC-marcharmv8.1-m.mainmve.fpfp.dp -mthumb -mfpufpv5-sp-d16链接使用-T script/fsp.ld输出 ihex 与 size 统计LLVM-ARMclang--targetarm-none-eabihf -marcharmv8.1m.mainfp。这些参数体现了 Cortex-M85 的关键 ISA 特性ARMv8.1-M 基础架构、MVE FPSIMD、双精度浮点。堆内存区域由 board/board.h 定义RA_SRAM_SIZE为 896KB堆从链接段Image$$RAM_END$$ZI$$BaseMDK开始延伸至0x22000000 896KB即从内部 SRAM 末尾附近开始分配。4. 高级配置一使用 ENV 工具启用更多功能本 BSP 默认仅启用 UART9日志输出等最小功能集。若需要启用更多组件与软件包可使用 RT-Thread 的 env 工具进行配置官方操作顺序如下在bsp目录下打开 env 工具即在 bsp/renesas/ra8m1-ek 目录下运行env输入menuconfig命令配置工程配置完成后保存并退出输入pkgs --update命令更新软件包拉取所选第三方软件包源码输入scons --targetmdk5命令重新生成 MDK 工程。配置项的骨架见 Kconfig默认选中SOC_R7FA8M1AH自动连带选择RT_USING_COMPONENTS_INIT与RT_USING_USER_MAIN即启用组件初始化框架和用户 main 入口并在非 Nano 形态下引入 board/Kconfig 中的板级选项如 LVGL、WiFi 等可选功能。board/目录下已预置了 LVGL 显示/输入端口移植board/lvgl/与 RW007 WiFi 驱动board/ports/wifi/drv_rw007.c说明这些高级功能在 menuconfig 中按需勾选后即可获得对应源码支持。5. 高级配置二使用 FSP 配置外设驱动除 ENV 菜单外RA 系列 BSP 的另一条外设启用路径是借助 MDK 集成的 FSP 图形化配置在 BSP 目录打开env工具用scons --targetmdk5命令生成 MDK 工程打开 BSP 目录中的project.uvprojx在顶部导航栏选择Software Components配置在Flex Software下找到RA Configuration点击其右侧的配置按钮。该操作会自动探测当前计算机上安装的 FSP 版本选定版本后进入 FSP进入 FSP 后可以看到已预配置好的外设即本 BSP 内置的r_ioport、r_sci_b_uart等实例点击Generate Project Content按钮生成所需驱动文件——FSP 会重写ra_gen/目录下的公共数据、向量表以及ra_cfg/fsp_cfg/下的引脚与模块配置头文件返回env在 menuconfig 中打开所需的外设驱动配置项保存并退出再重新scons生成工程即可。以默认已启用的 UART 为例其模块配置位于 r_sci_b_uart_cfg.hSCI_B_UART_CFG_FIFO_SUPPORT (1)表示使能 SCI FIFO提升吞吐并减少中断次数SCI_B_UART_CFG_FLOW_CONTROL_SUPPORT (0)表示未启用流控引脚复用则统一在 bsp_pin_cfg.h 中声明例如PMOD1_2_MOSI0_TXD0复用 UART0 TX 等。板级初始化函数bsp_init()位于 board_init.c在 FSP 启动流程中被调用用于执行板级特有的初始化当前最小实现为空。6. 参考资料与贡献开发板与器件资料Renesas 官网的 RA8M1RA 系列 480MHz Cortex-M85 MCU产品页、EK-RA8M1 用户手册与 RA MCU 通用文档外部官网资料本文不再附链接。本 BSP 中文文档README.md若你希望在 EK-RA8M1 上做出有意思的项目欢迎参照 RT-Thread 官方贡献指南向社区提交代码。总结该 BSP 以 FSP 生成的 RA8M1 底层代码为基础默认提供 UART9 日志串口与 GPIO 支持配合 MDK5 J-Link OB 即可分钟级跑通 RT-Thread当功能需求超出默认范围时ENVmenuconfig pkgs scons负责组件与软件包层面的裁剪FSPRA Configuration Generate Project Content负责底层外设实例层面的配置两条路径配合即可完成从最小 footprint到完整功能的平滑扩展。赞分享操作系统嵌入式物联网嵌入式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点击查看免费下载相关推荐Zephyr 支持 Renesas EK-RA8M1 评估板基于 Arm Cortex-M85 的 RA8M1 平台实战指南Zephyr 支持 Renesas EK RA8M1 评估板基于 Arm Cortex M85 的 RA8M1 平台实战指南 EK RA8M1 是瑞萨Ren操作系统嵌入式RTOS物联网RT-Thread EK-RA8D1 BSP 实战在 Cortex-M85 高性能 MCU 上运行、编译与外设配置指南RT Thread EK RA8D1 BSP 实战在 Cortex M85 高性能 MCU 上运行、编译与外设配置指南 本文基于 RT Thread 仓库中操作系统嵌入式物联网嵌入式OSRTOSRT-Thread EK-RA4E2 开发板 BSP 实战在瑞萨 RA4E2Cortex-M33上构建、烧录并扩展外设RT Thread EK RA4E2 开发板 BSP 实战在瑞萨 RA4E2Cortex M33上构建、烧录并扩展外设 本文以 RT Thread 仓库中操作系统嵌入式物联网嵌入式OSRTOS上一篇V-HACD与CoACD对比哪个凸分解工具更适合你的3D项目下一篇JDBC Agent Template 实战指南为 DBX 添加新数据库 Agent 的完整开发流程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表