始言:到了年尾的12月想做點什么.於是這個計划就出來了——wifi/藍牙的等離子音箱.接着選中了這個模塊.原因很簡單,便宜.順帶接觸一下ubuntu系統入門.
概述:
Ubuntu16.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.(終於來點我認識的東西了.........)