發行版v3.0的文檔可在http://esp-idf.readthedocs.io/en/v3.0/上找到。
這是自發布v3.0-rc1以來的更改列表。
如果從以前的穩定版本V2.1進行升級,請檢查v3.0-rc1發行說明以了解適用的更改。
打破變化
發行版v3.0在很大程度上與為ESP-IDF v3.0-rc1編寫的應用程序兼容。但是一些破壞行為和重要的API更改已經引入:
-
一些混合了返回值和錯誤代碼的I2S API已被棄用。新的API已被引入以取代它們。
i2s_write
應該用來代替i2s_write_bytes
和i2s_push_sample
,這是不贊同的。i2s_read
應該用來代替i2s_read_bytes
和i2s_pop_sample
,這是不贊同的
-
(esp_ble_gattc_open())
remote_addr_type
添加了一個新參數esp_ble_gattc_open()
-
修改
ESP_GATTS_ADD_CHAR_DESCR_EVT
BLE GATTS事件的char_uuid
參數,將此事件的參數重命名為descr_uuid
(!1484) -
修改經典BT AVRC事件
feat_mask
從ESP_AVRC_CT_CONNECTION_STATE_EVT
事件中刪除參數- 刪除
ESP_AVRC_CT_MAX_EVT
事件 - 添加一個新事件
ESP_AVRC_CT_REMOTE_FEATURES_EVT
構建系統和工具
新功能
- 支持.cc擴展名的C ++源文件
- idf_monitor現在支持暫停控制台的日志輸出
- 支持編輯ESP-IDF源文件的editorconfig
- 修復從睡眠中醒來時降低的RTC核心電壓
Bug修復
- 恢復應用程序與IDF前v2.1引導程序的兼容性
- 修復在單核模式下構建時的SysView支持
引導程序
- 在UART由第二級引導加載程序重新配置之前禁用日志記錄(可能設置自定義波特率)
- 如果閃光頻率為80MHz,則始終將VDD_SDIO電壓提升至1.8V - > 1.9V
FreeRTOS的
新功能
- 反向移植的FreeRTOS V9.0.0任務刪除行為:如果當前未運行,已刪除的任務將立即清除。
- IDF環緩沖區:添加新的API xRingbufferGetCurFreeSize(),xRingbufferIsNextItemWrapped(),xRingbufferCreateNoSplit()
Bug修復
- 修復在某些情況下未被清理的跨核心已刪除任務。
系統庫功能
新功能
- spi_flash:檢測無效寫入的新配置選項
Bug修復
- 修復esp_timer准確度問題
- 修復啟用堆跟蹤時的realloc()行為
- 修復啟用堆中毒時的realloc()內存損壞錯誤
- 修復拆分大型空閑塊時的內存碎片問題
- 修復RTC用作時鍾源時的編譯錯誤
- 通過時鍾子系統修復無效的SPIRAM時鍾變化
- 修復單核模式下的時鍾初始化
- 限制DRAM的鏈接器大小以強制執行靜態RAM限制,而不是在運行時出錯
驅動程序
新功能
- ADC eFuse工廠校准功能
- I2S驅動程序:新函數i2s_write_expand()自動擴展提供的樣本的位寬以匹配硬件
- UART驅動程序:允許讀取字符模式檢測位置,而無需修改模式檢測隊列
Bug修復
- I2C驅動程序:修復超時恢復,線程安全
- I2C驅動程序:允許NACKing最后一個字節讀取
- I2S驅動程序:修復某些函數返回的不准確錯誤
TCP / IP
新功能
Bug修復
- 修復關閉TCP套接字導致系統崩潰錯誤
- 修復設置軟AP或以太網靜態IP時發布錯誤事件的錯誤
已知的問題
- 長時間TCP流量穩定性測試會導致LWIP斷言,只有在啟用了PSRAM的雙核模式下才能找到它
- TCP流量穩定性測試導致中斷看門狗超時,發現它處於雙核模式,並且設備的WiFi模式配置為WIFI_MODE_APSTA模式
無線上網
Bug修復
- 修復站點與AP斷開連接時系統崩潰的錯誤。
- 修復接收信標時間不正確的錯誤。
- 修復
esp_wifi_restore()
導致無線連接失敗的錯誤(#233) - 修正了在嗅探模式下它在接收混雜數據時聲明的錯誤(#1037,#1404)
- 修復espnow中的內存泄漏
- 修復wpa2在斷開連接時斷言的錯誤
- 修復11g模式下的QoS錯誤
- 修復
esp_wifi_stop()
不會返回錯誤 - 修復
esp_wifi_deinit()
會導致系統斷言錯誤 - 修復EAPOL重傳導致系統崩潰錯誤
- 修復WPS在WIFI_MODE_APSTA錯誤(#1045)上無法正常工作
- 修復WPA2的sha256簽名導致系統斷言錯誤([ #1297 ](無法在ESP32上使用wpa2_enterprise示例))
性能改進
- 優化WiFi重傳和超時機制
BLE
已知的問題
- 如果ESP32過載,藍牙控制器將會崩潰,例如運行BLE吞吐量示例並同時打印大量日志
鏈接層
- 修復
LL_LENGTH_REQ
即使遠程設備不支持此功能也會發送數據包的錯誤
GATT服務器
esp_ble_gatts_get_attr_value()
當事件獲取的特征值由遠程設備使用Prepare Write Request
(#1612)寫入時修復事件的錯誤結果
間隙
- 修復開始/停止廣告完成事件有時不准確的錯誤
- 修復在
connection parameters update procedure
配對期間有時失敗的錯誤 - 修復
connection parameter update procedure
有時導致斷開連接的錯誤 - 修復芯片重新啟動后從閃存讀取的綁定列表不正確的錯誤
SMP
- 修復當設備已經配對時重新連接有時會失敗的錯誤(#1561)
性能優化
- 提高多連接的穩定性
藍牙通用部件
- 修復一些與內存泄漏相關的錯誤(BLE SMP,A2DP,Timer)
- 修復一些可能導致崩潰的錯誤(xQueueGenericSend,頁面掃描過程等)
經典BT
- 添加選項以配置
A2DP sink task
通過menuconfig 的堆棧大小 - 修復連接期間調用重啟
media task
失敗的錯誤esp_a2d_sink_deinit()
(#1522
) - 當接收設備充當主設備時,修復事件的錯誤
disc_rsn
參數值ESP_A2D_CONNECTION_STATE_EVT
- 修復事件的錯誤
remote_bda
參數值ESP_AVRC_CT_CONNECTION_STATE_EVT
- 修復
link key notification
當接收設備正在修復時導致發起方丟失事件的錯誤simple_pairing mode
(#1275) - 修正在menuconfig中啟用
string_to_bdaddr
時,從閃存讀取的設備地址未正確轉換的錯誤nano formatting options
openssl包裝
- 在mbedTLS配置中禁用ALPN時修復編譯錯誤
mbedTLS
Bug修復
- Backport安全修復從v2.8.0修復到v2.6.0。涵蓋CVE-2018-0488,CVE-2018-0487,CVE-2017-18187,CVE-2018-9988,CVE-2018-9989。
超低功耗處理器
Bug修復
- 修復使用新工具鏈時出現的I_DELAY宏錯誤
- 記錄ULP指令的執行時間
的mDNS
Bug修復
- 生成與所有mDNS解析器兼容的TXT記錄
- 解決mDNS服務為空時的問題
外部圖書館
- cJSON更新至v1.7.1,包含一些內存損壞修復程序
文檔
- 在一些BLE示例中添加教程
- 修改一些BLE / BT示例中的自述文件
- 改進了RMT驅動程序API文檔
例子
新的例子
- 新的RMT驅動程序示例
Bug修復
- 修正Eddystone示例的一些錯誤(#1682)
獲取v3.0
連接到該版本的源文件將無法工作,由於我們使用git的子模塊。改為使用以下方法之一:
使用git
要獲得此預發布版,請使用以下命令:
git clone https://github.com/espressif/esp-idf.git esp-idf-v3.0
cd esp-idf-v3.0/
git checkout v3.0
git submodule update --init --recursive
這是獲得ESP-IDF v3.0的推薦方式。
下載包含子模塊的檔案
附加到這個版本是一個esp-idf-v3.0.zip
檔案。它包含.git
目錄和所有子模塊,因此可以直接使用。該存檔適用於存在連接問題的用戶,以防止他們從Github克隆。
預發布3.0-rc1的文檔可在http://esp-idf.readthedocs.io/en/v3.0-rc1/獲得。
這是自2.1版以來的更改列表。
打破變化
發布v3.0在很大程度上與為ESP-IDF v2.1編寫的應用程序兼容。但是一些破壞行為和重要的API更改已經引入:
-
晶體頻率默認設置為40MHz(以前自動檢測)。如果檢測到的頻率不匹配,則會記錄警告,但26MHz主板(如Sparkfun ESP32 Thing)的用戶需要手動配置26MHz。(文件)
-
藍牙控制器保留內存現在在運行時確定。啟用藍牙的應用程序可以使用esp_bt_controller_mem_release)函數來回收未使用的控制器內存。
-
新任務看門狗API。esp_task_wdt_feed()已被esp_task_wdt_reset()所取代。現在必須將任務明確添加到Task Watchdog。(文件)
-
FreeRTOS tick和空閑掛鈎現在分配給每個內核(#781)
-
RMT外設功能
rmt_get_ringbuf_handler
改名為rmt_get_ringbuf_handle
-
中斷分配:分配給相同中斷源的多個中斷處理程序必須具有相同的標志
-
默認情況下,BASIC ROM控制台回退在首次引導時永久禁用(通過efuse),以避免意外重置為此模式
-
SPI驅動程序:許多SPI主API,SPI主地址格式等都發生了變化。有關詳細信息,請參閱驅動程序部分(下方)
-
tcpip_adapter_start
函數現在被分解成接口特定的tcpip_adapter_eth_start
,tcpip_adapter_wifi_start
等等(這是一個突破API的變化,但這個功能通常不直接由應用程序調用) -
WiFi初始化功能,
esp_wifi_init
不再在nvs_flash_init
內部調用。應用程序需要在調用nvs_flash_init
之前調用esp_wifi_init
。 -
esp_wifi_wps_enable
從更改esp_err_t esp_wifi_wps_enable(void)
為esp_err_t esp_wifi_wps_enable(const esp_wps_config_t *config)
。詳細信息請查看WPS示例。 -
esp_wifi_sta_wpa2_ent_enable
從更改esp_err_t esp_wifi_sta_wpa2_ent_enable(void)
為esp_err_t esp_wifi_sta_wpa2_ent_enable(const esp_wpa2_config_t *config)
。詳細信息請查看WPA2示例。 -
定義
wifi_country_t
已更改(文檔)。 -
當WiFi站點與AP斷開連接時,IP地址不會立即重置為0.如果站點斷開一段時間,
SYSTEM_EVENT_STA_LOST_IP
則會生成事件並且IP地址設置為0.可以使用CONFIG_IP_LOST_TIMER_INTERVAL選項(120秒默認)。 -
新的MTU API。
esp_ble_gattc_config_mtu()
已取代esp_ble_gatt_set_local_mtu()
和esp_ble_gattc_send_mtu_req()
。前一個API用於設置本地Rx MTU,后一個用於GATTC發送MTU請求 -
GATTC API
esp_ble_gattc_get_characteristic()
並被esp_ble_gattc_get_descriptor()
刪除- 新API
esp_ble_gattc_get_db()
可用於獲取整個GATT數據庫(esp_ble_gattc_get_db) - 提供了一些其他新的API來獲取UUID或句柄的特定特征,例如
esp_ble_gattc_get_char_by_uuid()
。
- 新API
-
用於GATTC讀取/寫入操作的API參數已更改,現在,句柄將用作標識符而不是UUID。
esp_ble_gattc_read_char()
esp_ble_gattc_read_char_descr()
esp_ble_gattc_write_char()
esp_ble_gattc_write_char_descr()
esp_ble_gattc_prepare_write()
esp_ble_gattc_prepare_write_char_descr()
-
添加啟用或禁用隱私的事件(
ESP_GAP_BLE_SET_LOCAL_PRIVACY_COMPLETE_EVT
) -
添加兩個GATTC事件以指示物理連接狀態
ESP_GATTC_DISCONNECT_EVT
ESP_GATTC_CONNECT_EVT
-
修改兩個指示物理連接狀態的GATTS事件(
ESP_GATTS_CONNECT_EVT
和ESP_GATTS_DISCONNECT_EVT
)- 刪除不必要的參數
is_connected
reason
在ESP_GATTS_DISCONNECT_EVT
事件中添加一個新參數
- 刪除不必要的參數
-
修改GATTS事件
ESP_GATTS_CONF_EVT
- 參數
len
並value
在事件中添加以指示事件屬於的通知/指示。這兩個參數僅在數據包未成功發送時才有效。
- 參數
-
bt.h
頭文件已被重命名為esp_bt.h
。 -
LWIP套接字文件描述符現在采用更高的數值(通過LWIP LWIP_SOCKET_OFFSET宏)。BSD套接字代碼大部分應該可以按預期工作(並且,在V3.0中新增了一些標准POSIX函數,現在可以與套接字一起使用)。然而,假定套接字文件描述符的任何代碼始終是低編號整數,可能需要修改才能解釋LWIP_SOCKET_OFFSET。請注意,調用的常用模式
select(FD_SETSIZE, ....)
將不再起作用,因為集合的大小遠小於LWIP_SOCKET_OFFSET值。有必要計算實際的最大fd數值。
硬件支持
- 支持ESP32-PICO-D4系統封裝和ESP-32-PICO-KIT開發板
- 支持外部SPI連接的ESP-PSRAM32芯片(包括用於在外部PSRAM中啟用堆的選項,以及
malloc()
用於大型緩沖區的可選透明選項)
構建系統和工具
新功能
- 支持gcc Stack Smashing保護功能
- 通過JTAG提供GCOV支持
- 使用JTAG應用程序跟蹤(文檔)通過SEGGER SysView工具進行運行時分析
- 新
make print_flash_cmd
的打印閃爍命令(可以重定向到一個文件) - 分區表:允許變量跨越多個CSV字段(#841)
- 如果未定義變量被展開,現在默認發出警告(#138)
- 私人包含目錄現在在包含搜索路徑中的公共目錄之前訂購
- 新的“沉默斷言”選項可在保持斷言功能的同時保存應用程序二進制大小
- 更完整的“make size”輸出,新的“make size_components”和“make size_files”目標用於分析ELF文件的構成。
- 每個COMPONENTS_DIR現在可以是組件目錄,也可以是包含作為組件的子目錄的父目錄
- esptool.py現在生成較小的應用程序二進制映像(在某些情況下幾乎縮小了128KB)
Bug修復
- 修復Windows 10自秋季創作者更新以來的idf_monitor崩潰(#1136)
- 修復idf_monitor“取消”行為以匹配pyserial TIOCSTI ioctl
- 通過CPPFLAGS而不是CFLAGS應用組件級定義(#1165)
- Eclipse文檔:修復CDT GCC分析器以正確分析C ++命令(#929)
- 更新項目Makefile現在觸發完全重建
引導程序
- 可將1.8V VDDSDIO內部穩壓器電壓提升至1.9V,以解決閃存電壓穩定性問題。
- 如果OTA配置無效或配置的映像不可啟動,則改進健壯性和后備選項。
- 應用程序圖像現在默認添加了所有內容的SHA256哈希。引導加載程序驗證這是否存在。
- 開機時間優化。在80MHz QIO模式下,可以接近兩倍的速度啟動應用程序。
- 允許定制SPI閃存引腳配置為QIO / QOUT模式。
FreeRTOS的
新功能
- 以前“未經測試”(斷言失敗)FreeRTOS 8.2.0功能現在完全支持(包括隊列注冊表,任務通知
eTaskGetState()
) - FreeRTOS運行時統計支持(可通過menuconfig配置)
- 許多FreeRTOS 9.0.0功能和API調用已被反向移植(文檔)
- FreeRTOS滴答和空閑掛鈎現在是每個核心
- 降低自旋鎖(portMUX)的開銷以提高雙核模式下的性能
Bug修復
- Ringbuffer修復了不是4的倍數的大小。
- 修復bug xTaskResumeAll()有時不能恢復所有任務。
SoC-Level功能
新功能
- 電源管理:支持SoC Light Sleep
- 電源管理:支持動態運行時頻率縮放。
- 掉電檢測器功能(文檔)
- 將非連續閃存頁面映射到連續內存空間的新功能
- 高級中斷處理程序現在是弱鏈接符號,因此組件可以覆蓋它們
- 新的SPI閃存互斥API允許將多個SPI閃存操作(寫入等)作為參考其他任務的原子操作進行組合
- SPI閃存擦除/寫入操作不允許在危險區域(引導程序,分區表,運行應用程序)
Bug修復
- 默認情況下,BASIC ROM控制台回退在首次啟動時永久禁用(通過efuse),以避免硬件意外重置為此模式。
- 當使用最大80MHz SPI閃光頻率時提高CPU內核電壓(提高穩定性)
- 修復中斷分配不總是分配相同的源(問題)
- 復位后禁用未使用的外設時鍾,驅動程序將根據需要重新啟用
- 修復超過185KB的DRAM靜態分配時的崩潰
- 刪除不正確鏈接到最終二進制文件的未使用的.data節,增加了RAM的使用量
- 修改切換到更高CPU頻率時可能的鎖定
- 在esp_restart期間停止其他CPU時修復可能的競爭狀況
- 修復GPIO26的HOLD_FORCE字段名稱中的復制粘貼錯誤
系統庫功能
新功能
- pthread API支持大多數pthreads函數
- pthread API支持pthread條件變量
- libstdc ++線程支持
- libstdc ++並發性支持(std :: condition_variable,std :: mutex等)
- C ++異常支持(可配置),包括libstdc ++支持(#681,加上后續工作)
- 新的高分辨率定時器功能用於高精度定時器管理(文檔
- 在libc中添加strptime()支持
- 在libc中啟用timeradd,timersub等宏(#867)
- 新的堆內存實現 - 更好的性能,減少堆碎片
- 新的堆內存調試和泄漏/使用跟蹤功能(文檔)
- fsync()支持添加到VFS接口,為fatfs實現
- 新的esp_console庫,用於編寫文本控制台風格的界面。
- 日志記錄:用於記錄數據緩沖區的新功能
- stdio:添加對使用UART驅動程序來實現vfs uart功能的支持
Bug修復
非易失性存儲
- 支持多個不同的NVS分區
- 在整頁上添加缺少的CRC校驗項目
驅動程序
- LEDC驅動程序字段
bit_num
並div_num
具有新推薦的替代名稱。 - LEDC驅動器參數值檢查
- LEDC占空比參數現在未經簽名
- GPIO:允許通過gpio_set_direction()禁用引腳
- GPIO:添加API以讀取/寫入驅動器功能
- GPIO:將引腳設置為輸入時,禁用GPIO矩陣輸出
- SPI主控:使用GPIO0作為CS引腳解決問題
- SPI主控:更改命令API
- SPI主器件:地址字段現在位於地址&slv_wr_status寄存器的高位
- SPI主站:修改在HSPI和VSPI之間切換時的錯誤
- SPI DMA:針對DMA操作的多個修復
- SPI DMA:修復全雙工模式下允許的無效參數
- SPI DMA:如果需要,現在將分配臨時內部DMA緩沖區(#551)
- 觸摸板:新的API修改ISR,獲取過濾值,修改過濾器參數
- 觸摸板:修復交換的觸摸傳感器編號8和9
- UART:使用FIFO復位信號解決硬件問題(#1219和#1202)
- UART:設置默認的TX空閑間隔(#703和#917)
- UART:支持REF_TICK作為時鍾源
- UART:啟用/禁用軟件的新功能(XON / XOFF)流量控制(#890)
- UART:設置5MBaud時,逐個進行修復
- UART:修復自旋鎖的bug通話
uart_set_rts
和uart_set_dtr
(#649) - UART:使能TX引腳時修復信號毛刺
- ADC:支持校准查找表,電壓參考校正,帶mV讀數的新API
- ADC:禁用WiFi時支持使用ADC2
- I2C:添加硬件復位以從硬件FSM卡住(#680&#922)
- I2C:添加API來設置超時值(#680&#922)
- I2S:使用PLL時鍾時修復BCK極性(#1119)
- I2S:支持APLL時鍾源
- I2S:如果DAC_CHANNEL_0用於輸出,則修復禁用I2S
- I2S:修復內存泄漏(#838)
- RMT:解決傳輸中斷閾值問題(#1011)
- RMT:
rmt_get_ringbuf_handler
重新命名為rmt_get_ringbuf_handle
(#274) - SDMMC:支持SD over SPI
- SDMMC:在SD卡引腳上啟用內部上拉
- SDMMC:允許配置命令超時
- SDMMC:添加對高速(HS)模式的支持(僅適用於本機SDMMC,不適用於SD上的SD)
- SDMMC:Bug修復了一些意外的SDMMC狀態轉換導致失敗/鎖定的問題。
- SDMMC:修復對未對齊緩沖區的寫入操作
- 定時器:修復時鍾分頻器參數驗證
TCP / IP
新功能
- 支持IPV6多播組成員身份的套接字選項(RFC2133)
- 支持套接字選項IPV6_ONLY用於UDP套接字
- 允許配置DHCP服務器租用時間參數(#1206)
- 在配置中公開許多TCP / IP調整參數(MSS,MSL,窗口大小,活動套接字限制,任務郵箱大小等)
- 配置DHCP域名服務器選項的新選項(#162和#705)
- 添加API以獲取/設置DNS服務器(
tcpip_adapter_get_dns_info
,tcpip_adapter_set_dns_info
) - 重構ICMP ping功能
- tcpip_adapter API現在是線程安全的
- 當WiFi站從AP斷開一定時間時生成的新SYSTEM_EVENT_STA_LOST_IP事件
Bug修復
- 套接字操作(當前除select()之外)現在通過VFS層路由,與文件系統I / O相同。修復命名空間沖突。
- 調用netconn_delete()時修復內存泄漏(#784)
- 如果設備IP更改,請將UDP / TCP連接塊重新綁定到有效的IP地址
- 在關閉另一項任務中尚未完成工作的套接字后修復一些崩潰問題
- 修復了禁用“nano”printf格式時TCP / IP任務中罕見的堆棧溢出問題
- UDP套接字close()總會返回一個錯誤(#1094)
- TCP套接字關閉()錯誤修復 - 避免IP地址更改時崩潰
- 清理TCP_FIN_WAIT_1中留下的TCP套接字時間太長
- 套接字端口隨機化現在使用硬件RNG
- 選擇基於源地址的廣播IP路由
- 修復LwIP計時器周期計算
openssl包裝
- CN主機名驗證支持(#980)
mbedTLS
新功能
- 已更新至2.6.0發行版(包含CVE-2017-14032的修訂)
Bug修復
- 修正硬件MPI在乘以-1時丟失符號(#1181)
- 如果由於內存不足導致malloc失敗,請修復ECDH密鑰交換中的內存泄漏
- 直接在程序中包含“mbedtls / config.h”不再導致配置不匹配(#711)
- 禁用3DES,Camellia,Blowfish,RC4,RIPEMD160,SSLv3,TLS-PSK模式,默認DTLS(默認代碼大小縮小40KB)
- 其他配置選項禁用不必要的功能(進一步節省代碼大小)
無線上網
新功能
- ESPNOW支持點對點無連接802.11數據傳輸
- 新API獲取/設置最大發射功率
- WiFi功能不再通過應用程序配置(“menuconfig”)啟用或禁用。如果應用程序調用這些API,則WiFi庫函數將僅鏈接到最終的應用程序二進制文件。
- BlockAck窗口大小可以在menuconfig中設置
- 僅允許為TX或TX啟用AMPDU
- 如果可用,可以選擇在SPI PSRAM中分配一些WiFi和LWIP存儲緩沖區
- 支持WiFi國家代碼,區域監管限制
- wpa_supplicant現在具有插件內部加密功能,以便在可用時使用硬件加速器
- 支持全頻道掃描,可以從具有相同SSID的AP中找到最佳AP
- 可以配置更多掃描選項,例如通道駐留時間
- 掃描獲得更多信息(AP的協議模式,密碼類型等)
Bug修復
- 修復CERT VU#228519中的WiFi漏洞(又名KRACK)
- 在完全校准期間修復PHY校准過量功耗
- WiFi /藍牙共存修復程序
- 建立一些WiFi API參數
- DHCP服務器修復了station + ap模式
- WPA2內存泄漏修復程序
性能改進
- UDP RX / TX性能提高到60 / 60Mbpbs(在屏蔽盒中)
- TCP RX / TX性能提高到35 / 50Mbpbs(在屏蔽盒中)
- 現代睡眠時間從55%〜70%增加到65%〜90%。
BLE
GATT服務器
- 修復獲取本地屬性值的錯誤
- 添加發送通知或指示的回調
GATT客戶
- 添加對連續調用GATTC命令的支持
- 一次添加支持獲取服務發現數據庫
- 在GATTC操作中使用句柄而不是UUID作為標識符
- 修改獲取遠程設備特征,描述符和服務的API
- 添加對多重讀取操作的支持
- 在處理按類型請求讀取的數據包時修復錯誤
GATT通用
- 添加API以設置服務器和客戶端的最大MTU
間隙
GAP中央角色掃描模式
- 修復長掃描時間掃描失敗的錯誤
- 修復重新掃描后掃描參數重置為默認值的錯誤
- 修復如果綁定設備使用公共地址無法掃描的錯誤
GAP中央角色主模式
- 在建立連接參數之前添加對設置連接參數的支持
GAP外圍角色廣告模式
- 優化廣告開始和停止完成的事件
其他GAP變更
- 同時添加對掃描和廣告的支持
- 添加API以添加,獲取和刪除白名單設備
- 添加API以讀取RSSI值
- 添加回調來設置本地隱私
- 在調用連接參數更新API時修復錯誤
- 添加連接和斷開的事件
- 修復一些多連接錯誤
SMP
- 添加API以刪除,清除並獲取綁定設備和密鑰
- 添加對SMP密鑰的NVS存儲的支持
- 修復一些SMP錯誤
L2CAP
- 添加支持創建新的BLE L2CAP COC(面向連接的通道)
- 添加對BLE L2CAP COC安全性的支持
性能優化
- 改善連接性能
- 智能手機兼容性優化
- 提高RX性能
藍牙通用
- 修復一些內存泄漏錯誤
- 修復一些崩潰錯誤
- 在Bluedroid中從BTU圖層刪除固定隊列
- 刪除所有GKI參考
- 添加API以添加控制器的.bss / .data / hw內存以動態堆積
經典BT
- A2DP:實現AVRCP元數據和通知注冊命令(#1078)
- SDP服務器:修復CVE-2017-0785(“BlueBorne”)
- 修復HCI控制器主持ACL數據流控制的錯誤
- 在bluedroid中禁用ROLE SWITCH鏈接策略可以解決傳統BT的主從角色切換問題
- 在藍牙控制器啟動期間重構WIFI_CLK_EN寄存器設置
- 修改藍屏報警模塊的實現,使用高優先級定時器而不是FreeRTOS定時器
- 當工作量很大時,增加控制器中事件仲裁器的編程延遲以解決斷言
以太網絡
新功能
- 支持內部(APLL生成的)以太網MAC時鍾(#1127)
- 以太網功能不再通過應用程序配置(“menuconfig”)啟用或禁用。如果這些API由應用程序調用,則以太網庫函數將僅鏈接到最終的應用程序二進制文件中。
Bug修復
- Bugfix允許為以太網接口設置靜態IP(#657)
超低功耗處理器
Bug修復
- 默認禁用GPIO15(降低ULP中的電流)(#1108)
的mDNS
Bug修復
外部圖書館
新功能
- 新的SPIFFS組件(從v0.3.8開發,提交f5e26c4)
- fatfs每個文件緩存的新配置選項,鎖定。
- fatfs更新為R0.13a(使用CP437而不是僅支持ASCII的配置,添加動態代碼頁配置)
- libsodium:添加選項以使用mbedTLS SHA256和SHA512實現來減少代碼大小,僅在禁用硬件加速器(不兼容的API)時才可用(#1044)
- nghttp2:更新至1.24.0
- aws_iot:公開更多SDK配置選項(#637)
文檔
- 入門指南現在包含在ESP-IDF文檔中,而不是單獨的PDF。
- 增加了關於新的ESP32-WROVER和ESP32-PICO-D4硬件的信息
- 描述API驅動程序,狀態機,事件機制的新WiFi文檔。
- 改進驅動程序API的描述
- 為了清晰起見,編輯了大部分API參考部分
- 改進的入門指南
- 盡可能將所有http://網址替換為https://(#622)
- 配置項的新文檔部分(鏈接)
- 現在記錄了處理器間調用(IPC)功能
例子
新的例子
- HTTP / 2客戶端示例
- 異步UART示例
- ESP-NOW示例
- Sigma-Delta調制示例
- iperf用於測量WiFi性能的示例
- WiFi掃描示例
- BLE類SPP客戶端示例
- BLE SPP-Like服務器示例
- 安全客戶端示例
- 多連接示例
- iBeacon例子
- Eddystone的例子
Bug修復
- 定時器例子:不要在ISR中執行浮點運算
- BLUFI示例:修復硬件加速的AES加密使用錯誤
獲取v3.0-rc1
連接到該版本的源文件將無法工作,由於我們使用git的子模塊。改為使用以下方法之一:
使用git
要獲得此預發布版,請使用以下命令:
git clone https://github.com/espressif/esp-idf.git esp-idf-v3.0-rc1
cd esp-idf-v3.0-rc1/
git checkout v3.0-rc1
git submodule update --init --recursive
這是獲取ESP-IDF的v3.0-rc1的推薦方式。
下載包含子模塊的檔案
附加到這個版本是一個esp-idf-v3.0-rc1.zip
檔案。它包含.git
目錄和所有子模塊,因此可以直接使用。該存檔適用於存在連接問題的用戶,以防止他們從Github克隆。