diff --git a/cores/esp8266/core_esp8266_main.cpp b/cores/esp8266/core_esp8266_main.cpp index fbccac508f..56d715cf13 100644 --- a/cores/esp8266/core_esp8266_main.cpp +++ b/cores/esp8266/core_esp8266_main.cpp @@ -212,6 +212,29 @@ extern "C" void ICACHE_RAM_ATTR app_entry (void) return app_entry_custom(); } +extern "C" void user_pre_init (void) +{ +// need to get those numbers from board/generator +// NOT WORKING - need to get numbers from board/generator +// 4M +#define SPI_FLASH_SIZE_MAP 4 +#define SYSTEM_PARTITION_RF_CAL_ADDR (0x400000 - 0x3000 - 0x1000 - 0x1000) +#define SYSTEM_PARTITION_PHY_DATA_ADDR (0x400000 - 0x3000 - 0x1000) +#define SYSTEM_PARTITION_SYSTEM_PARAMETER_ADDR (0x400000 - 0x3000) + static const partition_item_t partitions[] = { + { SYSTEM_PARTITION_BOOTLOADER, 0x0, 0x1000}, + { SYSTEM_PARTITION_RF_CAL, SYSTEM_PARTITION_RF_CAL_ADDR, 0x1000}, + { SYSTEM_PARTITION_PHY_DATA, SYSTEM_PARTITION_PHY_DATA_ADDR, 0x1000}, + { SYSTEM_PARTITION_SYSTEM_PARAMETER,SYSTEM_PARTITION_SYSTEM_PARAMETER_ADDR, 0x3000}, + { SYSTEM_PARTITION_CUSTOMER_BEGIN, 0x1000, 0x8000}, + }; + if (!system_partition_table_regist(partitions, sizeof(partitions) / sizeof(partitions[0]), SPI_FLASH_SIZE_MAP)) + { + os_printf("system_partition_table_regist: failed\n"); + while(1); + } +} + extern "C" void user_init(void) { struct rst_info *rtc_info_ptr = system_get_rst_info(); memcpy((void *) &resetInfo, (void *) rtc_info_ptr, sizeof(resetInfo)); diff --git a/libraries/ESP8266WiFi/keywords.txt b/libraries/ESP8266WiFi/keywords.txt index 0610a749b4..1e448c345f 100644 --- a/libraries/ESP8266WiFi/keywords.txt +++ b/libraries/ESP8266WiFi/keywords.txt @@ -104,6 +104,7 @@ psk KEYWORD2 BSSID KEYWORD2 BSSIDstr KEYWORD2 RSSI KEYWORD2 +enableInsecureWEP KEYWORD2 beginWPSConfig KEYWORD2 beginSmartConfig KEYWORD2 stopSmartConfig KEYWORD2 diff --git a/libraries/ESP8266WiFi/src/ESP8266WiFiSTA.cpp b/libraries/ESP8266WiFi/src/ESP8266WiFiSTA.cpp index 5f2c2c3b05..03744f363c 100644 --- a/libraries/ESP8266WiFi/src/ESP8266WiFiSTA.cpp +++ b/libraries/ESP8266WiFi/src/ESP8266WiFiSTA.cpp @@ -86,6 +86,7 @@ static bool sta_config_equal(const station_config& lhs, const station_config& rh // ----------------------------------------------------------------------------------------------------------------------- bool ESP8266WiFiSTAClass::_useStaticIp = false; +bool ESP8266WiFiSTAClass::_useInsecureWEP = false; /** * Start Wifi connection @@ -127,6 +128,7 @@ wl_status_t ESP8266WiFiSTAClass::begin(const char* ssid, const char *passphrase, } conf.threshold.rssi = -127; + conf.open_and_wep_mode_disable = !(_useInsecureWEP || *conf.password == 0); // TODO(#909): set authmode to AUTH_WPA_PSK if passphrase is provided conf.threshold.authmode = AUTH_OPEN; diff --git a/libraries/ESP8266WiFi/src/ESP8266WiFiSTA.h b/libraries/ESP8266WiFi/src/ESP8266WiFiSTA.h index 58b76ef5ee..6390ac41e0 100644 --- a/libraries/ESP8266WiFi/src/ESP8266WiFiSTA.h +++ b/libraries/ESP8266WiFi/src/ESP8266WiFiSTA.h @@ -83,9 +83,12 @@ class ESP8266WiFiSTAClass { int32_t RSSI(); + static void enableInsecureWEP (bool enable = true) { _useInsecureWEP = enable; } + protected: static bool _useStaticIp; + static bool _useInsecureWEP; // ---------------------------------------------------------------------------------------------- // ------------------------------------ STA remote configure ----------------------------------- diff --git a/tools/sdk/include/user_interface.h b/tools/sdk/include/user_interface.h index a7733a9548..e78f2e50db 100644 --- a/tools/sdk/include/user_interface.h +++ b/tools/sdk/include/user_interface.h @@ -251,6 +251,7 @@ struct station_config { // with both ssid[] and bssid[] matched. Please check about this. uint8 bssid[6]; wifi_fast_scan_threshold_t threshold; + bool open_and_wep_mode_disable; // Can connect to open/wep router by default. }; bool wifi_station_get_config(struct station_config *config); @@ -261,6 +262,9 @@ bool wifi_station_set_config_current(struct station_config *config); bool wifi_station_connect(void); bool wifi_station_disconnect(void); +void wifi_enable_signaling_measurement(void); +void wifi_disable_signaling_measurement(void); + sint8 wifi_station_get_rssi(void); typedef enum { @@ -427,6 +431,17 @@ typedef enum { MODEM_SLEEP_T } sleep_type_t; +typedef enum { + MIN_SLEEP_T, + MAX_SLEEP_T +} sleep_level_t; + +bool wifi_set_sleep_level(sleep_level_t level); +sleep_level_t wifi_get_sleep_level(void); + +bool wifi_set_listen_interval(uint8 interval); +uint8 wifi_get_listen_interval(void); + bool wifi_set_sleep_type(sleep_type_t type); sleep_type_t wifi_get_sleep_type(void); @@ -745,6 +760,68 @@ bool wifi_set_country(wifi_country_t *country); */ bool wifi_get_country(wifi_country_t *country); +typedef enum { + SYSTEM_PARTITION_INVALID = 0, + SYSTEM_PARTITION_BOOTLOADER, /* user can't modify this partition address, but can modify size */ + SYSTEM_PARTITION_OTA_1, /* user can't modify this partition address, but can modify size */ + SYSTEM_PARTITION_OTA_2, /* user can't modify this partition address, but can modify size */ + SYSTEM_PARTITION_RF_CAL, /* user must define this partition */ + SYSTEM_PARTITION_PHY_DATA, /* user must define this partition */ + SYSTEM_PARTITION_SYSTEM_PARAMETER, /* user must define this partition */ + SYSTEM_PARTITION_AT_PARAMETER, + SYSTEM_PARTITION_SSL_CLIENT_CERT_PRIVKEY, + SYSTEM_PARTITION_SSL_CLIENT_CA, + SYSTEM_PARTITION_SSL_SERVER_CERT_PRIVKEY, + SYSTEM_PARTITION_SSL_SERVER_CA, + SYSTEM_PARTITION_WPA2_ENTERPRISE_CERT_PRIVKEY, + SYSTEM_PARTITION_WPA2_ENTERPRISE_CA, + + SYSTEM_PARTITION_CUSTOMER_BEGIN = 100, /* user can define partition after here */ + SYSTEM_PARTITION_MAX +} partition_type_t; + +typedef struct { + partition_type_t type; /* the partition type */ + uint32_t addr; /* the partition address */ + uint32_t size; /* the partition size */ +} partition_item_t; + +/** + * @brief regist partition table information, user MUST call it in user_pre_init() + * + * @param partition_table: the partition table + * @param partition_num: the partition number in partition table + * @param map: the flash map + * + * @return true : succeed + * @return false : fail + */ +bool system_partition_table_regist( + const partition_item_t* partition_table, + uint32_t partition_num, + uint32_t map + ); + +#if 0 // as of today, arduino core has its own ota api +/** + * @brief get ota partition size + * + * @return the size of ota partition + */ +uint32_t system_partition_get_ota_partition_size(void); +#endif // not using espressif ota + +/** + * @brief get partition information + * + * @param type: the partition type + * @param partition_item: the point to store partition information + * + * @return true : succeed + * @return false : fail + */ +bool system_partition_get_item(partition_type_t type, partition_item_t* partition_item); + #ifdef __cplusplus } #endif diff --git a/tools/sdk/lib/compare/sdk-compare-includes b/tools/sdk/lib/compare/sdk-compare-includes index 22ea262561..a6f6be1571 100755 --- a/tools/sdk/lib/compare/sdk-compare-includes +++ b/tools/sdk/lib/compare/sdk-compare-includes @@ -19,7 +19,7 @@ eof sdk="$1" me="$0" -core=${me%/*}/../../../.. +core=$(cd ${me%/*}/../../../..; pwd) [ -r "$sdk/lib/libnet80211.a" ] || help "$0" @@ -29,5 +29,5 @@ done | sed \ -e 's/^+#ifdef.*cplusplus//g' \ -e 's/^+extern "C"//g' \ -e 's/^+}$//g' \ - -e 's/^+#endif//g' \ + -e 's/^+#endif$//g' \ -e 's/^+[ \t]*$//g' \ diff --git a/tools/sdk/lib/compare/sdk-compare-libs b/tools/sdk/lib/compare/sdk-compare-libs index 8b083c3550..c8a34a20ae 100755 --- a/tools/sdk/lib/compare/sdk-compare-libs +++ b/tools/sdk/lib/compare/sdk-compare-libs @@ -88,7 +88,8 @@ search() espmd5=$(md5 "$tmp/lib/$f") if [ "$espmd5" = "$coremd5" ]; then tag=$(git describe --tag) - echo "$tag - https://github.com/espressif/ESP8266_NONOS_SDK/commit/$i - $f" + date=$(git log $tmp/lib/$f | head -3 | grep ^Date | sed 's,^[^ ]*[ ]*,,g') + echo "$tag - https://github.com/espressif/ESP8266_NONOS_SDK/commit/$i - $f - $date" found=true break fi diff --git a/tools/sdk/lib/fix_sdk_libs.sh b/tools/sdk/lib/fix_sdk_libs.sh index d0c162d39e..178f08bd2f 100755 --- a/tools/sdk/lib/fix_sdk_libs.sh +++ b/tools/sdk/lib/fix_sdk_libs.sh @@ -1,6 +1,8 @@ #!/bin/bash set -e +export PATH=../../xtensa-lx106-elf/bin:$PATH + # Remove mem_manager.o from libmain.a to use custom heap implementation, # and time.o to fix redefinition of time-related functions: xtensa-lx106-elf-ar d libmain.a mem_manager.o @@ -13,4 +15,4 @@ xtensa-lx106-elf-objcopy --redefine-sym hostname=wifi_station_hostname eagle_lwi xtensa-lx106-elf-objcopy --redefine-sym default_hostname=wifi_station_default_hostname user_interface.o xtensa-lx106-elf-objcopy --redefine-sym default_hostname=wifi_station_default_hostname eagle_lwip_if.o xtensa-lx106-elf-ar r libmain.a eagle_lwip_if.o user_interface.o -rm eagle_lwip_if.o user_interface.o +rm -f eagle_lwip_if.o user_interface.o diff --git a/tools/sdk/lib/libat.a b/tools/sdk/lib/libat.a deleted file mode 100644 index 7567719117..0000000000 Binary files a/tools/sdk/lib/libat.a and /dev/null differ diff --git a/tools/sdk/lib/libc_orig.a b/tools/sdk/lib/libc_orig.a deleted file mode 100644 index 7241a72a76..0000000000 Binary files a/tools/sdk/lib/libc_orig.a and /dev/null differ diff --git a/tools/sdk/lib/libcrypto.a b/tools/sdk/lib/libcrypto.a old mode 100644 new mode 100755 index 1c3feaba43..58a30a4b7f Binary files a/tools/sdk/lib/libcrypto.a and b/tools/sdk/lib/libcrypto.a differ diff --git a/tools/sdk/lib/libdriver.a b/tools/sdk/lib/libdriver.a deleted file mode 100644 index 531ea87270..0000000000 Binary files a/tools/sdk/lib/libdriver.a and /dev/null differ diff --git a/tools/sdk/lib/libespnow.a b/tools/sdk/lib/libespnow.a old mode 100644 new mode 100755 index 400d3bd9d5..fe07ba5a20 Binary files a/tools/sdk/lib/libespnow.a and b/tools/sdk/lib/libespnow.a differ diff --git a/tools/sdk/lib/libjson.a b/tools/sdk/lib/libjson.a deleted file mode 100644 index e9f365ba1d..0000000000 Binary files a/tools/sdk/lib/libjson.a and /dev/null differ diff --git a/tools/sdk/lib/liblwip.a b/tools/sdk/lib/liblwip.a deleted file mode 100644 index e77e304d77..0000000000 Binary files a/tools/sdk/lib/liblwip.a and /dev/null differ diff --git a/tools/sdk/lib/liblwip2.a b/tools/sdk/lib/liblwip2.a index 46f6e49691..011b480855 100644 Binary files a/tools/sdk/lib/liblwip2.a and b/tools/sdk/lib/liblwip2.a differ diff --git a/tools/sdk/lib/liblwip2_1460.a b/tools/sdk/lib/liblwip2_1460.a index 0928362bf6..8afdf1f074 100644 Binary files a/tools/sdk/lib/liblwip2_1460.a and b/tools/sdk/lib/liblwip2_1460.a differ diff --git a/tools/sdk/lib/liblwip_536.a b/tools/sdk/lib/liblwip_536.a deleted file mode 100644 index 5ea340be2e..0000000000 Binary files a/tools/sdk/lib/liblwip_536.a and /dev/null differ diff --git a/tools/sdk/lib/libmain.a b/tools/sdk/lib/libmain.a index c0e70cafef..6a8683f4ef 100644 Binary files a/tools/sdk/lib/libmain.a and b/tools/sdk/lib/libmain.a differ diff --git a/tools/sdk/lib/libnet80211.a b/tools/sdk/lib/libnet80211.a index d3ecbd68a9..08d187e40c 100644 Binary files a/tools/sdk/lib/libnet80211.a and b/tools/sdk/lib/libnet80211.a differ diff --git a/tools/sdk/lib/libpp.a b/tools/sdk/lib/libpp.a index 6135231c79..b70496cb3c 100644 Binary files a/tools/sdk/lib/libpp.a and b/tools/sdk/lib/libpp.a differ diff --git a/tools/sdk/lib/libpwm.a b/tools/sdk/lib/libpwm.a deleted file mode 100644 index 1913f1604e..0000000000 Binary files a/tools/sdk/lib/libpwm.a and /dev/null differ diff --git a/tools/sdk/lib/libsmartconfig.a b/tools/sdk/lib/libsmartconfig.a old mode 100644 new mode 100755 index c217cc5b98..7ac84c5024 Binary files a/tools/sdk/lib/libsmartconfig.a and b/tools/sdk/lib/libsmartconfig.a differ diff --git a/tools/sdk/lib/libssl.a b/tools/sdk/lib/libssl.a deleted file mode 100644 index 6ff625bf6a..0000000000 Binary files a/tools/sdk/lib/libssl.a and /dev/null differ diff --git a/tools/sdk/lib/libupgrade.a b/tools/sdk/lib/libupgrade.a deleted file mode 100644 index ee219cbec8..0000000000 Binary files a/tools/sdk/lib/libupgrade.a and /dev/null differ diff --git a/tools/sdk/lib/libwpa.a b/tools/sdk/lib/libwpa.a old mode 100644 new mode 100755 index 7ea69a61f4..9671b68843 Binary files a/tools/sdk/lib/libwpa.a and b/tools/sdk/lib/libwpa.a differ diff --git a/tools/sdk/lib/libwpa2.a b/tools/sdk/lib/libwpa2.a old mode 100644 new mode 100755 index 1f7aabb688..758c588df8 Binary files a/tools/sdk/lib/libwpa2.a and b/tools/sdk/lib/libwpa2.a differ diff --git a/tools/sdk/lib/libwps.a b/tools/sdk/lib/libwps.a old mode 100644 new mode 100755 index 0c3503350a..37749d92b5 Binary files a/tools/sdk/lib/libwps.a and b/tools/sdk/lib/libwps.a differ diff --git a/tools/sdk/version b/tools/sdk/version index d7849d9e1b..06e014650a 100644 --- a/tools/sdk/version +++ b/tools/sdk/version @@ -1 +1 @@ -v2.1.0-10-g509eae8 \ No newline at end of file +v2.2.0-28-g89920dc \ No newline at end of file