很多安装ESP-IDF的教程文章,都没有详细说明安装过程中,对应步骤的作用。同时网上也缺少纯命令行快速安装esp-idf的完整资料文章。我根据网上搜索找到的资料、以及自己安装几次环境的经验,写一下Ubuntu18.04命令行安装ESP-IDF环境的心得。
以下安装命令已考虑国内下载慢的问题,均使用国内资源加速下载过程。
想使用esp32开发程序,就必须先下载esp-idf。
拉取下来的文件目录结构如图:
ESP-IDF框架包含了esp32所有设备的源码、组件以及示范代码。examples目录里有非常多的示范代码,作为入门参考来说已经足够了。components目录包含了esp32设备源码、常用组件(官方组件库及RTOS等各种第三方库)。
git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git
工具脚本仓里,包含两个工具,submodule-update.sh(子仓拉取脚本),install.sh(工具链安装脚本)。现在还不需要使用工具仓的脚本。因为我们通过以上命令下载下来的源码,是master分支,需要切换到需要用到的release分支。例如下面的命令就是进入esp-idf文件夹,并切换到4.4分支:
ESP-IDF框架,不同分支支持的设备、函数是有少量的区别的。如果没有旧项目的分支需求,可以考虑使用最新release版本的分支(不建议使用master分支)。同时使用git拉取的方式,可以很方便的切换ESP-IDF的分支(切换完成后重新安装对应分支的工具链即可)。
cd esp-idf
git checkout 4.4
注意事项:若使用过一段时间ESP-IDF环境后,想切换版本。建议先试用git reset --hard方式强制将esp-idf目录恢复至原始版本后,再执行git checkout切换版本。切换版本后需要重新拉取子仓,以及安装工具链。
前面我们已经拉取了gitee工具仓,选择好分支后,我们可以直接在esp-idf文件夹中执行下面的命令,通过gitee拉取子仓代码。
../esp-gitee-tools/submodule-update.sh
完成子仓源码的拉取后,源码部分的工作就完成了。接下来可以安装工具链了。
一般建议先备份系统原有的sources.list 文件,如果不熟悉vim,也可以使用其他的编辑工具完成对应工作。
cd /etc/apt/
sudo cp sources.list sources.list.bak
sudo vim sources.list
将sources.list 文件的内容清空,替换成以下的内容:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
替换完文件的内容后,可以执行以下命令更新软件包索引文件。
sudo apt-get update
sudo apt-get install git wget flex bison gperf python python-pip python-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
该命令使用了Ubuntu系统自带的环境切换脚本,比手动执行python版本替换要靠谱一些。
pip --version
pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
pip config set global.trusted-host mirrors.aliyun.com
至此,准备工作都完成了。特别说明一下,ninja-build, ccache两个软件包是加快esp-idf编译的两个重要软件包,建议安装。
在ESP-IDF源码根目录执行以下命令安装所有设备的工具链
../esp-gitee-tools/install.sh
使用gitee工具仓中的安装脚本,将自动从国内源下载工具链,下载速度是很快的。
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
这种方式相对第二种方式,更柔和一些,并不会修改esp-idf的文件内容。一般情况下建议这样安装。
在ESP-IDF源码根目录执行以下命令,替换工具链下载地址
sed -i 's,"url": "https://github.com/,"url": "https://dl.espressif.com/github_assets/,g' tools/tools.json
./install.sh esp32-c3
注意事项:安装脚本默认是在用户根目录创建一个独立的python虚拟环境,并将工具链和对应的脚本放入虚拟环境中。执行安装脚本时不能处于python虚拟环境的使用状态。安装完成后,建议在bashrc中添加一个alias,用于唤起ESP-IDF环境。
本帖最后由 walker2048 于 2022-10-18 22:44 编辑
esp-idf 环境安装还是比较方便的,开发时要对一些命令有一定的了解。
引用: wangerxian 发表于 2022-10-19 13:22 esp-idf 环境安装还是比较方便的,开发时要对一些命令有一定的了解。
是的,命令行越用越开心
引用: walker2048 发表于 2022-10-20 10:39 是的,命令行越用越开心
哈哈,是的,用界面操作很多都操作不了。命令行还可以单独下载某个区域的内容。