ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

RT-Thread RA6M3-HMI-Board BSP 实战指南:RA6M3 人机交互开发板的快速上手与外设进阶配置

RT-Thread RA6M3-HMI-Board BSP 实战指南:RA6M3 人机交互开发板的快速上手与外设进阶配置 操作系统嵌入式物联网嵌入式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 仓库中瑞萨 RA6M3-HMI-Board 开发板的 BSP 说明文档README、中文文档展开覆盖开发板硬件资源、MDK5 环境下的最小系统编译下载流程、应用入口函数hal_entry以及通过 ENV 工具和 FSP 框架使能 LCD、SDHI、RJ11 网口、WiFi 等更多板载资源的完整进阶方法。读完本文你可以在该 HMI 评估板上从零跑通 RT-Thread 最小系统并能自行扩展出带 LVGL 图形界面、文件系统、网络的完整应用。一、开发板介绍与硬件框架基于瑞萨 RA6M3 MCU 的 HMI-Board 评估板面向“人机交互HMI”场景设计。通过灵活的软件包和 IDE 配置开发者可以评估 RA6M3 MCU 族群的特性并开发嵌入式应用。核心硬件构成如下原文档 Hardware Framework 部分MCURA6M3R7FA6M3AH3CFBArm Cortex-M4F 内核120 MHz 主频2 MB Flash / 640 KB RAM片上集成TFT 控制器、2D 图形加速器G2D和JPEG 解码器——这是它区别于普通 MCU 评估板、适合做 HMI 的关键4.3 寸 LCDRGB 888 接口即直接接 TFT 控制器 RGB 引脚板载仿真器可直接在线下载调试以太网EthernetRW007SPI 接口高速 WiFi 芯片USB-DeviceTF 卡槽SDHICAN1 路麦克风、1 路扬声器Arduino 扩展接口2 路 PMOD 扩展接口4 个按键3 个用户按键 1 个复位按键。开发板背面back.png集中了接口与排针资源。片上外设支持矩阵BSP 文档给出的外设支持情况如下片上外设驱动支持情况备注UART支持UART9 为默认日志输出端口GPIO支持LCD支持SDHI支持JPEG支持G2D支持RW007WiFi支持ETH以太网支持SPI支持I2C支持CAN支持需要强调一点中文文档特别说明仓库刚拉下来时是最小系统。默认只开启了 GPIO 与 UART9上述其他外设驱动虽然都已存在代码但需要通过后文的 ENV/FSP 配置流程使能。二、BSP 目录结构与关键文件从源码结构看该 BSP 采用 RT-Thread 标准的“板级目录 FSP 代码生成目录”组织方式各目录职责如下目录 / 文件作用src/hal_entry.c应用层入口用户代码放置目录board/板级代码堆栈定义、中断表以及 LVGL 移植、GT911 触摸、RW007 WiFi、G2D/JPEG 驱动、PWM 音频、AVI 播放器、SD 卡挂载等模块board/rtduino/Arduino 生态RTduino引脚映射支持 Arduino 扩展接口ra/fsp/FSPFlexible Software Pack运行时库BSP、r_ioport、r_sci_uart 等外设 APIra_cfg/FSP 生成的外设配置头文件bsp_cfg、pin_cfg、sci_uart_cfg 等ra_gen/FSP 自动生成的初始化代码main.c、hal_data.c、pin_data.c、vector_data.c等标注 do not editscript/链接脚本fsp.ldGCC、fsp.scatIAR/MDK、memory_regions.ldproject.uvprojxMDK5 工程文件本 BSP 目前仅提供 MDK5 工程configuration.xml、R7FA6M3AH3CFC.pincfgFSP 工程配置文件与引脚配置供 FSP 工具解析rtconfig.h、rtconfig.py、Kconfig当前生效的配置及 env 工具入口SConstruct、SConscriptSCons 构建脚本用于scons --targetmdk5重生成工程最小系统的配置依据查看当前已生效的 rtconfig.h 与 外设配置段可以确认最小系统只包含#define RT_USING_CONSOLE #define RT_CONSOLE_DEVICE_NAME uart9 /* 控制台设备为 uart9 */ ... #define BSP_USING_GPIO #define BSP_USING_UART #define BSP_USING_UART9 #define BSP_UART9_RX_BUFSIZE 256 #define BSP_UART9_TX_BUFSIZE 0即控制台设备挂在uart9上配合 GPIO 驱动构成“串口 shell LED”的最小系统。同时RT_USING_FINSH已使能因此启动后可以看到msh shell。三、快速上手MDK5 编译、下载与运行1. 编译与下载本 BSP 目前仅提供 MDK5 工程操作步骤为编译双击打开bsp/renesas/ra6m3-hmi-board/project.uvprojx文件在 MDK5 中编译程序下载点击 MDK 的 Debug 按钮通过板载仿真器进行下载和在线调试。2. 查看运行结果下载成功后系统自动运行并打印系统信息。将开发板对应的串口连接到 PC在终端工具中打开相应串口波特率 115200数据位 8停止位 1无校验即 115200-8-1-N复位设备后即可看到 RT-Thread 的启动输出。输入help命令可查看系统支持的命令\ | / - RT - Thread Operating System / | \ 5.0.0 build Jan 4 2023 10:14:56 2006 - 2022 Copyright by RT-Thread team Hello RT-Thread! msh msh help help - RT-Thread shell help. ps - List threads in the system. free - Show the memory usage in the system. clear - clear the terminal screen version - show RT-Thread version information list - list objects msh 3. 应用入口函数与调用链应用层入口函数位于 hal_entry.c用户编写的源文件可直接放入src目录SConscript 会将其归入 Applications 编译组#define LED_PIN BSP_IO_PORT_02_PIN_09 /* Onboard LED pins */ void hal_entry(void) { rt_kprintf(\nHello RT-Thread!\n); while (1) { rt_pin_write(LED_PIN, PIN_HIGH); rt_thread_mdelay(500); rt_pin_write(LED_PIN, PIN_LOW); rt_thread_mdelay(500); } }注意README 示例代码中使用的是LED3_PIN宏而当前仓库源码实际使用LED_PIN映射到BSP_IO_PORT_02_PIN_09即 Port02 Pin09以仓库源码为准。调用链上FSP 生成的 main.c 只有一行核心逻辑——直接调用hal_entry()因此 RA 系列 BSP 的约定是所有用户逻辑都写在hal_entry中而非main。堆内存的布局由 board.h 定义RA6M3 的 640 KB SRAM 顶部0x1FFE0000之上作为堆区与 MDK 的Image$$RAM_END$$ZI$$Base符号衔接避免与静态数据冲突。四、进阶使用ENV 工具配置与 FSP 外设使能进阶章节面向需要在 RT-Thread 上使用更多开发板资源的开发者。整个进阶流程建立在两个工具之上env 工具配置内核/组件/软件包驱动menuconfig、pkgs、scons命令和FSP瑞萨 Flexible Software Pack负责生成引脚复用与外设初始化代码。1. ENV 工具配置流程默认配置只开启了 UART9。要启用组件、软件包或其他外设步骤为在bsp/renesas/ra6m3-hmi-board/目录下打开 env 工具即运行该目录下的rtconfig.py输入menuconfig命令配置工程配置完成后保存退出输入pkgs --update命令更新/下载所选软件包输入scons --targetmdk5命令重新生成 MDK 工程再回到 MDK 中编译下载。menuconfig中板级选项来自 board/Kconfig主要分类与典型选项如下均可按引脚编号自定义Onboard Peripheral Drivers板载外设BSP_USING_ARDUINO兼容 Arduino 生态RTduino会自动连带使能 UART4、GPIO、ADC0、PWM0/2/8、软件 I2C0、软件 SPI1 等BSP_USING_FS文件系统下设BSP_USING_SDCARD_FSSDHI1 FatFs与BSP_USING_SPICARD_FSSPI Flash走 SCI7 SPI 模式 SPI MSD FatFsBSP_USING_LCD/BSP_USING_SPI_LCDRGB565 的 LCD 或 SPI 屏BSP_USING_LCD_PWM_BACKLIGHT可用 PWM5 驱动背光BSP_USING_TOUCH使能 GT911 触摸走软件 I2C1BSP_USING_LVGL/BSP_USING_LVGL_DEMO使能 LVGL 图形库及其 demo音乐 demo / stress demo对应 board/lvgl/ 下的移植层lv_port_disp.c、lv_port_indev.c。On-chip Peripheral Drivers片上外设BSP_USING_UART默认 y下含 UART4 / UART9各自可配 RX/TX DMA 与缓冲区大小RX 默认 256范围 64~65535BSP_USING_SCISCI 控制器可配置 SCI0~SCI9且每个 SCI 可在 SPI / I2C / UART 三种模式间选择——这正是 RW007 WiFi 走 SCI3 SPI 模式的底层支撑BSP_USING_SPISPI0/SPI1、BSP_USING_SOFT_SPI软件 SPI默认引脚 516/1291/1292、BSP_USING_SOFT_I2C软件 I2C默认 SCL/SDA 引脚 514/515BSP_USING_ADC、BSP_USING_DAC、BSP_USING_PWMGPT0/2/5/8BSP_USING_SDHITF 卡可选 1-bit/4-bit 位宽模式自动连带 DFS、ELM 文件 IO 与 POSIX 设备 IOBSP_USING_CANCAN0、BSP_USING_ETH自动连带 lwIP/SAL/netdev、BSP_USING_G2D、BSP_USING_JPEG配合板载 2D 加速器与 JPEG 硬件解码器驱动代码在 drv_g2d.c 与 drv_jpeg.c。Board extended module Drivers板载扩展模块BSP_USING_RW007RW007 WiFi 模块自动选择 SCI3 SPI 总线默认总线名sci3s并提供RA_RW007_CS_PIN、RA_RW007_INT_BUSY_PIN、RA_RW007_RST_PIN等引脚级配置项驱动位于 drv_rw007.c。提示由于引脚复用关系某些功能之间可能存在引脚冲突配置时以 FSP 生成的pin_data.c与ra_cfg/fsp_cfg/bsp/bsp_pin_cfg.h中的实际引脚分配为准。2. FSP 配置流程外设驱动的“源头”RA 系列 BSP 的外设初始化代码由 FSP 生成仓库中的最小配置对应ra_gen/下最简文件集。要使能更多外设步骤为在 BSP 目录下打开 env 工具先使用scons --targetmdk5命令生成 MDK 工程打开project.uvprojx选择顶部导航栏的Software Components配置找到Flex Software下的RA Configuration点击其旁的配置按钮。该操作会自动检测当前电脑已安装的 FSP 版本选择指定版本后进入 FSP进入 FSP 后可看到仓库中已预先配置好的外设即 configuration.xml 所描述的配置UART9、GPIO 等。在此添加/修改外设引脚后点击Generate Project Content按钮生成所需驱动文件ra_gen/、ra_cfg/目录及ra/fsp/源文件会被更新回到 env使能所需的外设配置项即上节menuconfig中的BSP_USING_*选项保存退出再次scons --targetmdk5重生成工程即可。从 ra/SConscript 与各目录 SConscript 可以看出构建系统会把ra/fsp、ra_cfg、ra_gen的源文件与头文件自动纳入编译因此 FSP 每生成一次重新生成 MDK 工程即可拿到对应代码无需手工维护文件列表。五、注意事项与延伸阅读最小系统前提仓库默认配置为“最小体量”仅 UART9 GPIO所有“支持”的外设都需要走 ENV FSP 流程使能直接编译默认工程不会包含 LVGL、SD 卡、WiFi 等功能工程目标本 BSP 当前仅提供 MDK5 工程SConscript 中明确 IAR 平台直接退出GCC/IAR 构建路径在脚本中有所保留但未作为官方支持目标请以 MDK5 为准示例工程仓库中文文档指出主仓库只维护最新的驱动相关代码包含完整外设驱动示例的独立 SDK 仓库为sdk-bsp-ra6m3-hmi-board如需体验社区/官网的开源示例工程应到该 SDK 仓库中开发贡献代码如有基于该开发板的项目可参考 RT-Thread 官方贡献指南向仓库提交代码官方资料开发板官网主页、用户手册、RA MCU 基础知识与 RA6 快速设计指南等可在瑞萨Renesas官网按板卡型号检索获取本文不重复外部链接。参考文件索引内容仓库路径BSP 说明文档英/中README.md、README_ZH.md应用入口src/hal_entry.cFSP 生成的 mainra_gen/main.c堆/内存布局board/board.h板级 Kconfig 选项board/Kconfig当前生效配置rtconfig.hFSP 配置configuration.xml、ra_cfg/链接脚本script/fsp.scat、script/memory_regions.ld板级外设驱动board/ports/WiFi、G2D、JPEG、触摸、音频、AVI、SD 挂载赞分享操作系统嵌入式物联网嵌入式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 EK-RA6M3 开发板 BSP 实战MDK 快速编译烧录、FSP 与 ENV 外设配置详解RT Thread EK RA6M3 开发板 BSP 实战MDK 快速编译烧录、FSP 与 ENV 外设配置详解 本文以 RT Thread 仓库中瑞萨 EK操作系统嵌入式物联网嵌入式OSRTOSEnvoy 本地限流全解基于 Token Bucket 的 L4 连接与 HTTP 请求限流机制Envoy 本地限流全解基于 Token Bucket 的 L4 连接与 HTTP 请求限流机制 Envoy 在本地非分布式限流方面提供了三层实现面向操作系统嵌入式物联网嵌入式OSRTOSRT-Thread BSP 实战指南GD32103C-EVAL 开发板GD32F103VCT6快速上手与进阶配置RT Thread BSP 实战指南GD32103C EVAL 开发板GD32F103VCT6快速上手与进阶配置 本指南以 RT Thread 仓库中 b操作系统嵌入式物联网嵌入式OSRTOS上一篇types.GenericAlias 迭代器数据竞争修复CPython 自由线程free-threaded构建下的并发安全剖析下一篇Hugging Face Diffusers 生成控制技术全景指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表