Linux系统下Ubuntu 16.04 LTS 32bit 英文版的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
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 --beforedefault_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为该项目一些使用、功能的介绍文档。
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:项目简介。
- end -

用神经处理单元集群改造边缘人工智能
高通开发电池寿命超10年的IoT用基带芯片
苹果新增自动驾驶路测车辆,数量仅次于通用和Waymo
EMEA IT支出陷入停滞 但云、安全和数字业务相关支出将增长
随着AI在医疗领域中不断前进,未来是否能代替医生?
Linux系统下Ubuntu 16.04 LTS 32bit 英文版的RT-Thread开发环境搭建
抢占新兴市场大蛋糕,PCB概念股迎来风口
NodeMCU板上的基本MQTT协议用法
人工智能将成为城市治理的核心和大脑
e络盟扩大库存,可提供8万余种连接器及电缆产品
需求驱动+技术创新 UV LED新蓝海前景向好
如何给TPU-MLIR添加新的算子
虹科案例|CELESTA光源用于Craft-ID技术的共聚焦成像
微软Xbox Series X/S主机销量大幅下滑
高性能降噪消回音方案设计的蓝牙和USB两用视频电话会议系统主板
51单片机通过程序控制心形led灯闪烁的设计
共模电感和扼流圈的区别?
CES消费电子展开幕 中外企业纷纷亮相
华为将携手青春版荣耀8推出“赵灵儿”版手机,回味一代人青春仙剑情
机器人与农业的整合将会是世界的大趋势 以便大力发展精准农业