这是描述信息

优化ESP-IDF工具和安装过程乐鑫芯片对于AWSIoTDeviceSDKforEmbeddedC提供长期支持

优化ESP-IDF工具和安装过程乐鑫芯片对于AWSIoTDeviceSDKforEmbeddedC提供长期支持

优化ESP-IDF工具和安装过程乐鑫芯片对于AWSIoTDeviceSDKforEmbeddedC提供长期支持

优化ESP-IDF工具和安装过程乐鑫芯片对于AWSIoTDeviceSDKforEmbeddedC提供长期支持

优化ESP-IDF工具和安装过程乐鑫芯片对于AWSIoTDeviceSDKforEmbeddedC提供长期支持

优化ESP-IDF工具和安装过程乐鑫芯片对于AWSIoTDeviceSDKforEmbeddedC提供长期支持,优化ESP-IDF工具和安装过程,根据用户反馈,乐鑫简化了ESP-IDF的安装和使用过程。对相关优化措施进行了详细介绍。


ESP-IDF是乐鑫的官方物联网开发框架,自2016年发布以来不断完善,目前已经支持上亿个物联网设备,开发构建了多种物联网产品。ESP-IDF在设计之初只是为了便于使用命令行接口(CLI),但是在过去几年里,我们已经从许多客户那里得到了许多关于ESP-IDF安装和使用过程的反馈,并且我们还对一些重要问题进行了评估和优化。这篇文章会详细讨论我们的优化措施。


构建系统


ESP-IDF发布时使用的是一个以GNUMake为核心的构建系统。这个生成系统非常灵活,可以快速地使用ESP-IDF代码库,并且在Linux和macOS操作系统(当时大部分乐鑫开发者使用的操作系统)上运行良好。但是,它也有一些问题:主要的问题是,GNUMake运行于Windows系统中,还需要一个模拟层,比如MSYS或者Cygwin。在Windows中,如果使用相同的硬件构建项目,Windows运行速度将比Linux慢很多。另外一个问题是不能安全而可靠地将GNUMake的项目添加到集成开发环境(IDE)。根据这一点,我们随后在ESP-IDF文档中提供了有关“如何使用EclipseCDT来集成GNUMake构建系统”的指导。尽管这一方法在大多数情况下是有效的,但是当一个问题发生时(主要是Windows),故障就难以排除。
为了解决以上问题,ESP-IDF从2018年开始向使用CMake的新构建系统转变。尽管我们已经尽了努力不改变ESP-IDF的使用体验,但是对于许多使用ESP-IDF开发项目的用户而言,这种调整仍然有很大的不同。因此,我们决定继续支持基于Make的构建系统,同时开发一个基于CMake的构建系统。之后,在2020年2月ESP-IDFv4.0中,我们开始使用基于CMake的构建系统作为缺省构建系统,把基于Make的构建系统降低到“Legacy”状态。从那以后,我们就只在基于CMake的构建系统中增加了一些新特性,比如支持ESP32-S2.ESP32-C3和ESP32-S3。利用CMake构建系统,可以更好地与IDE集成。今年,我们开始开发两个IDE插件:VisualStudio(VS)Code和Eclipse,以直接在IDE中使用ESP-IDF的特定功能,极大地简化了ESP-IDF的启动过程。


工具和安装


ESP-IDF的使用也有赖于多种工具,例如交叉编译工具链和调试工具。对于每一种操作系统,乐鑫都提供了一个工具集二进制分发。在ESP-IDFv4.0之前,用户需要完全自主地设置环境:先从计算机上下载和解压正确版本的工具链,然后将它添加到“PATH”环境变量。但是独立地设置环境,特别是在需要切换不同ESP-IDF版本时,很容易出错,所以我们在ESP-IDFv4.0的SDK上增加了新的脚本,让用户自动设置工具的正确版本。该软件还提供了安装方法,使计算机能够安装多个ESP-IDF版本,并且没有任何冲突的正确版本的工具链。


在这一年中,我们对ESP-IDF工具安装器做了全面的改进,Windows用户的工具安装过程进一步改进。本文详细分析了ESP-IDF安装过程中的问题报告,并解决了这次更新中的主要错误:现在,工具安装程序已经准备好了Python解释程序和Git的独立拷贝,让ESP-IDF不再受到PC上已安装版本的影响;其次,Toolsheet安装程序将使用Python包的替代下载源(“wheels”),以防止某些软件包不能从官方来源获得;再次,刀具安装程序还将附加检查工具安装条件,以帮助探测杀毒软件.安装目录和其他潜在的问题。当前,工具安装器有以下两个版本:在线版只包含一个小的安装包,在安装期间下载必需的软件;离线版包含所有必需的软件内容。


在不断地收集开发人员对ESP-IDF工具和安装过程的反馈信息,并且不断地进行优化和改进。综合开发环境。除了命令行接口之外,乐鑫还为ESP-IDF用户提供了两个开发环境:ESP-IDFVisualStudio(VS)代码插件和ESP-IDFEclipse插件。从2019年起,这两个环境都在不断地开发和维护。在这一年中,我们的IDE开发工作集中在三个方面:简化安装和开始过程.提高核心的开发经验(比如创建并配置项目.代码索引.preferences.浏览日志),并改善JTAG调试体验。


对于IDF工具安装,我们参考了Windows版本的IDF工具安装,并对上述两种IDE的应用过程进行了优化。目前,Windows用户可以直接使用离线版工具安装Eclipse和IDF插件。用VSCode插件,用户只需要几个步骤就可以开始ESP-IDF。此外,我们实现了esp-idf.json与VSCode插件的集成,并且将Python嵌入到VSCode中(使用乐鑫的pip下载源)和Git,为了使ESP-IDF的启动过程尽可能自动化Windows环境中。


因为ESP32-S3和ESP32-C3新芯片都包含了USB-JTAG接口,我们对IDE的JTAG功能也做了相应的改进。与串口烧写一样,为JTAG添加支持。IDFEclipse插件(v2.2.0及后续版本)和OpenOCD插件(v0.10.0-esp32-20201125及以后的版本),只要在引导配置中选择JTAGhost选项,并选择适当的开发板,就可以通过JTAG运行应用程序。另外,我们现在把JTAG记录作为默认选项,以避免用户在设备调试之前忘记了烧录程序。我们将发送安装提示信息,并提醒用户安装新的OpenOCD,如果用户没有安装所需的OpenOCD版本。


VSCode和Eclipse都提供了堆跟踪功能,这两个特性允许用户通过调试生成svdat转储文件,以及通过调试(添加开始/停止断点)进行堆转储分析。这个特性可以用来分析堆事件和内存分配,并探测可能的内存泄漏问题。


未来的计划


对于ESP-IDF开发人员的经验,我们还不止这些。在改进现有工具的同时,我们也在探索新的解决方案,比如容器化.在线编程和原型工作空间(prototypingworkspaces)。可以通过ESP32论坛或GitHub数据仓库(例如ESP-IDF.IDF-Eclipse-plugin和VSCode-ESP-IDF-extension)为我们提供反馈。


对于AWSIoTDeviceSDKforEmbeddedC,乐鑫多系列芯片提供长期支持。对于AWSIoTDeviceSDKforEmbeddedC,乐鑫ESP32.ESP32-S和ESP32-C的正式支持(LTS)。从2017年起,乐鑫公司就开始支持与AWSIoTCore的连接和相关服务的连接。下面是乐鑫Wi-FiSoC和AWSIoTCore的两个类型。


先是与亚马逊的FreeRTOS发布版本的连接。FreeRTOS发行版是一套完整的程序,包括内核.连通库和构建系统,可以将合格SoC无缝连接到AWSIoT和相关服务。不过,在乐鑫SoC上使用FreeRTOS发行版也有一些限制。在ESP32这样的多核SoC上,目前还不支持对称多处理(SMP)技术,而不支持新芯片ESP32-C3。


另一种方法是使用IoTDeviceSDKforEmbeddedC连接。这个独立的开发库支持MQTT和DeviceShadow,还支持OTA和DeviceDefender等其它AWS服务。


IoTDeviceSDKforEmbeddedC从202009.00开始的新版本均包括了一个开发库,用于连接各种AWS服务(例如AWSIoTMQTTBroker.DeviceShadow.AWSIoTJobs.AWSIoTDeviceDefender.AWSIoTMQTBroker.DeviceShadow.AWSIoTDeviceDefender.AWSIoTDeviceDefender.AWSIoTDeviceDefender.AWSIoTMQTBroker.DeviceDefender.A这两版SDK还支持单独使用AWS库的长期支持(Long-termsupport,LTS)版,允许开发者自由选择不同的乐鑫SoC和ESP-IDF版本,从而提供的灵活性。


连接AWSIoTCore的两种方法对比


不久之前,我们发布了乐鑫开发板对IoTDeviceSDKforEmbeddedC202103.00测试版支持。在编写本文时,这个测试版支持以下AWS标准的LTS开发库:
coreHTTP
coreJSON
coreMQTT
corePKCS11
和以下AWSLTS开发库如下:
AWSIoTDeviceShadow
AWSIoTJobs
AWSIoTOTA
为了使这些开发者库更容易地应用,我们还提供了如下程序:
coreMQTTwithTLSMutualAuthentication
deviceShadowExample
JobsExample
OTAoverMQTT
coreHTTPwithTLSMutualAuthentication
OTAoverHTTP


注:默认的读者已经熟悉AWSIoT的Web控制台的使用方式,并且已经在PC上配置了ESP-IDF。假如你还没有安装AWSIoTCore,那么按照下面的步骤操作;如果你还没有安装ESP-IDF,可以按照下面的步骤操作。
先克隆仓库,找到“release/beta”分支,然后更新子模块。
接下来进入设备显示例程,设置AWSIoT的端点.ID和端口。


注:本示例程序使用8883和443端口进行测试。8883端口通常用于安全的MQTT连接;443端口需要使用TLS协议名和ALPN协议名称(不含ALPN)扩展。
开启menuconfig并设置需要的值。
引用此处添加设备证书。
这个程序被烧写到乐鑫SoC。
每隔几秒钟,您就可以看到控制台上反映设备当前状态的日志。当你在使用过程中遇到任何问题时,请查看例行README中的详细操作步骤和故障排除指导。


尽管AWSIoTDeviceSDKforEmbeddedC也是在Beta测试中,但是它已经基本上可以用于正常开发。接下来,我们也会移植其它可用的LTS库,并在认证之后添加更多的正式版本,以供认证。

地址:深圳市宝安区西乡街道麻布社区宝安互联网产业基地A区6栋7栋7706

邮箱:Sales@ferry-semi.com

版权所有©2020  深圳市飞睿科技有限公司  粤ICP备2020098907号    飞睿科技微波雷达wifi模块网站地图