1. 搭建步驟
以下步驟是以Ubuntu 16.04 LTS 32bit 英文版中為例,其他Linux系統類似,但不排除有小細節不同(如包管理軟件為yum等)。
ESP32的下載需要使用USB串口工具,請確保自己的開板(ESP-DevkitC、NodeMCU-32S)集成有USB串口功能,或者使用USB轉串口工具,Linux中串口的描述符默認是/dev/ttyUSB0,如果你使用的串口不是/dev/ttyUSB0,燒寫時修改的路徑請自行修改。
以下示例中linux用戶的名稱為ss,請自行替換為自己linux的用戶名。此外,工程及編譯工具都放在用戶根目錄下,你可以根據自己實際情況設置到合適位置中。
在熊大如下的git項目版本中已經經過了測試,不排除最新版本有了完善:
commit a8504d523214ee872ae480106e31cd1db138b74f
Author: Bernard Xiong
Date: Fri Aug 25 15:29:362017 +0800
1.1. 下載交叉編譯工具
cd ~
wgethttps://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-61-gab8375a-5.2.0.tar.gz
1.2. 解壓縮交叉編譯工具
tar -x*** xtensa-esp32-elf-linux32-1.22.0-61-gab8375a-5.2.0.tar.gz
1.3. 安裝必要的軟件
sudo apt-get install git wget make libncurses-devflex bison gperf python python-serial scons
1.4. 獲取代碼
cd ~
git clonehttps://github.com/BernardXiong/rtthread-esp-idf
cd rtthread-esp-idf
git submodule init
git submodule update
cd esp-idf-port/esp-idf
git submodule init
git submodule update
git apply ../0001-cpu_start-patch.patch
git apply ../0002-add-esp_task.h.patch
git apply ../0003-add-memset-to-0.patch
1.5. 修改工程中交叉編譯工具的路徑
修改~/rtthread-esp-idf/rtconfig.py中exec_path的路徑為:
EXEC_PATH =r'/home/ss/xtensa-esp32-elf/bin'
-
注路徑中的ss為linux當前用戶的用戶名
1.6. 編譯
首先修改個Makefile中的一個小錯誤,python那行命令路徑需要修改:
pythonesp-idf-port/esp-idf/components/esptool_py/esptool/esptool.py --chip esp32elf2image --flash_mode "dio" --flash_freq "40m"--flash_size "4MB" -ortthread.bin rtthread-esp32.elf
然后進入項目根目錄進行編譯
cd ~/rtthread-esp-idf
make all
1.7. 下載
1) 由于Linux下普通用戶無權限直接操作/dev/ttyUSB0,首先給當前用戶加入相應的權限,以便后邊燒寫時不需要使用sudo權限:
sudo usermod -aG dialout ss
-
注:ss為linux當前用戶的用戶名
設置完成后注銷重新登錄一下當前用戶即可,之后不再需要執行該命令。
2) 修改~/rtthread-esp-idf/burn_flash.bat中串口的名字(/dev/ttyUSB0)為如下:
python esp-idf-port/esp-idf/components/esptool_py/esptool/esptool.py--chip esp32 --port /dev/ttyUSB0 --baud 115200 --before"default_reset" --after "hard_reset" write_flash -z--flash_mode "dio" --flash_freq "40m" --flash_size detect0x1000 bootloader.bin 0x10000 rtthread.bin 0x8000 partitions_singleapp.bin
3) 給burn_flash.bat設置好執行權限:
chmod a+xburn_flash.bat
4) 將開發板與電腦連接好(如果是虛擬機,需要將設置連入虛擬機),同時如果開發板不支持一鍵燒寫功能,一般需要通過按鍵使其進入燒寫模式(同時按下IO0和reset,然后先松開reset,再松開IO0);
5) 執行一下命令等待燒寫完成:
cd ~/rtthread-esp-idf
./burn_flash.bat
(波特率:115200)
2. 其他說明
2.1. Linux64bit、Windows及macos的交叉編譯工具
具體見https://github.com/BernardXiong/rtthread-esp-idf,里邊有其他系統交叉編譯工具的下載路徑。
注:windows下需要先安裝MSYS2等GNU-compatible環境軟件。
2.2. 目錄及文件說明
下圖為rttthread-esp-idf的目錄結構:
其中:
-
application目錄為rtt應用程序的代碼,其中main.c中的app_main()為應用程序入口函數。你可以在這里修改、編碼,來熟悉和調試rtt程序。
-
build目錄為編譯中間文件使用的目錄,編譯中的.o .d等都在這個目錄內。
-
componets目錄為rtt組件代碼保存的目錄,自己編寫的組件可以放在這里。
-
doc為該項目一些使用、功能的介紹文檔。
-
esp-idf-port目錄為esp-idf移植修改的代碼目錄,由于rtt on esp32是基于esp官方的esp-idf移植的,esp-idf的代碼及移植補丁等在這個目錄中。同時用于下載、打包鏡像等python工具包也在該目錄下。如果你需要更深入地使用ESP32(比如使用自定的分區結構、使用FlashEncryption等功能),可能需要在這個目錄配置修改。
-
rt-thread為rtt核心的內核及相關組件、驅動等代碼保存的目錄,如果你需要深入了解或調試rtt核心的功能,可以在本目錄中尋找、修改、調試。
-
鏡像文件或其輔助文件:
-bootloader.bin:esp32的Second stagebootloader
-partitions_singleapp.bin:esp32的分區表數據,目前rtt默認的是非ota的鏡像。
-rttthread-esp32.bin:rtt on esp32的目標代碼。
-esp32.common.ld、esp32_out.ld、rtthread-esp32.elf、rtthread-esp32.map:編譯鏡像的中間文件及腳本工具。
-
rtconfig.h、rtconfig_project:rtt的配置頭文件。
-
sdkconfig.h:esp-idf的配置文件
-
rtconfig.py、rtconfig.pyc:rtt編譯的python腳本。
-
burn_flash.bat:鏡像燒寫腳本。
-
Kconfig、Makefile、mkbin.bat、SConscript、SConstruct:項目編譯的各種腳本。
-
README.md:項目簡介。
- End -
-
Linux
+關注
關注
87文章
11225瀏覽量
208920 -
Ubuntu
+關注
關注
5文章
560瀏覽量
29560 -
rt_thread
+關注
關注
2文章
13瀏覽量
14648
原文標題:Linux系統下ESP32開發板搭建RT-Thread開發環境
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論