RDA5981开发环境搭建

        最近有商家在卖带有CC2530 Zigbee模块的板子(电子垃圾),我对Zigbee还不是特别感冒(没时间研究),倒是看中了同一个板子上的RDA5981模块。我这个人有个特点,没有研究明白的东西,不会轻易出手。所以我这两天在搭RDA5981开发环境。结果环境搭好了,板子已经卖光了。只能希望卖家还会补货吧,^-^。但辛苦不能白辛苦,还是记录一下。

板子如下:

5e70b2dba4354221a7201984531cc91e.jpeg

 

前言

        RDA介绍

        RDA5981是一款全集成低功耗的WiFi芯片,支持802.11 b/g/n HT20/40模式。RDA5981内部集成了ARM CortexM4,为开发者提供了高容量可配置的芯片可用内存(SRAM)同时也支持外置PSRAM,以及一组扩展接(I2S/UART/PWM/I2C/SDMMC/USB2.0/SDIO等),可以直接与传感器、片外Codec等相连接。

        这是网上查到的关于RDA5981的介绍资料,当年也是意气风发,不知现在怎么样了。因为锐迪科的官网无法登录,好像是因为没备案,所以也就无法获得一手资料。

        后来看到

        DuerOS开放平台 | 资源中心

        这是百度的平台,平台介绍的是RDA5991,应该都差不多。RDA5981这些芯片是百度和锐迪科合作开发的。


 

一、为什么写本文

        1、网上有很多RDA5981开发环境搭建的教程。但是事过境迁,现在的系统环境已不是当年的环境,直接照搬该掉坑还是会掉的。

        2、官方的资料始终没有更新,并且不怎么好用。

        3、还有记录一下算是备忘。过两年可能也不适用了。

二、搭建步骤

步骤参考:RDA5981开发环境安装

1.安装KEIL MDK(为了用keil中的C编译工具)

        步骤略。

        将”*:\***\ARM\ARMCC\bin“加到windows环境变量里。(*视KEIL按照位置而定)

2.GCC-ARM交叉编译安装(为了用GCC编译工具)

1.从 Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer 下载gcc-arm-none-eabi-10.3-2021.10-win32.exe就可以,不要下最新的。

2.安装到最后一步,注意要选择添加环境变量。否则就要手动添加环境变量,如下:

*:\**\GNU Arm Embedded Toolchain\10 2021.10\bin(*视GCC-ARM按照位置而定)

3.Python安装

1.从 https://www.python.org/downloads/windows/ 下载2.7版本.

2.添加环境变量

**\Python27\Scripts;**\Python27(*视python按照位置而定)

如果已经安装了高版本python怎么办?在环境里将python27的路径放在其他python版本之前,这样系统会先执行python2.7

4.Mercurial安装(感觉可以不装,最好都装上)

1.从 https://www.mercurial-scm.org/ 下载最新版本。

2.安装时要注意选择添加环境变量。否则手动添加环境变量,如下:

**\Mercurial(*视Mercurial安装位置而定)

5.pip指令安装组件

1.升级pip版本:

python -m pip install --upgrade pip

2.安装mbed-cli(RDA5981开发基于mbed)

pip install mbed-cli 安装 mbed-cli工具

3.安装git(感觉可以不装,最好都装上)

pip install git

4.安装SDK相关依赖:(SDK获取见后文)

将SDK中的requirements.txt 
        project-generator==0.9.10

改成

        project-generator>=0.9.10
然后在RDA5981的SDK目录下执行:

pip install -r requirements.txt 

4.设置编译器路径,ARMCC路径是按照位置而定

mbed config --global ARM_PATH C:/Keil_v5/ARM/ARMCC 

执行完,可以用mbed config --list 看设置情况

5.编译命令:

对于win7用ARM就可以执行成功:

mbed compile -m UNO_91H -t ARM --source TESTS/TARGET_RDA/timer/ --source ./ 

对于win10要用GCC_ARM,

mbed compile -m UNO_91H -t GCC_ARM --source TESTS/TARGET_RDA/timer/ --source ./ 

  我遇到的情况是这样的:win7用KEIL ARM下的C语言编译工具就可以;win10要用GCC_ARM中的C编译工具,否则报错。

其中各参数选项含义: 
 -m 指定 MCU Target 名称 
 -t 指定编译器工具链 
 --source 指定参与编译的源码目录 
 -c 编译前 clean BUILD 目录 
编译完成后将产生文件:.\BUILD\UNO_91H\ARM\timer.bin,可以将其烧录到硬件板卡 Flash
中运行

6.安装Msys2(windows 下的linux命令环境,官方第一步就安装这个,也可以不安装): (替代windows命令行)
下载地址: www.msys2.org 

安装完在windows系统变量中增加一个变量名:MSYS2_PATH_TYPE,变量值:inherit

这样Msys2就可以获得windows的环境变量,可以在msys2执行windows中python,pip,git,hg,gcc,arm中的命令。

6.获得RDA5981SDK

官方网站上不去,所以上github搜到一个:GitHub - Edragon/RDA-RDA5981

其中的RDA5981_SDK_MbedOS515_V1.3.5应该是比较新的SDK,编译的时候把其中的”测试模式 SDK V1.3.5“删掉,否则报错。

三、总结

1、mbed是个好东西,代码量很少就可以实现很多功能。

2、同时安装keil arm和gcc arm是因为总有一款适合你。

3、git和Mercurial是mbed需要的。

4、python依赖库好多版本太低了,需要改下版本。

5、python必须2.7。

6、pip最好升级到尽可能高的版本。

7、GCC-ARM 不用高版本,10版本够了。

8、注意加环境变量,PATH

9、一些命令:

python --version

pip --version

mbed --version

mbed config --list

msys2下:echo $PATH

 

 

目前为止,我还没有得到RDA5981这个模块,因此经验有限,如果安装有什么问题就当我没说^-^