Releases: espressif/ESP8266_RTOS_SDK
ESP8266_RTOS_SDK v3.0.1
ESP8266_RTOS_SDK v3.0.1 is a bugfix-only update for ESP8266_RTOS_SDK v3.0. Release v3.0.1 is compatible with apps written for ESP8266_RTOS_SDK v3.0.x.
This is the list of changes since release v3.0:
1. Systems
- Fix an issue that "esp_restart" may return unexpectly.
2. Wi-Fi
- Fix the incompatiblity issue of some special APs using CCMP encryption.
- Fix the beacon timeout issue by disabling AMPDU packet in normal mode.
- Optimize smartconfig process and efficiency.
3. LwIP
- Fix the compiling error when UDP sync is disabled.
ESP8266_RTOS_SDK v2.1.0
ESP8266 RTOS SDK v2.1.0
ESP8266 RTOS SDK v2.1.0 is an old-style SDK, not the ESP-IDF style. If you want to use the ESP-IDF style SDK, please refer to ESP8266 RTOS SDK V3.0 or later versions.
This is the list of changes since ESP8266 RTOS SDK v2.0.
1. System
- remove an unsupported library, i.e. libminic.a
- add libhal.a to sdk to solve compiling error
- fix an error in load/store exception handler
- fix an issue that OTA will erase rf cal sector
- add an OTA example
2. Wi-Fi
- support both broadcast and multicast packet for smartconfig. To use it, please upgrade your ESP-TOUCH App to v0.3.7.0
- fix the PMK saving error when AP does not exit
- fix an issue that watchdog is triggered because PMK calculation takes too long time
- fix an issue that system may crash when changing Wi-Fi mode
- update libphy.a to version 1055_8 to fix beacon timeout in some cases
3. Peripherals Driver
3.1 UART
- fix an issue that UART fails to print at low baud rate
3.2 SPI Flash
- modify enum SpiIntSrc_Done and SpiIntSrc_DoneEn's name
- modify parameter types
- change upack(1) to pack() to cancel 1-byte alignment, and therefore avoid compiling error
3.3 PWM
- add api to stop pwm
- add api to set the phase of each pwm channel
- add a pwm example
4. Protocol
4.1 lwIP
- send arp every 10s to avoid network IP change
4.2 wolfSSL
- add the 3.15.3 version of wolfSSL library
- add a wolfSSL client example
- disable RC4 and RABBIT by default
- enable TLS 1.0 and TLS 1.1 by default
4.3 WebSocket
- fix compiling error
4.4 CoAP
- add CoAP source code
- add a CoAP client example
- add a CoAP server example
ESP8266_RTOS_SDK v3.0
ESP8266_RTOS_SDK Release v3.0
This is the list of changes since pre-release v3.0-rc1.
Major Changes:
1. Compiling framework and cross-toolchain
- Remove unused libraries and header file, i.e., libairkiss.a, libespnow.a and libpwm.a.
2. Wi-Fi
- Optimize smartconfig and speed up configurating Wi-Fi network.
- Fix an issue that AP parameters are saved incorrectly.
- Fix beacon timeout in some cases.
- Fix "panic" function reenter issue.
- Fix WPA free data error when lack of memory.
3. Driver
- Fix the bug of GPIO interrupt.
4. LWIP
- Optimize UDP sending process and speed up UDP throughput.
5. newlib
- Add configuration for console UART, including target UART number, baudrate, swap I/O pins.
ESP8266_RTOS_SDK pre-release v3.0-rc1
V3.0-RC1
Notice:
ESP8266_RTOS_SDK V3.0 provides users with brand new framework and APIs that conform to ESP-IDF style. Considering these major changes may cause significant impact on existing projects, it's recommended that this version is only used for the implementation of new projects, instead of being used as an upgrade for any existing mass-production projects for now. However, we do have plans to further upgrade SDK V3.0 in the future, so it can better support projects that has implemented SDK 2.0 (and eariler versions).
1. Breaking Changes
Refactor SDK to be ESP-IDF style, the updated directory is as follows:
- components
- docs
- examples
- make
- tools
- README.md
2. New Components
- aws iot
- bootloader of idf compatible
- espos
- esptool_py
- jsmn
- log
- newlib
- NVS flash
- partition and related scripts
- SPI driver that support read/write without 4-byte alignment requirement
- tcpip_adapter
- unit test
3. Modified Functions and Features
3.1 Compiling framework and cross-toolchain
- ESP-IDF makefile system described in docs/build_system.rst
- Refactor the compiling framework
- Remove
gen_misc.sh
, and add its configuration inmenu
- Support more C++ functions
- Add rtc segment and attribute in
esp_attr.h
- Simplify ld files and add more macros for better control
- Link the
rodata
section, including strings, into flash by default (exceptlibpp.a
andliblog.a
) - Link FreeRTOS into flash by default
- Only 2 MB+ SPI flash in the
menuconfig
is supported - Integrate the
libhal.a
library - Update cross-toolchain (xtensa-lx106-elf-xxx) to version 4.8.5
- Remove two libraries that are no longer being used:
- libminic.a
- libmicom.a
3.2 Tools
- Add a new
menu
for human-computer interaction, which can be opened bymake menuconfig
- Add support for downloading firmware with command lines
- Add support for monitoring serial ports with command lines
- Add realy time information for idf monitor
- Add more configurations in
menu
3.3 Systems
- [Notice] Change the entry name of user function from
user_init
toapp_main
- [Notice] Remove the
user_rf_cal_sector_set
function from the folderapplications
- Add new flash map and partitions, which are described in docs/partition-tables.rst
- Refactor system APIs, most of which are compatible with esp-idf
- Refactor startup function and processe
- Add new feature panic when a crash occurs
- Add new feature panic when the software watch dog is triggled
- Add support for
full icache(32-KB) mode
inmenu
- Fix the load/store error when "a0" is used
- Remove two header files that are no longer being used:
- esp_common.h
- esp_misc.h
- Remove three APIs and macros that are no longer applicable
- os_printf
- ICACHE_FLASH_ATTR
- ICACHE_RODATA_ATTR
- Add more configurations in
menu
3.4 Drivers
- Refactor driver APIs
- Remove some drivers
- Only the UART and GPIO drivers are supported in this version, others will be added in later versions.
3.5 FreeRTOS
- Update FreeRTOS to v10.0.1
- [Important] Modify task stack unit from "unsigned long"(4-byte) to "unsigned char"(1-byte). Therefore, user should modify the size of their task stack to
original size x 4
- Add memory mark for trace heap
- Add configuration for HZ and CPU system-tick timer
- Add open source FreeRTOS arch-dependent source
- Add more configurations in
menu
3.6 Wi-Fi
- Refactor Wi-Fi, phy and sleep APIs, most of which are compatible with esp-idf
- Add a platform adaptation layer for OS and other components
- Add a I/O abstract adaptation layer
- Add configuration for the maximum number of APs that can be scaned in
menu
- Add more Wi-Fi events
- Support backup mac address
- Remove the software coupling between Wi-Fi and other components
- Add more configurations into
menu
3.7 LWIP
- Update LWIP to v2.0.3
- Support socket TCP cache and retransmitation in LWIP low-layer
- Support socket UDP cache and retransmitation in LWIP low-layer
- Modify
lwipopts.h
and add more configurations inmenu
- Modify the priority of LWIP task to "configMAX_PRIORITIES - 7"
- Remove the software coupling between LWIP and other components
- Modify the priority of loop event task to "configMAX_PRIORITIES - 5"
- Fix issues of LWIP TX_SINGLE_PBUF
- Fix an error of LWIP timer tick
3.8 SSL
- Update mbedTLS to v2.8.0
- Update wolfSSL to v3.15.3
- Modify
esp_config.h
and add more configurations inmenu
3.9 MQTT
- Fix bugs of MQTT platform
3.10 newlib
- Support more functions and APIs
- Add support to select the output string of
stdio
functions ends with CR, LF or CR+LF inmenu
- Make newlib C functions thread-safety with private
reent
by default - Add more configurations in
menu
- Add support for selecting from newlib versions
- Nano version: only support the basic functions and features, which saves RAM and ROM
- Normal version: support 64-bit integer and float data types, and the C99 stardard
3.11 JSON
- Update cJSON to v1.7.6
3.12 nopoll
- Remove nopoll
3.13 espconn
- Remove espconn
ESP8266_RTOS_SDK Release 2.0.0
System
- Memory optimization
1.1. Support puting .rodata into flash, with modifications of ld file;
1.2. Modify to use 16KB Cache mode, and the saved 16KB iRAM are used as heap region; - Update to use heap_5.c from FreeRTOS, support multi heap pools;
- Update boot to version 1.7:
3.1. boot currently use bin 3 times,if all fail, turn to boot the bin of last user;
3.2. Support 8MB & 16MB SPI Flash; - Update ld file, put .rodata in some libs to SPI Flash by default;
- Add gcc flag -fno-jump-tables to reduce .rodata usage;
- Support eon SPI Flash, dio -> qio mode;
- Support 8MB & 16MB SPI flash;
- Remove mesh support;
- Use gcc to compile all libs;
- Show stack info when exception occur;
- Improve dio -> qio function of some SPI Flash;
- Modify rom ld, export some low level functions;
- Fix some os_ macro;
- Fix deep sleep crash issue;
- Fix wdt crash issue in some cases;
Driver
- Fix the issue of hw_timer;
- Fix the issue of SPI tx/rx data sometimes wrong;
- Fix the issue of setting UART flow control;
Examples
- Add websocket demo;
- Add wifi_station_machine_demo;
- Add openssl server demo;
- Add openssl client demo;
- Add mqtt demo;
Protocol
Lwip
- Add dhcp options;
- Enable ETHARP_TRUST_IP_MAC in lwipopt.h;
- Modify dhcp/dhcps timer from 60 seconds to 1 second;
- Remove time() function in lwip;
- Rebind UDP pcb when IP changed;
- Fix the error of socket macro definition;
- Fix the connection issue of multi-clients;
- Fix the issue of containing more than one tcp pbuf in single tx packet;
- Fix lwip slow timer delay more than one second;
- Fix mss_local is always subtract the IPv6 header size;
- Fix multi-thread issues;
espconn
- Add source codes of espconn;
mbedTLS
- Fix ECP memory leak;
OpenSSL
- Add openssl wrap layer;
- Add ssl_pm_extend.c for nopoll;
MQTT
- Add phao mqtt support, include SSL;
WiFi
- Update libphy to version 1055_1;
- Save PMK to SPI flash, improve the station connect speed;
- Modify scan API, support to scan more info.;
- Add the description of vendor IE API;
- Add beacon & probe response freq IE;
- Add the support of CSA;
- Add WiFi station keep alive support;
- Add passive & active scan support;
- Add country code APIs;
- Add support of packets forward in softAP mode;
- Fix the bug of mic failure handler;
- Fix the issue of group key update;
- Fix WPA/WPA2 PTK/GTK; reinstallation vulnerability;
- Fix the bug of scan hidden AP;
- Fix some potential memory leak;
- Fix WiFi tx/rx status wrong which will cause LmacRxBlk:0 error;
- Fix WDT when call espnow delete;
- Fix wrong behavior of WiFi set MAC address;
- Fix WPS connect issue for ELECON router;
- Fix short of eapol resend mechanism in softAP;
- Fix the send issue caused by low priority of pm task;
ESP8266_RTOS_SDK pre-release 2.0.0-rc1
System
- Memory optimization
1.1. Support puting .rodata into flash, with modifications of ld file;
1.2. Modify to use 16KB Cache mode, and the saved 16KB iRAM are used as heap region; - Update to use heap_5.c from FreeRTOS, support multi heap pools;
- Update boot to version 1.7:
3.1. boot currently use bin 3 times,if all fail, turn to boot the bin of last user;
3.2. Support 8MB & 16MB SPI Flash; - Update ld file, put .rodata in some libs to SPI Flash by default;
- Add gcc flag -fno-jump-tables to reduce .rodata usage;
- Support eon SPI Flash, dio -> qio mode;
- Support 8MB & 16MB SPI flash;
- Remove mesh support;
- Use gcc to compile all libs;
- Show stack info when exception occur;
- Improve dio -> qio function of some SPI Flash;
- Modify rom ld, export some low level functions;
- Fix some os_ macro;
- Fix deep sleep crash issue;
- Fix wdt crash issue in some cases;
Driver
- Fix the issue of hw_timer;
- Fix the issue of SPI tx/rx data sometimes wrong;
- Fix the issue of setting UART flow control;
Examples
- Add websocket demo;
- Add wifi_station_machine_demo;
- Add openssl server demo;
- Add openssl client demo;
- Add mqtt demo;
Protocol
Lwip
- Add dhcp options;
- Enable ETHARP_TRUST_IP_MAC in lwipopt.h;
- Modify dhcp/dhcps timer from 60 seconds to 1 second;
- Remove time() function in lwip;
- Rebind UDP pcb when IP changed;
- Fix the error of socket macro definition;
- Fix the connection issue of multi-clients;
- Fix the issue of containing more than one tcp pbuf in single tx packet;
- Fix lwip slow timer delay more than one second;
- Fix mss_local is always subtract the IPv6 header size;
- Fix multi-thread issues;
espconn
- Add source codes of espconn;
mbedTLS
- Fix ECP memory leak;
OpenSSL
- Add openssl wrap layer;
MQTT
- Add phao mqtt support;
WiFi
- Update libphy to version 1055_1;
- Save PMK to SPI flash, improve the station connect speed;
- Modify scan API, support to scan more info.;
- Add the description of vendor IE API;
- Add beacon & probe response freq IE;
- Add the support of CSA;
- Add WiFi station keep alive support;
- Add passive & active scan support;
- Add country code APIs;
- Add support of packets forward in softAP mode;
- Fix the bug of mic failure handler;
- Fix the issue of group key update;
- Fix WPA/WPA2 PTK/GTK; reinstallation vulnerability;
- Fix the bug of scan hidden AP;
- Fix some potential memory leak;
- Fix WiFi tx/rx status wrong which will cause LmacRxBlk:0 error;
- Fix WDT when call espnow delete;
v1.4.0: Version 1.4.0(cb4060d9)
- update boot.bin to v1.5;
- phy version to 762;
- add wifi_station_set/get_hostname api;
- optimize net80211;
- optimize ssl;
- optimize ota;
- optimize dhcp client;
- update smartconfig to version 2.5.3;
- support gpio wakeup;
- enable IGMP in lwip;
- some modify due to phy update;
- add espconn_init in espconn.h;
- update cjson/freertos/ssl;
- add lwip/nopoll source code;
- add libairkiss.a/airkiss.h, update smart_config;
- update esp_init_data_default.bin;
- irom0 too large, start addr change to 0x20000;
- some modifications for system stability;
- header files update, add API documents (pdf & html);
- fix a bug in wifi_send_pkt_freedom;
- modify driver code due to _xt_isr_attach parameter changed;
- many other optimization;