RDA5981 SDK
开发手册
说明:版本为本文档的版本,SDK 版本为 SDK 的版本。
更新记录:
日期
版本
SDK 版本
摘要
2017-02-20
2017-05-21
2017-06-02
2017-06-10
2017-07-11
1.00
1.10
1.11
1.12
1.13
1.10
1.20
1.21
创建
增加 features、test case、资料和 DEMO 板介绍。
增加 features、test case 介绍。
1.22~1.23 增加 I2S test case 说明。
1.24
增加 USB 相关 feature 与 case。
http://bbs.rdamicro.com
目 录
1 SDK 介绍 ..........................................................................................1
2 Windows 开发环境 .............................................................................2
3
4
features 介绍 ......................................................................................5
test case 介绍 .....................................................................................9
5 资料介绍 ......................................................................................... 11
6 DEMO 板介绍 ................................................................................. 12
II
http://bbs.rdamicro.com
1 SDK 介绍
RDA5981 SDK 目录:
1、WiFi Stack
目录 features/FEATURE_LWIP 为 WiFi Stack + LWIP,实现 WLAN 和 TCP/IP 联网功能。
2、HAL
目录 hal/targets/TARGET_RDA 为硬件虚拟层,其中包括各外设底层驱动。
3、RTX
目录 rtos 是 ARM 公司提供的 CMSIS-RTOS RTX 源码,是一个基于时间片和优先级的实时 OS。
4、features
目录 features/TARGET_RDA 下提供 RDA5981 的一些
5、Test Case
目录 TESTS/TARGET_RDA 包含了若干针对 RDA5981 的测试用例,可以对外设和协议栈分别
进行测试。
1
http://bbs.rdamicro.com
2 Windows 开发环境
Windows 开发环境需要预先安装以下软件:
Kei MDK (>= 5.17)
Python (2.7.10)
除此之外,建议使用命令行工具 Msys2,更方便地进行编译。下面将详细介绍如何配置 mbed 编译
环境。
1、 下载安装 Msys2:
官网: www.msys2.org
根据需要下载相应版本并安装。
2、 安装配置 mbed-cli 命令行工具
假设 Keil MDK 和 Python 安装目录分别为:C:/Keil_v5 与 C:/Python27
将路径 C:/Python27 和 C:/Python27/Scripts 添加到系统环境变量 PATH
打开 msys2 软件,执行 python --version 和 pip --version 保证 python 工具可用
执行 pip install mbed-cli 安装 mbed-cli 工具,安装完成后执行 mbed --version 保证工具可用
2
http://bbs.rdamicro.com
执行 pip install -r [SDK 根目录]/requirements.txt 安装其他编译相关的工具
执行 mbed config --global ARM_PATH C:/Keil_v5/ARM/ARMCC 设置编译器路径
3、 编译 SDK
SDK 中包含若干 test case,以 timer 为例,需要在 SDK 根目录执行编译命令:
mbed compile -m UNO_91H -t ARM --source TESTS/TARGET_RDA/timer/ --source ./
其中各参数选项含义:
-m 指定 MCU Target 名称
-t 指定编译器工具链
--source 指定参与编译的源码目录
-c 编译前 clean BUILD 目录
编译完成后将产生文件:.\BUILD\UNO_91H\ARM\timer.bin,可以将其烧录到硬件板卡 Flash
中运行。
4、 烧录 bin 文件
首先在我司 bbs 上下载“RDA5981 单口下载工具”,地址为:
http://bbs.rdamicro.com/forum.php?mod=viewthread&tid=108&extra=page%3D1
将 DEMO 板通过 USB 转串口数据线连接至 PC,并记录下对应的 COM 编号。连接时只需
要连接上 DEM O 板上的 TXD、RXD 和 GND 三个引脚,不同 DEM O 板的引脚位置不同,
将在后文中说明。
将下载下来的“RDA5981 单口下载工具”解压,运行其中的 flashtest.exe,如下图所示。在
“Port”处选择上一步中对应 COM 编号,在“BinFile”处选择要烧录的 bin 文件。点击下
载工具右上角的“Start”按钮,DEMO 板上电后按一下 RST 按键后开始下载,下载成功后
会显示“Download finish”。
3
http://bbs.rdamicro.com
5、 查看 trace
我们推荐使用 SecureCRT、Xshell 等终端查看 trace。目前默认的输出波特率为 921600bps,如果
要改成其它的波特率,请修改 SDK 根目录下 mbed_lib.json 文件中“stdio-baud-rate”项的值,
如下图所示。该值是全局有效的的,请使用 921600、460800、230400、115200 等常见值。
4
http://bbs.rdamicro.com
3 features 介绍
1、features 简介
mbed 将部分功能以 feature 的形式提供出来,用户可以自由选择使用所需要的功能,而不必将
不需要的功能编译也一起编译。目前主要有以下几个 feature:
FEATURE_LWIP:WiFi Stack + LWIP,实现 WLAN 和 TCP/IP 联网功能。
FEATURE_CONSOLE:控制台功能,可以执行用户通过终端输入的指令,用户也可以以此为
基础扩展自己的指令。
FEATURE_ GPADCKEY:GPADC KEY 功能,目前我们的 DEMO 板上提供了 6 个 KEY 供用户
使用。
FEATURE_SDCARD:SD Card + FAT32 fs,只支持英文。
FEATURE_SDCARD_GBK:同上,支持中文和英文。
FEATURE_SDCARD_EXFAT:SD Card + exFAT fs,只支持英文。
FEATURE_SPIRAM:PSRAM 功能,采用 SPI 接口。
FEATURE_USBHOST_MSD:USB HOST 功能。
FEATURE_USBDEVICE_MSD:USB DEVICE 功能。
2、添加 features 至工程
要使用某个 feature,需要将该 feature 的关键字加入到工程对应的 mbed_app.json 文件中。以
FEATURE_SDCARD 为例,TESTS/TARGET_ RDA/sdcard_sdmmc 这个 test case 是一个简易的读写
SD Card 的 case,打开这个 case 下的 mbed_app.json 文件,可以看到如下内容:
{
"target_overrides": {
"UNO_91H": {
"target.features_add": ["SDCARD"]
}
}
}
如果这个 case 同时要使用 ADC KEY 的功能,那么只需要将"target.features_add": ["SDCARD"]
修改为"target.features_add": ["SDCARD", "GPADCKEY"],增加其它的 feature 方法相同。
5
http://bbs.rdamicro.com
3、FEATURE_LWIP 的使用
FEATURE_LWIP 包括我们的 Wifi Stack 和 LWIP 协议栈,实现 WLA N 和 TCP/IP 联网功能。请
用户在阅读此处的同时参考 wifistack 这个 case。
首先要#include "WiFiStackInterface.h"这个头文件。
声明类 WiFiStackInterface 的对象,WiFiStackInterface 为提供了一套 C++ API,以支持 WIFI
设备连接 Internet。
WiFiStackInterface wifi;
连接 AP,假设 SSID 为"a",PWD 为"qqqqqqqq"。
wifi.connect("a", "qqqqqqqq", NSAPI_SECURITY_NONE);
其他操作,如获取 IP 地址,MAC 地址,断开连接等操作,请参阅 mbed-os APIreference。
4、FEATURE_CONSOLE 的使用
我们为用户提供了一个基本的控制台功能,请用户阅读此处的同时参考 console 这个 case。
首先要#include "console.h"这个头文件。
初始化一个 cmd_tbl_t 类型的变量,cmd_tbl_t 是一个结构体,起定义如下:
typedef struct cmd_tbl_s {
char *name; /* Command Name */
int maxargs; /* maximum number of arguments */
int (*cmd)(struct cmd_tbl_s *, int, char *[]);
char *usage; /* Usage message(short)*/
} cmd_tbl_t;
下面我们定义了一个 c md_tbl_t 类型的变量 echo_cmd,其命令的名称为"echo",即用户在
终端输入的命令。该命令的回调函数为 uart_echo_func,入参数量为 3,命令的说明为"echo
len - echo uart data with len\r\n"。
cmd_tbl_t echo_cmd = {
"echo", 3, uart_echo_func,
"echo len - echo uart data with len\r\n"
};
初始化 console。
console_init();
6