From cef5deecb5af58ecbd668979dc5a2c61d6975f37 Mon Sep 17 00:00:00 2001 From: david gauchard Date: Tue, 15 Jan 2019 23:52:21 +0100 Subject: [PATCH] generic esp8266 board: Use flash mode DOUT by default, in place of QIO (#5601) --- boards.txt | 60 ++++++++++++++++++++++++++++++++++++--------- platform.txt | 6 ++--- tools/boards.txt.py | 20 ++++++++++----- 3 files changed, 65 insertions(+), 21 deletions(-) diff --git a/boards.txt b/boards.txt index 96ab665e7..2e7361cbe 100644 --- a/boards.txt +++ b/boards.txt @@ -67,14 +67,18 @@ generic.menu.FlashFreq.40=40MHz generic.menu.FlashFreq.40.build.flash_freq=40 generic.menu.FlashFreq.80=80MHz generic.menu.FlashFreq.80.build.flash_freq=80 -generic.menu.FlashMode.qio=QIO -generic.menu.FlashMode.qio.build.flash_mode=qio -generic.menu.FlashMode.qout=QOUT -generic.menu.FlashMode.qout.build.flash_mode=qout +generic.menu.FlashMode.dout=DOUT (compatible) +generic.menu.FlashMode.dout.build.flash_mode=dout +generic.menu.FlashMode.dout.build.flash_flags=-DFLASHMODE_DOUT generic.menu.FlashMode.dio=DIO generic.menu.FlashMode.dio.build.flash_mode=dio -generic.menu.FlashMode.dout=DOUT -generic.menu.FlashMode.dout.build.flash_mode=dout +generic.menu.FlashMode.dio.build.flash_flags=-DFLASHMODE_DIO +generic.menu.FlashMode.qout=QOUT +generic.menu.FlashMode.qout.build.flash_mode=qout +generic.menu.FlashMode.qout.build.flash_flags=-DFLASHMODE_QOUT +generic.menu.FlashMode.qio=QIO (fast) +generic.menu.FlashMode.qio.build.flash_mode=qio +generic.menu.FlashMode.qio.build.flash_flags=-DFLASHMODE_QIO generic.menu.eesz.512K=512K (no SPIFFS) generic.menu.eesz.512K.build.flash_size=512K generic.menu.eesz.512K.build.flash_size_bytes=0x80000 @@ -500,6 +504,7 @@ esp8285.menu.CrystalFreq.26=26 MHz esp8285.menu.CrystalFreq.40=40 MHz esp8285.menu.CrystalFreq.40.build.extra_flags=-DF_CRYSTAL=40000000 -DESP8266 esp8285.build.flash_mode=dout +esp8285.build.flash_flags=-DFLASHMODE_DOUT esp8285.build.flash_freq=40 esp8285.menu.eesz.1M=1M (no SPIFFS) esp8285.menu.eesz.1M.build.flash_size=1M @@ -763,6 +768,7 @@ espduino.menu.exception.enabled=Enabled espduino.menu.exception.enabled.build.exception_flags=-fexceptions espduino.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc espduino.build.flash_mode=dio +espduino.build.flash_flags=-DFLASHMODE_DIO espduino.build.flash_freq=40 espduino.menu.eesz.4M=4M (no SPIFFS) espduino.menu.eesz.4M.build.flash_size=4M @@ -946,6 +952,7 @@ huzzah.menu.exception.enabled.build.exception_flags=-fexceptions huzzah.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc huzzah.upload.resetmethod=nodemcu huzzah.build.flash_mode=qio +huzzah.build.flash_flags=-DFLASHMODE_QIO huzzah.build.flash_freq=40 huzzah.menu.eesz.4M=4M (no SPIFFS) huzzah.menu.eesz.4M.build.flash_size=4M @@ -1129,6 +1136,7 @@ inventone.menu.exception.enabled.build.exception_flags=-fexceptions inventone.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc inventone.upload.resetmethod=nodemcu inventone.build.flash_mode=dio +inventone.build.flash_flags=-DFLASHMODE_DIO inventone.build.flash_freq=40 inventone.menu.eesz.4M=4M (no SPIFFS) inventone.menu.eesz.4M.build.flash_size=4M @@ -1315,6 +1323,7 @@ cw01.menu.CrystalFreq.26=26 MHz cw01.menu.CrystalFreq.40=40 MHz cw01.menu.CrystalFreq.40.build.extra_flags=-DF_CRYSTAL=40000000 -DESP8266 cw01.build.flash_mode=qio +cw01.build.flash_flags=-DFLASHMODE_QIO cw01.build.flash_freq=40 cw01.menu.eesz.4M=4M (no SPIFFS) cw01.menu.eesz.4M.build.flash_size=4M @@ -1497,6 +1506,7 @@ espresso_lite_v1.menu.exception.enabled=Enabled espresso_lite_v1.menu.exception.enabled.build.exception_flags=-fexceptions espresso_lite_v1.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc espresso_lite_v1.build.flash_mode=dio +espresso_lite_v1.build.flash_flags=-DFLASHMODE_DIO espresso_lite_v1.build.flash_freq=40 espresso_lite_v1.menu.eesz.4M=4M (no SPIFFS) espresso_lite_v1.menu.eesz.4M.build.flash_size=4M @@ -1683,6 +1693,7 @@ espresso_lite_v2.menu.exception.enabled=Enabled espresso_lite_v2.menu.exception.enabled.build.exception_flags=-fexceptions espresso_lite_v2.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc espresso_lite_v2.build.flash_mode=dio +espresso_lite_v2.build.flash_flags=-DFLASHMODE_DIO espresso_lite_v2.build.flash_freq=40 espresso_lite_v2.menu.eesz.4M=4M (no SPIFFS) espresso_lite_v2.menu.eesz.4M.build.flash_size=4M @@ -1869,6 +1880,7 @@ phoenix_v1.menu.exception.enabled=Enabled phoenix_v1.menu.exception.enabled.build.exception_flags=-fexceptions phoenix_v1.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc phoenix_v1.build.flash_mode=dio +phoenix_v1.build.flash_flags=-DFLASHMODE_DIO phoenix_v1.build.flash_freq=40 phoenix_v1.menu.eesz.4M=4M (no SPIFFS) phoenix_v1.menu.eesz.4M.build.flash_size=4M @@ -2055,6 +2067,7 @@ phoenix_v2.menu.exception.enabled=Enabled phoenix_v2.menu.exception.enabled.build.exception_flags=-fexceptions phoenix_v2.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc phoenix_v2.build.flash_mode=dio +phoenix_v2.build.flash_flags=-DFLASHMODE_DIO phoenix_v2.build.flash_freq=40 phoenix_v2.menu.eesz.4M=4M (no SPIFFS) phoenix_v2.menu.eesz.4M.build.flash_size=4M @@ -2242,6 +2255,7 @@ nodemcu.menu.exception.enabled.build.exception_flags=-fexceptions nodemcu.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc nodemcu.upload.resetmethod=nodemcu nodemcu.build.flash_mode=qio +nodemcu.build.flash_flags=-DFLASHMODE_QIO nodemcu.build.flash_freq=40 nodemcu.menu.eesz.4M=4M (no SPIFFS) nodemcu.menu.eesz.4M.build.flash_size=4M @@ -2425,6 +2439,7 @@ nodemcuv2.menu.exception.enabled.build.exception_flags=-fexceptions nodemcuv2.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc nodemcuv2.upload.resetmethod=nodemcu nodemcuv2.build.flash_mode=dio +nodemcuv2.build.flash_flags=-DFLASHMODE_DIO nodemcuv2.build.flash_freq=40 nodemcuv2.menu.eesz.4M=4M (no SPIFFS) nodemcuv2.menu.eesz.4M.build.flash_size=4M @@ -2608,6 +2623,7 @@ modwifi.menu.exception.enabled.build.exception_flags=-fexceptions modwifi.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc modwifi.upload.resetmethod=ck modwifi.build.flash_mode=qio +modwifi.build.flash_flags=-DFLASHMODE_QIO modwifi.build.flash_freq=40 modwifi.menu.eesz.2M=2M (no SPIFFS) modwifi.menu.eesz.2M.build.flash_size=2M @@ -2801,6 +2817,7 @@ thing.menu.exception.enabled.build.exception_flags=-fexceptions thing.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc thing.upload.resetmethod=ck thing.build.flash_mode=qio +thing.build.flash_flags=-DFLASHMODE_QIO thing.build.flash_freq=40 thing.menu.eesz.512K=512K (no SPIFFS) thing.menu.eesz.512K.build.flash_size=512K @@ -2984,6 +3001,7 @@ thingdev.menu.exception.enabled.build.exception_flags=-fexceptions thingdev.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc thingdev.upload.resetmethod=nodemcu thingdev.build.flash_mode=dio +thingdev.build.flash_flags=-DFLASHMODE_DIO thingdev.build.flash_freq=40 thingdev.menu.eesz.512K=512K (no SPIFFS) thingdev.menu.eesz.512K.build.flash_size=512K @@ -3167,6 +3185,7 @@ esp210.menu.exception.enabled.build.exception_flags=-fexceptions esp210.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc esp210.upload.resetmethod=ck esp210.build.flash_mode=qio +esp210.build.flash_flags=-DFLASHMODE_QIO esp210.build.flash_freq=40 esp210.menu.eesz.4M=4M (no SPIFFS) esp210.menu.eesz.4M.build.flash_size=4M @@ -3350,6 +3369,7 @@ d1_mini.menu.exception.enabled.build.exception_flags=-fexceptions d1_mini.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc d1_mini.upload.resetmethod=nodemcu d1_mini.build.flash_mode=dio +d1_mini.build.flash_flags=-DFLASHMODE_DIO d1_mini.build.flash_freq=40 d1_mini.menu.eesz.4M=4M (no SPIFFS) d1_mini.menu.eesz.4M.build.flash_size=4M @@ -3533,6 +3553,7 @@ d1_mini_pro.menu.exception.enabled.build.exception_flags=-fexceptions d1_mini_pro.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc d1_mini_pro.upload.resetmethod=nodemcu d1_mini_pro.build.flash_mode=dio +d1_mini_pro.build.flash_flags=-DFLASHMODE_DIO d1_mini_pro.build.flash_freq=40 d1_mini_pro.menu.eesz.16M14M=16M (14M SPIFFS) d1_mini_pro.menu.eesz.16M14M.build.flash_size=16M @@ -3699,6 +3720,7 @@ d1_mini_lite.menu.exception.enabled.build.exception_flags=-fexceptions d1_mini_lite.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc d1_mini_lite.upload.resetmethod=nodemcu d1_mini_lite.build.flash_mode=dout +d1_mini_lite.build.flash_flags=-DFLASHMODE_DOUT d1_mini_lite.build.flash_freq=40 d1_mini_lite.menu.eesz.1M=1M (no SPIFFS) d1_mini_lite.menu.eesz.1M.build.flash_size=1M @@ -3922,6 +3944,7 @@ d1.menu.exception.enabled.build.exception_flags=-fexceptions d1.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc d1.upload.resetmethod=nodemcu d1.build.flash_mode=dio +d1.build.flash_flags=-DFLASHMODE_DIO d1.build.flash_freq=40 d1.menu.eesz.4M=4M (no SPIFFS) d1.menu.eesz.4M.build.flash_size=4M @@ -4108,6 +4131,7 @@ espino.menu.ResetMethod.ck.upload.resetmethod=ck espino.menu.ResetMethod.nodemcu=nodemcu espino.menu.ResetMethod.nodemcu.upload.resetmethod=nodemcu espino.build.flash_mode=qio +espino.build.flash_flags=-DFLASHMODE_QIO espino.build.flash_freq=40 espino.menu.eesz.4M=4M (no SPIFFS) espino.menu.eesz.4M.build.flash_size=4M @@ -4291,6 +4315,7 @@ espinotee.menu.exception.enabled.build.exception_flags=-fexceptions espinotee.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc espinotee.upload.resetmethod=nodemcu espinotee.build.flash_mode=qio +espinotee.build.flash_flags=-DFLASHMODE_QIO espinotee.build.flash_freq=40 espinotee.menu.eesz.4M=4M (no SPIFFS) espinotee.menu.eesz.4M.build.flash_size=4M @@ -4491,6 +4516,7 @@ wifinfo.menu.exception.enabled.build.exception_flags=-fexceptions wifinfo.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc wifinfo.upload.resetmethod=nodemcu wifinfo.build.flash_mode=qio +wifinfo.build.flash_flags=-DFLASHMODE_QIO wifinfo.menu.FlashFreq.40=40MHz wifinfo.menu.FlashFreq.40.build.flash_freq=40 wifinfo.menu.FlashFreq.80=80MHz @@ -4729,6 +4755,7 @@ arduino-esp8266.menu.exception.enabled.build.exception_flags=-fexceptions arduino-esp8266.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc arduino-esp8266.upload.resetmethod=ck arduino-esp8266.build.flash_mode=qio +arduino-esp8266.build.flash_flags=-DFLASHMODE_QIO arduino-esp8266.build.flash_freq=40 arduino-esp8266.menu.eesz.4M=4M (no SPIFFS) arduino-esp8266.menu.eesz.4M.build.flash_size=4M @@ -4913,6 +4940,7 @@ gen4iod.menu.exception.enabled.build.exception_flags=-fexceptions gen4iod.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc gen4iod.upload.resetmethod=nodemcu gen4iod.build.flash_mode=dio +gen4iod.build.flash_flags=-DFLASHMODE_DIO gen4iod.build.flash_freq=80 gen4iod.menu.eesz.512K=512K (no SPIFFS) gen4iod.menu.eesz.512K.build.flash_size=512K @@ -5097,6 +5125,7 @@ oak.menu.exception.enabled.build.exception_flags=-fexceptions oak.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc oak.upload.resetmethod=none oak.build.flash_mode=dio +oak.build.flash_flags=-DFLASHMODE_DIO oak.build.flash_freq=40 oak.menu.eesz.4M=4M (no SPIFFS) oak.menu.eesz.4M.build.flash_size=4M @@ -5280,6 +5309,7 @@ wifiduino.menu.exception.enabled.build.exception_flags=-fexceptions wifiduino.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc wifiduino.upload.resetmethod=nodemcu wifiduino.build.flash_mode=dio +wifiduino.build.flash_flags=-DFLASHMODE_DIO wifiduino.build.flash_freq=40 wifiduino.menu.eesz.4M=4M (no SPIFFS) wifiduino.menu.eesz.4M.build.flash_size=4M @@ -5466,14 +5496,18 @@ wifi_slot.menu.FlashFreq.40=40MHz wifi_slot.menu.FlashFreq.40.build.flash_freq=40 wifi_slot.menu.FlashFreq.80=80MHz wifi_slot.menu.FlashFreq.80.build.flash_freq=80 -wifi_slot.menu.FlashMode.qio=QIO -wifi_slot.menu.FlashMode.qio.build.flash_mode=qio -wifi_slot.menu.FlashMode.qout=QOUT -wifi_slot.menu.FlashMode.qout.build.flash_mode=qout +wifi_slot.menu.FlashMode.dout=DOUT (compatible) +wifi_slot.menu.FlashMode.dout.build.flash_mode=dout +wifi_slot.menu.FlashMode.dout.build.flash_flags=-DFLASHMODE_DOUT wifi_slot.menu.FlashMode.dio=DIO wifi_slot.menu.FlashMode.dio.build.flash_mode=dio -wifi_slot.menu.FlashMode.dout=DOUT -wifi_slot.menu.FlashMode.dout.build.flash_mode=dout +wifi_slot.menu.FlashMode.dio.build.flash_flags=-DFLASHMODE_DIO +wifi_slot.menu.FlashMode.qout=QOUT +wifi_slot.menu.FlashMode.qout.build.flash_mode=qout +wifi_slot.menu.FlashMode.qout.build.flash_flags=-DFLASHMODE_QOUT +wifi_slot.menu.FlashMode.qio=QIO (fast) +wifi_slot.menu.FlashMode.qio.build.flash_mode=qio +wifi_slot.menu.FlashMode.qio.build.flash_flags=-DFLASHMODE_QIO wifi_slot.menu.eesz.1M=1M (no SPIFFS) wifi_slot.menu.eesz.1M.build.flash_size=1M wifi_slot.menu.eesz.1M.build.flash_size_bytes=0x100000 @@ -5743,6 +5777,7 @@ wiolink.menu.exception.enabled.build.exception_flags=-fexceptions wiolink.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc wiolink.upload.resetmethod=nodemcu wiolink.build.flash_mode=qio +wiolink.build.flash_flags=-DFLASHMODE_QIO wiolink.build.flash_freq=40 wiolink.menu.eesz.4M=4M (no SPIFFS) wiolink.menu.eesz.4M.build.flash_size=4M @@ -5926,6 +5961,7 @@ espectro.menu.exception.enabled.build.exception_flags=-fexceptions espectro.menu.exception.enabled.build.stdcpp_lib=-lstdc++-exc espectro.upload.resetmethod=nodemcu espectro.build.flash_mode=dio +espectro.build.flash_flags=-DFLASHMODE_DIO espectro.build.flash_freq=40 espectro.menu.eesz.4M=4M (no SPIFFS) espectro.menu.eesz.4M.build.flash_size=4M diff --git a/platform.txt b/platform.txt index d28b9c4b2..3af5e4da6 100644 --- a/platform.txt +++ b/platform.txt @@ -89,13 +89,13 @@ recipe.hooks.core.prebuild.3.pattern.windows=cmd.exe /c if exist {build.source.p recipe.hooks.linking.prelink.1.pattern="{compiler.path}{compiler.c.cmd}" -CC -E -P {build.vtable_flags} "{runtime.platform.path}/tools/sdk/ld/eagle.app.v6.common.ld.h" -o "{build.path}/local.eagle.app.v6.common.ld" ## Compile c files -recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.flags} {compiler.c.flags} -DF_CPU={build.f_cpu} {build.lwip_flags} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}" {build.led} {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" +recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.flags} {compiler.c.flags} -DF_CPU={build.f_cpu} {build.lwip_flags} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}" {build.led} {build.flash_flags} {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" ## Compile c++ files -recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpreprocessor.flags} {compiler.cpp.flags} -DF_CPU={build.f_cpu} {build.lwip_flags} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}" {build.led} {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" +recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpreprocessor.flags} {compiler.cpp.flags} -DF_CPU={build.f_cpu} {build.lwip_flags} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}" {build.led} {build.flash_flags} {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" ## Compile S files -recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.flags} {compiler.S.flags} -DF_CPU={build.f_cpu} {build.lwip_flags} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}" {build.led} {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" +recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.flags} {compiler.S.flags} -DF_CPU={build.f_cpu} {build.lwip_flags} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} -DARDUINO_BOARD="{build.board}" {build.led} {build.flash_flags} {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" ## Create archives recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}" diff --git a/tools/boards.txt.py b/tools/boards.txt.py index 942a1971a..363af84af 100755 --- a/tools/boards.txt.py +++ b/tools/boards.txt.py @@ -947,32 +947,40 @@ macros = { ####################### menu.FlashMode 'flashmode_menu': collections.OrderedDict([ - ( '.menu.FlashMode.qio', 'QIO' ), - ( '.menu.FlashMode.qio.build.flash_mode', 'qio' ), - ( '.menu.FlashMode.qout', 'QOUT' ), - ( '.menu.FlashMode.qout.build.flash_mode', 'qout' ), + ( '.menu.FlashMode.dout', 'DOUT (compatible)' ), + ( '.menu.FlashMode.dout.build.flash_mode', 'dout' ), + ( '.menu.FlashMode.dout.build.flash_flags', '-DFLASHMODE_DOUT' ), ( '.menu.FlashMode.dio', 'DIO' ), ( '.menu.FlashMode.dio.build.flash_mode', 'dio' ), - ( '.menu.FlashMode.dout', 'DOUT' ), - ( '.menu.FlashMode.dout.build.flash_mode', 'dout' ), + ( '.menu.FlashMode.dio.build.flash_flags', '-DFLASHMODE_DIO' ), + ( '.menu.FlashMode.qout', 'QOUT' ), + ( '.menu.FlashMode.qout.build.flash_mode', 'qout' ), + ( '.menu.FlashMode.qout.build.flash_flags', '-DFLASHMODE_QOUT' ), + ( '.menu.FlashMode.qio', 'QIO (fast)' ), + ( '.menu.FlashMode.qio.build.flash_mode', 'qio' ), + ( '.menu.FlashMode.qio.build.flash_flags', '-DFLASHMODE_QIO' ), ]), ####################### default flash_mode 'flashmode_dio': collections.OrderedDict([ ( '.build.flash_mode', 'dio' ), + ( '.build.flash_flags', '-DFLASHMODE_DIO' ), ]), 'flashmode_qio': collections.OrderedDict([ ( '.build.flash_mode', 'qio' ), + ( '.build.flash_flags', '-DFLASHMODE_QIO' ), ]), 'flashmode_dout': collections.OrderedDict([ ( '.build.flash_mode', 'dout' ), + ( '.build.flash_flags', '-DFLASHMODE_DOUT' ), ]), 'flashmode_qout': collections.OrderedDict([ ( '.build.flash_mode', 'qout' ), + ( '.build.flash_flags', '-DFLASHMODE_QOUT' ), ]), ####################### lwip