Wi-Fi Zephyr 架构
Wi-Fi Zephyr 的架构如下图所示:
Wi-Fi Zephyr 文件目录
├─ zephyr/drivers/wifi/ameba/src
│ ├─ ameba_wifi_drv.c
│ └─ ameba_wifi.h
├─ modules/hal/realtek/ameba/common/wifi/source
│ ├─ ameba_wificfg.c
│ ├─ api
│ │ ├─ wifi_ind.c
│ │ └─ wifi_init_zephyr.c
│ ├─ common
│ │ ├─ rom_rtw_queue.c
│ │ ├─ rtw_atomic.c
│ │ └─ rtw_wakelock_zephyr.c
│ └─ inic/ipc
│ ├─ inic_ipc_msg_queue.h
│ ├─ inic_ipc_msg_queue.c
│ ├─ inic_ipc_host_zephyr.h
│ ├─ inic_ipc_host_zephyr.c
│ ├─ inic_ipc_host_trx.h
│ ├─ inic_ipc_host_trx.c
│ ├─ inic_ipc_host_api_ext.c
│ ├─ inic_ipc_host_api_basic.c
│ ├─ inic_ipc_host_api.c
│ ├─ inic_ipc_host.c
│ ├─ inic_ipc.h
│ └─ inic_ipc_cfg.h
├─ zephyr/drivers/wifi/ameba/src
│ ├─ ameba_wifi_drv.c
│ └─ ameba_wifi.h
├─ modules/hal/realtek/ameba/common/wifi/source
│ ├─ ameba_wificfg.c
│ ├─ api
│ │ └─ wifi_init_zephyr.c
│ └─ common
│ ├─ rom_rtw_queue.c
│ ├─ rtw_atomic.c
│ ├─ rtw_wakelock_zephyr.c
│ └─ wifi_feature_dis_antdiv.c
├─ modules/hal/realtek/ameba/amebad/lib
│ ├─ lib_wifi_api.a
│ ├─ lib_wifi_com_sec.a
│ ├─ lib_wifi_single_core.a
│ └─ lib_wpa_lite.a
Wi-Fi Zephyr 特点
Features |
Zephyr |
---|---|
Wi-Fi API |
Zephyr Wi-Fi APIs |
Wi-Fi mode |
|
Wi-Fi security |
|
Wowlan |
TBD |
Wi-Fi Zephyr 指南
必须使能的宏:
CONFIG_WIFI=y
CONFIG_NET_L2_ETHERNET=y
CONFIG_NET_UDP_CHECKSUM=y
CONFIG_REALTEK_AMEBA_HAL_LIB=y
CONFIG_REALTEK_AMEBA_ZEPHYR_WIFI=y
CONFIG_WLAN=y
CONFIG_REALTEK_AMEBA_WIFI_INIC=n
CONFIG_ETH_DRIVER=y
CONFIG_ETH_PHY_DRIVER=y
CONFIG_NET_DHCPV4=y
CONFIG_WIFI_AMEBA=y
CONFIG_NETWORKING=y
CONFIG_NET_L2_WIFI_SHELL=y
CONFIG_NET_L2_WIFI_MGMT=y
CONFIG_NET_IPV4=y
CONFIG_NET_SHELL=y
CONFIG_NET_UDP=y
CONFIG_NET_MGMT=y
CONFIG_NET_DHCPV4_SERVER=y # 用于 SoftAP 模式
CONFIG_NET_IF_MAX_IPV4_COUNT=2
CONFIG_NET_TCP=y
CONFIG_NET_LOG=y
CONFIG_ENTROPY_GENERATOR=y
CONFIG_TEST_RANDOM_GENERATOR=y # 用于测试
zperf 测试需要的宏:
CONFIG_NET_ZPERF=y
CONFIG_NET_SOCKETS=y
CONFIG_NET_SOCKETS_SERVICE_THREAD_PRIO=-1
CONFIG_NET_SOCKETS_POLL_MAX=12
CONFIG_POSIX_API=y
CONFIG_NET_CONFIG_SETTINGS=y
# 用于 zperf 中的 TCP 吞吐量测试
CONFIG_NET_PKT_RX_COUNT=40
CONFIG_NET_PKT_TX_COUNT=40
CONFIG_NET_BUF_RX_COUNT=160
CONFIG_NET_BUF_TX_COUNT=160
CONFIG_NET_BUF_DATA_SIZE=256
编译命令:
在路径 {sdk}
下,执行以下命令:
./nuwa.py build -a applications/thread -d rtl872xd_evb -p
烧录固件:
固件位于路径 {sdk}/images
下 ,包括以下文件:
bootloader_all.bin
km0_km4_app.bin
必须使能的宏:
CONFIG_NET_L2_ETHERNET=y
CONFIG_NET_IPV6=y
CONFIG_NET_UDP_CHECKSUM=y
CONFIG_REALTEK_AMEBA_HAL_LIB=y
CONFIG_REALTEK_AMEBA_ZEPHYR_WIFI=y
CONFIG_WLAN=y
CONFIG_AS_INIC_AP=y
CONFIG_SINGLE_CORE_WIFI=n
CONFIG_REALTEK_AMEBA_WIFI_INIC=y
CONFIG_ETH_DRIVER=y
CONFIG_ETH_PHY_DRIVER=y
CONFIG_NET_DHCPV4=y
CONFIG_WIFI_AMEBA=y
CONFIG_NETWORKING=y
CONFIG_NET_L2_WIFI_SHELL=y
CONFIG_NET_L2_WIFI_MGMT=y
CONFIG_NET_IPV4=y
CONFIG_NET_SHELL=y
CONFIG_NET_UDP=y
CONFIG_NET_MGMT=y
CONFIG_NET_DHCPV4_SERVER=y # for softap mode
CONFIG_NET_IF_MAX_IPV4_COUNT=2
zperf 测试需要的宏:
CONFIG_NET_ZPERF=y
CONFIG_NET_SOCKETS=y
CONFIG_NET_SOCKETS_SERVICE_THREAD_PRIO=-1
CONFIG_NET_SOCKETS_POLL_MAX=12
CONFIG_POSIX_API=y
CONFIG_NET_CONFIG_SETTINGS=y
#for tcp tp in zperf
CONFIG_NET_PKT_RX_COUNT=40
CONFIG_NET_PKT_TX_COUNT=40
CONFIG_NET_BUF_RX_COUNT=160
CONFIG_NET_BUF_TX_COUNT=160
CONFIG_NET_BUF_DATA_SIZE=256
编译命令:
在路径 {sdk}
下,执行以下命令:
./nuwa.py build -a applications/thread -d rtl872xda_evb -p
烧录固件:
固件位于路径 {sdk}/images
下,包括以下文件:
km4_boot_all.bin
km0_km4_app.bin
Wi-Fi Zephyr API
Wi-Fi Shell 层
命令格式 |
功能描述与参数说明 |
---|---|
wifi scan |
扫描周边无线网络 |
wifi connect |
连接指定 AP
|
wifi disconnect |
断开当前无线连接 |
wifi ap enable |
启用 SoftAP 模式
|
wifi ap disable |
关闭 SoftAP 模式 |
Net Shell 层
命令格式 |
功能描述与参数说明 |
---|---|
net ping <dst_ip> |
执行 ICMP 网络连通性测试 |
net iface |
显示所有网络接口状态信息 |
net dhcpv4 server start <2> <base_ip> |
启动 DHCPv4 服务器
|
net dhcpv4 server stop <2> |
停止 DHCPv4 服务 |
net dhcpv4 server status |
查看 DHCP 服务器运行状态 |
net arp |
显示当前 ARP 缓存表内容 |
zperf Shell 层
命令格式 |
功能描述与参数说明 |
---|---|
zperf setip <my_ip> |
设置本地 IP 地址 |
zperf tcp upload <dst_ip> <port> <sec> <size>[K/M] |
启动 TCP 上传测试 示例: |
zperf tcp download <port> <host> |
启动 TCP 下载测试 示例: |
zperf udp upload <dst_ip> <port> <sec> <size>[K/M] |
启动 UDP 上传测试 示例: |
zperf udp download <port> <host> |
启动 UDP 下载测试 示例: |
Wi-Fi Zephyr 吞吐量
测试项目 |
带宽(20M) |
---|---|
TCP TX |
|
TCP RX |
|
UDP TX |
|
UDP RX |
测试项目 |
带宽(20M) |
---|---|
TCP TX |
|
TCP RX |
|
UDP TX |
|
UDP RX |