本文介绍如何搭建开发环境和基于SDK编译固件。

准备开发环境

建议您在64位Ubuntu下搭建设备端SDK的开发环境,并使用vim编辑代码。以下为基于Ubuntu环境开发和编译SDK时需要用到的库和依赖包,请您按顺序执行命令来安装。

  • 安装程序运行时库

    Ubuntu(版本16.04 X64)

    sudo apt-get update
    sudo apt-get -y install libssl-dev:i386
    sudo apt-get -y install libncurses-dev:i386
    sudo apt-get -y install libreadline-dev:i386
  • 安装依赖软件包

    Ubuntu(版本16.04 X64)

    sudo apt-get update
    sudo apt-get -y install git wget make flex bison gperf unzip
    sudo apt-get -y install gcc-multilib
    sudo apt-get -y install libssl-dev
    sudo apt-get -y install libncurses-dev
    sudo apt-get -y install libreadline-dev
    sudo apt-get -y install python python-pip
  • 安装Python packages
    python -m pip install setuptools
    python -m pip install wheel
    python -m pip install aos-cube
    python -m pip install esptool
    python -m pip install pyserial
    python -m pip install scons

编译SDK 1.3.0及以上

  1. 在开发环境中解压下载的SDK压缩包。
  2. 将开发的业务代码存放到SDK相应的目录下。
    • 如果您基于V1.3.0以上版本开发设备固件,可以将开发的代码存放到Products/品类目录/应用名/…下(例如Products/example/smart_outlet为单路智能插座参考实现)。

      SDK V1.3.0及以上版本的详细目录结构如下图所示。

      目录结构
    • SDK V1.3.0及以上版本与SDK V1.1.0之前版本的目录对比如下。目录机构对比
  3. 编译SDK。
    1. 在SDK根目录,执行vim build.sh命令打开build.sh文件。
    2. 根据硬件使用的模组型号和要编译的应用,修改文件中的如下参数。
      产品类型:default_type="example"
      应用名称:default_app="smart_outlet"
      模组型号:default_board="uno-91h"
      连云区域:default_region=SINGAPORE //V1.5.0及以下版本:设备在中国内地激活配置为MAINLAND,其余地区激活配置为SINGAPORE;
                                        //V1.6.0及以上版本:配置为MAINLAND或SINGAPORE都可以,设备可以全球范围内激活
      连云环境:default_env=ONLINE
      Debug log:default_debug=0
      其他参数:default_args=""     //可配置其他编译参数
      
      //更多介绍请参见README.md
      配置示例
    3. 执行./build.sh命令。

      以基于uno-91h模组编译smart_outlet应用为例,编译完成后,在out\smart_outlet@uno-91h\目录下会生成smart_outlet@uno-91h_all.bin文件。该文件为需要烧录到真实设备中的固件。

说明 : build.sh 脚本会自动判断指定模组的toolchain是否已经安装,如果没有安装,脚本会自动安装。

编译SDK 1.1.0以及之前版本

如果您仍基于V1.1.0或者V1.0.0版本(原天猫精灵Wi-Fi SDK)开发设备固件,请参考如下介绍。

  1. 在开发环境中解压下载的SDK压缩包。
  2. 将开发的业务代码存放到SDK相应的目录下。
    • 可以将开发的代码存放到example/应用名/下,如您基于linkkitapp开发,即把新增加的代码合入example/linkkitapp目录。
  3. 编译SDK
    1. 以mk3060模组为例,如果是第一次编译,在SDK根目录,执行编译如下命令,会自动安装指定模组的toolchain。
      aos make helloworld@mk3060
    2. 如已经安装toolchain,在SDK根目录,执行编译如下命令。
      aos make linkkitapp@mk3060

      编译完成后,在out\linkkitapp@mk3060\binary目录下会生成linkkitapp@mk3060_crc.bin文件。该文件为需要烧录到真实设备中的固件。