ESP32 学习笔记 - 环境搭建
一、安装软件包
打开终端
输入命令(以下命令都是Ubuntu系统的)
sudo apt-get install git wget libncurses-dev flex bison gperf python python-click python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache
会提示需要输入密码
输入密码后有可能会提示
使用下面的命令解锁一下就行了
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
成功以后就是下面的界面
二、安装工具链
乐鑫是默认将工具链安装在 ~/esp/
目录的,我也将工具链安装到这里吧。
先创建并进入该目录:
mkdir -p ~/esp
cd ~/esp
使用 wget
命令下载 64 位的工具链:
下载过程
将工具链解压:
tar -xzf xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-linux-amd64.tar.gz
解压后的工具链位于路径~/esp/xtensa-esp32-elf
下面。该目录下面的bin
目录就是我们用来编译 ESP-IDF 工程所需的可执行程序。如果要使系统直接能够这些程序,
要使用工具链,你还需要在 ~/.profile
文件中更新环境变量 PATH,
需要将这个bin
文件夹路径添加到系统的环境变量PATH
中去。这里直接使用echo
命令将其添加到脚本文件~/.bashrc
中(系统每次启动刚时都会执行这个脚本)。
使用gedit .profile打开.profile
文件
gedit .profile
在.profile
文件的最下方添加下面的代码,如果路径跟我的路径不同下面代码中的路径需要自行修改
export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"
三、获取ESP-IDF
工具链(包括用于编译和构建应用程序的程序)安装完后,你还需要 ESP32 相关的 API/库。API/库在ESP-IDF仓库中。要获取这些 API/库,打开一个终端,进入某个你希望存放 ESP-IDF 的目录,然后 git clone
以下指令(我将ESP-IDF 下载至 ~/esp/esp-idf
):
git clone --recursive https://github.com/espressif/esp-idf.git
接收有点慢...慢慢等
接收完以后需要设置环境变量
使用gedit .profile打开.profile
文件
gedit .profile
在.profile
文件的最下方添加下面的代码,如果路径跟我的路径不同下面代码中的路径需要自行修改
export IDF_PATH=/home/hj/esp/esp-idf
重点:.profile
文件中添加的两次环境变量是编译的关键,两次添加完成以后需要重启电脑或者重新登录才能生效
现在可以开始创建 ESP32 应用程序了。为了快速开始,我们这里以 IDF 的 examples 目录下的 get-started/hello_world 工程为例进行说明。
将 get-started/hello_world 拷贝到 ~/esp
目录:
cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world .
在终端窗口中,输入 cd ~/esp/hello_world
进入 hello_world
所在目录,然后启动工程配置工具 menuconfig
:
cd ~/esp/hello_world
make menuconfig
如果没问题就会进入这个界面
在菜单中,进入 Serial flasher config
> Default serial port
配置串口(工程将会加载到该串口上)。
输入回车确认选择,选择 <Save>
保存配置,然后选择 <Exit>
退出应用程序。
然后就可以编译和烧写应用程序了,执行指令:
make flash
第一次编译可能会出现几个错误
错误一:
/dev/ttyUSB0 permission denied
对端口没有权限
解决方式:
sudo chmod /dev/ttyUSB0
这种方式重启电脑后又会出现问题,网上还有一种方式,我试了一下没成功
sudo usermod -aG dialout hj(这里写你的用户名)
为了方便调试,最好安装一个cutecom
初次之外我还安装了sublime text3用来编辑代码,这里提供个deb版本的安装包
ESP32 学习笔记 - 环境搭建的更多相关文章
- MongoDB学习笔记~环境搭建
回到目录 Redis学习笔记已经告一段落,Redis仓储也已经实现了,对于key/value结构的redis我更愿意使用它来实现数据集的缓存机制,而对于结构灵活,查询效率高的时候使用redis就有点不 ...
- 0.react学习笔记-环境搭建与脚手架
0.环境搭建 笔者使用的是deepin/mac两种系统,因为两个电脑经常切换用.环境搭建没什么区别. 0.1 node安装 按照node官网叙述安装 # Using Debian, as root c ...
- VS2013中Python学习笔记[环境搭建]
前言 Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色 ...
- Spring学习笔记--环境搭建和初步理解IOC
Spring框架是一个轻量级的框架,不依赖容器就能够运行,像重量级的框架EJB框架就必须运行在JBoss等支持EJB的容器中,核心思想是IOC,AOP,Spring能够协同Struts,hiberna ...
- DVWA学习笔记-----环境搭建
DVWA是一款渗透测试的演练系统,在圈子里是很出名的.如果你需要入门,那么就选它了. 我们通常将演练系统称为靶机,下面请跟着我一起搭建DVWA测试环境. 安装PHP集成环境 我这里用的是phpstu ...
- hadoop学习笔记——环境搭建
基础环境准备: 系统:(VirtualBox) ubuntu-12.04.2-desktop-i386.iso hadoop版本:hadoop-0.20.203.0rc1.tar.gz jdk版本:j ...
- Hibernate学习笔记--环境搭建及运行
1.hibernate开发包下载 http://sourceforge.net/projects/hibernate/files/ 如果不能访问请用代理http://dongtaiwang.com/l ...
- ESP32学习笔记(一) 环境搭建与下载
ESP32学习笔记(一) 环境搭建与下载 作者:Nevel 博客:nevel.cnblogs.com 转载请保留出处 前几天刚入手了ESP32模块,趁着放假有时间,我们先把ESP32的编译环境搭建好 ...
- Hadoop学习笔记(10) ——搭建源码学习环境
Hadoop学习笔记(10) ——搭建源码学习环境 上一章中,我们对整个hadoop的目录及源码目录有了一个初步的了解,接下来计划深入学习一下这头神象作品了.但是看代码用什么,难不成gedit?,单步 ...
随机推荐
- IEEP-网络实施-项目交付流程
1.项目交付流程 1.1 定义 项目交付流程规定了对项目实施的管理和作业控制要求,保证了工程项目实施按照规定的程序进行 1.2 重要性 1.2.1提高客户满意度 1.2.2 提高工程效率,节约成本 1 ...
- 【转】OpenGL概述
英文原文 中文译文 1. 计算机图像硬件 1.1 GPU(图像处理单元) 如今,计算机拥有用来专门做图像处理显示的GPU模块,拥有独立的图像处理储存(显存). 1.2 像素和画面 任何图像显示都是基于 ...
- Visual Stuio 2010 常用快捷及操作
1.如果你想复制一行代码(超级长,鼠标拖老久的),只需要在这行的空白处 CTRL+C 同理,剪贴一行 CTRL+X 删除一行 CTRL+L 2.显示方法里的参数,以前每次都是手动删括号. CTRL+S ...
- Ubuntu adb device
在ubuntu上经常出现系统无法识别android手机的情况,要解决这个问题可以用以下方法: 1. 执行 "android update adb", 这会创建"~/.an ...
- 因子和&&因子数
给定一数n,求n的因子数目和因子之和 上述求因子和式子等于 ∏{(piei+1 - 1) / (pi - 1)} (∏就是连乘) 模板: +; int prime[maxn]; bool is_pr ...
- Could..... not preload global game manager
发布PC版后出现这个错误,是没有破解成功,卸载后重新安装破解就可以了 http://www.cocoachina.com/bbs/read.php?tid=84587
- 数据库——MySQL——完整性约束
约束,就是用来保证数据完整性和一致性的. 常见的约束分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NO ...
- watch、computed、methods的区别
1. `computed`属性的结果会被缓存,除非依赖的响应式属性变化才会重新计算.主要当作属性来使用,要return出去一个值:2. `methods`方法表示一个具体的操作,主要书写业务逻辑:3. ...
- Object C学习笔记20-结构体(转)
在学习Object C中的过程中,关于struct的资料貌似非常少,查阅了C方面的资料总结了一些学习心得! 一. 定义结构 结构体是一种数据类型的组合和数据抽象.结构体的定义语法如下: struct ...
- iOS Block界面反向传值小demo
1.在第二个视图控制器的.h文件中定义声明Block属性: // 定义block @property (nonatomic, copy) void (^NextViewControllerBlock) ...