RA MCU众测宝典 | 在RA MCU上快速部署LWIP——以CPKCOR-RA8D1为例

环贸财神 2025-12-27 3540人围观 快速

文章引用:电子发烧友makeWorks

在上一篇文章中我们分享了在RA上快速部署LVGL的案例,但是FSP丰富强大的功能还远不止于此,除了LVGL,LWIP也早已被FSP纳入自身的功能中间件中,可以在FSP上进行快捷的部署,我们来看一看下面这个例程的分享吧。

一.创建项目

在e²studio中创建一个新的FSP项目(File->New->Renesas FSP Project)。

选择正确的板卡型号(CPKEXP-EKRA8X1)和MCU型号(R7FA8D1BHECBD)。

在项目配置中,选择FreeRTOS作为您的实时操作系统(RTOS)。

选择编译器为LLVM for ARM,调试器为JLINK

二.配置以太网引脚

扩展板上有一个百兆以太网接口,使用的PHY是LAN8720I,RMII接口。

由于RA8D1 MCU的设计限制,使用了SDRAM后,CEU摄像头接口和以太网接口就有复用,使用时请注意将以太网信号跳线全部连上,且不要在扩展板上安装摄像头

e5a4e26a-e07d-11f0-8ce9-92fbcf53809c.png

三.配置FSP堆栈

在e²studio的"Stacks"选项卡中,您需要添加和配置必要的模块:

添加FreeRTOS内核:确保FreeRTOS->FreeRTOS(或者FreeRTOS->FreeRTOS(with tickless idle))模块已添加。

添加Ethernet驱动:添加Connectivity->Ethernet(e²studio)模块(确保其配置正确,通常FSP会自动处理大部分底层引脚和时钟配置)。

添加lwIP核心:瑞萨FSP不直接提供独立的lwIP栈,而是集成了FreeRTOS+TCP或使用其lwIP移植层。您可以添加Connectivity->FreeRTOS+TCP或类似的模块。

Tips

如果您必须使用纯lwIP,您可能需要手动集成lwIP源代码并使用rm_lwip_sys_freertos移植层,这通常涉及将lwipopts.h文件配置为使用操作系统(NO_SYS宏定义为0)并实现sys_arch.c中的系统级接口(信号量、邮箱/消息队列等)。

默认LwIP的属性里面的参数是需要修改的,一般不能直接使用,在Common->Infrastructure->Heap and momory pools和Threading中需要修改的。

e5d845b0-e07d-11f0-8ce9-92fbcf53809c.png

四.关键代码实现

(lwIP初始化和应用任务)

网络接口配置(FSP配置)

在FSP配置界面中,设置网络的IP地址、网关、子网掩码(或启用DHCP客户端)。这些设置通常在configuration.xml或生成的头文件中定义。

主程序(net_thread_entry.c)

初始化系统和启动网络任务。

应用任务示例

实现一个简单的TCP Echo Server任务:

e601ea78-e07d-11f0-8ce9-92fbcf53809c.png

五.编译和运行

点击e²studio的"Generate Project Content"按钮,生成FSP相关的底层驱动代码。

编译项目。

将程序烧录到CPKEXP-EKRA8X1开发板。

使用网络调试助手连接开发板的IP地址和配置的端口(例如5001),进行TCP通信测试。

e6288c0a-e07d-11f0-8ce9-92fbcf53809c.png

完整程序

完整程序请查看Gitee上的分享:(您可复制下方链接至浏览器,或扫描二维码进行查看)

makeWorks/RA8D-EXAMPLES

https://gitee.com/makeWorks/ra8d-examples

e6490052-e07d-11f0-8ce9-92fbcf53809c.png

Powered By Z-BlogPHP