# esp32_dev **Repository Path**: zadair/esp32_dev ## Basic Information - **Project Name**: esp32_dev - **Description**: esp32 开发记录 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-08-25 - **Last Updated**: 2023-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ESP32 DEV #### 介绍 esp32 开发记录 #### 软件架构 基于 esp 官方 idf 做应用层开发,乐鑫的 idf 可以说是我做嵌入式开发过程中涉及的芯片设计、生产厂商里,对软件支持最好的了,代码十分规范,例程十分全面,一般的需求都可以在框架中找到思路,建议初学者一定要学习,即可以降低学习门槛,也可以掌握良好的编码规范 idf 全面支持目前乐鑫主流芯片和模组,包括 esp32、c系列、s系列、h系列,早期的 82xx 则不行,需要官方开源库里的 [专用sdk](https://github.com/espressif/ESP8266_RTOS_SDK) [乐鑫官方开源组织](https://github.com/espressif) 下包括众多功能组件,在开发特定功能前可以看看是否已有实现 esp32 还支持 [arduino](https://github.com/espressif/arduino-esp32) 和 [micropython](https://micropython.org/download/esp32/),二者都是为了简化开发流程,在性能上有一定损耗,可按需选用 #### 安装idf开发环境 * git clone -b v4.4.1 https://github.com/espressif/esp-idf.git * cd esp-idf * git submodule update --init --recursive (网络不好的情况下,拉取仓库和子模块最好分开执行,异常退出可重复执行) * sh install.sh (安装到登录用户目录下,会安装编译器和相关工具,如果慢,可以先 export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets") * 编辑 .bash_profile * . /home/用户/code/esp-idf/export.sh > /dev/null * 设置常用命令别名,如 alias iec3='idf.py set-target esp32c3',按自己需要设置即可 * 重新登录用户,上述命令即可使用 #### 使用说明 * idf.py menuconfig 可以使用类似 vim 的搜索方式,搜索需要调整的参数,要适应这种配置方式,现在越来越多嵌入式开发框架下使用这种配置方式 * imerge 工具,可以合并 bootloader、partition-table、app 到一个 bin 文件,烧写一个文件即可,烧写地址为 0x0 #### menuconfig 重要的设置 | 功能 | 配置项 | 说明| | -------- | -------- | -------- | | flash | Serial flasher config | 外置 flash 配置| |boot|Bootloader config|一般不用动| |分区表|Partition Table|一般不用动| |测试相关|Example Connection Configuration|根具体测试用例相关,比如 http_server 的 wifi 账号密码 | |组件|Component config| 外设和功能组件都在这下面,很多,可以浏览看一下 | |内存|Component config → ESP32S3-Specific → Support for external, SPI-connected RAM → SPI RAM config|外置内存配置| #### 初始优化 * idf.py build,每次新项目编译要全量编译 idf 公共组件,比较慢,将公共组件编译为静态库直接使用 *