Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
Linux系统下ESP32开发板搭建RT-Thread开发环境
发布于 2018-02-06 14:45:01 浏览:5406
订阅该版
**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项目版本中已经经过了测试,不排除最新版本有了完善: [indent]commit a8504d523214ee872ae480106e31cd1db138b74f Author: Bernard Xiong <[email]bernard.xiong@gmail.com[/email]> Date: Fri Aug 25 15:29:362017 +0800 [/indent]** ******1.1. 下载交叉编译工具****[indent]cd ~ wget[https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-61-gab8375a-5.2.0.tar.gz](https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-61-gab8375a-5.2.0.tar.gz) [/indent]** ******1.2. 解压缩交叉编译工具****[indent]tar -xzf xtensa-esp32-elf-linux32-1.22.0-61-gab8375a-5.2.0.tar.gz [/indent]** ******1.3. 安装必要的软件****[indent]sudo apt-get install git wget make libncurses-devflex bison gperf python python-serial scons [/indent]** ******1.4. 获取代码****[indent]cd ~ [/indent][indent]git clone[https://github.com/BernardXiong/rtthread-esp-idf](https://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 [/indent] ****1.5. 修改工程中交叉编译工具的路径****修改~/rtthread-esp-idf/rtconfig.py中exec_path的路径为: EXEC_PATH =r'/home/ss/xtensa-esp32-elf/bin' * 注路径中的ss为linux当前用户的用户名 ** ******1.6. 编译****首先修改个Makefile中的一个小错误,python那行命令路径需要修改: [indent]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 [/indent]然后进入项目根目录进行编译 [indent]cd ~/rtthread-esp-idf make all [/indent] ****1.7. 下载****1) 由于Linux下普通用户无权限直接操作/dev/ttyUSB0,首先给当前用户加入相应的权限,以便后边烧写时不需要使用sudo权限: [indent]sudo usermod -aG dialout ss [/indent]* 注:ss为linux当前用户的用户名 设置完成后注销重新登录一下当前用户即可,之后不再需要执行该命令。 2) 修改~/rtthread-esp-idf/burn_flash.bat中串口的名字(/dev/ttyUSB0)为如下: [indent]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 [/indent] 3) 给burn_flash.bat设置好执行权限: [indent]chmod a+xburn_flash.bat [/indent] 4) 将开发板与电脑连接好(如果是虚拟机,需要将设置连入虚拟机),同时如果开发板不支持一键烧写功能,一般需要通过按键使其进入烧写模式(同时按下IO0和reset,然后先松开reset,再松开IO0); 5) 执行一下命令等待烧写完成: [indent]cd ~/rtthread-esp-idf ./burn_flash.bat [/indent][align=center]![FastAdmin](https://www.rt-thread.org/file.php?pathname=201710/f_b633284bd27a4da6d2deb240642e3d29&extension=png)[align=center]*(波特率:115200)*****2. 其他说明********2.1. Linux64bit、Windows及macos的交叉编译工具****具体见[https://github.com/BernardXiong/rtthread-esp-idf](https://github.com/BernardXiong/rtthread-esp-idf),里边有其他系统交叉编译工具的下载路径。 注:windows下需要先安装MSYS2等GNU-compatible环境软件。 ** ******2.2. 目录及文件说明****下图为rttthread-esp-idf的目录结构: [align=center]![FastAdmin](https://www.rt-thread.org/file.php?pathname=201710/f_0234e2156c64691c5051062b53a15328&extension=png) 其中: * ** 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**:项目简介。 [align=center]**- End - ** [align=center]**支持RT-Thread,请关注RT-Thread公众号**[align=center]![FastAdmin](https://www.rt-thread.org/file.php?pathname=201710/f_39e72854e007ad99a5fbb1eb67775f97&extension=jpg)**添加微信13924608367 为好友,注明rt-thread,拉进RT-Thread Nano微信交流群,与RT-Thread官方团队直接交流。**
查看更多
4
个回答
默认排序
按发布时间排序
nongxiaoming
2018-02-27
rt-thread大师兄
可以了?之前我clone下来编译都编译不过。
luo_12yan
2018-11-08
这家伙很懒,什么也没写!
这个项目。。不更新了吗?
aureoleday
2018-12-17
这家伙很懒,什么也没写!
这个项目能用么?最近在关注ESP32,这片子太牛了,外设少,价格低
aureoleday
2018-12-19
这家伙很懒,什么也没写!
我也下载试了,同样编译失败。。 /home/aureoleday/esp/xtensa-esp32-elf/xtensa-esp32-elf/include/c++/5.2.0/xtensa-esp32-elf/bits/gthr-default.h:47:9: error: 'pthread_t' does not name a type typedef pthread_t __gthread_t; 这个问题怎么处理?
撰写答案
登录
注册新账号
关注者
0
被浏览
5.4k
关于作者
andychen
这家伙很懒,什么也没写!
提问
38
回答
187
被采纳
15
关注TA
发私信
相关问题
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
CherryUSB的bootuf2配置
2
在用clangd开发RTT吗,快来试试如何简单获得清晰干净的工作区
3
GD32F450 片内 flash驱动适配
4
STM32H7R7运行CherryUSB
5
RT-Smart首次线下培训,锁定2024 RT-Thread开发者大会!
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
freemodbus
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
6
次点赞
YZRD
2
篇文章
5
次点赞
lizimu
2
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部