Skip to content

Commit 93537f9

Browse files
metarutaigamcspr
andauthored
Added NONOS SDK 3.0.0 ~ 3.0.5 (again) (#8736)
* Added NONOS SDK 3.0.0 ~ 3.0.5 * Added user_pre_init * rf_cal[0] !=0x05,is 0x00 * # Remove mem_manager.o from libmain.a to use custom heap implementation, and time.o to fix redefinition of time-related functions # Rename `hostname` and `default_hostname` symbols * user_rf_pre_init * Add system_func1() called by system_restart_local() * Add commit log text * Fixed user_rf_pre_init * Style * pio sdks Co-authored-by: TAiGA <> Co-authored-by: Maxim Prokhorov <prokhorov.max@outlook.com>
1 parent ed6b957 commit 93537f9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+2889
-57
lines changed

boards.txt

+24
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,18 @@ generic.menu.sdk.nonosdk221=nonos-sdk 2.2.1 (legacy)
365365
generic.menu.sdk.nonosdk221.build.sdk=NONOSDK221
366366
generic.menu.sdk.nonosdk3v0=nonos-sdk pre-3 (180626 known issues)
367367
generic.menu.sdk.nonosdk3v0.build.sdk=NONOSDK3V0
368+
generic.menu.sdk.nonosdk300=nonos-sdk 3.0.0
369+
generic.menu.sdk.nonosdk300.build.sdk=NONOSDK300
370+
generic.menu.sdk.nonosdk301=nonos-sdk 3.0.1
371+
generic.menu.sdk.nonosdk301.build.sdk=NONOSDK301
372+
generic.menu.sdk.nonosdk302=nonos-sdk 3.0.2
373+
generic.menu.sdk.nonosdk302.build.sdk=NONOSDK302
374+
generic.menu.sdk.nonosdk303=nonos-sdk 3.0.3
375+
generic.menu.sdk.nonosdk303.build.sdk=NONOSDK303
376+
generic.menu.sdk.nonosdk304=nonos-sdk 3.0.4
377+
generic.menu.sdk.nonosdk304.build.sdk=NONOSDK304
378+
generic.menu.sdk.nonosdk305=nonos-sdk 3.0.5
379+
generic.menu.sdk.nonosdk305.build.sdk=NONOSDK305
368380
generic.menu.ip.lm2f=v2 Lower Memory
369381
generic.menu.ip.lm2f.build.lwip_include=lwip2/include
370382
generic.menu.ip.lm2f.build.lwip_lib=-llwip2-536-feat
@@ -710,6 +722,18 @@ esp8285.menu.sdk.nonosdk221=nonos-sdk 2.2.1 (legacy)
710722
esp8285.menu.sdk.nonosdk221.build.sdk=NONOSDK221
711723
esp8285.menu.sdk.nonosdk3v0=nonos-sdk pre-3 (180626 known issues)
712724
esp8285.menu.sdk.nonosdk3v0.build.sdk=NONOSDK3V0
725+
esp8285.menu.sdk.nonosdk300=nonos-sdk 3.0.0
726+
esp8285.menu.sdk.nonosdk300.build.sdk=NONOSDK300
727+
esp8285.menu.sdk.nonosdk301=nonos-sdk 3.0.1
728+
esp8285.menu.sdk.nonosdk301.build.sdk=NONOSDK301
729+
esp8285.menu.sdk.nonosdk302=nonos-sdk 3.0.2
730+
esp8285.menu.sdk.nonosdk302.build.sdk=NONOSDK302
731+
esp8285.menu.sdk.nonosdk303=nonos-sdk 3.0.3
732+
esp8285.menu.sdk.nonosdk303.build.sdk=NONOSDK303
733+
esp8285.menu.sdk.nonosdk304=nonos-sdk 3.0.4
734+
esp8285.menu.sdk.nonosdk304.build.sdk=NONOSDK304
735+
esp8285.menu.sdk.nonosdk305=nonos-sdk 3.0.5
736+
esp8285.menu.sdk.nonosdk305.build.sdk=NONOSDK305
713737
esp8285.menu.ip.lm2f=v2 Lower Memory
714738
esp8285.menu.ip.lm2f.build.lwip_include=lwip2/include
715739
esp8285.menu.ip.lm2f.build.lwip_lib=-llwip2-536-feat

cores/esp8266/core_esp8266_main.cpp

+70
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,77 @@ extern "C" void flashinit (void);
404404
uint32_t __flashindex;
405405
#endif
406406

407+
#if (NONOSDK >= (0x30000))
408+
409+
extern "C" void ICACHE_FLASH_ATTR user_pre_init(void)
410+
{
411+
uint32_t rf_cal = 0;
412+
uint32_t phy_data = 0;
413+
uint32_t system_parameter = 0;
414+
415+
switch (system_get_flash_size_map())
416+
{
417+
case FLASH_SIZE_2M:
418+
rf_cal = 0x3b000;
419+
phy_data = 0x3c000;
420+
system_parameter = 0x3d000;
421+
break;
422+
case FLASH_SIZE_4M_MAP_256_256:
423+
rf_cal = 0x7b000;
424+
phy_data = 0x7c000;
425+
system_parameter = 0x7d000;
426+
break;
427+
case FLASH_SIZE_8M_MAP_512_512:
428+
rf_cal = 0xfb000;
429+
phy_data = 0xfc000;
430+
system_parameter = 0xfd000;
431+
break;
432+
case FLASH_SIZE_16M_MAP_512_512:
433+
case FLASH_SIZE_16M_MAP_1024_1024:
434+
rf_cal = 0x1fb000;
435+
phy_data = 0x1fc000;
436+
system_parameter = 0x1fd000;
437+
break;
438+
case FLASH_SIZE_32M_MAP_512_512:
439+
case FLASH_SIZE_32M_MAP_1024_1024:
440+
case FLASH_SIZE_32M_MAP_2048_2048:
441+
rf_cal = 0x3fb000;
442+
phy_data = 0x3fc000;
443+
system_parameter = 0x3fd000;
444+
break;
445+
case FLASH_SIZE_64M_MAP_1024_1024:
446+
rf_cal = 0x7fb000;
447+
phy_data = 0x7fc000;
448+
system_parameter = 0x7fd000;
449+
break;
450+
case FLASH_SIZE_128M_MAP_1024_1024:
451+
rf_cal = 0xffb000;
452+
phy_data = 0xffc000;
453+
system_parameter = 0xffd000;
454+
break;
455+
}
456+
457+
extern uint32_t user_rf_cal_sector_set(void);
458+
user_rf_cal_sector_set();
459+
460+
const partition_item_t at_partition_table[] =
461+
{
462+
{ SYSTEM_PARTITION_RF_CAL, rf_cal, 0x1000 },
463+
{ SYSTEM_PARTITION_PHY_DATA, phy_data, 0x1000 },
464+
{ SYSTEM_PARTITION_SYSTEM_PARAMETER, system_parameter, 0x3000 },
465+
};
466+
system_partition_table_regist(at_partition_table, sizeof(at_partition_table) / sizeof(at_partition_table[0]), system_get_flash_size_map());
467+
}
468+
469+
#endif
470+
407471
extern "C" void user_init(void) {
472+
473+
#if (NONOSDK >= (0x30000))
474+
extern void user_rf_pre_init();
475+
user_rf_pre_init();
476+
#endif
477+
408478
struct rst_info *rtc_info_ptr = system_get_rst_info();
409479
memcpy((void *) &resetInfo, (void *) rtc_info_ptr, sizeof(resetInfo));
410480

libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp

+9-9
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ bool ESP8266WiFiGenericClass::setSleepMode(WiFiSleepType_t type, uint8_t listenI
303303
304304
*/
305305

306-
#ifdef NONOSDK3V0
306+
#if (NONOSDK >= (0x30000 - 1))
307307

308308
#ifdef DEBUG_ESP_WIFI
309309
if (listenInterval && type == WIFI_NONE_SLEEP)
@@ -334,9 +334,9 @@ bool ESP8266WiFiGenericClass::setSleepMode(WiFiSleepType_t type, uint8_t listenI
334334
}
335335
}
336336
}
337-
#else // !defined(NONOSDK3V0)
337+
#else // (NONOSDK >= (0x30000 - 1))
338338
(void)listenInterval;
339-
#endif // !defined(NONOSDK3V0)
339+
#endif // (NONOSDK >= (0x30000 - 1))
340340

341341
bool ret = wifi_set_sleep_type((sleep_type_t) type);
342342
if (!ret) {
@@ -571,10 +571,10 @@ bool ESP8266WiFiGenericClass::forceSleepWake() {
571571
* @return interval
572572
*/
573573
uint8_t ESP8266WiFiGenericClass::getListenInterval () {
574-
#ifndef NONOSDK3V0
575-
return 0;
576-
#else
574+
#if (NONOSDK >= (0x30000 - 1))
577575
return wifi_get_listen_interval();
576+
#else
577+
return 0;
578578
#endif
579579
}
580580

@@ -583,10 +583,10 @@ uint8_t ESP8266WiFiGenericClass::getListenInterval () {
583583
* @return true if max level
584584
*/
585585
bool ESP8266WiFiGenericClass::isSleepLevelMax () {
586-
#ifndef NONOSDK3V0
587-
return false;
588-
#else
586+
#if (NONOSDK >= (0x30000 - 1))
589587
return wifi_get_sleep_level() == MAX_SLEEP_T;
588+
#else
589+
return false;
590590
#endif
591591
}
592592

libraries/ESP8266WiFi/src/ESP8266WiFiSTA.cpp

+18-4
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ static bool sta_config_equal(const station_config& lhs, const station_config& rh
6161
*/
6262
static bool sta_config_equal(const station_config& lhs, const station_config& rhs) {
6363

64-
#ifdef NONOSDK3V0
64+
#if (NONOSDK >= (0x30000 - 1))
6565
static_assert(sizeof(station_config) == 116, "struct station_config has changed, please update comparison function");
6666
#else
6767
static_assert(sizeof(station_config) == 112, "struct station_config has changed, please update comparison function");
@@ -94,8 +94,18 @@ static bool sta_config_equal(const station_config& lhs, const station_config& rh
9494
return false;
9595
}
9696

97-
#ifdef NONOSDK3V0
98-
if (lhs.open_and_wep_mode_disable != rhs.open_and_wep_mode_disable) {
97+
#if (NONOSDK >= (0x30000 - 1))
98+
if(lhs.open_and_wep_mode_disable != rhs.open_and_wep_mode_disable) {
99+
return false;
100+
}
101+
#endif
102+
103+
#if (NONOSDK >= (0x30200))
104+
if(lhs.channel != rhs.channel) {
105+
return false;
106+
}
107+
108+
if(lhs.all_channel_scan != rhs.all_channel_scan) {
99109
return false;
100110
}
101111
#endif
@@ -156,9 +166,13 @@ wl_status_t ESP8266WiFiSTAClass::begin(const char* ssid, const char *passphrase,
156166
}
157167

158168
conf.threshold.rssi = -127;
159-
#ifdef NONOSDK3V0
169+
#if (NONOSDK >= (0x30000 - 1))
160170
conf.open_and_wep_mode_disable = !(_useInsecureWEP || *conf.password == 0);
161171
#endif
172+
#if (NONOSDK >= (0x30200))
173+
conf.channel = channel;
174+
conf.all_channel_scan = true;
175+
#endif
162176

163177
if(bssid) {
164178
conf.bssid_set = 1;

tests/host/common/user_interface.cpp

+7-3
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,12 @@ extern "C"
8585
config->bssid[i] = i;
8686
config->threshold.rssi = 1;
8787
config->threshold.authmode = AUTH_WPA_PSK;
88-
#ifdef NONOSDK3V0
88+
#if (NONOSDK >= (0x30000 - 1))
8989
config->open_and_wep_mode_disable = true;
90+
#endif
91+
#if (NONOSDK >= (0x30200))
92+
config->channel = 1;
93+
config->all_channel_scan = true;
9094
#endif
9195
return true;
9296
}
@@ -211,7 +215,7 @@ extern "C"
211215
return STATION_MODE;
212216
}
213217

214-
#ifdef NONOSDK3V0
218+
#if (NONOSDK >= (0x30000 - 1))
215219

216220
sleep_level_t wifi_get_sleep_level(void)
217221
{
@@ -267,7 +271,7 @@ extern "C"
267271
return true;
268272
}
269273

270-
#ifdef NONOSDK3V0
274+
#if (NONOSDK >= (0x30000 - 1))
271275

272276
bool wifi_set_sleep_level(sleep_level_t level)
273277
{

tools/boards.txt.py

+12
Original file line numberDiff line numberDiff line change
@@ -1670,6 +1670,18 @@ def sdk ():
16701670
('.menu.sdk.nonosdk221.build.sdk', 'NONOSDK221'),
16711671
('.menu.sdk.nonosdk3v0', 'nonos-sdk pre-3 (180626 known issues)'),
16721672
('.menu.sdk.nonosdk3v0.build.sdk', 'NONOSDK3V0'),
1673+
('.menu.sdk.nonosdk300', 'nonos-sdk 3.0.0'),
1674+
('.menu.sdk.nonosdk300.build.sdk', 'NONOSDK300'),
1675+
('.menu.sdk.nonosdk301', 'nonos-sdk 3.0.1'),
1676+
('.menu.sdk.nonosdk301.build.sdk', 'NONOSDK301'),
1677+
('.menu.sdk.nonosdk302', 'nonos-sdk 3.0.2'),
1678+
('.menu.sdk.nonosdk302.build.sdk', 'NONOSDK302'),
1679+
('.menu.sdk.nonosdk303', 'nonos-sdk 3.0.3'),
1680+
('.menu.sdk.nonosdk303.build.sdk', 'NONOSDK303'),
1681+
('.menu.sdk.nonosdk304', 'nonos-sdk 3.0.4'),
1682+
('.menu.sdk.nonosdk304.build.sdk', 'NONOSDK304'),
1683+
('.menu.sdk.nonosdk305', 'nonos-sdk 3.0.5'),
1684+
('.menu.sdk.nonosdk305.build.sdk', 'NONOSDK305'),
16731685
])
16741686
}
16751687

tools/platformio-build.py

+36-38
Original file line numberDiff line numberDiff line change
@@ -173,51 +173,49 @@ def scons_patched_match_splitext(path, suffixes=None):
173173
)
174174
)
175175

176-
flatten_cppdefines = env.Flatten(env['CPPDEFINES'])
177-
178176
#
179177
# SDK
180178
#
181-
if "PIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK3" in flatten_cppdefines:
182-
env.Append(
183-
CPPDEFINES=[("NONOSDK3V0", 1)],
184-
LIBPATH=[join(FRAMEWORK_DIR, "tools", "sdk", "lib", "NONOSDK3V0")]
185-
)
186-
elif "PIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK221" in flatten_cppdefines:
187-
#(previous default)
188-
env.Append(
189-
CPPDEFINES=[("NONOSDK221", 1)],
190-
LIBPATH=[join(FRAMEWORK_DIR, "tools", "sdk", "lib", "NONOSDK221")]
191-
)
192-
elif "PIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190313" in flatten_cppdefines:
193-
env.Append(
194-
CPPDEFINES=[("NONOSDK22x_190313", 1)],
195-
LIBPATH=[join(FRAMEWORK_DIR, "tools", "sdk", "lib", "NONOSDK22x_190313")]
196-
)
197-
elif "PIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191024" in flatten_cppdefines:
198-
env.Append(
199-
CPPDEFINES=[("NONOSDK22x_191024", 1)],
200-
LIBPATH=[join(FRAMEWORK_DIR, "tools", "sdk", "lib", "NONOSDK22x_191024")]
201-
)
202-
elif "PIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191105" in flatten_cppdefines:
203-
env.Append(
204-
CPPDEFINES=[("NONOSDK22x_191105", 1)],
205-
LIBPATH=[join(FRAMEWORK_DIR, "tools", "sdk", "lib", "NONOSDK22x_191105")]
206-
)
207-
elif "PIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_191122" in flatten_cppdefines:
208-
env.Append(
209-
CPPDEFINES=[("NONOSDK22x_191122", 1)],
210-
LIBPATH=[join(FRAMEWORK_DIR, "tools", "sdk", "lib", "NONOSDK22x_191122")]
211-
)
212-
else: #(default) if "PIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190703" in flatten_cppdefines:
213-
env.Append(
214-
CPPDEFINES=[("NONOSDK22x_190703", 1)],
215-
LIBPATH=[join(FRAMEWORK_DIR, "tools", "sdk", "lib", "NONOSDK22x_190703")]
216-
)
179+
NONOSDK_VERSIONS = (
180+
("SDK22x_190703", "NONOSDK22x_190703"),
181+
("SDK221", "NONOSDK221"),
182+
("SDK22x_190313", "NONOSDK22x_190313"),
183+
("SDK22x_191024", "NONOSDK22x_191024"),
184+
("SDK22x_191105", "NONOSDK22x_191105"),
185+
("SDK22x_191122", "NONOSDK22x_191122"),
186+
("SDK3", "NONOSDK3V0"),
187+
("SDK300", "NONOSDK300"),
188+
("SDK301", "NONOSDK301"),
189+
("SDK302", "NONOSDK302"),
190+
("SDK303", "NONOSDK303"),
191+
("SDK304", "NONOSDK304"),
192+
("SDK305", "NONOSDK305"),
193+
)
194+
nonosdk_version = NONOSDK_VERSIONS[0]
195+
196+
NONOSDK_PREFIX = "PIO_FRAMEWORK_ARDUINO_ESPRESSIF_"
197+
for define in env["CPPDEFINES"]:
198+
if isinstance(define, (tuple, list)):
199+
define, _ = define
200+
if define.startswith(NONOSDK_PREFIX):
201+
for version in NONOSDK_VERSIONS:
202+
name, _ = version
203+
if define.endswith(name):
204+
nonosdk_version = version
205+
206+
NONOSDK_LIBPATH=join(FRAMEWORK_DIR, "tools", "sdk", "lib", nonosdk_version[1])
207+
assert(isdir(NONOSDK_LIBPATH))
208+
209+
env.Append(
210+
CPPDEFINES=[(nonosdk_version[1], 1)],
211+
LIBPATH=[NONOSDK_LIBPATH],
212+
)
217213

218214
#
219215
# lwIP
220216
#
217+
flatten_cppdefines = env.Flatten(env["CPPDEFINES"])
218+
221219
lwip_lib = None
222220
if "PIO_FRAMEWORK_ARDUINO_LWIP2_IPV6_LOW_MEMORY" in flatten_cppdefines:
223221
env.Append(

0 commit comments

Comments
 (0)