Zephyr 环境搭建 - ESP32 篇

Zephyr 环境搭建 - ESP32 篇

本篇环境搭建的前提是 Zephyr 的基本环境已经搭建好,下述为与 ESP32 相关的环境搭建,最终的结果为使用 west 成功编译 hello_world 例程并下载到 ESP32 开发板上。Zephyr 基本环境搭建参考 Zephyr 环境搭建

前置条件

  • Ubuntu 20.04 (virtualbox on win10)
  • Zephyr (v2.4-branch)
  • ESP32-DevKitC V4 (WROVER-E)

环境搭建

获取 ESP-IDF

mkdir ~/esp
cd ~/esp
git clone -b v4.2 --recursive https://github.com/espressif/esp-idf.git

安装 xtensa-esp32-elf 工具链

由于 Zephyr SDK 并不支持 ESP32,因此我们需要安装第三方 ESP32 工具链 xtensa-esp32-elf,可以手动下载该工具,这里我选择使用 ESP-IDF 提供的脚本来自动下载工具链。

cd ~/esp/esp-idf
./install.sh

注意此时需要有 python 环境,即

jackis@jackis-zephyr:~/zephyrproject/zephyr$ python --version
Python 3.8.5

若没有则需要手动安装 python 3.8,并更新 python 执行 python 3.8, 如下所示

ln -s /usr/bin/python3.8 /usr/bin/python

此时默认安装的工具链在 $HOME/.espressif 目录下,建议不要修改工具链的安装路径。

jackis@jackis-zephyr:~$ ls .espressif/
dist  python_env  tools

ESP-IDF 还提供了配置环境变量的脚本文件 export.sh,其执行命令为:

. $HOME/esp/esp-idf/export.sh

注意 .$HOME 之间有空格,该命令在后面会用到。

切换 Zephyr 为 v2.4-branch 版本

Zephyr master 分支编译 ESP32 会报错 ESP_IDF_PATH not found 的错误,切换为分支 v2.4-branch 即可,该分支为最新的发布版本。命令如下:

cd ~/zephyrproject/zephyr
git checkout v2.4-branch

配置 Zephyr 的构建环境变量

此处一共需要配置三个环境变量:

  • ZEPHYR_TOOLCHAIN_VARIANT:用于构建 Zephyr 当前工具链的名称。
  • ESPRESSIF_TOOLCHAIN_PATH:espressif 工具链的路径。
  • ESP_IDF_PATH:git clone [esp-idf](###获取 ESP-IDF) 的路径。

在配置环境变量前需运行 ESP-IDF 的脚本文件 export.sh,完整命令如下:

. ~/esp/esp-idf/export.sh
export ZEPHYR_TOOLCHAIN_VARIANT=espressif
export ESPRESSIF_TOOLCHAIN_PATH=${HOME}/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf
export ESP_IDF_PATH=${IDF_PATH}

此处需要注意 ESPRESSIF_TOOLCHAIN_PATH 环境变量里的工具链路径一定要是系统里安装的工具链真实路径,该工具链版本不一致时该路径也会不一致。

编译下载

此处编译例程 hello_world,请确保 zephyr 目录下没有 build 子目录,否则会报错。

cd ~/zephyrproject/zephyr
west build -b esp32 samples/hello_world
west flash

将物理机的 USB 转串口接入虚拟机。

由于 ESP32 下载程序通常使用串口下载,因此 west flash 需要能访问 ubuntu 的串口,普通用户不能直接操作串口,需要将当前用户添加到串口设备所属的组中。

首先查看 /dev/ttyUSB0 的权限

jackis@jackis-VirtualBox:~/zephyrproject/zephyr$ ls -l /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 Jan 26 16:52 /dev/ttyUSB0
  • 所有者:root,可读可写
  • 所属组:dialout,可读可写
  • 其他用户:无权限

修改 udev 规则,让普通用户也能使用串口

sudo vi /etc/udev/rules.d/70-ttyusb.rules

添加下述内容,

KERNEL=="ttyUSB[0-9]*",MODE="0666"

然后重新插入 USB 转串口即可。

按住 ESP32 的 boot 按钮,输入 west flash 下载程序,松开 boot 按钮即可开始下载程序。

minicom -D /dev/ttyUSB0 打开串口观察到数据。

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3ffb0000,len:116
load:0x3ffb0074,len:140
load:0x3ffb0100,len:704
load:0x40080000,len:1024
load:0x40080400,len:72
load:0x40080448,len:256
load:0x40080548,len:13132
entry 0x400807b0
*** Booting Zephyr OS build zephyr-v2.4.0-8-g9c30e7946974  ***
Hello World! esp32

参考:

Zephyr Supported Boards - ESP32

ESP32 Toolchain - xtensa-esp32-elf

Zephyr Issues - Setting esp-idf path to match Espressif's documentation

ubuntu安装python3.7,并更新python默认指向为python3.7

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270