Skip to content

Commit 325b7bc

Browse files
committed
Support for nonos-sdk 3.0.5 & bugs fix
Requires package framework-esp8266-nonos-sdk@ 3.0.5 https://github.com/freedib/framework-esp8266-nonos-sdk.git Fix build bugs platform.py - Remove dependency to xtensa 1.40802.0 esp8266-nonos-sdk & esp8266-rtos-sdk - Suppress literal-suffix warnings from SDK building - Set correct libraries list for nonos-sdk & rtos-sdk esp8266-nonos-sdk - Set correct include paths for nonos-sdk - Avoid building SDK drivers on each run for nonos-sdk Support for nonos-sdk 3.0.5 platform.json: - Update nonos-sdk and rtos-sdk version numbers esp8266-nonos-sdk.py: - Add SPI_FLASH_SIZE_MAP to compile flags - Use the new "esp_init_data_default_v08.bin" file for NONOS 3.0.4
1 parent d2f3b91 commit 325b7bc

File tree

4 files changed

+36
-36
lines changed

4 files changed

+36
-36
lines changed

builder/frameworks/esp8266-nonos-sdk.py

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
https://github.com/espressif/ESP8266_NONOS_SDK
2121
"""
2222

23-
from os.path import isdir, join
23+
from os.path import isdir, join, isfile
2424

2525
from SCons.Script import Builder, DefaultEnvironment
2626

@@ -61,7 +61,8 @@
6161
CXXFLAGS=[
6262
"-fno-rtti",
6363
"-fno-exceptions",
64-
"-std=c++11"
64+
"-std=c++11",
65+
"-Wno-literal-suffix"
6566
],
6667

6768
LINKFLAGS=[
@@ -83,16 +84,8 @@
8384

8485
CPPPATH=[
8586
join(FRAMEWORK_DIR, "include"),
86-
join(FRAMEWORK_DIR, "extra_include"),
8787
join(FRAMEWORK_DIR, "driver_lib", "include"),
88-
join(FRAMEWORK_DIR, "include", "espressif"),
89-
join(FRAMEWORK_DIR, "include", "lwip"),
90-
join(FRAMEWORK_DIR, "include", "lwip", "ipv4"),
91-
join(FRAMEWORK_DIR, "include", "lwip", "ipv6"),
92-
join(FRAMEWORK_DIR, "include", "nopoll"),
93-
join(FRAMEWORK_DIR, "include", "ssl"),
94-
join(FRAMEWORK_DIR, "include", "json"),
95-
join(FRAMEWORK_DIR, "include", "openssl")
88+
join(FRAMEWORK_DIR, "third_party", "include")
9689
],
9790

9891
LIBPATH=[
@@ -102,7 +95,7 @@
10295

10396
LIBS=[
10497
"airkiss", "at", "c", "crypto", "driver", "espnow", "gcc", "json",
105-
"lwip", "main", "mbedtls", "mesh", "net80211", "phy", "pp", "pwm",
98+
"lwip", "main", "mbedtls", "net80211", "phy", "pp", "pwm",
10699
"smartconfig", "ssl", "upgrade", "wpa", "wpa2", "wps"
107100
],
108101

@@ -133,25 +126,32 @@
133126
LDSCRIPT_PATH=join(FRAMEWORK_DIR, "ld", "eagle.app.v6.ld")
134127
)
135128

136-
board_flash_size = int(env.BoardConfig().get("upload.maximum_size", 0))
137-
if board_flash_size > 8388608:
138-
init_data_flash_address = 0xffc000 # for 16 MB
139-
elif board_flash_size > 4194304:
140-
init_data_flash_address = 0x7fc000 # for 8 MB
141-
elif board_flash_size > 2097152:
142-
init_data_flash_address = 0x3fc000 # for 4 MB
143-
elif board_flash_size > 1048576:
144-
init_data_flash_address = 0x1fc000 # for 2 MB
145-
elif board_flash_size > 524288:
146-
init_data_flash_address = 0xfc000 # for 1 MB
147-
else:
148-
init_data_flash_address = 0x7c000 # for 512 kB
129+
# evaluate SPI_FLASH_SIZE_MAP flag for NONOS_SDK 3.x and set CCFLAG
130+
board_flash_size = int(env.BoardConfig().get("upload.maximum_size", 524288))
131+
flash_size_maps = [0.5, 0.25, 1.0, 0.0, 0.0, 2.0, 4.0, 0.0, 8.0, 16.0] # ignore maps 3 and 4.prefer 5 and 6
132+
flash_sizes_str = ['512KB','256KB','1MB','2MB','4MB','2MB-c1','4MB-c1','4MB-c2','8MB','16MB']
133+
try:
134+
flash_size_map = flash_size_maps.index(board_flash_size/1048576)
135+
flash_size_str = flash_sizes_str[flash_size_map]
136+
except:
137+
flash_size_map = 6
138+
flash_size_str = '4MB-c1'
139+
# for OTA, only size maps 5, 6, 8 and 9 are supported to avoid linking twice for user1 and user2
140+
141+
env.Append(CCFLAGS=["-DSPI_FLASH_SIZE_MAP="+str(flash_size_map)]) # NONOS-SDK 3.x user_main.c need it
142+
143+
init_data_flash_address = board_flash_size-0x4000 # 3fc000 for 4M board data_bin
144+
145+
146+
esp_init_data_default_file = "esp_init_data_default_v08.bin" # new in NONS 3.04
147+
if not isfile(join(FRAMEWORK_DIR, "bin", esp_init_data_default_file)):
148+
esp_init_data_default_file = "esp_init_data_default.bin"
149149

150150
env.Append(
151151
FLASH_EXTRA_IMAGES=[
152152
("0x10000", join("$BUILD_DIR", "${PROGNAME}.bin.irom0text.bin")),
153153
(hex(init_data_flash_address),
154-
join(FRAMEWORK_DIR, "bin", "esp_init_data_default.bin")),
154+
join(FRAMEWORK_DIR, "bin", esp_init_data_default_file)),
155155
(hex(init_data_flash_address + 0x2000),
156156
join(FRAMEWORK_DIR, "bin", "blank.bin"))
157157
]
@@ -164,9 +164,10 @@
164164

165165
libs = []
166166

167-
libs.append(env.BuildLibrary(
168-
join(FRAMEWORK_DIR, "lib", "driver"),
169-
join(FRAMEWORK_DIR, "driver_lib")
170-
))
167+
if False:
168+
libs.append(env.BuildLibrary(
169+
join(FRAMEWORK_DIR, "lib", "driver"),
170+
join(FRAMEWORK_DIR, "driver_lib")
171+
))
171172

172173
env.Prepend(LIBS=libs)

builder/frameworks/esp8266-rtos-sdk.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@
6161
CXXFLAGS=[
6262
"-fno-rtti",
6363
"-fno-exceptions",
64-
"-std=c++11"
64+
"-std=c++11",
65+
"-Wno-literal-suffix"
6566
],
6667

6768
LINKFLAGS=[
@@ -103,7 +104,7 @@
103104

104105
LIBS=[
105106
"cirom", "crypto", "driver", "espconn", "espnow", "freertos", "gcc",
106-
"json", "hal", "lwip", "main", "mesh", "mirom", "net80211", "nopoll",
107+
"json", "hal", "lwip", "main", "mbedtls", "mesh", "mirom", "net80211", "nopoll",
107108
"phy", "pp", "pwm", "smartconfig", "spiffs", "ssl", "wpa", "wps"
108109
],
109110

platform.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,13 @@
5555
"type": "framework",
5656
"optional": true,
5757
"owner": "platformio",
58-
"version": ">=1.5.0-beta"
58+
"version": "==1.5.0-beta.5"
5959
},
6060
"framework-esp8266-nonos-sdk": {
6161
"type": "framework",
6262
"optional": true,
6363
"owner": "platformio",
64-
"version": ">=2.1.0"
64+
"version": "~3.0.5"
6565
},
6666
"tool-esptool": {
6767
"type": "uploader",

platform.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ class Espressif8266Platform(PlatformBase):
1919

2020
def configure_default_packages(self, variables, targets):
2121
framework = variables.get("pioframework", [])
22-
if "arduino" not in framework:
23-
self.packages['toolchain-xtensa']['version'] = "~1.40802.0"
2422
if "buildfs" in targets:
2523
self.packages['tool-mkspiffs']['optional'] = False
2624
self.packages['tool-mklittlefs']['optional'] = False

0 commit comments

Comments
 (0)