目录
概述
1 安装ESP32开发环境IDF
1.1 下载软件
1.2 安装软件
1.3 配置环境参数
1.4 VSCode中配置IDF插件
1.5 配置烧写代码方式
2 在使用vscode创建工程
2.1 创建工程模版
2.2 工程目录介绍
3 编译和下载
3.1 认识 VSCode下idf编译环境
3.2 编译代码
3.2.1 认识output
3.2.2 DRAM和IRAM
3.3 下载代码
概述
本文主要介绍构建使用IDF和VS-CODE 工具构建ESP32的开发环境的详细步骤,还应用IDF和VS CODE创建ESP32的项目文件,并实现编译和下载功能。
1 安装ESP32开发环境IDF
1.1 下载软件
软件下载地址:
https://dl.espressif.cn/dl/esp-idf/
官方文档地址
https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/hw-reference/esp32/get-started-devkitc.html#get-started-esp32-devkitc-board-front
官方主页地址
https://www.espressif.com.cn/zh-hans/products/socs/esp32
选择安装版本的时候要注意:stable 说明该版本是稳定版本,它已经被测试,证明其可靠性没有问题,才会发发布出来,安装的时候要选择这类软件。
在Windows上安装IDF,选择如下版本:
1.2 安装软件
下载软件后,点右键选择 admistrater ,安装软件
点击是按钮,软件会自动修复这个问题:
提示修复成功,可进行下一步操作:
出现如下UI,说明IDF安装成功:
点击完成按钮,UI会自动跳出power shell,此时说明编译环境也安装完成了
1.3 配置环境参数
变量地址 | 说明 |
---|---|
D:\tools\Espressif | idf软件的安装目录 |
D:\tools\Espressif\frameworks\esp-idf-v5.2.1 | 对应v5.2.1的库文件 |
1.4 VSCode中配置IDF插件
打开VS Code软件, 然后按下快捷键“Ctrl+Shift+X”进入应用商城,在搜索栏下搜索EspressifIDF 插件 :
点击install后,看见IDF正在安装:
出现如下界面,说明安装已经完成:
1.5 配置烧写代码方式
选择UART
2 在使用vscode创建工程
2.1 创建工程模版
打开一个新的vccode窗口,在键盘上按下: Ctrl +shift + P, 选择如下选项,创建工程:
选择该选项后,还需要配置如下信息,配置完成后,点击choose Template
点击choose Template ,选择sample_project, 然后系统会自动生成一个空的工程
模版项目目录结构如下:
2.2 工程目录介绍
使用VSCode创建工程后,在工程所在的目录中会生成如下这些文件和目录:
目录/文件名 | 描述 |
---|---|
.devcontainer | 和Docker相关的配置文件(系统自动生成,不需要用户修改) |
.vscode | 和vscode相关的配置文件(系统自动生成,不需要用户修改) |
build | 编译项目文件(编译项目后会自动生成,不需要用户修改) |
main | 主程序目录,系统自动生成的代码 |
prj | 项目开发目录,可以放入和项目相关的代码 |
user | 用户数据 |
CMakeLists.txt | CMake配合文件,用于构建项目编译环境 |
README.md | 项目说明文档 |
sdkconfig | SDK配置,在这里可选择enable/disable某一个模块 |
项目文件夹下的内容:
3 编译和下载
3.1 认识 VSCode下idf编译环境
在下图中,笔者对重要的item进行了编号,现在来一一认识这些item的功能。
使用一张表,详细的列出这些item的功能:
Item 编号 | 功能介绍 |
---|---|
1 | 选择ESP32和PC之间通信的串行数据端口号 |
2 | 根据使用的硬件,选择对应的芯片型号,型号不对,编程会失败 |
3 | 清除编译产生的文件,二次编译时,不建议点击这个按钮,因为进行项目编译时,它会编译整个SDK,这个导致编译项目的时间会很长。已经编译过SDK后,点击编译按钮,它只会编译修改后的代码,这大大缩短编译的时间 |
4 | 编译项目 |
5 | 下载代码 |
3.2 编译代码
3.2.1 认识output
点击3.1章节中的图片,编号4对应的按钮,就能编译代码。编译成功后,在终端会打印如下信息:
这些信息表示什么含义呢?
参数项 | 描述 |
---|---|
Used static DRAM | 已经使用的DRAM空间 |
.data size | 静态全局数据内存区空间 |
.bss size | 未初始化数据区空间 |
Used static IRAM | 已经使用的IRAM空间 |
.text size | 代码区空间 |
.vectors size | 矢量表空间 |
Used Flash size | 已经使用的Flash空间 |
.text | 代码区大小 |
.rodata | 可读数据大小 |
Total image size | 生成的二进制文件大小 |
3.2.2 DRAM和IRAM
RAM类型 | 功能 | 说明 |
---|---|---|
DRAM | 数据内存 | DRAM(数据 RAM)是连接到 CPU 数据总线上的内存,用于存储数据。这是作为堆访问最常见的一种内存。 |
IRAM | 指令内存 | IRAM(指令 RAM)是连接到 CPU 指令总线上的内存,通常仅用于存储可执行数据(即指令)。如果作为通用内存访问,则所有访问必须为 32 位可访问内存 |
3.3 下载代码
下载代码至ESP32前,必须保证项目文件已经全部编译完成,点击3.1章节中的图片,编号5对应的按钮,就能编程功能。
下载完成后,在OUTPUT窗口会打印Fash Done