利用CodeSpaces快捷编译Esp32项目
有时候为了测试某个开源工程,恰好自己的电脑正没有esp-idf的工程,可以利用微软的codespaces来快速编译
# 新的CodeSpaces(2025.10.8)缺乏libusb相关的,会无法install,需要先安装下 sudo apt install -y libusb-1.0-0 libusb-1.0-0-dev # 克隆esp官方工具(建议安装到/opt/目录下) git clone --recursive -b <版本标签/分支名> https://github.com/espressif/esp-idf.git 如:git clone --recursive -b v4.4 https://github.com/espressif/esp-idf.git cd esp-idf ./install.sh #安装 . ./export.sh #导出环境变量(注意前面有个'.',相当于source ./export.sh) # 如果要切换版本的话 建议直接删除旧的目录重新安装,切换分支的方式容易由于卸载不干净导致各种问题 rm -rf /home/codespace/.espressif rm -rf /opt/esp-idf 然后重新上面克隆的方式 # 查看当前版本 idf.py --version # 移除旧的虚拟环境 rm -rf /home/codespace/.espressif/python_env/idf版本号_env # 切换到特定分支/标签 git checkout release/v5.4 # 更新子模块 git submodule update --init --recursive # 重新安装工具链和导出环境 ./install.sh . ./export.sh # 新的CodeSpaces(2025.10.8)构建项目或者set-target的时候,会报错AttributeError,是因为esp-idf依赖到的某些python工具版本的问题 # 安装特定的版本 pip install --upgrade idf-component-manager==2.4.0 pip install pydantic==2.6.4 pydantic-settings==2.1.0 # 如果esp-idf所使用的python是虚拟环境里的,那么先激活虚拟环境里的python,安装后再退出 source /home/codespace/.espressif/python_env/idf版本号_env/bin/activate # 安装 pip install --upgrade idf-component-manager==2.4.0 pip install pydantic==2.6.4 pydantic-settings==2.1.0 # 退出虚拟环境 deactivate
注:CodeSpaces 里的 Python 版本较新(3.12),会导致在安装某些旧版本的 esp-idf 时(如v4.4,适配python 3.8),某些依赖不兼容导致失败,可以用 pyenv 切换当前的 python 版本来解决这个问题。下面提供 pyenv 的使用教程。 # 编译项目,以esp32c3-rv32ima为例 git clone https://github.com/jeason1997/esp32c3-rv32ima.git cd esp32c3-rv32ima # 配置目标芯片为 ESP32C3 idf.py set-target esp32c3 # (可选)如需修改配置,如启用 PSRAM 等 idf.py menuconfig # 编译项目 idf.py build # 编译完后生成文件路径,分别是引导程序,分区表跟主程序 build/bootloader/bootloader.bin build/partition_table/partition-table.bin build/项目名.bin # esp编译后生成多个分区文件,一个一个从远程服务器拷贝到本地也麻烦,可以合并成一个文件,然后直接烧录到 0x0 地址即可:Basic Commands - ESP32-C3 - — esptool latest documentation esptool --chip ESP32-C3 merge-bin -o merged-flash.bin --flash-mode dio --flash-size 4MB 0x1000 bootloader.bin 0x8000 partition-table.bin 0x10000 app.bin esptool write-flash 0x0 merged-flash.bin
| 文件名 | 烧录地址 | 说明 |
|---|---|---|
bootloader/bootloader.bin |
0x0 |
ESP32C3 引导程序 |
partition_table/partition-table.bin |
0x8000 |
分区表 |
uc-rv32ima.bin |
0x10000 |
项目主程序(RISC-V 模拟器) |
main/Image |
0x200000 |
Linux 内核镜像 |
main/uc.dtb |
0x3ff000 |
设备树二进制文件 |
烧录参考:

附:Pyenv 的使用教程
# 安装编译依赖(必须先装) sudo apt update && sudo apt install -y \ build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm \ libncurses5-dev libncursesw5-dev xz-utils tk-dev \ libffi-dev liblzma-dev git # 安装 pyenv curl https://pyenv.run | bash # 配置环境变量(写入 ~/.bashrc) echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc # 生效配置 source ~/.bashrc # 验证 pyenv --version # 查看可安装的 Python 版本 (比如3.8.x) pyenv install --list | grep 3.8 # 安装 Python 3.8.17(适配 ESP-IDF 4.4) pyenv install 3.8.17 # 查看已安装版本 pyenv versions # 全局切换为 3.8.17 pyenv global 3.8.17 # 仅当前目录切换(推荐,不影响全局) pyenv local 3.8.17 # 验证当前 Python python --version

浙公网安备 33010602011771号