乐鑫WIFI芯片开发流程梳理-工具链、编译和下载
最近开始基于乐鑫ESP32的WIFI模组的软件开发,首先要做整套流程的梳理,乐鑫官网以及安信可上已经有了较为系统的资料,但是在实现过程中也遇到了一些问题,花了几天去解决,所以为了总结,也为了给其他人提供一些借鉴,把流程分享一下,官网上相对比较完善的,就不再赘述。
1. 开发方案选择
目前网上有两套较为成熟的方案:
- (1)基于乐鑫官网推荐的开发方式,原网页:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/hw-reference/get-started-devkitc.html1, 适用于官方开发板,但是我尝试下载安装网页上的工具链安装包,公司电脑网页不够,一直提示connection error,后来回家下载,成功,安装以后尝试进行编译,发现可视化不强,萌新会有点不知如何下手的感觉;
- (2)基于安信可一体化开发工具,原网页:https://wiki.ai-thinker.com/ai_ide_install2, 相比乐鑫官网需要下载安装什么Git,交叉编译器,以及 CMake 构建工具,安信可的一体化开发环境就相对人性化一点,可视化程度高一点,但是网页上面的教程比较杂,也不太系统;
结论:开发团队人员少,网又不太好的选用方法2,大团队,网又好,建议选择方法1,毕竟官网,做的方案也更系统;
开发板我们选择的是乐鑫淘宝店的 ESP32-DevKitC,大家可以根据自己对于CPU频率、I/O口数量、FLASH大小以及天线选择合适的开发板;
2. 需要的软件以及资料
其中填从网上下载的资料以及软件主要有:
- 安信可一体化开发工具, Windows + Cygwin + Eclipse + GCC 的综合 IDE 环境,有点就是傻瓜和可视化;
- ESP_IDF,就是官方源代码和软件库,根据自己需要进行版本选择,我们选择的是ESP-IDF V3.1.3,下载地址:https://www.espressif.com/zh-hans/support/download/sdks-demos;
- CP2102 USB驱动,用于连接开发板和电脑 ;
- 安信可串口调试工具,用于确认开发板和电脑连接状态,以及后期调试用,有时候也会用于确认开发板进入下载模式;
- FLASH下载工具,用于开发板的烧写;
以上工具除了IDF粗腰到乐鑫官网进行下载,其余的均可以在 https://wiki.ai-thinker.com/tools 这个网站上下载。
3. 安装编译
第一步解压和安装,参考网页:https://wiki.ai-thinker.com/ai_ide_install ,比较详细,不再赘述;
第二步,IDF导入和编译,参考网页:https://wiki.ai-thinker.com/ai_ide_install ,也比较详细,不再赘述;
这里主要讲一下我遇到的问题:
- ESP-IDF V3.1.3中没有app文件夹,第一次编译,直接报错,app是用户程序,走流程的时候,可以用IDF中给的例程,具体操作方式是,在IDF根目录中新建一个app文件夹,在IDF中的example/getstarted/hellowworld下面所有的文件拷贝至app文件夹中,再进行Import操作;
- Menuconfig 在走流程阶段,即不涉及真正开发时,只需要设置端口位置(在Serial flasher config这个选项中),其余选择默认即可,如下图所示,其中端口位设置为 ttySX(X=(实际电脑显示的端口位 — 1));
4.连接开发板、烧写例程3
整个过程需要:
- 一根microUSB线,开发板;
- USB驱动程序、安信可串口调试工具;
整个过程流程如下:
- 安装对应USB驱动程序,一般有 CH340G和CP2102 两种,根据USB类型选择;
- 确认开发板与电脑连接正常,即开发板电源灯亮起,同时电脑设备管理器中有端口号显示,如图所示;
- 打开安信可串口调试工具,在 波特率115200 下观察模组的启动或复位后(即嗯一下 EN 按键)的打印信息,有关于开发板的信息返回即可;
- 按住BOOT按键,同时按下EN按键,观察安信可串口调试工具,出现 waiting for download 等字样,就可以开始进行下载;
- 如果是进行第二次烧写,需要参考参考下一节内容,利用Flash擦除工具进行Flash的擦除,第一次烧写可直接跳过;
- 建立Download的Target(在下载过程之前,务必确保Menuconfig已经正确配置,并且整个文件已经正确编译过一遍),建立的方法:https://wiki.ai-thinker.com/ai_ide_use ,关闭串口调试助手,点击建立的Download目标,并且长按BOOT按键两秒,等待烧写完成,如下图;
- 重新连接串口调试工具观察,调试;
说一些我们在此过程中遇到的问题:
- 官方开工板在连接电脑时未显示任何信息,尝试过加大电流和和重新安装过好几次驱动后,尝试利用官方原理图和技术手册找出问题,最后解决是,microUSB线选择数据线,而非电源线;
- 我们在进行ESP32的第二次烧写是出现无法烧写的情况,第一次烧写的是ESP32IDF中的“helloworld”例程,后来通过网上查找资料,网友的回答,尝试着,先擦除FLASH的内容,并且在download过程中长按2S的BOOT键进行解决;
5. 利用Flash_download_tools进行烧写 和 FLASH的擦除
一般情况如果方法4烧写方式出现问题,或者是需要进行flash擦除的,可以使用Flash_download_tools进行程序的烧写和擦除。
整个过程需要:
- 一根microUSB线,开发板;
- USB驱动程序、安信可串口调试工具;
- FLASH下载工具;
- 2M、4M、8M和16M的FLASH空文件,用于FLASH擦除,可以在 https://wiki.ai-thinker.com/esp_download 页面的最底下找到;
整个过程流程如下:
1~4保持不变;
5. 打开FLASH下载工具,根据对应开发板选择DownloadTool,我选择的是ESP32 DownloadTool ,按照图片中信息,配置好bin文件和烧录地址:
6. 按照如图所示内容配置好 晶振频率、SPI SPEED、SPI MODE、Flash Size、串口端口号(根据步骤2中确定的端口号)和波特率等,此处波特率可以尽量选大一些( 默认1152000),以节省时间,最后确认一遍,然后点击START,等待完成( 出现FINISH,即烧写成功);
- 最后连接串口调试工具观察。调试;
FLASH的擦除过程其实就是将对应你FLASH容量的空文件利用FLASH下载工具烧写进FLASH中,文件利用给出的下载地址就可以进行,下载,地址直接填0x0就好(全盘覆盖)。
未完待续》》》
https://docs.espressif.com/projects/esp-idf/zh_CN/latest/hw-reference/get-started-devkitc.html; ↩︎
https://wiki.ai-thinker.com/ai_ide_install; ↩︎
https://wiki.ai-thinker.com/esp_download ↩︎
乐鑫WIFI芯片开发流程梳理-工具链、编译和下载相关推荐
- Vector诊断系统开发流程及其工具链
1.制定诊断规范(需求.协议)--------------CANdelaStudio将诊断规范转化为诊断数据库文件cdd,是整个流程的核心: 2.软件代码实现--------------------将 ...
- Esp8266 进阶之路35【项目篇】借助机智云平台用乐鑫esp8266芯片做一个商业化的七彩RGB灯泡可调整体方案项目,炫彩夺目高大尚。
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...
- Esp8266 进阶之路36【外设篇】乐鑫esp8266芯片SDK编程驱动时间芯片 ds1302,同步网络时间到本地,再也不怕掉电断网也可以同步时间了!(附带Demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个"hello ...
- 乐鑫ESP32芯片/模组选型参考指南
1.最近一个项目中用到了ESP32的模组,于是开始查询相关的资料,首先来到乐鑫的官网可以看到关于ESP32分为芯片.模组与开发板三部分. 2.由于乐鑫的芯片主打无线通信,包括蓝牙和wifi等一些高频信 ...
- 乐鑫WiFi单火线智能开关方案,传统开关实现智能升级
近二十年来居家生活已发生了重大的变化,许多家用电器已进入到了家庭,极大丰富了人们的生活,如冰箱.空调.LED灯,装饰吊扇.排风扇.浴霸等. 控制它的还是一个简单的机械开关,所能做到的也只是简单地一开一 ...
- (七十一)Android O WiFi热点 开启流程梳理
前言:之前主要梳理了WiFi开启扫描连接的流程,现在梳理下WiFi 热点 的开启流程. 时序图mdj样式:https://download.csdn.net/download/sinat_200594 ...
- UE4智慧城市开发流程梳理
智慧城市开发流程梳理 (摸索UE智慧城市相关做的总结梳理,并不是很专业,如有差错欢迎指正.) 1.GIS数据获取: 谷歌地图.地理数据网站等中获取,或者使用第三方软件下载(水经注GIS.ESRI有的A ...
- 《例说51单片机(C语言版)(第3版)》——1-5 MCS-51的开发流程与工具
本节书摘来异步社区<例说51单片机(C语言版)(第3版)>一书中的第1章,第1.5节,作者:张义和,王敏男,许宏昌,余春长,更多章节内容可以访问云栖社区"异步社区"公众 ...
- 《例说51单片机(C语言版)(第3版)》一1.5 MCS-51的开发流程与工具
本节书摘来自异步社区<例说51单片机(C语言版)(第3版)>一书中的第1章,第1.5节,作者 张义和 , 王敏男 , 许宏昌 , 余春长,更多章节内容可以访问云栖社区"异步社区& ...
最新文章
- locust入门:单机使用locust运行压力测试
- ffmpeg m4a 转pcm_FFmpeg提取视频音频python将音频转文字
- EditPlue使用进阶之正则表达式
- 记一次小机器的 Python 大数据分析
- 识别波峰波谷算法_马丁普林格:波峰-波谷演进法
- java 内部类 返回值_Java学习笔记:形参和返回值、内部类、常用API
- [转载]心存高远 方能获得成功
- 35、IFE任务34——听指令的小方块(二)
- 软件技术方案_广东省汕尾市海丰陈氏数字化网络化全县族谱统修工作方案(草案)...
- 人工合成生命的最新进展比AI还快
- win10发送到桌面快捷方式没了
- Joomla 一个实例建站过程
- android手机迁移,换手机不用愁,一分钟告诉你如何将手机数据快速迁移!
- 新版微信-微信公众号一键关注解决办法
- 【oracle报错】ORA-28000
- person.s=“柳岩“和person[“s“]=“李小璐“的区别
- 等价类划分和边界值的区别与联系
- 跟着团子学SAP PPM-项目组合概览-项目组合结构
- 【我的开源】蜗牛闹钟
- Scintilla MFC使用教程