ESP8266_RTOS_SDK pre-release v3.0-rc1
Pre-release
Pre-release
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