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

下载

转载于:https://www.cnblogs.com/noticeable/p/7446724.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
INTRODUCTION lwIP is a small independent implementation of the TCP/IP protocol suite. The focus of the lwIP TCP/IP implementation is to reduce the RAM usage while still having a full scale TCP. This making lwIP suitable for use in embedded systems with tens of kilobytes of free RAM and room for around 40 kilobytes of code ROM. lwIP was originally developed by Adam Dunkels at the Computer and Networks Architectures (CNA) lab at the Swedish Institute of Computer Science (SICS) and is now developed and maintained by a worldwide network of developers. FEATURES * IP (Internet Protocol, IPv4 and IPv6) including packet forwarding over multiple network interfaces * ICMP (Internet Control Message Protocol) for network maintenance and debugging * IGMP (Internet Group Management Protocol) for multicast traffic management * MLD (Multicast listener discovery for IPv6). Aims to be compliant with RFC 2710. No support for MLDv2 * ND (Neighbor discovery and stateless address autoconfiguration for IPv6). Aims to be compliant with RFC 4861 (Neighbor discovery) and RFC 4862 (Address autoconfiguration) * DHCP, AutoIP/APIPA (Zeroconf), ACD (Address Conflict Detection) and (stateless) DHCPv6 * UDP (User Datagram Protocol) including experimental UDP-lite extensions * TCP (Transmission Control Protocol) with congestion control, RTT estimation fast recovery/fast retransmit and sending SACKs * raw/native API for enhanced performance * Optional Berkeley-like socket API * TLS: optional layered TCP ("altcp") for nearly transparent TLS for any TCP-based protocol (ported to mbedTLS) (see changelog for more info) * PPPoS and PPPoE (Point-to-point protocol over Serial/Ethernet) * DNS (Domain name resolver incl. mDNS) * 6LoWPAN (via IEEE 802.15.4, BLE or ZEP) APPLICATIONS * HTTP server with SSI and CGI (HTTPS via altcp) * SNMPv2c agent with MIB compiler (Simple Network Management Protocol), v3 via altcp * SNTP (Simple network time protocol) * NetBIOS name service responder * MDNS (Multicast DNS) responder * iPerf server implementation * MQTT client (TLS support via altcp) LICENSE lwIP is freely available under a BSD license. DEVELOPMENT lwIP has grown into an excellent TCP/IP stack for embedded devices, and developers using the stack often submit bug fixes, improvements, and additions to the stack to further increase its usefulness. Development of lwIP is hosted on Savannah, a central point for software development, maintenance and distribution. Everyone can help improve lwIP by use of Savannah's interface, Git and the mailing list. A core team of developers will commit changes to the Git source tree. The lwIP TCP/IP stack is maintained in the 'lwip' Git module and contributions (such as platform ports) are in the 'contrib' Git module. See doc/savannah.txt for details on Git server access for users and developers. The current Git trees are web-browsable: http://git.savannah.gnu.org/cgit/lwip.git http://git.savannah.gnu.org/cgit/lwip/lwip-contrib.git Submit patches and bugs via the lwIP project page: http://savannah.nongnu.org/projects/lwip/ Continuous integration builds (GCC, clang): https://travis-ci.org/lwip-tcpip/lwip DOCUMENTATION Self documentation of the source code is regularly extracted from the current Git sources and is available from this web page: http://www.nongnu.org/lwip/ Also, there are mailing lists you can subscribe at http://savannah.nongnu.org/mail/?group=lwip plus searchable archives: http://lists.nongnu.org/archive/html/lwip-users/ http://lists.nongnu.org/archive/html/lwip-devel/ There is a wiki about lwIP at http://lwip.wikia.com/wiki/LwIP_Wiki You might get questions answered there, but unfortunately, it is not as well maintained as it should be. lwIP was originally written by Adam Dunkels: http://dunkels.com/adam/ Reading Adam's papers, the files in docs/, browsing the source code documentation and browsing the mailing list archives is a good way to become familiar with the design of lwIP. Adam Dunkels Leon Woestenberg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值