发行版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克隆。