ESP8266系列-资料收集


ESP8266 通用系类

安信可科技: http://wiki.ai-thinker.com/esp8266
Jack’s LAB: http://wiki.jackslab.org/ESP8266
乐鑫论坛: http://bbs.espressif.com/index.php

ESP8266 Lua系列

NodeMCU: https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_cn
泰晓科技: http://tinylab.org/nodemcu-kickstart/
NodeMcu Docs: [http://nodemcu.readthedocs.io/en/dev/] 6

ESP8266 常见问题

上电输出以下信息

ets Jan  8 2013,rst cause:1, boot mode:(3,6)

In the bootup message ‘boot mode:(x,y)’ three low bits of x are {MTDO, GPIO0, GPIO2}.

The Espressif code can boot in different modes, selected on power-up based on GPIO pin levels. (MTDO is equivalent to GPIO15).

MTDO GPIO0 GPIO2 Mode Description
L L H UART Download code from UART
L H H Flash Boot from SPI Flash
H x x SDIO Boot from SD-card

ESP8266 datasheet

https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_cn.pdf

02D datasheet

https://www.espressif.com/sites/default/files/documentation/esp-wroom-02d_esp-wroom-02u_datasheet_cn.pdf

02D 引脚图

upload successful

ESP8266 IDF-SDK 文档

https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/api-reference/index.html

ESP8266 低功耗文档说明

https://www.espressif.com/sites/default/files/documentation/9b-esp8266-low_power_solutions_cn.pdf

用脚本命令生成合成固件

if [ $GAT_FLASH_SIZE == 08Mbit ];then
    echo "08Mbit"
    BS_SIZE=1k
    SPI_FLASH_SIZE=2
    BOOT_ADDR_OFFSET=0k
    PART_ADDR_OFFSET=12k
    APP_ADDR_OFFSET=20k
    OTADATA_ADDR_OFFSET=1000k
    cp sdkconfig_08Mbit sdkconfig
elif [ $GAT_FLASH_SIZE == 16Mbit ];then
    echo "16Mbit"
    BS_SIZE=2k
    SPI_FLASH_SIZE=5
    BOOT_ADDR_OFFSET=0k
    PART_ADDR_OFFSET=32k
    OTADATA_ADDR_OFFSET=40k
    APP_ADDR_OFFSET=64k
    cp sdkconfig_16Mbit sdkconfig
elif [ $GAT_FLASH_SIZE == 32Mbit ];then
    BS_SIZE=4k
    SPI_FLASH_SIZE=6
    BOOT_ADDR_OFFSET=0k
    PART_ADDR_OFFSET=32k
    OTADATA_ADDR_OFFSET=2100k
    APP_ADDR_OFFSET=40k
    cp sdkconfig_32Mbit sdkconfig
    echo "32Mbit"
else
    echo "GAT_FLASH_SIZE must be one of [08Mbit|16Mbit|32Mbit]"
    exit
fi
FLASH_MAX_ADDR=1024
TARGET_DIR=build
BOOT_BIN=bootloader/bootloader.bin
OTA_DATA_BIN=ota_data_initial.bin
PART_BIN=Partition_${GAT_FLASH_SIZE}.bin
COMBINE_BIN=${TARGET_NAME}_combine.bin

# spi mode(0=QIO, 1=QOUT, 2=DIO, 3=DOUT)
SPI_MODE=3

dd if=/dev/zero bs=$BS_SIZE count=${FLASH_MAX_ADDR} | sed 's/\x00/\xff/g' > ${TARGET_DIR}/${COMBINE_BIN}
dd if=${TARGET_DIR}/${BOOT_BIN} ibs=$(wc -c < ${TARGET_DIR}/${BOOT_BIN}) count=1 of=${TARGET_DIR}/${COMBINE_BIN} seek=$BOOT_ADDR_OFFSET obs=1 conv=notrunc
dd if=${TARGET_DIR}/${PART_BIN} ibs=$(wc -c < ${TARGET_DIR}/${PART_BIN}) count=1 of=${TARGET_DIR}/${COMBINE_BIN} seek=$PART_ADDR_OFFSET obs=1 conv=notrunc
dd if=${TARGET_DIR}/${OTA_DATA_BIN} ibs=$(wc -c < ${TARGET_DIR}/${OTA_DATA_BIN}) count=1 of=${TARGET_DIR}/${COMBINE_BIN} seek=$OTADATA_ADDR_OFFSET obs=1 conv=notrunc
dd if=${TARGET_DIR}/${TARGET_NAME}.bin ibs=$(wc -c < ${TARGET_DIR}/${TARGET_NAME}.bin) count=1 of=${TARGET_DIR}/${COMBINE_BIN} seek=$APP_ADDR_OFFSET obs=1 conv=notrunc
echo 0${SPI_MODE} | xxd -r -ps | dd of=${TARGET_DIR}/${COMBINE_BIN} seek=2 bs=1 count=1 conv=notrunc
echo ${SPI_FLASH_SIZE}0 | xxd -r -ps | dd of=${TARGET_DIR}/${COMBINE_BIN} seek=3 bs=1 count=1 conv=notrunc

其他有用命令

  • 生成汇编文件,用于定位问题
    xtensa-lx106-elf-objdump -S build/${TARGET_NAME}.elf > build/${TARGET_NAME}.S

文章作者: Alex.Lin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Alex.Lin !
  目录