这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【FRDMRW612系列】zephyr联网

共1条 1/1 1 跳转至

【FRDMRW612系列】zephyr联网

高工
2026-08-06 22:54:30     打赏

【前言】

最近将分享FRDM_RW612的zephyr一系列的文章,本篇将分享如何从零开始联网。

【工程创建】

1、在zephyr目录下面新建frdm_rw612_wif的文件夹。

2、新建目录结构如下:

frmd_rw612_wifi/
├── CMakeLists.txt         # 必须
├── prj.conf               # Kconfig配置,必须
├── app.overlay            # 设备树overlay(可选,后面改硬件才用)
├── src/                   # 源码文件夹,手动建
│   └── main.c             # 主程序
└── west.yml               # west工程清单,必须

3、CMakeLists.txt

cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(frmd_rw612_wifi)

target_sources(app PRIVATE src/main.c)

4、west.yml

manifest:
  self:
    path: .

5、app.overlay 现在不需要添加内容,空即可

6、main.c

#include <zephyr/kernel.h>
#include <zephyr/sys/printk.h>

int main(void)
{
    printk("Hello World! %s\n", CONFIG_BOARD);
    printk("FRMD RW612 WiFi Test Application\n");
    printk("Use shell: wifi connect <SSID> <PASSWORD> to connect to WiFi\n");
    while (1)
    {
        k_sleep(K_SECONDS(1));
    }
    
    return 0;
}

7、重头戏 prj.conf

因为需要联网因此用到的非常多,内容如下:

# 基础网络
CONFIG_NETWORKING=y
CONFIG_NET_IPV4=y
CONFIG_NET_TCP=y
CONFIG_NET_SOCKETS=y

# NXP RW6xx Wi-Fi
CONFIG_WIFI=y
CONFIG_WIFI_NXP=y
CONFIG_NXP_RW610=y

# DHCP
CONFIG_NET_DHCPV4=y

# 网络缓冲区
CONFIG_NET_BUF_RX_COUNT=16
CONFIG_NET_BUF_TX_COUNT=16
CONFIG_NET_BUF_DATA_SIZE=2048

# 串口 Shell
CONFIG_CONSOLE=y
CONFIG_SHELL=y
CONFIG_SHELL_BACKEND_SERIAL=y
CONFIG_NET_L2_WIFI_SHELL=y
CONFIG_NET_SHELL=y

# 日志
CONFIG_LOG=y
CONFIG_LOG_DEFAULT_LEVEL=3
CONFIG_LOG_MODE_IMMEDIATE=y

# RW612 Wi-Fi 驱动所需的栈空间
CONFIG_MAIN_STACK_SIZE=4096
CONFIG_SHELL_STACK_SIZE=6144
CONFIG_NET_MGMT_EVENT_STACK_SIZE=4608
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
CONFIG_NET_TCP_WORKQ_STACK_SIZE=2048
CONFIG_IDLE_STACK_SIZE=1024

# FRDM-RW612 未连接以太网 PHY
CONFIG_ETH_DRIVER=n

# Wi-Fi 自动连接(如果 Kconfig 符号存在)
CONFIG_NXP_WIFI_STA_AUTO_CONN=y
CONFIG_NXP_WIFI_STA_AUTO_SSID="SSID"
CONFIG_NXP_WIFI_STA_AUTO_PASSWORD="pwd"

# 启用 Zephyr 网络 Shell 用于验证
CONFIG_NET_SHELL=y

在这里需要重点说明

  • CONFIG_NXP_RW610这里,我们不能用RW612

  • RW612 Wi-Fi 驱动所需的栈空间,需要手工指定,如果没有这部分,那烧写固件后,shell都没有输出,原因是空间不够,启动不了。

  • 如果需要在shell中使用net 命令,则需要打开CONFIG_NET_SHELL,打开这个开关后可以使用如下命令

net iface
net ping
net route
net stats
net dns
  • 如果需要自动连接路由器,则需要配置

CONFIG_NXP_WIFI_STA_AUTO_CONN=y
CONFIG_NXP_WIFI_STA_AUTO_SSID="SSID"
CONFIG_NXP_WIFI_STA_AUTO_PASSWORD="pwd"

当然也可以写入overlay文件中

&nxp_wifi {
    wifi_nxp_auto_connect = "y";
    wifi_nxp_auto_ssid = "MyHomeWiFi";
    wifi_nxp_auto_password = "12345678";
};

【实验效果】

烧录固件到开发板后开机日志如下:

image.png

执行wifi status可以看到联网信息:

image.png

执行net inface可以看到更多的信息:

image.png

执行net ping可以测试网络情况:

image.png

【总结】

基于zephyr 的FRDM_RW612的联网,只需要配置相关的配置开关,即可跳过复杂的硬件配置,简单实现联网。




关键词: FRDMRW612     zephyr     联网    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]