本文记录了在Ubuntu 16.04 64bit下安装配置zephy编译环境并编译esp32的过程
Zephyr环境安装
下载代码到~/work/project/zephyr/
1 | cd ~/work/project/ |
设置环境
安装软件包
1 | sudo apt-get install --no-install-recommends git cmake ninja-build gperf \ |
安装Zephyr依赖包
1 | cd ~/work/project/zephyr |
如果安装的是python2需要使用下面命令1
pip2 install --user -r scripts/py2-requirements.txt
用“cmake –version”确认cmake版本是3.8.2以上,如果不是安装3.8.21
2
3
4mkdir $HOME/cmake && cd $HOME/cmake
wget https://cmake.org/files/v3.8/cmake-3.8.2-Linux-x86_64.sh
yes | sh cmake-3.8.2-Linux-x86_64.sh | cat
echo "export PATH=$PWD/cmake-3.8.2-Linux-x86_64/bin:\$PATH" >> $HOME/.zephyrrc
安装Zephyr SDK
- 下载SDK
在https://github.com/zephyrproject-rtos/meta-zephyr-sdk/releases 选择最新的SDK下载,目前是zephyr-sdk-0.9.2-setup.run - 安装SDK
1
sh zephyr-sdk-0.9.2-setup.run
安装时将SDK安装在~/zephyr-sdk/,编辑~/.zephyrrc将加入环境变量1
2#export ZEPHYR_GCC_VARIANT=zephyr -->这个环境变量不能设置,会导致esp32编译时使用xtensa模拟器的toolchain,详见https://github.com/zephyrproject-rtos/zephyr/issues/6439
export ZEPHYR_SDK_INSTALL_DIR=/home/frank/zephyr-sdk
ESP32 环境安装
安装ESP32 toolchain
安装依赖包
1 | sudo apt-get install git wget make libncurses-dev flex bison gperf python python-serial |
下载&安装tool chain
通过https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz 下载toolchain,并安装在~/opt/esp/下1
2
3mkdir -p ~/opt/esp
cd ~/opt/esp
tar -xzf ~/Downloads/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
安装ESP32 SDK
1 | cd ~/opt/esp |
配置ESP32环境
建立文件~/opt/esp/zephyr-esp-setup.sh来配置ESP32用的环境变量1
2
3export ZEPHYR_TOOLCHAIN_VARIANT="espressif"
export ESP_IDF_PATH="/home/frank/opt/esp/esp-idf"
export ESPRESSIF_TOOLCHAIN_PATH="/home/frank/opt/esp/xtensa-esp32-elf/"
编译Zephyr for ESP32
设置环境变量
1 | cd ~/work/project/zephyr |
编译hello world
1 | cd samples/hello_world/ |
最后产出的文件在esp32_build/zephyr下1
2
3
4
5
6-rwxrwxr-x 1 frank frank 862741 3月 11 22:05 zephyr.bin
-rwxrwxr-x 1 frank frank 253960 3月 11 22:05 zephyr.elf
-rw-rw-r-- 1 frank frank 276611 3月 11 22:05 zephyr.lst
-rw-rw-r-- 1 frank frank 140256 3月 11 22:05 zephyr.map
-rwxrwxr-x 1 frank frank 20905792 3月 11 22:05 zephyr_prebuilt.elf
-rw-rw-r-- 1 frank frank 3527 3月 11 22:05 zephyr.stat
参考
http://docs.zephyrproject.org/getting_started/getting_started.html
http://docs.zephyrproject.org/boards/xtensa/esp32/doc/esp32.html
https://esp-idf.readthedocs.io/en/latest/get-started/linux-setup.html
https://esp-idf.readthedocs.io/en/latest/get-started/index.html#get-started-get-esp-idf