ESP-IDF3.0


發行版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_bytesi2s_push_sample,這是不贊同的。
    • i2s_read應該用來代替i2s_read_bytesi2s_pop_sample,這是不贊同的
  • esp_ble_gattc_open()remote_addr_type添加了一個新參數esp_ble_gattc_open()

  • 修改ESP_GATTS_ADD_CHAR_DESCR_EVTBLE GATTS事件的char_uuid參數,將此事件參數重命名descr_uuid!1484

  • 修改經典BT AVRC事件

    • feat_maskESP_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克隆。

預發行

ESP-IDF Pre-release 3.0-rc1

@igrr igrr 發布了這個 15天之前 · 自本次發布以來, 921承諾主人

預發布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_starttcpip_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()
  • 用於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
    • reasonESP_GATTS_DISCONNECT_EVT事件中添加一個新參數
  • 修改GATTS事件 ESP_GATTS_CONF_EVT

    • 參數lenvalue在事件中添加以指示事件屬於的通知/指示。這兩個參數僅在數據包未成功發送時才有效。
  • 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修復

  • 在雙核模式下的早期啟動過程中修復日志記錄時間戳
  • 修復ESP_ERROR_CHECK宏潛在名稱沖突(#1109
  • 修復對VFS接口的fcntl()支持(#1070

非易失性存儲

  • 支持多個不同的NVS分區
  • 在整頁上添加缺少的CRC校驗項目

驅動程序

  • LEDC驅動程序字段bit_numdiv_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_rtsuart_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_infotcpip_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修復

  • 修復消息壓縮檢測(#1171
  • 修復內存泄漏(#838

外部圖書館

新功能

  • 新的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克隆。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM