From 54a28abb4b0237f5f0e3f5c0cf33d5fa73b53faa Mon Sep 17 00:00:00 2001
From: flyingcys <294102238@qq.com>
Date: Fri, 22 Jun 2018 23:05:38 +0800
Subject: [PATCH] update drv_wifi.c
---
bsp/amebaz/README.md | 166 ++++++++++++++++++++
bsp/amebaz/drivers/drv_wifi.c | 11 +-
bsp/amebaz/project.ewp | 281 ++++++++++++++++++----------------
bsp/amebaz/template.ewd | 6 +-
bsp/amebaz/template.ewp | 6 +-
bsp/amebaz/tmp.board | 10 +-
6 files changed, 330 insertions(+), 150 deletions(-)
create mode 100644 bsp/amebaz/README.md
diff --git a/bsp/amebaz/README.md b/bsp/amebaz/README.md
new file mode 100644
index 0000000000..b376b8aeef
--- /dev/null
+++ b/bsp/amebaz/README.md
@@ -0,0 +1,166 @@
+# STM32F4xx-HAL 板级支持包
+
+## 1. 简介
+
+amebaz 是由Realtek推出的Cortex-M4内核的WiFi SOC芯片rtl8710b系列
+包括如下硬件特性:
+
+| 硬件 | 描述 |
+| -- | -- |
+|芯片型号| amebaz |
+|CPU| Cortex-M4 |
+|主频| 125MHz |
+
+## 2. 编译说明
+
+
+| 环境 | 说明 |
+| ------------ | ------------------------------------------------------------ |
+| PC操作系统 | Linux/MacOS/Windows |
+| 编译器 | arm-none-eabi-gcc version 6.3.1 20170620 (release)/iar |
+| 构建工具 | scons/iar |
+| 依赖软件环境 | Env工具/(IAR或arm-none-eabi-gcc)/git/调试器驱动 |
+
+1) 下载源码
+
+```bash
+ git clone https://github.com/RT-Thread/rt-thread.git
+```
+
+2) 配置工程并准备env
+
+(Linux/Mac)
+
+```bash
+ cd rt-thread/bsp/amebaz
+ scons --menuconfig
+ source ~/.env/env.sh
+ pkgs --upgrade
+```
+
+(Windows)
+
+>在[RT-Thread官网][1]下载ENV工具包
+
+3) 配置芯片型号
+
+(Linux/Mac)
+
+```bash
+ scons --menuconfig
+```
+
+(Windows(ENV环境中))
+
+```bash
+ menuconfig
+```
+
+在menuconfig页面配置并选择对应的芯片型号,若开发环境为IAR,则需要生成工程
+
+4) 下载package
+
+amebaz配套的驱动库以package形式提供,故需先下载对应的package(realtek-ameba),请使用env下载package
+
+```bash
+ pkgs --update
+```
+
+5) 生成工程(Mac/Linux下请跳过此步骤)
+
+(Windows IAR)
+
+```bash
+ SET RTT_CC=iar
+ scons --target=iar -s
+```
+
+*该板级支持包不支持生成mdk的工程
+
+
+6) 编译
+
+使用IAR请参见对应教程
+
+(Windows arm-none-eabi-gcc)
+使用以下指令设置gcc路径
+
+```bash
+ SET RTT_EXEC_PATH=[GCC路径]
+```
+
+(Linux/Mac arm-none-eabi-gcc)
+使用以下指令设置gcc路径
+
+```bash
+ export RTT_EXEC_PATH=[GCC路径]
+```
+
+编译(WindowsLinux/Mac arm-none-eabi-gcc)
+
+```bash
+ scons -j4
+```
+
+出现下列信息即为编译成功
+
+```bash
+LINK rtthread.axf
+arm-none-eabi-objcopy -j .ram_image2.entry -j .ram_image2.data -j .ram_image2.bss -j .ram_image2.skb.bss -j .ram_heap.data -Obinary rtthread.axf ram_2.r.bin
+arm-none-eabi-objcopy -j .xip_image2.text -Obinary rtthread.axf xip_image2.bin
+arm-none-eabi-objcopy -j .ram_rdp.text -Obinary rtthread.axf rdp.bin
+python gen_bin.py
+is_law = 1
+start = 10005000, end = 0, base = 10000000
+Input file size: 65852
+copy size 45372
+start = 10005000, end = 0, base = 10000000
+Input file size: 45372
+copy size 24892
+start = 0, end = 0, base = 0
+Input file size: 336816
+copy size 336816
+size = 361772
+checksum 209b36c
+'true' is not recognized as an internal or external command,
+operable program or batch file.
+Done...
+scons: done building targets.
+```
+
+如果编译正确无误,会产生image2_all_ota1.bin文件。
+
+## 3. 烧写及执行
+
+烧写可以使用仿真器 串口等多种方式 此处不再赘述
+
+### 3.1 运行结果
+
+如果编译 & 烧写无误,会在专用日志串口*上看到RT-Thread的启动logo信息:
+
+```bash
+ \ | /
+- RT - Thread Operating System
+ / | \ 3.0.4 build May 15 2018
+ 2006 - 2018 Copyright by rt-thread team
+msh />
+```
+
+*默认串口
+
+
+## 4. 驱动支持情况及计划
+
+| 驱动 | 支持情况 | 备注 |
+| ---------- | :------: | :--------------------------: |
+| UART | 支持 | UART0 |
+
+
+## 6. 联系人信息
+
+维护人:
+[flyingcys][4] < [flyingcys@163.com][5] >
+
+ [1]: https://www.rt-thread.org/page/download.html
+ [4]: https://github.com/flyingcys
+ [5]: mailto:flyingcys@163.com
diff --git a/bsp/amebaz/drivers/drv_wifi.c b/bsp/amebaz/drivers/drv_wifi.c
index 1da1644d7a..7c0366d6aa 100644
--- a/bsp/amebaz/drivers/drv_wifi.c
+++ b/bsp/amebaz/drivers/drv_wifi.c
@@ -33,6 +33,9 @@
//#define ETH_TX_DUMP
//#define MINI_DUMP
+struct sk_buff * rltk_wlan_get_recv_skb(int idx);
+struct sk_buff * rltk_wlan_alloc_skb(unsigned int total_len);
+
#define MAX_ADDR_LEN 6
struct ameba_wifi
@@ -217,9 +220,9 @@ struct netif *rltk_wlan_get_netif(int idx)
struct netif *netif;
if(idx == 0)
- netif = &wifi_sta.parent.parent.netif;
- else if(idx = 1)
- netif = &wifi_ap.parent.parent.netif;
+ netif = wifi_sta.parent.parent.netif;
+ else if(idx == 1)
+ netif = wifi_ap.parent.parent.netif;
return netif;
}
@@ -356,7 +359,7 @@ rt_err_t rt_ameba_wifi_control(rt_device_t dev, int cmd, void *args)
{
int *channel = (int *)args;
- channel = amebaz_wifi_get_channel();
+ *channel = amebaz_wifi_get_channel();
}
break;
diff --git a/bsp/amebaz/project.ewp b/bsp/amebaz/project.ewp
index 2228f6cedf..adb68dc096 100644
--- a/bsp/amebaz/project.ewp
+++ b/bsp/amebaz/project.ewp
@@ -313,50 +313,51 @@
CCIncludePath2
$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\api
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\drivers\wlan\realtek\wlan_ram_map\rom
$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\include\lwip
$PROJ_DIR$\..\..\components\libc\compilers\dlib
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\network\ssl\ssl_ram_map\rom
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\api
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\drivers\wlan\realtek\wlan_ram_map\rom
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\api\platform
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\api\wifi
- $PROJ_DIR$\..\..\components\drivers\include
- $PROJ_DIR$\..\..\libcpu\arm\common
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\os\freertos
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\os\os_dep\include
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\drivers\wlan\realtek\include
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\network\ssl\polarssl-1.3.8\include
- $PROJ_DIR$\drivers
- $PROJ_DIR$\app_wifi
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\misc
- $PROJ_DIR$\.
- $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\include
- $PROJ_DIR$\..\..\libcpu\arm\cortex-m4
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\hal
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\fwlib\include
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\app\monitor\include
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\swlib\std_lib\include
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\swlib\std_lib\libc\rom\string
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\hal_ext
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\api
- $PROJ_DIR$\packages\realtek_ameba\RT-Thread
- $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\include\netif
- $PROJ_DIR$\packages\realtek_ameba\RT-Thread\realtek\8711b\include
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\os\freertos\freertos_v8.1.2\Source\include
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\api\wifi\rtw_wpa_supplicant\src
- $PROJ_DIR$\applications
- $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\include\ipv4
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\cmsis
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\swlib\rtl_lib
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\os\freertos\freertos_v8.1.2\Source\portable\IAR\ARM_CM4F
- $PROJ_DIR$\..\..\components\finsh
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\misc
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\api\platform
+ $PROJ_DIR$\packages\realtek_ameba-latest\rtthread_patch
+ $PROJ_DIR$\packages\realtek_ameba-latest\rtthread_patch\realtek\8711b\include
$PROJ_DIR$\..\..\include
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\drivers\wlan\realtek\src\osdep
- $PROJ_DIR$\packages\realtek_ameba\RT-Thread\os
- $PROJ_DIR$\packages\realtek_ameba\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\cmsis\device
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\app\monitor\include
+ $PROJ_DIR$\..\..\libcpu\arm\common
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\os\os_dep\include
+ $PROJ_DIR$\..\..\components\drivers\include
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\os\freertos\freertos_v8.1.2\Source\include
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\api\wifi\rtw_wpa_supplicant\src
+ $PROJ_DIR$\drivers
+ $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\include\netif
+ $PROJ_DIR$\..\..\libcpu\arm\cortex-m4
+ $PROJ_DIR$\.
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\drivers\wlan\realtek\include
+ $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\include
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\cmsis\device
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\swlib\std_lib\libc\rom\string
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\hal
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\hal_ext
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\os\freertos
+ $PROJ_DIR$\applications
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\network\ssl\polarssl-1.3.8\include
+ $PROJ_DIR$\drivers\wlan
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\os\freertos\freertos_v8.1.2\Source\portable\IAR\ARM_CM4F
+ $PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\include\ipv4
+ $PROJ_DIR$\..\..\components\finsh
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\cmsis
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\swlib\rtl_lib
+ $PROJ_DIR$\packages\realtek_ameba-latest\rtthread_patch\os
+ $PROJ_DIR$\..\..\components\drivers\wlan
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\fwlib\include
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\drivers\wlan\realtek\src\osdep
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\network\ssl\ssl_ram_map\rom
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\soc\realtek\8711b\swlib\std_lib\include
$PROJ_DIR$\..\..\components\net\lwip-1.4.1\src\arch\include
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\api\wifi
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\api
+ $PROJ_DIR$\packages\realtek_ameba-latest\sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\component\common\mbed\targets\hal\rtl8711b