使用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]修改对应工程名和芯片类型
linkkitapp指工程名,esp8266即是芯片类型。这里你可以将linkkitapp改为helloworld。 -
注意:编译开始时,编译脚本会自动check你的环境变量中是否有相应的编译工具链,esp32:xtensa-esp32-elf;esp8266:xtensa-lx106-elf,但不会check工具链的版本。如果找到,将使用原来的工具链,否则自动下载工具链到./build/compiler文件夹下。如果你电脑上有比较老版本的交叉编译器,可能会导致编译失败,需要手动将环境变量中的交叉编译器暂时剔除,并让编译器自动下载最新版本。
3.实现固件烧录
两种方式:
- 点击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中修改对应的串口设置。或者为你的用户增加串口使用权限。
settings.json决定了编译下载规则,launch.json决定了debug规则(有些芯片不具有上位机debug功能)。如果遇到问题,可能需要修改这里面的参数。
在alios默认生成的固件中,
esp32的log波特率:115200.
esp8266的log波特率:921600.
至此,可以愉快的体验其他demo工程了。