首頁 > 軟體

Ubuntu 16.0.4下搭建ESP開發環境並實現Hello World

2020-06-16 16:58:50

始言:到了年尾的12月想做點什麼.於是這個計劃就出來了——wifi/藍牙的等離子音箱.接著選中了這個模組.原因很簡單,便宜.順帶接觸一下Ubuntu系統入門.

概述:

Ubuntu 16.0.4下的ESP環境搭建,並實現一個hello world例程。(16.0.4是官方推薦版本,比這個低的話建議還是更新一下,否則開發工具鏈會出現一些錯誤,修復起來也浪費時間),這裡是根據網上搜尋後自己成功搭建的一個經驗記錄,僅供參考。

1. 安裝交叉編譯工具鏈

控制台下安裝交叉編譯工具鏈依賴的環境:sudo apt-get install git make gcc libncurses5-dev flex bison gperf python-serial

(控制台開啟方法:Ctrl+Alt+T;後面不再供述)

2. 建立目錄

  ① 建立ESP32專用的工作目錄:

  sudo mkdir /esp32

  ②設定資料夾的歸屬為當前使用者:

  sudo chown user:user /esp32  

  (注意這裡的user是你的機器使用者名稱 我這裡是laixiaojie:laixiaojie 建立完後你可以在 ”我的電腦” 裡找到這個資料夾.控制台進入命令為:cd  /esp32 ) 

  ③esp32資料夾裡建立三個資料夾:crossTools、demos、sources分別儲存交叉編譯工具鏈、樣例和SDK原始碼 命令:

  mkdir crossTools demos sources

  ④使用ls命令檢視一下/esp32目錄下的檔案

3. 下載交叉編譯工具

  ① 進入crossTools資料夾,下載官方的交叉編譯工具:(這裡是2017.12 下載的最新版本,請各位根據自己當前的時段下載對應版本的交叉編譯器以免編譯時候提示失敗.)

  https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-75-gbaf03c2-5.2.0.tar.gz(這個不是命令 請開啟你的搜狐瀏覽器輸入這個,就能下載了,下載完後剪下到/esp32/crossTools裡面)

  ②解壓檔案到當前目錄下:

  tar -xzvf xtensa-esp32-elf-linux64-1.22.0-75-gbaf03c2-5.2.0.tar.gz

   ③使用ls命令檢視一下/esp32/crossTools目錄下的檔案

   

3. 新增環境變數

  Tip:沒有vim 請輸入以下命令安裝 sudo apt-get install vim

  ①sudo vim /etc/profile

   在最後面新增交叉編譯工具鏈bin資料夾的目錄

  (滑鼠滾到最下 1、按 i 鍵進行編輯輸入下面的語句後          2、按ESC退出編輯               3、輸入 :wq 儲存退出)

  export PATH=$PATH:/esp32/crossTools/xtensa-esp32-elf/bin

       

  ③ 然後更新一下profile檔案,使之生效

  source /etc/profile

  ④ 檢查是否安裝成功

  xtensa-esp32-elf-gcc -v

   

4. 下載官方SDK : Espress-idf 到source資料夾

  

   ①官方已經開源託管在了github上,我們可以使用git clone命令進行下載

  git clone --recursive https://github.com/espressif/esp-idf.git

  .............等待下載結束

  下載完成後,剪下檔案到source資料夾開啟ESP-IDF的目錄結構如下:

  components:ESP-IDF的核心元件

  examples:ESP-IDF提供的範例程式

  make:ESP-IDF工程管理目錄

  tools:ESP-IDF提供的工具集

  docs:ESP-IDF相關文件

5.新增Esp-idf環境變數

  ① 將ESP-IDF目錄下examples中的hello_world樣例拷貝到我們之前新建的demo資料夾中

  ② 進入工程檔案中,使用tree命令(沒有這個命令的輸入 sudo apt-get install tree下載)檢視工程結構  

  

  ③可以看到整個工程主要有一個hello_world_main.c和一個Makefile,開啟Makefile,發現裡面需要一個IDF_PATH的變數,這個變數應當指向安裝的ESP-IDF的實際位置,需要在編譯的時候指明。

  

  ④最佳的方式是/etc/profile中新增下面這樣一個環境變數(新增環境變數步驟具體方法請看步驟3)

  export IDF_PATH=/esp32/sources/esp-idf

  

6.設定專案工程

  ①在/esp32/demos/hello_world/目錄下 輸入命令進入選單設定:

  make menuconfig(注意控制台的表單大小放大一點否則會報錯)

  進入後,命令台介面如下

  

  ② 進入SDK tool configuration檢視交叉編譯工具鏈是否指定正確,已經python命令是否正確安裝,ESP-IDF需要你的python屬於python2的版本,最好不要實用python3

  

  ③ 進入Bootloader config目錄,設定bootloader的列印紀錄檔顯示資訊等級為warning

  

  

  

  

  

  

  ④進入Serial flasher config,指定用於燒寫程式的串列埠裝置,一般使用USB轉串列埠的選擇/dev/ttyUSB0即可,設定預設的波特率為115200,Flash的SPI模式為DIO,SPI速率為80MHz,Flash的大小為4MB(預設就好)

  

  ⑤進入Partition Table設定分割區表,為了更好的管理SPI Flash,ESP-IDF引入了分割區表的概念,預設使用Single factory app,no OTA製作分割區BIN(略預設就好,各位看家可以自己點進去瞅瞅)

  ⑥ Component config是對ESP-IDF的核心進行的更加詳細的設定(略 預設就好)

  ⑦最後選擇 Exit 退出make menuconfig的設定介面,儲存剛才的設定,將會在工程根目錄下看到新生成的一個build資料夾和sdkconfig檔案

 7.編譯

  ① 在/esp32/demos/hello_world下輸入編譯命令生成bin檔案,make all將會編譯所有的BIN檔案,預設會編譯bootloader、partition_table、app檔案,並且還會提示如何進行燒寫。

  make all -j8  或者  make all -j

  (“-j [<jobsnum>]” “--jobs[=<jobsnum>]” 指同時執行命令的個數。如果沒有這個引數,make執行命令時能執行多少就執行多少。如果有一個以上的“-j”引數,那麼僅最後一個“-j”才是有效的。(注意這個引數在MS-DOS中是無用的))

  

   如果有報錯 有可能是沒有讓環境變數執行起來 輸入 source /etc/profile 再編譯試試.

8.燒寫

  ①輸入make flash 命令下載(按照官方的說明 要先長按開發板boot鍵不放然後按一下Reset鍵進入下載模式,but 我發現無視這個直接執行命令也是ok的)  失敗的話有可能是 USB讀寫許可權沒開放(請參考步驟9開啟許可權,然後重新下載)

  

  ②輸入命令開啟minicom 檢視: sudo minicom -D /dev/ttyUSB0 (這裡指定開啟USB0)

    ****沒有minicom的童鞋 請輸入 sudo apt-get install minicom 進行安裝.*****

   

番外:

 1、USB讀寫許可權(這個只需要設定一次

  在燒寫程式之前,需要給USB裝置增加讀寫許可權

  sudo usermod  -a  -G  dialout  $USER

  

  然後需要重新啟動系統以生效

  sudo reboot

2、mini

/————————————————————————————————————————完結撒花

總的來說Ubuntu系統還是蠻有意思的.剛剛接觸 也熟悉了不少命令. 接下來進入ESP32的開發篇一GPIO.(終於來點我認識的東西了.........)


IT145.com E-mail:sddin#qq.com