ESP-IDF版本更新說明(V2.1版)轉自github(https://github.com/espressif/esp-idf/releases/)


ESP-IDF Release v2.1

@igrr igrr 發布了這個 on 29 Jul · 自此發布以來,我 承諾要 承諾414

自v2.0以來的變化。

突破變化

版本v2.1旨在大大兼容為ESP-IDF v2.0編寫的應用程序。但是,引入以下突破性變化:

  • esp_bt_controller_init函數收到一個新的esp_bt_controller_config_t *參數。
  • 如果應用程序采用雙核支持構建,則使用正常寄存器訪問宏訪問DPORT寄存器將導致編譯時錯誤(如果在編譯時無法對寄存器地址進行評估,則會導致運行時錯誤)。必須更新應用程序以使用具有DPORT_前綴的注冊訪問宏
  • nvs_flash_init 函數現在可以返回錯誤代碼,必須由應用程序檢查(見NVS示例)。
  • 通話后esp_ble_gatts_create_attr_tab,應用程序只能期望ESP_GATTS_CREAT_ATTR_TAB_EVT在GATTS回調中收到ESP_GATTS_CREATE_EVTESP_GATTS_ADD_xxx_EVT現在不會收到。
    有關詳細用法,請參閱gatt_server_service_table示例。

構建系統和工具

  • 修復組件src subdirs在父源代碼之前需要列出的錯誤
  • 添加更清潔的方式來有條件地編譯文件
  • 顯着減少Windows上的啟動時間
  • esptool:更新到v2.0最終版本
  • gen_esp32part:修復應用程序偏移量錯誤,Python 3支持
  • 新的'make monitor'idf_monitor工具,以便更好地監控輸出。

引導程序

  • 修復安全啟動啟用 - 可以驗證引導加載程序映像
  • 啟用OTA中加密閃存的檢查(#453
  • 在Bootloader中啟用SPI閃存Quad I / O:引導加載程序檢查閃存ID,啟用基於閃存類型的四進制I / O模式。

FreeRTOS的

Bug修復

  • 以SMP模式修復以下API:
    • uxTaskGetSystemState
    • vTaskSuspend()/ vTaskResume()
  • 始終禁用關鍵區域中的中斷
  • 當任務被刪除時釋放協處理器寄存器
  • 從隊列/任務API延遲上下文切換,直到退出臨界區
  • 修復CPU1的ISR堆棧空間的位置
  • 修復跨核心事件組同步

其他變化

  • 當應用程序以單核心模式運行時,斷言在CPU1上啟動新任務
  • 使內部堆棧大小變量在32位而不是16位
  • 將定時器任務堆棧大小增加到2048字節
  • 添加最大任務長度名稱配置
  • 公開任務堆棧溢出觀察點選項
  • 使用先前為ROM例程/堆棧保留的更多區域作為堆,釋放大約28K的RAM。
  • 添加一個選項來配置IPC任務堆棧大小

SoC功能

  • 介紹soc組件,添加rtc_clk和rtc_pm庫的源文件
  • 添加對32k XTAL作為RTC時鍾源的支持
  • 使用內部RTC時鍾提高計時精度
  • 改善XTAL頻率檢測,增加了在菜單中選擇XTAL頻率的支持
  • 菜單中的默認CPU頻率設置為160 MHz(以前為240 MHz)
  • 在ESP32中添加DPORT訪問錯誤的解決方法。訪問DPORT寄存器時,應用程序必須使用具有DPORT_前綴的寄存器操作宏。
  • 允許REG_SET_FIELD宏用於位字段
  • 將soc / io_mux_reg.h更新為最新版本(#349

無線上網

新功能

  • 添加smartconfig示例
  • 支持靜態WiFi TX緩沖區,通過menuconfig配置緩沖區的數量
  • 支持主動/被動掃描配置停留時間(wifi_scan_config_t結構的新成員)
  • 使用新的esp_wifi_ {get,set} _promiscuous_filter API支持混雜模式下的數據包過濾
  • WPA2 Enterprise的wifi_auth_mode_t枚舉的新成員
  • 在wifi_sta_config_t中新建通道號設置,以快速連接到AP

Bug修復

  • 在某些情況下,修復了WiFi兼容性問題,導致無法連接到某些AP,如TP-LINK 742N
  • 修復導致OTA升級失敗的錯誤
  • 提高WPS連接成功率
  • 修復ESP32未收到MIMO數據包的錯誤,並以混雜模式丟失了一些AMPDU加密數據包
  • 修復長距離模式不工作的錯誤
  • 修復了幾個WiFi崩潰錯誤

其他變化

  • 添加WiFi驅動程序的文檔
  • 將掃描的AP的SSID數組長度更改為33字節
  • 在初始化WiFi之前,更新所有要調用nvs_flash_init的示例

BLE

  • Gatt服務器通過屬性表優化創建GATT服務

    • 刪除每個服務的特征號碼限制
    • 在創建或刪除服務時修復內存泄漏
    • 在設置屬性值時修復錯誤
  • Gatt服務器通過堆棧優化自動響應

    • 添加prepare_write_request數據包的過程
    • 在處理讀取blob請求,寫入請求和讀取請求的數據包時修復錯誤
  • Gatt服務器一般優化

    • 添加GATT服務器的事件打開,取消打開和關閉
  • Gatt客戶端優化

    • 自動注冊遠程設備的GATT服務更改ccc描述符
    • 添加API來准備寫描述符
    • 添加API以刷新服務發現結果的緩存,以啟動新的服務發現過程
  • GAP中心角色掃描模式優化

    • 修復在永久掃描模式下掃描的錯誤只有5分鍾
    • 在掃描結果中添加廣告數據長度和掃描響應長度
  • GAP外設角色廣告模式優化

    • 添加廣告停止和掃描停止完成的事件
    • 修復有時廣告被意外停止的錯誤
  • 連接建立和斷開API優化

    • 為GATT服務器和GATT客戶端添加公共間隙斷開API
    • 為GATT客戶端添加連接事件和斷開事件,以檢測GATT服務器或GATT客戶端回調函數中的連接狀態
  • GAP一般優化

    • 添加LE數據包長度設置完成事件
    • 添加連接參數更新請求完成事件
    • 修復主機無法獲取遠程設備功能的錯誤
  • 新的SMP API

    • 添加不同配對方法的支持,包括MITM,安全連接等
    • 添加API以配置安全參數
    • 添加SMP安全性示例
    • 在安全模式下修復重新連接問題
  • L2CAP和HCI優化

    • 修復了HCI包碎片錯誤
    • 增加了HCI UART的支持
  • 內存優化

    • BT和BLE可以單獨啟用
    • 支持禁用GATT服務器,GATT客戶端,SMP等,在menuconfig
  • 從Bluedroid 7.1.1合並錯誤修復

  • 智能手機兼容性優化

  • BLE示例代碼優化

  • 加強堆棧中的錯誤檢查和處理

  • 提高數據包接收性能

  • 在初始化BT之前,請更新所有調用nvs_flash_init的示例

經典BT

  • 新的主機API

    • 添加API設置設備名稱
    • 添加API以設置可發現性和可連接性模式
  • 新檔案

    • 添加A2DP接收器配置文件
    • 添加AVRCP控制器配置文件
  • 控制器錯誤修復

    • 修復嗅覺模式中不一致狀態處理的錯誤
    • 在使用HCI控制器來主機數據流控制時修復錯誤
    • 修正無效處理HCI命令的錯誤“HCI_Host_Number_of_Completed_Packets”
    • 修正了經典BT的ACL-U數據傳輸中的斷言錯誤
    • 修復控制器RX / TX錯誤(在緩存中使用rand / srand,任務塊,異常等)
    • 修復PHY初始化錯誤
  • 藍牙任務優先級優先

  • Osi_alarm模塊優化為線程安全

驅動程序

新功能

  • 電機控制PWM(MCPWM)驅動程序和示例
  • SPI從驅動程序和示例
  • 在I2S驅動程序中支持PDM和內置DAC
  • 支持LEDC驅動程序中的低速通道
  • 添加ADC1示例
  • 添加使用電容式觸摸傳感器的示例

Bug修復

  • 對所有配置調用“const”進行參數(#519
  • I2C驅動程序
    • 修復驅動程序在“RELEASE”配置中不工作(#304
    • 修復從屬模式讀取大小錯誤
    • 修復I2C主機初始化(#393上的尖峰
  • I2S驅動程序:
    • 在i2s_set_clk函數中更改通道號時修正錯誤
    • 修復支持24位和32位樣本
    • 同時修復TX / RX
  • RMT驅動程序
    • 在RMT中添加config和tx數據的const限定符(#495
    • 修復rmt_set_tx_thr_intr_en():僅在啟用路徑中檢查evt_thresh(#492
    • 解決一些關於中斷的問題
  • SPI主驅動程序:
    • 在示例中使用支持DMA的內存進行顯示初始化(#551
    • 修復更高速SPI主總線所需的時序調整(#363
    • 為DMA問題添加解決方法
  • 當不使用CD信號時,處理SD卡刪除
  • 在MMC_GO_IDLE_STATE命令之前,將初始化序列發送到SD卡
  • 修復不可能檢查uart_set_line_inverse(#489
  • 當停止位設置為2位模式時,修復UART數據錯誤
  • 優化觸摸板讀取功能,以減少旋轉鎖定所花費的時間

以太網絡

  • 添加LAN8720 phy支持,將PHY移動到組件(#383
  • 允許單獨的以太網和WiFi配置

ULP和深度睡眠

  • 支持使用binutils匯編器生成ULP協處理器程序
  • 添加ULP脈沖計數示例
  • 添加ULP ADC示例
  • 使用觸摸傳感器增加對深度睡眠喚醒的支持
  • 而深睡眠的例子說明了各種喚醒模式

存儲

新功能

  • 在VFS中添加對嵌套安裝點的支持
  • 添加wear_levelling組件,它提供了一個類似於spi_flash接口的接口。在內部,它將數據存儲在分區內,以減少任何給定扇區的最壞情況下的擦除周期數。
  • 啟用對多個FATFS驅動器的支持

Bug修復

  • nvs:在寫入前檢查值大小,文檔限制
  • nvs:在頁面級刪除搜索緩存(#365
  • nvs:改進初始化過程中的錯誤處理
  • 修正PATH_MAX和ARG_MAX的不一致定義(#289
  • fat / sdmmc:卸載FATFS對象錯誤

SPI閃存庫

  • 修復閃存中的大寫,未對齊寫和寫
  • 修正s_flash_op_complete訪問中的競爭條件
  • 將ROM SPI閃存驅動程序的某些部分移動到ESP-IDF中以修復Wait_SPI_Idle()函數中的錯誤
  • SPI閃存操作鎖定更短的時間
  • 在esp_partition API中修復分區迭代順序
  • 為Flash MMU重新配置時,添加解決方案以解決高級緩存讀取問題

第三方圖書館

  • 添加libsodium加密庫組件(v1.0.12)
  • 添加Amazon IoT SDK組件,再加上他們的Linux示例派生的兩個示例。
  • nghttp模塊:更新到v1.22,使用子模塊而不是樹內源

LwIP的

  • 修復DHCP服務器崩潰問題
  • 將TCP TX窗口從2修改為4以保持RX / TX窗口的大小相同
  • 通過串行驅動程序啟用實驗/不支持的PPP(#272
  • 給AP和STA netifs不同的名稱,以方便調試(#456
  • 用互斥體實現LwIP關鍵會話
  • 將最大打開的插槽數增加到32個

的mDNS

  • 使用AFL Fuzzer進行分析器穩定性測試
  • 添加簡單的DNS-SD元查詢支持(#340
  • 修復MDNS的一系列安全問題(通過BBP報告):
    • STACK-SMASH:sprintf不受限制,可以根據需要執行多次,允許將任意長數據寫入堆棧。
    • PACKET-OF-DEATH:比較允許相等,從而跳回它自我無限遞歸 - >保證崩潰。
    • TXT-SMASH:循環沒有檢查到達 - > txt最大大小(1024),導致堆棧溢出。

mbedTLS

  • 使用非阻塞插座修復EWOULDBLOCK / EAGAIN的檢測(#425#511
  • 當乘法運算符太大時,使用兩個MPI乘法。通過硬件加密操作允許RSA4096。

調試功能

  • 添加允許在主機和JTAG之間發送任意數據的apptrace模塊
  • 通過JTAG初始化執行printf樣日志記錄到主機
  • 在任何WDT復位后,從traceport添加轉儲調試信息
  • 增加無效訪問中斷時緩存無效訪問檢測和觸發緊急處理程序
  • 做核心轉儲到閃存時的額外的健康檢查
  • RWDT用於重啟系統,以防緊急處理程序崩潰
  • 提高核心轉儲腳本的魯棒性

單元測試

  • 修復單元測試應用程序中不正確的CR + LF序列
  • 在所有組件目錄中查找TEST_COMPONENTS(#354
  • 修復單元測試應用程序以與測試文件中相同的順序打印測試

文檔

  • 入門指南現在是ESP-IDF文檔的一部分
  • 自動生成API參考列表/ Doxygen指令
  • 修改Windows安裝程序安裝腳本以修復各種問題,使用最新的工具鏈。
  • 添加Espressif提供的dev板和模塊的說明

  • 添加API以獲取芯片信息
  • 支持從EFUSE或特定於應用程序的存儲加載自定義MAC地址
  • 在ESP-IDF中支持集成閃存的ESP32-D2WD。
  • 修復HTTP [S]請求示例(#500)的問題
  • 在示例中標准化文件,符號等的命名
  • 修正發布版本中由ESP_ERROR_CHECK(變量)生成的警告(#497

獲取v2.1

由於我們使用git子模塊,附加到此版本的源文件將無法正常工作。改為使用以下方法之一:

使用git

要獲取此版本,請使用以下命令:

git clone https://github.com/espressif/esp-idf.git esp-idf-v2.1
cd esp-idf-v2.1/
git checkout v2.1
git submodule update --init --recursive

這是獲取ESP-IDF的v2.1的推薦方法。

下載包含子模塊的存檔

此版本附有esp-idf-v2.1.zip檔案。它包括.git目錄和所有子模塊,所以可以開箱即用。此存檔是為具有連接問題的用戶提供的,從而阻止它們從Github克隆。

下載


免責聲明!

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



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