ESP8266_RTOS_SDK编译烧写与运行

来源:互联网 发布:ubuntu阻塞脚本自启动 编辑:程序博客网 时间:2024/05/18 13:48
--作者:燕十三(flyingcys)
-- blog:http://blog.csdn.net/flyingcys
--QQ:294102238
ESP8266内置Tensilica L106,32位卫星MCU,具有超低功耗的16位RSIC。CPU时钟速度为80MHZ,最高可达160MHZ,并支持实时RTOS操作系统。
官方SDK分NON-OS版本和RTOS版,RTOS版SDK采用的是FreeRTOS实时操作系统与Lwip网络协议栈。使用RTOS进行开发有很多NON-OS版本无法体会的好处,所以我们使用强烈推荐使用ESP8266_RTOS_SDK。

一、SDK下载与编译

1.下载ESP8266官方sdk:本次测试使用的是带RTOS版本的SDK,下载地址为
https://github.com/espressif/ESP8266_RTOS_SDK,当前最新版本为1.5.0。
2.官方SDK自带的示例程序位于“examples”目录下

 


3.进入“example”->“wifi_station_machine_demo”,编辑“gen_misc.sh”脚本文件


修改“SDK_PATH”及“BIN_PATH”为当前SDK所在目录(请按照SDK下载目录自行修改)
export SDK_PATH=~/Desktop/ESP8266_RTOS_SDK
export BIN_PATH=~/Desktop/ESP8266_RTOS_SDK/bin


其中BIN_PATH为编译完成后烧写bin文件所在目录
4.运行编译
在“wifi_station_machine_demo”目录下运行./gen_misc.sh
在提示“Please check SDK_PATH & BIN_PATH, enter (Y/y) to continue:”后输入Y
在提示“STEP 2: choose bin generate”后输入:1,选择“1=user1.bin”
在提示“STEP 3: choose spi speed”后输入:2,选择“2=40MHz”
在提示“STEP 4: choose spi mode”后输入:0,选择“0=QIO”
在提示“STEP 5: choose spi size and map”后输入:选择6,选择
“6=4096KB(1024KB+1024KB)”
以上设置须根据硬件实际使用的flash大小选择,而且与下载设置有关系,错误的选择将导致ESP8266无法正常运行程序。以上设置基于最新的ESP-12F模块
完成以上设置后,如之前交叉编译器设置正常,就开始编译,直至编译完成。编译成功后,可看到如下提示:


当前编译后应用文件名为user1.4096.new.6.bin,位于SDK根目录下bin/upgrade目录,烧写地址为0x1000。Boot文件名为boot.bin,烧写地址为0x0000。

二、烧写与运行

ESP8266只能通过串口下载,使用的工具为:flash_download_tools_v3.4.4_0,该软件同时支持EPS8266/ESP8285/ESP32下载,我们选择的是ESP8266


下载该软件请至官网:http://www.espressif.com/zh-hans/support/download/other-tools下载。
我们测试的开发板是ESP-12F模块做成的开发板,下载设置如下:
step1:选择烧写文件
boot_v1.6.bin:主程序启动(0x0000)
user1.4096.new.6.bin:我们自己编译出来的示例应用(0x1000)
blank.bin:初始化RF_CAL参数区(0x3FB000)
esp_init_data_default.bin:初始化其他射频参数区,至少烧录一次。当RF_CAL参数区初始化烧录时,该文件也需要烧录。(0x3FC000)


step2:SPI Flash设置:该设置与实际硬件及编译时编译选项对应


step3:串口及波特率设置:根据串口号及波特率选择,为提高下载速度推荐波特率为1152000
step4:让ESP-12F硬件进入boot下载模式,点击“START”按钮开始下载


下载开始后,可以看到软件显示当前ESP8266模块MAC地址及下载进度条。否则请检查硬件是否处于boot下载模式下。


step5:ESP8266运行
重新复位后,ESP8266从boot下载模式进入运行状态,可看到运行日志,ESP8266已正常工作。


特别注意,ESP8266调试串口默认波特率为74880,否则输出日志为乱码。
如为ESP8266未正常运行示例程序,请检查以上每一步是否出错!
0 0