您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Linux系統下ESP32開發板如何搭建RT-Thread開發環境,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
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 <bernard.xiong@gmail.com>
Date: Fri Aug 25 15:29:362017 +0800
cd ~
wgethttps://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-61-gab8375a-5.2.0.tar.gz
tar -xzf xtensa-esp32-elf-linux32-1.22.0-61-gab8375a-5.2.0.tar.gz
sudo apt-get install git wget make libncurses-devflex bison gperf python python-serial scons
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
修改~/rtthread-esp-idf/rtconfig.py中exec_path的路徑為:
EXEC_PATH =r'/home/ss/xtensa-esp32-elf/bin'
注路徑中的ss為linux當前用戶的用戶名
首先修改個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) 由于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)
具體見https://github.com/BernardXiong/rtthread-esp-idf,里邊有其他系統交叉編譯工具的下載路徑。
注:windows下需要先安裝MSYS2等GNU-compatible環境軟件。
下圖為rttthread-esp-idf的目錄結構:
其中:
application目錄為rtt應用程序的代碼,其中main.c中的app_main()為應用程序入口函數。你可以在這里修改、編碼,來熟悉和調試rtt程序。
build目錄為編譯中間文件使用的目錄,編譯中的.o .d等都在這個目錄內。
componets目錄為rtt組件代碼保存的目錄,自己編寫的組件可以放在這里。
doc為該項目一些使用、功能的介紹文檔。
drivers目錄為rtt用于移植驅動的相關代碼保存的目錄,已有的包括uart、gpio、i2c、psram等。
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:項目簡介。
關于Linux系統下ESP32開發板如何搭建RT-Thread開發環境就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。