SimonLiu的ESP8266与AliOS Things 学习教程系列之十六:AliOS Things之ESP866编译和烧写选项

版权声明:本文为博主(SimonLiu)原创文章,未经博主允许不得转载。 https://blog.csdn.net/toopoo/article/details/88818493

欢迎加入交流群: ESP8266 AliOS Things 群 号: 107723112
系列文章目录:
SimonLiu的ESP8266与AliOS Things 学习教程系列目录

1. 编译选项

在ESP8266的non_os SDK中,编译选项在项目根目录的Makefile中:

BOOT?=new
APP?=1
SPI_SPEED?=40
SPI_MODE?=QIO
SPI_SIZE_MAP?=6

但是在AliOS中,这些选项隐藏得很深,它们并不在mk文件中,而是在
platform/mcu/esp8266/gen_crc_bin.mk文件中,里面有一行:
python ../../../platform/mcu/esp8266/tools/gen_appbin.py $(CLEANED_BUILD_STRING)$(RADIXPOINT)$(BINSTYPE_LOWER)$(LINK_OUTPUT_SUFFIX) 2 1 15 5
其中5就是flash map选项,选项在 platform/mcu/esp8266/tools/gen_appbin.py中有说明:

#-------------------
#flash_size_map=
# 0 : 512 KB (256 KB + 256 KB)
# 1 : 256 KB
# 2 : 1024 KB (512 KB + 512 KB)
# 3 : 2048 KB (512 KB + 512 KB)
# 4 : 4096 KB (512 KB + 512 KB)
# 5 : 2048 KB (1024 KB + 1024 KB)
# 6 : 4096 KB (1024 KB + 1024 KB)
#-------------------

2. 烧写选项

烧写选项在build/site_scons/upload/esp8266.json中设定,默认是:

{
    "cmd": [
        {
            "Linux32": "esptool.py",
            "Linux64": "esptool.py",
            "OSX": "esptool.py",
            "Win32": "esptool.exe"
        },
        "--chip",
        "esp8266",
        "--port",
        "/dev/cu.wchusbserial1410",
        "--baud",
        "921600",
        "write_flash",
        "--flash_size",
        "detect",
        "0x0",
        "@AOSROOT@/platform/mcu/esp8266/bsp/boot_v1.7_921600.bin",
        "0x3fc000",
        "@AOSROOT@/platform/mcu/esp8266/bsp/esp_init_data_default.bin",
        "0x3fe000",
        "@AOSROOT@/platform/mcu/esp8266/bsp/blank.bin",
        "0x1000",
        "@AOSROOT@/out/@TARGET@/binary/@[email protected]"
    ]
}

请注意"--flash_size","detect",是对烧写的flash map进行自动检测,但是这种自动检测不一定是正确的。我的ESP-12F在使用默认的编译选项flash map = 5的时候,自动检测使用了flash map = 4来烧写。后来手动把detect改为4MB-c1才能使用flash map = 6的方式来进行烧写。

如果要指定flash modedout,可以在"write_flash",一行下面添加类似如下的选项:

"--flash_mode",
"dout",

3. 获取当前flash map

使用system_get_flash_size_map()即可。

猜你喜欢

转载自blog.csdn.net/toopoo/article/details/88818493