zoukankan      html  css  js  c++  java
  • 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克隆。

    下载

  • 相关阅读:
    线段树快速查找区间值
    html学习笔记
    区块链是怎么运行的
    【C++ 流类库与输入输出 】实验七
    【C++ 实验六 继承与派生】
    10天冲刺第四天后端app开发
    10天冲刺第三天后端app开发
    10天冲刺第二天之完成后端
    第二次冲刺第一天之后台管理
    第一阶段--冲刺总结
  • 原文地址:https://www.cnblogs.com/noticeable/p/7446724.html
Copyright © 2011-2022 走看看