使用ESP32、ESP8266入坑Alios-Things

阿里云iot有多个开发平台:

  • LinkDevelop
  • 生活开放平台
  • 管理控制台

等等,分别面向不同需求的嵌入式开发者,LinkDevelop平台相对更偏底层,而生活开放平台更产品化一些,管理控制台就更像一个大杂烩了。

开发准备

1. 拉取代码

git clone拉取https://github.com/alibaba/AliOS-Things开源代码。
这个git仓库下具有master、developer、release等多个分支,其间一些example文件夹差异非常大,如果你参照一些例程的时候发现手上的代码不一致,请用git branch查看自己处于哪个分支下。

2.搭建编译环境

  • 参照阿里云iot嵌入式开发准备官方文档 搭建编译下载环境。
    这里我使用的是ubuntu16.10操作系统,以及visual studio code(以下简称vscode)和alios-studio插件。

  • 点击左下角[email protected]修改对应工程名和芯片类型使用ESP32、ESP8266入坑Alios-Things
    linkkitapp指工程名,esp8266即是芯片类型。这里你可以将linkkitapp改为helloworld。

  • 注意:编译开始时,编译脚本会自动check你的环境变量中是否有相应的编译工具链,esp32:xtensa-esp32-elf;esp8266:xtensa-lx106-elf,但不会check工具链的版本。如果找到,将使用原来的工具链,否则自动下载工具链到./build/compiler文件夹下。如果你电脑上有比较老版本的交叉编译器,可能会导致编译失败,需要手动将环境变量中的交叉编译器暂时剔除,并让编译器自动下载最新版本。
    使用ESP32、ESP8266入坑Alios-Things

3.实现固件烧录

两种方式:

  1. 点击vscode的alios-studio插件中的闪电图标可以upload(烧录)固件。值得注意的是,默认的esp32和esp8266烧录都是4MB大小的固件,如果你的8266是1MB或者2MB的flash,那么需要到./build/site_scons/upload/esp8266.json中修改下载配置。
    以下为1MB的8266配置参数,2MB的flash分区可以参考乐鑫官方手册。
	{
    "cmd": [
        "esptool.py", 
        "--chip", 
        "esp8266", 
        "--port", 
        "@[email protected]", 
        "--baud", 
        "921600", 
        "write_flash", 
        "--flash_size", 
        "detect", 
        "0x0", 
        "@[email protected]/platform/mcu/esp8266/bsp/boot_v1.7_921600.bin", 
        "0xfc000", 
        "@[email protected]/platform/mcu/esp8266/bsp/esp_init_data_default.bin", 
        "0xfe000", 
        "@[email protected]/platform/mcu/esp8266/bsp/blank.bin", 
        "0x1000", 
        "@[email protected]/out/@[email protected]/binary/@[email protected]"
    ]
}

2.自行使用芯片对应烧录工具烧录,需要自行调整下载参数。效果一样。
对于esp系列芯片,ubuntu下可以使用esptool命令行,如:

esptool.py --chip esp32 --port $(ls /dev/ttyUSB*) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 /home/wangym/ali/AliOS-Things/platform/mcu/esp32/bsp/bootloader.bin 0x8000 /home/wangym/ali/AliOS-Things/platform/mcu/esp32/bsp/custom_partitions.bin 0x10000 /home/wangym/ali/AliOS-Things/out/[email protected]/binary/[email protected]

windows下可以使用官方工具ESPFlashDownloadTool。

4.连接模块

点击vscode中小插头图标可以连接设备查看打印日志,如果连失败,可能需要到setting中修改对应的串口设置。或者为你的用户增加串口使用权限。
使用ESP32、ESP8266入坑Alios-Things
settings.json决定了编译下载规则,launch.json决定了debug规则(有些芯片不具有上位机debug功能)。如果遇到问题,可能需要修改这里面的参数。
在alios默认生成的固件中,
esp32的log波特率:115200.
esp8266的log波特率:921600.

至此,可以愉快的体验其他demo工程了。