中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux系統下ESP32開發板如何搭建RT-Thread開發環境

發布時間:2021-10-22 12:00:07 來源:億速云 閱讀:580 作者:柒染 欄目:互聯網科技

這篇文章將為大家詳細講解有關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

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 -xzf 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

Linux系統下ESP32開發板如何搭建RT-Thread開發環境

(波特率:115200)

2. 其他說明

2.1. Linux64bit、Windows及macos的交叉編譯工具

具體見https://github.com/BernardXiong/rtthread-esp-idf,里邊有其他系統交叉編譯工具的下載路徑。

注:windows下需要先安裝MSYS2等GNU-compatible環境軟件。

2.2. 目錄及文件說明

下圖為rttthread-esp-idf的目錄結構:

Linux系統下ESP32開發板如何搭建RT-Thread開發環境

其中:

  •  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開發環境就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兰州市| 宁蒗| 佛坪县| 化德县| 嵊泗县| 大田县| 延川县| 广汉市| 泗洪县| 康乐县| 清流县| 同心县| 沂水县| 喀喇沁旗| 龙里县| 亳州市| 法库县| 陇南市| 开封市| 墨竹工卡县| 宁远县| 无极县| 锡林郭勒盟| 周至县| 资阳市| 曲松县| 梧州市| 新丰县| 永州市| 石狮市| 潍坊市| 德清县| 金乡县| 东安县| 抚州市| 平阳县| 呼图壁县| 错那县| 吴堡县| 东阿县| 通辽市|