ESP-IDF版本更新说明(V2.1版)转自github(https://github.com/espressif/esp-idf/releases/)
自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_EVT
,ESP_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驱动程序
- I2S驱动程序:
- 在i2s_set_clk函数中更改通道号时修正错误
- 修复支持24位和32位样本
- 同时修复TX / RX
- RMT驱动程序
- SPI主驱动程序:
- 当不使用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
调试功能
- 添加允许在主机和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克隆。
下载
ESP-IDF版本更新说明(V2.1版)转自github(https://github.com/espressif/esp-idf/releases/)的更多相关文章
- 酷播迷你flv,mp4网页视频播放器(CuPlayerMini)V2.2版[经典黑]演示实例
酷播迷你flv,mp4网页视频播放器(CuPlayerMini)V2.2版[经典黑]演示实例 http://www.cuplayer.com/cu/FreeDown/
- 从零開始制作H5应用(2)——V2.0版,多页单张图片滑动,透明过渡及交互指示
上一次.我们制作了我们第一个H5场景应用的V1.0版,这次我们趁热打铁.在上一版的基础上对层序进行改动和扩展. 任务 1.页面数量由3张增加至9张: 2.每张页面中放入一张全屏自适应的图片. 3.修复 ...
- 利率计算v2.0--web版--软件工程
.客户说:帮我开发一个复利计算软件. .如果按照单利计算,本息又是多少呢? .假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢? .利率这么低,复利计算 ...
- Github入门 - Github基本使用及Github桌面版使用
知识内容: 1.版本控制 2.Git介绍 3.Github介绍及基本使用 4.Github桌面版介绍及安装 5.Github桌面版基础使用 6.Github桌面版进阶使用 参考: http://www ...
- <VS2010>混合模式程序集是针对“v2.0”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集
在把以前写的代码生成工具从原来的.NET3.5升级到.NET4.0时,将程序集都更新后,一运行程序在一处方法调用时报出了一个异常: 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有 ...
- 微信快速开发框架(七)--发送客服信息,版本更新至V2.2 代码已更新至github
在V2版本发布的博文中,已经介绍了大多数Api的用法,同时也收到了很多意见,其中发布了几个修正版本,修改了几个bug,在此感谢大家的使用,有了大家的支持,相信快速开发框架会越来越好,也会越来越完善的. ...
- 资源管理更新系统V2.0版的一些问题
1.在上传文件夹时现在只能传给吴缤进行上传,不够友好,也降低了上传速度, 办法:用C#写一个WINFORM程序,为用户提供上传功能,登录也使用JAVA提供的WEBSERVICE提供登录验证,然后选择一 ...
- 创新手机游戏《3L》开发点滴(3)——道具、物品、装备表设计 V2(最终版)
我们正在开发一款新手游,里面有道具,之前也写了一篇博文记录了下我们的设计思路,但是国庆到了,于是我有了时间继续纠结这个问题. 其实我主要是在到底是用mysql还是mongodb上纠结.这个复杂.痛苦. ...
- 【github】github 使用教程初级版
github 是一个基于 git 的代码托管平台,付费用户可以建私人仓库,免费用户只能使用公共仓库.对于一般人来说公共仓库就已经足够了,而且也没多少代码来管理.下面简单介绍如何使用 github,供初 ...
随机推荐
- Java内存泄漏的几种可能
Java内存泄漏引起的原因: 内存泄漏是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成内存空间的浪费称为内存泄漏. 长生命周期的对象持有短生命周期对象的引用就很可能发 ...
- dubbo配置方式简单介绍
原地址:http://www.cnblogs.com/chanshuyi/p/deep_insight_dubbo_config.html 一.介绍 Dubbo 采用全Spring配置方式,透明化接入 ...
- autolayout后获取frame
autolayout设置完layout立即用frame拿对应的值可能拿不准,因为autolayout设置完布局后布局引擎并不会马上去更改布局,而是将布局标记为待更新,此时可以用的方法有两种,一是延时0 ...
- Linux常用基础操作命令大全(超实用精心整理)
相信大家都对黑客那种只用命令行对电脑操作的风格惊呆了,其实你也可以做到.linux是一款不同于windows的操作系统,而且它是黑客.渗透人员.运维人员等等必会的.如果你想学习,小编下面整理的命令将会 ...
- linux目录与文件权限的意义
现在我们已经知道了Linux系统内文件的三种身份(所有者,用户者,与其他人),知道每种身份都有三种属性(r,w,x),已经能够使用chown,chgrp,chmod去修改这些权限和属性,那么这些文件权 ...
- pynlpir 报错 Cannot Save user dictionary 原因与解决方法
在使用pynlpir和用户自定义词典进行分词时,如果报出如下错误: [2017-12-09 18:05:51] Cannot Save user dictionary Cannot write log ...
- kalman filter卡尔曼滤波器- 数学推导和原理理解-----网上讲的比较好的kalman filter和整理、将预测值和观测值融和
= 参考/转自: 1 ---https://blog.csdn.net/u010720661/article/details/63253509 2----http://www.bzarg.com/p/ ...
- 微信小程序--动画animation
js: list:[], contentflag:false this.animation = wx.createAnimation({ duration: 500, timingFunction ...
- cdnbest节点后台的3311如何登陆
如图操作点节点列表中节点管理修改节点3311的权限(因为初次安状节点权限是随机生成的,所以要修改),同时开启3311,然后就能在浏览器登陆节点后台了
- NodeJs第3方包说明
formidable 作用:实现简单文件上传 var formidable = require('formidable'); var form = new formidable.IncomingFor ...