Linux系统下ESP32开发板如何搭建RT-Thread开发环境

技术Linux系统下ESP32开发板如何搭建RT-Thread开发环境这篇文章将为大家详细讲解有关Linux系统下ESP32开发板如何搭建RT-Thread开发环境,文章内容质量较高,因此小编分享给大家做个参考,希望大家

本文将详细说明如何在Linux系统下为ESP32开发板构建RT-Thread开发环境。文章内容质量很高,我就分享给大家作为参考。希望大家看完这篇文章后对相关知识有一定的了解。

1. 搭建步骤

以下步骤以Ubuntu 16.04 LTS 32位英文版为例。其他Linux系统也差不多,只是小细节不同(比如包管理软件是yum等。).

下载ESP32需要USB串口工具。请确保您自己的主板(ESP-DevkitC、nodemuc-32S)集成了USB串行端口功能,或者使用USB转串行端口工具。默认情况下,Linux中串行端口的描述符是/dev/ttyub0。如果您使用的串行端口不是/dev/ttyub0,请在刻录时修改路径。

下面例子中的linux用户名是ss,所以请用你自己的linux用户名替换它。另外,工程和编译工具都放在用户的根目录下,可以根据自己的实际情况设置在合适的地方。

已经在熊大以下git项目版本中测试过,不排除最新版本有所改进:

提交a 8504d 523214 ee 872 AE 480106 e 31 CD 1 db 138 b 74f

作者熊

日期:Fri 8月25日15:29:362017 0800

1.1. 下载交叉编译工具

cd ~

wget https://dl . espressif.com/dl/xtensa-esp32-elf-linux32-1 . 22 . 0-61-gab 8375 a-5 . 2 . 0 . tar . gz

1.2. 解压缩交叉编译工具

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 ~

吉特clonehttps://github.com/BernardXiong/rtthread-esp-idf

cd rtthread-esp-idf

git子模块初始化

git子模块更新

CD esp-IDF-端口/esp-idf

git子模块初始化

git子模块更新

git应用./0001-cpu_start-patch.patch

git应用./0002-add-esp_task.h.patch

git应用./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用户的用户名。

00-1010首先,修改Makefile中的一个小错误。python中的命令路径需要修改:

pytonespp-IDF-port/esp-IDF/components/esptool _ py/esptool/esptool . py-chip esp32 elf 2 image-flash _ mode ' dio '-flash _ freq ' 40m '-flash _ size ' 4MB '-or thread . bin rtthread-esp32 . elf

然后输入要编译的项目根目录。

cd ~/rtthread-esp-idf

全部制作

ockquote>

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开发环境就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/41714.html

(0)

相关推荐

  • 我今年13岁了用英语怎么说,“我今年几岁了”英文怎么说

    技术我今年13岁了用英语怎么说,“我今年几岁了”英文怎么说翻译我今年13岁了用英语怎么说:How old I am单词分析:1、how
    英 [ha奭 美 [ha奭
    adv.怎样;健康状况如何;到何种地步;以任何方

    生活 2021年10月29日
  • 如何使用JDBC连接MySQL 8.x

    技术如何使用JDBC连接MySQL 8.x这篇文章给大家分享的是有关如何使用JDBC连接MySQL 8.x的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。MySQL 8.x 新版本JDBC连接方

    攻略 2021年11月1日
  • 如何判断处女,怎样看一个女人是不是处女

    技术如何判断处女,怎样看一个女人是不是处女1如何判断处女、从身后观察。处女的胯部和大腿浑然一体。这是因为处女的胯骨之间闭合较好。而非处则不同,她们的胯部松散,两个屁股在走路时象两个筐子在空中飘荡。这是因为女性只要有了第一

    生活 2021年10月25日
  • MySql支持哪些索引类型

    技术MySql支持哪些索引类型这篇文章主要讲解了“MySql支持哪些索引类型”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySql支持哪些索引类型”吧!一、什么是索引?

    攻略 2021年12月4日
  • 秦朝多少年历史,秦朝建立到灭亡多长时间

    技术秦朝多少年历史,秦朝建立到灭亡多长时间秦朝(公元前221年-公元前207年) ,是由战国后期的秦国发展起来的中国历史上第一个大一统王朝,传三世,共两帝一王,国祚共十四年秦朝多少年历史。秦国原为周朝的一个诸侯国,到秦始

    生活 2021年10月30日
  • Linux驱动实践:你知道【字符设备驱动程序】的两种写法吗

    技术Linux驱动实践:你知道【字符设备驱动程序】的两种写法吗 Linux驱动实践:你知道【字符设备驱动程序】的两种写法吗作 者:道哥,10+年嵌入式开发老兵,专注于:C/C++、嵌入式、Linux。

    礼包 2021年11月19日