From 64d144e3a47125fba0f046b9e3e9ef99b42a2046 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Sat, 17 Feb 2018 15:00:23 +0300 Subject: [PATCH 1/7] tools/boards.txt.py: remove tabs --- tools/boards.txt.py | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/tools/boards.txt.py b/tools/boards.txt.py index d5628886e9..371c1a8d5a 100755 --- a/tools/boards.txt.py +++ b/tools/boards.txt.py @@ -1237,24 +1237,24 @@ def usage (name,ret): print "" print "usage: %s [options]" % name print "" - print " -h, --help" - print " --lwip - preferred default lwIP version (default %d)" % lwip - print " --led - preferred default builtin led for generic boards (default %d)" % led_default - print " --board b - board to modify:" - print " --speed s - change default serial speed" - print " --customspeed s - new serial speed for all boards" - print " --nofloat - disable float support in printf/scanf" + print " -h, --help" + print " --lwip - preferred default lwIP version (default %d)" % lwip + print " --led - preferred default builtin led for generic boards (default %d)" % led_default + print " --board b - board to modify:" + print " --speed s - change default serial speed" + print " --customspeed s - new serial speed for all boards" + print " --nofloat - disable float support in printf/scanf" print "" - print " mandatory option (at least one):" + print " mandatory option (at least one):" print "" - print " --boards - show boards.txt" - print " --boardsgen - replace boards.txt" - print " --ld - show ldscripts" - print " --ldgen - replace ldscripts" - print " --package - show package" - print " --packagegen - replace board:[] in package" - print " --doc - shows doc/boards.rst" - print " --docgen - replace doc/boards.rst" + print " --boards - show boards.txt" + print " --boardsgen - replace boards.txt" + print " --ld - show ldscripts" + print " --ldgen - replace ldscripts" + print " --package - show package" + print " --packagegen - replace board:[] in package" + print " --doc - shows doc/boards.rst" + print " --docgen - replace doc/boards.rst" print "" out = "" From 5444c5bb0bc7344cb72096a33310f0592407861d Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Sat, 17 Feb 2018 15:34:56 +0300 Subject: [PATCH 2/7] tools/boards.txt.py: make ldscript output same as the existing files --- tools/boards.txt.py | 19 ++++++++++++++----- tools/sdk/ld/eagle.flash.1m0.ld | 6 +++--- tools/sdk/ld/eagle.flash.512k0.ld | 6 +++--- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/tools/boards.txt.py b/tools/boards.txt.py index 371c1a8d5a..5d0a1db279 100755 --- a/tools/boards.txt.py +++ b/tools/boards.txt.py @@ -978,7 +978,7 @@ def flash_size (display, optname, ld, desc, max_upload_size, spiffs_start = 0, s ( menub + 'spiffs_pagesize', '256' ), ( menu + '.upload.maximum_size', "%i" % max_upload_size ), ]) - if spiffs_start > 0: + if spiffs_size > 0: d.update(collections.OrderedDict([ ( menub + 'spiffs_start', "0x%05X" % spiffs_start ), ( menub + 'spiffs_end', "0x%05X" % (spiffs_start + spiffs_size) ), @@ -1008,8 +1008,16 @@ def flash_size (display, optname, ld, desc, max_upload_size, spiffs_start = 0, s else: page = 0x100 block = 0x2000 - print "/* file %s */" % ld - print "/* Flash Split for %s chips */" % optname + + print "/* Flash Split for %s chips */" % display + print "/* sketch %dKB */" % (max_upload_size / 1024) + if spiffs_size > 0: + empty_size = spiffs_start - max_upload_size - 4096 + if empty_size > 1024: + print "/* empty %dKB */" % (empty_size / 1024) + print "/* spiffs %dKB */" % (spiffs_size / 1024) + print "/* eeprom 20KB */" + print "" print "MEMORY" print "{" print " dport0_0_seg : org = 0x3FF00000, len = 0x10" @@ -1017,6 +1025,7 @@ def flash_size (display, optname, ld, desc, max_upload_size, spiffs_start = 0, s print " iram1_0_seg : org = 0x40100000, len = 0x8000" print " irom0_0_seg : org = 0x40201010, len = 0x%x" % max_upload_size print "}" + print "" print "PROVIDE ( _SPIFFS_start = 0x%08X );" % (0x40200000 + spiffs_start) print "PROVIDE ( _SPIFFS_end = 0x%08X );" % (0x40200000 + spiffs_start + spiffs_size) print "PROVIDE ( _SPIFFS_page = 0x%X );" % page @@ -1031,10 +1040,10 @@ def flash_size (display, optname, ld, desc, max_upload_size, spiffs_start = 0, s return d def all_flash_size (): - f512 = flash_size('512K', '512K0', 'eagle.flash.512k0.ld', 'no SPIFFS', 499696) + f512 = flash_size('512K', '512K0', 'eagle.flash.512k0.ld', 'no SPIFFS', 499696, 0x7B000) f512.update(flash_size('512K', '512K64', 'eagle.flash.512k64.ld', '64K SPIFFS', 434160, 0x6B000, 0x10000, 4096)) f512.update(flash_size('512K', '512K128', 'eagle.flash.512k128.ld', '128K SPIFFS', 368624, 0x5B000, 0x20000, 4096)) - f1m = flash_size( '1M', '1M0', 'eagle.flash.1m0.ld', 'no SPIFFS', 1023984) + f1m = flash_size( '1M', '1M0', 'eagle.flash.1m0.ld', 'no SPIFFS', 1023984, 0xFB000) f1m.update( flash_size( '1M', '1M64', 'eagle.flash.1m64.ld', '64K SPIFFS', 958448, 0xEB000, 0x10000, 4096)) f1m.update( flash_size( '1M', '1M128', 'eagle.flash.1m128.ld', '128K SPIFFS', 892912, 0xDB000, 0x20000, 4096)) f1m.update( flash_size( '1M', '1M144', 'eagle.flash.1m144.ld', '144K SPIFFS', 876528, 0xD7000, 0x24000, 4096)) diff --git a/tools/sdk/ld/eagle.flash.1m0.ld b/tools/sdk/ld/eagle.flash.1m0.ld index 250962962e..36477dc8d4 100644 --- a/tools/sdk/ld/eagle.flash.1m0.ld +++ b/tools/sdk/ld/eagle.flash.1m0.ld @@ -1,4 +1,4 @@ -/* Flash Split for 1M chips, no SPIFFS */ +/* Flash Split for 1M chips */ /* sketch 999KB */ /* eeprom 20KB */ @@ -12,7 +12,7 @@ MEMORY PROVIDE ( _SPIFFS_start = 0x402FB000 ); PROVIDE ( _SPIFFS_end = 0x402FB000 ); -PROVIDE ( _SPIFFS_page = 0 ); -PROVIDE ( _SPIFFS_block = 0 ); +PROVIDE ( _SPIFFS_page = 0x0 ); +PROVIDE ( _SPIFFS_block = 0x0 ); INCLUDE "../ld/eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.512k0.ld b/tools/sdk/ld/eagle.flash.512k0.ld index a4486ee4c2..e28fc9f1c2 100644 --- a/tools/sdk/ld/eagle.flash.512k0.ld +++ b/tools/sdk/ld/eagle.flash.512k0.ld @@ -1,4 +1,4 @@ -/* Flash Split for 512K chips, no SPIFFS */ +/* Flash Split for 512K chips */ /* sketch 487KB */ /* eeprom 20KB */ @@ -12,7 +12,7 @@ MEMORY PROVIDE ( _SPIFFS_start = 0x4027B000 ); PROVIDE ( _SPIFFS_end = 0x4027B000 ); -PROVIDE ( _SPIFFS_page = 0 ); -PROVIDE ( _SPIFFS_block = 0 ); +PROVIDE ( _SPIFFS_page = 0x0 ); +PROVIDE ( _SPIFFS_block = 0x0 ); INCLUDE "../ld/eagle.app.v6.common.ld" From cde2eed59eb93694d4014a913e2efd09d76d4f8e Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Sat, 17 Feb 2018 15:54:05 +0300 Subject: [PATCH 3/7] ci: check that files generated by boards.txt.py are up to date Files are re-generated in CI build, and git diff is used to check if there have been any changes. --- tests/common.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/common.sh b/tests/common.sh index baa3840d54..81f142e077 100755 --- a/tests/common.sh +++ b/tests/common.sh @@ -131,6 +131,16 @@ function build_package() ./build_boards_manager_package.sh } +function build_boards() +{ + echo -e "travis_fold:start:build_boards" + tools/boards.txt.py --boardsgen --ldgen --packagegen --docgen + git diff --exit-code -- boards.txt \ + package/package_esp8266com_index.template.json \ + doc/boards.rst \ + tools/sdk/ld/ + echo -e "travis_fold:end:build_boards" +} function install_platformio() { @@ -217,7 +227,9 @@ elif [ "$BUILD_TYPE" = "docs" ]; then cd $TRAVIS_BUILD_DIR/doc build_docs elif [ "$BUILD_TYPE" = "package" ]; then - # Build release package + # Check that boards.txt, ld scripts, package JSON template, and boards.rst are up to date + build_boards + # Build release package cd $TRAVIS_BUILD_DIR/package build_package elif [ "$BUILD_TYPE" = "host_tests" ]; then From 835215001731e299df0da6f5f2bd8f3f1249e56e Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Sat, 17 Feb 2018 15:58:49 +0300 Subject: [PATCH 4/7] boards, package: update from boards.txt.py --- boards.txt | 2 +- .../package_esp8266com_index.template.json | 44 +++++++++++++------ 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/boards.txt b/boards.txt index 187c0ee5b2..7b73ff7af0 100644 --- a/boards.txt +++ b/boards.txt @@ -1,5 +1,5 @@ # -# this file is script-generated and is likely to be overwritten by ./tools/boards.txt.py +# this file is script-generated and is likely to be overwritten by tools/boards.txt.py # menu.BoardModel=Model diff --git a/package/package_esp8266com_index.template.json b/package/package_esp8266com_index.template.json index f7a6ca38aa..65b6f32388 100644 --- a/package/package_esp8266com_index.template.json +++ b/package/package_esp8266com_index.template.json @@ -24,16 +24,13 @@ "name": "Generic ESP8266 Module" }, { - "name": "Olimex MOD-WIFI-ESP8266(-DEV)" - }, - { - "name": "NodeMCU 0.9 (ESP-12 Module)" + "name": "Generic ESP8285 Module" }, { - "name": "NodeMCU 1.0 (ESP-12E Module)" + "name": "ESPDuino (ESP-13 Module)" }, { - "name": "Adafruit HUZZAH ESP8266 (ESP-12)" + "name": "Adafruit Feather HUZZAH ESP8266" }, { "name": "ESPresso Lite 1.0" @@ -46,37 +43,55 @@ }, { "name": "Phoenix 2.0" - }, + }, { - "name": "SparkFun Thing" + "name": "NodeMCU 0.9 (ESP-12 Module)" + }, + { + "name": "NodeMCU 1.0 (ESP-12E Module)" + }, + { + "name": "Olimex MOD-WIFI-ESP8266(-DEV)" + }, + { + "name": "SparkFun ESP8266 Thing" + }, + { + "name": "SparkFun ESP8266 Thing Dev" }, { "name": "SweetPea ESP-210" }, { - "name": "WeMos D1" + "name": "WeMos D1 R2 & mini" }, { - "name": "WeMos D1 mini" + "name": "WeMos D1 mini Pro" + }, + { + "name": "WeMos D1 mini Lite" + }, + { + "name": "WeMos D1 R1" }, { "name": "ESPino (ESP-12 Module)" }, { - "name": "ESPino (WROOM-02 Module)" + "name": "ThaiEasyElec's ESPino" }, { "name": "WifInfo" }, { - "name": "ESPDuino" + "name": "Arduino" }, { "name": "4D Systems gen4 IoD Range" }, { - "name": "DigiStump Oak" - } + "name": "Digistump Oak" + }, ], "toolsDependencies": [ { @@ -246,3 +261,4 @@ } ] } + From 916b483ccf2e2d1591ea3ac777a526da3f9626a1 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Sat, 17 Feb 2018 16:31:45 +0300 Subject: [PATCH 5/7] boards.txt.py: fix trailing comma in generated JSON --- package/package_esp8266com_index.template.json | 2 +- tools/boards.txt.py | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/package/package_esp8266com_index.template.json b/package/package_esp8266com_index.template.json index 65b6f32388..177a866b20 100644 --- a/package/package_esp8266com_index.template.json +++ b/package/package_esp8266com_index.template.json @@ -91,7 +91,7 @@ }, { "name": "Digistump Oak" - }, + } ], "toolsDependencies": [ { diff --git a/tools/boards.txt.py b/tools/boards.txt.py index 5d0a1db279..066ccf52b6 100755 --- a/tools/boards.txt.py +++ b/tools/boards.txt.py @@ -1182,9 +1182,10 @@ def package (): filestr = package_file.read() substitution = '"boards": [\n' - for id in boards: - substitution += ' {\n "name": "' + boards[id]['name'] + '"\n },\n' - substitution += ' ],' + board_items = [' {\n "name": "%s"\n }' % boards[id]['name'] + for id in boards] + substitution += ',\n'.join(board_items) + substitution += '\n ],' newfilestr = re.sub(r'"boards":[^\]]*\],', substitution, filestr, re.MULTILINE) From 970aebf7fd65bae657fb293fba8a703fba37b8ea Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Sat, 17 Feb 2018 17:25:50 +0300 Subject: [PATCH 6/7] boards.txt.py: fix extra newline at the end of JSON output --- package/package_esp8266com_index.template.json | 1 - tools/boards.txt.py | 12 ++++-------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/package/package_esp8266com_index.template.json b/package/package_esp8266com_index.template.json index 177a866b20..1d08279b3d 100644 --- a/package/package_esp8266com_index.template.json +++ b/package/package_esp8266com_index.template.json @@ -261,4 +261,3 @@ } ] } - diff --git a/tools/boards.txt.py b/tools/boards.txt.py index 066ccf52b6..cbf076d0c5 100755 --- a/tools/boards.txt.py +++ b/tools/boards.txt.py @@ -1190,14 +1190,10 @@ def package (): newfilestr = re.sub(r'"boards":[^\]]*\],', substitution, filestr, re.MULTILINE) if packagegen: - realstdout = sys.stdout - sys.stdout = open(pkgfname, 'w') - - print newfilestr - - if packagegen: - sys.stdout.close() - sys.stdout = realstdout + with open(pkgfname, 'w') as package_file: + package_file.write(newfilestr) + else: + sys.stdout.write(newfilestr) ################################################################ From ff6a38d95aad8c5b8482b3390812f86d802e8e70 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Sun, 18 Feb 2018 13:24:41 +0300 Subject: [PATCH 7/7] boards.txt.py: normalize script name in generated output --- boards.txt | 2 +- tools/boards.txt.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/boards.txt b/boards.txt index 7b73ff7af0..4b27a56021 100644 --- a/boards.txt +++ b/boards.txt @@ -1,5 +1,5 @@ # -# this file is script-generated and is likely to be overwritten by tools/boards.txt.py +# this file is script-generated and is likely to be overwritten by boards.txt.py # menu.BoardModel=Model diff --git a/tools/boards.txt.py b/tools/boards.txt.py index cbf076d0c5..9c458e5ff0 100755 --- a/tools/boards.txt.py +++ b/tools/boards.txt.py @@ -1102,7 +1102,7 @@ def all_boards (): macros.update(led(led_default, led_max)) print '#' - print '# this file is script-generated and is likely to be overwritten by ' + sys.argv[0] + print '# this file is script-generated and is likely to be overwritten by ' + os.path.basename(sys.argv[0]) print '#' print '' print 'menu.BoardModel=Model'