zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

macOS下ESP2866 RTOS 和 esp-idf 开发环境快速切换

macos开发 环境 快速 切换 RTOS idf ESP
2023-09-11 14:21:25 时间

缘起是我计划把原先的esp-idf升级到release/v4.1, git pull之后瞄了一眼文档,看到编译环境配置方式有较大变化,交叉编译工具链链接不再提供,而是通过$IDF_PATH/install.sh脚本自动下载。

在折腾一通最终报错python_env/idf4.2_py2.7_env/bin/python: No module named pip之后,还是决定走另外一条路:

使用不同的用户分别配置ESP8266 RTOSesp-idf环境。

这么做的好处显而易见。因为ESP8266 RTOSesp-idf环境除了需要配置不同的"IDF_PATH",交叉编译工具版本也不同。两个用户自己有独立的profile,切换非常方便。

macOS系统偏好设置-用户与群组里新建用户即可(例如新建用户名为esp32)。然后在vscode的终端里通过su - esp32来切换用户,而无需整个桌面登出和登录。

但是这样容易带来一个权限问题。所以建议是通过vscode的复制和粘贴来创建新的项目,然后在执行编译的vscode终端用户那里运行"sudo chmod -R 777 项目文件夹"。这样可以既可以通过vscode修改保存文件,而且能同时在终端的另外一个用户进行编译执行。

如果项目是通过终端命令行的用户复制的,那么在finder里面右键点击项目文件夹,选择显示简介,然后点击右下角小锁解锁,点击+添加当前桌面用户的读写权限并点击齿轮,选择应用到包含的项目

至于macOS下esp-idf配置方法,按照官方文档即可。非常顺利。
记住要把IDF_PATH加入用户profile

我这里写一个简化版:

1. 安装必要工具
  • install pip:
sudo easy_install pip
  • install pyserial:
pip install --user pyserial

  • install CMake & Ninja build:
    If you have HomeBrew, you can run:
brew install cmake ninja
  • If you have MacPorts, you can run:
sudo port install cmake ninja
2. 克隆esp-idf
cd ~
git clone --recursive https://github.com/espressif/esp-idf.git
#切换到4.1分支(4.0 hello_world无法通过编译,但是4.1可以)
git checkout release/v4.1
3. 通过脚本下载交叉编译工具链和配置python虚拟环境
cd esp-idf
./install.sh

如果下载很慢,可以到这个页面Releases · espressif/binutils-esp32ulp直接用浏览器下载放到~/.espressif/dist文件夹。

4. 配置路径
chmod +x ./export.sh
#注意下面两个点之间有个空格
. ./export.sh
5. 修改用户bash_profile

例如~/.bash_profile 或者 ~/.zshrc

#添加$IDF_PATH,注意~/esp-idf/要修改为自己的实际路径
export $IDF_PATH=~/esp-idf/
#如果是idf V4.x以上,需要添加如下内容,注意.后面有个空格
. $IDF_PATH/export.sh
6. 切换IDF版本
cd $IDF_PATH
git fetch
git checkout vX.Y.Z
git submodule update --init --recursive

注意:

如果是从其他用户目录复制过来的项目文件夹(例如project_folder),需要更改其权限:

sudo chmod +R 777 project_folder