最近搞ESP开发,装个开发环境折腾了一周才稳定。不同IDF需要的编译工具版本是不一样的。ADF又跟不同版本的IDF有兼容性问题。
整个工具链是不同的开源系统的拼合成的。一旦开发环境里需要不同的IDF/ADF混合,就得不停折腾。
乐鑫是不是可以把这些工具整合得更好一些方便开发者使用?大家怎么看?
离线
乐鑫的开发环境劝退大部分开发者
离线
乐鑫的交叉编译工具链未来会做的好,目前因为IDF 4.X与IDF 5.X之间版本迭代,底层Freertos、编译Make都换了,延时函数也不一样, 目前看起开IDF 5.x结构清晰,易读性强,如果想做简单的项目 如LVGL,需要一点点Freertos、Make功底,ADF就先别用IDF 5.X,用IDF 4.4,新的组件都没跟上迭代
离线
@Leotian
我搞点音频开发,折腾了一周,最终确定用IDF5.1.3+ADF 2.6,但是同时又搞点基于IDF5.2.1的非音频开发。所以在我的Winows系统上搞了支持多版本的开发环境(基于VSCode的Profile)。 板子是官方老的ESP32-LyraTD-MSC音频板。
官方网站和说明没讲如何配多版本(IDF)的开发环境,都是基于单版本的设置。都得自己摸索,例如先安装IDF5.2.1的环境,再弄一个5.1.3的,5.2.1的tools跟5.1.3的又搭不起来,后来才搞明白,tools和idf components/bsp都得按不同版本分别安装到不同目录。Github clone版本是经常性地失败,国内Gitee官方又没弄完善,好多 components还是得去github clone,最后又失败。这些大大小小的问题,得不停折腾...
官方支持网站(esp32论坛,github)都是好些天都没人回复,感觉没什么人支持生态。
离线
我觉得IDF做的很好了。好几个环境要共存,无非就是对应写几个cmd文件,在cmd文件里设置对应的环境变量,然后start命令行窗口而已。
离线
工具链做得不好,本质上是因为C/C++相较于rust、zig、go这些自带构建系统的语言来说其构建系统就是一坨屎。
C/C++基于CMake去构建,然后ESP的工具链及其components/BSP都是一堆开源的项目拼起来的,对于开发者来说学习曲线高一些(例如不仅要懂构建系统,还要懂RTOS原理,基本的计算机/MCU架构...)乐鑫有义务把这些整合得更易用,文档写得更系统更详细一些,坑更少一些。
离线
本来就一小公司别指望太多了,SDK很多东西都不是很清楚,要很熟悉还是有难度,IDF 5跟IDF4没办法共存,即使放在不同目录,设置不同的环境变量都不行,还是安装在2个用户下面可行,Linux版本相对来说好用,不要在windows下搞IDF开发
离线
我就做到idf4.2.4和idf5.2.1共存了,只是你不会而已。
离线
我也认为乐鑫的SDK太恶心了
离线
idf安装非常困难,要靠运气。
安装过程需要频繁的去github获取东西,而github我这访问不稳定,一阵一阵时好时坏。
长时间连接不上github就报错退出了,安装了好几天才装上。
什么也不用动,只要不停的重试,总有一天会安装上的。
离线
C/C++的构建系统就这样,乐鑫SDK用的是常用的构建系统。那些只会使用Keil/IAR工具的人,其对C/C++构建的知识可以认为基本为零。
所以为会认为乐鑫的SDK恶心。
工具是让人用起来方便的,不是为了设置壁垒。VS code能火,就是因为能提供很多方便。
确实存在很多只会用Keil/IAR的,甚至这两个需要修改一些编译选项都不明白怎么做的,只会用模板然后添加自己的代码的人大把。
乐鑫的SDK还行,门槛已经很低了。。
离线
这个乐鑫入门的门槛极低了,而且两大框架 arduino 以及idf均可以完美应用于各种场合。
离线
乐鑫入门门槛还是比较低的
离线
我发现 上面那俩货 是在说我, 我就只会用 Keil IAR,
一个工具而已, 越简单越好. 哈哈.
离线
你要是用linux的话,用docker的idf镜像做编译,切换idf的版本相当容易。
idf文档里面有docker镜像使用说明。
离线