0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在Zephyr v2.6.0下如何搭建esp32的編譯調(diào)試環(huán)境?

ZephyrProject ? 來(lái)源:HalfCoder ? 作者: lgl88911 ? 2021-05-24 11:23 ? 次閱讀

最近在翻看zephyr master的驅(qū)動(dòng)代碼時(shí),很驚喜的發(fā)現(xiàn)esp32的wifi驅(qū)動(dòng)和藍(lán)牙驅(qū)動(dòng)都已經(jīng)支持。遙想當(dāng)年選擇自用的zephyr硬件平臺(tái)時(shí),幾次打算用esp32都放棄了,最后選擇了nrf52。時(shí)隔3年esp終于將esp32最重要的驅(qū)動(dòng)提交到zephyr了,價(jià)格10元出頭的esp32既有wifi又有藍(lán)牙當(dāng)然比35的nrf52832模塊香,果斷拿出吃灰的esp32小板環(huán)境來(lái)跑一跑。

2018年的時(shí)候已經(jīng)在esp32上面跑過(guò)zephyr,時(shí)隔久遠(yuǎn),編譯調(diào)試的環(huán)境已經(jīng)有變化,本文記錄Zephyr v2.6.0下如何搭建esp32的編譯調(diào)試環(huán)境。

本文的所有操作都基于WSL ubuntu-20.04發(fā)行版

基礎(chǔ)環(huán)境

基礎(chǔ)環(huán)境搭建搭建完后就有完整的Zephyr編譯環(huán)境和代碼,參考Zephyr編譯環(huán)境切換到Windows,這篇文章說(shuō)明了要編譯Zephyr需要的所有安裝步驟,只有toolchain需要使用更新的,操作方法如下

wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.12.4/zephyr-sdk-0.12.4-x86_64-linux-setup.run

chmod +x zephyr-sdk-0.12.4-x86_64-linux-setup.run

。/zephyr-sdk-0.12.4-x86_64-linux-setup.run -- -d ~/zephyr-sdk-0.12.4

按照鏈接文章安裝完成后,zephyr的所有代碼就已經(jīng)放在~/zephyrproject/內(nèi)了

ESP32環(huán)境

ESP32的編譯依賴ESP32 Toolchain,方法如下

cd ~/zephyrproject/

west espressif install

安裝完成后將下面內(nèi)容寫入到文件~/.zephyrrc

export ZEPHYR_TOOLCHAIN_VARIANT=“espressif”

export ESPRESSIF_TOOLCHAIN_PATH=“${HOME}/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf”

export PATH=$PATH:$ESPRESSIF_TOOLCHAIN_PATH/bin

重新開(kāi)啟終端或者執(zhí)行source ~/.zephyrrc讓環(huán)境變量生效

編譯和下載

我用的硬件是ESP32-DevKitC,這里只是用hello_world示例測(cè)試編譯出的鏡像是否能正常執(zhí)行,因此無(wú)需另外建立zephyr board,用zephyr自帶的esp32 board編譯即可

west build -b esp32 zephyrproject/zephyr/samples/hello_world/

編譯完后將ESP32-DevKitC用USB線連接到電腦,由于west flash默認(rèn)使用/dev/ttyUSB0, 而我用的是WSL,直接下載會(huì)失敗。處理方法:查看ESP32-DevKitC在Windows上USB轉(zhuǎn)串口的端口為COM11,對(duì)應(yīng)到WSL下為/dev/ttyS11, 使用下面方法指定下載用的串口

west flash --esp-device /dev/ttyS11

執(zhí)行后能看下載信息

-- west flash: rebuilding

ninja: no work to do.

-- west flash: using runner esp32

-- runners.esp32: Flashing ESP32 on /dev/ttyS11 (921600bps)

esptool.py v3.0

Serial port /dev/ttyS11

Connecting.。..。

Chip is ESP32-D0WD-V3 (revision 3)

Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None

Crystal is 40MHz

MAC: c457f8:dc

Uploading stub.。.

Running stub.。.

Stub running.。.

Changing baud rate to 921600

Changed.

Configuring flash size.。.

Auto-detected Flash size: 4MB

Flash params set to 0x0220

Wrote 32768 bytes at 0x00001000 in 0.4 seconds (596.3 kbit/s)。..

Hash of data verified.

Wrote 16384 bytes at 0x00008000 in 0.2 seconds (697.3 kbit/s)。..

Hash of data verified.

Wrote 81920 bytes at 0x00010000 in 1.1 seconds (597.8 kbit/s)。..

Hash of data verified.

Leaving.。.

Hard resetting via RTS pin.。.

下載完成后另外打開(kāi)串口可以看到啟動(dòng)log, 可以看到zephyr其實(shí)是作為app被ESP32的loader引導(dǎo)起來(lái)的

ets Jul 29 2019 1246

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:0x3fff0030,len:4

load:0x3fff0034,len:7264

ho 0 tail 12 room 4

load:0x40078000,len:13212

load:0x40080400,len:4568

entry 0x400806f4

I (31) boot: ESP-IDF 086d30520 2nd stage bootloader

I (31) boot: compile time 2245

I (31) boot: chip revision: 3

I (34) boot_comm: chip revision: 3, min. bootloader chip revision: 0

I (42) boot.esp32: SPI Speed : 40MHz

I (46) boot.esp32: SPI Mode : DIO

I (50) boot.esp32: SPI Flash Size : 4MB

I (55) boot: Enabling RNG early entropy source.。.

I (60) boot: Partition Table:

I (64) boot: ## Label Usage Type ST Offset Length

I (71) boot: 0 nvs WiFi data 01 02 00002000 00006000

I (79) boot: 1 phy_init RF data 01 01 00008000 00001000

I (86) boot: 2 factory factory app 00 00 00010000 00100000

I (94) boot: End of partition table

I (98) boot_comm: chip revision: 3, min. application chip revision: 0

I (105) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x0037c ( 892) map

I (114) esp_image: segment 1: paddr=0x000103a4 vaddr=0x3ffb0000 size=0x000a8 ( 168) load

I (123) esp_image: segment 2: paddr=0x00010454 vaddr=0x3ffb00a8 size=0x00170 ( 368) load

I (132) esp_image: segment 3: paddr=0x000105cc vaddr=0x3ffb0218 size=0x00048 ( 72) load

I (141) esp_image: segment 4: paddr=0x0001061c vaddr=0x3ffb0260 size=0x00100 ( 256) load

I (150) esp_image: segment 5: paddr=0x00010724 vaddr=0x3ffb0360 size=0x0003c ( 60) load

I (159) esp_image: segment 6: paddr=0x00010768 vaddr=0x40080000 size=0x00400 ( 1024) load

I (168) esp_image: segment 7: paddr=0x00010b70 vaddr=0x40080400 size=0x02500 ( 9472) load

I (181) esp_image: segment 8: paddr=0x00013078 vaddr=0x00000000 size=0x0cfa0 ( 53152)

I (205) esp_image: segment 9: paddr=0x00020020 vaddr=0x400d0020 size=0x0166c ( 5740) map

I (209) boot: Loaded app from partition at offset 0x10000

??*** Booting Zephyr OS build v2.6.0-rc1-300-g6ce0f2ee6606 ***

Hello World! esp32

原文標(biāo)題:Zephyr ESP32環(huán)境搭建

文章出處:【微信公眾號(hào):ZephyrProject】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • ESP
    ESP
    +關(guān)注

    關(guān)注

    0

    文章

    179

    瀏覽量

    33739
  • Zephyr
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    5940

原文標(biāo)題:Zephyr ESP32環(huán)境搭建

文章出處:【微信號(hào):ZephyrProject,微信公眾號(hào):ZephyrProject】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    esp32用什么軟件編程

    ESP32是一款由樂(lè)鑫(Espressif)推出的低功耗、高性能的Wi-Fi和藍(lán)牙雙模微控制器,廣泛應(yīng)用于物聯(lián)網(wǎng)、智能家居、智能穿戴等領(lǐng)域。要對(duì)ESP32進(jìn)行編程,需要選擇合適的編程軟件和開(kāi)發(fā)環(huán)境
    的頭像 發(fā)表于 08-19 17:24 ?863次閱讀

    使用esp-idf-tools2.12不能搭建esp32s3開(kāi)發(fā)環(huán)境是什么原因?

    各位好: 我們需要使用esp32s3開(kāi)發(fā)產(chǎn)品,根據(jù)“esp-idf-zh_CN-v5.0-dev-890-gf5bc471-esp32s3.pdf”指導(dǎo)文檔搭建vs code開(kāi)發(fā)環(huán)境
    發(fā)表于 06-27 08:20

    esp32c3-min-1esp-at默認(rèn)的程序編譯./build.py build就報(bào)錯(cuò),為什么?

    我用esp32c3-min-1,VSCode編譯環(huán)境里,使用的版本是V4.3,編譯exampl
    發(fā)表于 06-27 07:32

    如何搭建ESP32-S2開(kāi)發(fā)環(huán)境

    如何搭建ESP32-S2開(kāi)發(fā)環(huán)境?
    發(fā)表于 06-25 08:00

    esp32-cameraesp-idf 4.2編譯錯(cuò)誤的原因?

    編譯環(huán)境為vs code+esp-idf extension v4.2, 按照git上要求把esp32-camera庫(kù)拷到項(xiàng)目的compon
    發(fā)表于 06-21 16:39

    IDF-V4.3環(huán)境包含了庫(kù)的頭文件會(huì)編譯報(bào)錯(cuò),為什么?

    jos 環(huán)境:IDF-V4.3 工程:官方helloworld例程 目標(biāo)芯片:設(shè)置了esp32c3(ps:設(shè)置成esp32就不報(bào)錯(cuò)) 描述:使用官方helloworld項(xiàng)目修改,
    發(fā)表于 06-21 08:12

    ESP IDF編譯環(huán)境突然崩潰是什么原因引起的?

    開(kāi)發(fā)ESP32的過(guò)程中,遇到編譯問(wèn)題。Cmake 無(wú)法解析我新添加的component。 這個(gè)問(wèn)題是我剛剛遇到的,在這之前一直可以正常編譯。不知是什么原因可能導(dǎo)致的
    發(fā)表于 06-21 07:31

    vscode環(huán)境使用jlink調(diào)試ESP32_Devkitc_v4出現(xiàn)報(bào)錯(cuò)如何解決?

    vscode環(huán)境使用jlink調(diào)試ESP32_Devkitc_v4,出現(xiàn)如下問(wèn)題,請(qǐng)問(wèn)需要如何解決? Info : esp32.cpu0
    發(fā)表于 06-20 06:00

    用JTAG連接ESP32開(kāi)發(fā)板(ESP32-LYRAT-MINI_V1.2)的JTAG接口實(shí)現(xiàn)調(diào)試環(huán)境失敗了的原因?

    我用segger的ARM仿真器的JTAG連接ESP32開(kāi)發(fā)板(ESP32-LYRAT-MINI_V1.2)的JTAG接口實(shí)現(xiàn)調(diào)試環(huán)境的時(shí)候失敗,電腦已經(jīng)成功安裝了openocd, 并可
    發(fā)表于 06-17 07:26

    搭建esp32-C3編譯環(huán)境報(bào)錯(cuò)的原因?

    搭建esp32-C3編譯環(huán)境報(bào)錯(cuò) 按照入門說(shuō)明esp-idf編譯配置ok 但
    發(fā)表于 06-13 06:13

    如何在zephyr上使能esp32-c3內(nèi)置的USB串口?

    如題,請(qǐng)問(wèn)如何在zephyr上使能esp32-c3內(nèi)置的 USB 串口。
    發(fā)表于 06-12 08:11

    ESP32使用powershell搭建好了環(huán)境,執(zhí)行build編譯helloworld例程,報(bào)ninja錯(cuò)誤的原因?

    windows11上剛配置完esp32編譯環(huán)境(使用powershell方案),之后進(jìn)行測(cè)試發(fā)現(xiàn)編譯helloworld例程時(shí)報(bào)ninj
    發(fā)表于 06-12 07:31

    ESP32H2編譯工程失敗是哪里出了問(wèn)題?

    按照espidf的指南搭建環(huán)境,我的環(huán)境是wsl,ubuntu16的環(huán)境,esp32-H2的linux
    發(fā)表于 06-12 07:04

    ESP8266筆記-02.ESP8266 RTOS環(huán)境搭建

    ,主要是需要里面的MSYS2環(huán)境,然后送了一個(gè)ESP32的開(kāi)發(fā)環(huán)境。 第3個(gè)是編譯器 第4個(gè)是ESP8266的SDK 首先,第1個(gè)不必多說(shuō),
    發(fā)表于 04-15 17:33

    ESP32-PICO系列技術(shù)規(guī)格書

    ESP32-PICO 系列是基于 ESP32 芯片 的系統(tǒng)級(jí)封裝 (SiP) 產(chǎn)品。ESP32-PICO 系列產(chǎn)品包括 ESP32-PICO-D4、
    發(fā)表于 12-12 16:56 ?0次下載
    <b class='flag-5'>ESP32</b>-PICO系列技術(shù)規(guī)格書