Ubuntu 16.0.4下搭建ESP开发环境并实现Hello World

始言:到了年尾的12月想做点什么.于是这个计划就出来了——wifi/蓝牙的等离子音箱.接着选中了这个模块.原因很简单,便宜.顺带接触一下Ubuntu系统入门.

概述:

1. 安装交叉编译工具链

控制台下安装交叉编译工具链依赖的环境:sudo apt-get install git make gcc libncurses5-dev flex bison gperf python-serial

(控制台打开方法:Ctrl+Alt+T;后面不再供述)

2. 创建目录

  ① 创建ESP32专用的工作目录:

  sudo mkdir /esp32

  ②设置文件夹的归属为当前用户:

  sudo chown user:user /esp32  

  (注意这里的user是你的机器用户名 我这里是laixiaojie:laixiaojie 创建完后你可以在 ”我的电脑” 里找到这个文件夹.控制台进入命令为:cd  /esp32 ) 

  ③esp32文件夹里创建三个文件夹:crossTools、demos、sources分别保存交叉编译工具链、样例和SDK源码 命令:

  mkdir crossTools demos sources

  ④使用ls命令查看一下/esp32目录下的文件

3. 下载交叉编译工具

  ① 进入crossTools文件夹,下载官方的交叉编译工具:(这里是2017.12 下载的最新版本,请各位根据自己当前的时段下载对应版本的交叉编译器以免编译时候提示失败.)

  https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-75-gbaf03c2-5.2.0.tar.gz(这个不是命令 请打开你的搜狐浏览器输入这个,就能下载了,下载完后剪切到/esp32/crossTools里面)

  ②解压文件到当前目录下:

  tar -xzvf xtensa-esp32-elf-linux64-1.22.0-75-gbaf03c2-5.2.0.tar.gz

   ③使用ls命令查看一下/esp32/crossTools目录下的文件

3. 添加环境变量

  Tip:没有vim 请输入以下命令安装 sudo apt-get install vim

  ①sudo vim /etc/profile

   在最后面添加交叉编译工具链bin文件夹的目录

  (鼠标滚到最下 1、按 i 键进行编辑输入下面的语句后          2、按ESC退出编辑               3、输入 :wq 保存退出)

  export PATH=$PATH:/esp32/crossTools/xtensa-esp32-elf/bin

  ③ 然后更新一下profile文件,使之生效

  source /etc/profile

  ④ 检查是否安装成功

  xtensa-esp32-elf-gcc -v

4. 下载官方SDK : Espress-idf 到source文件夹

   ①官方已经开源托管在了github上,我们可以使用git clone命令进行下载

  git clone –recursive https://github.com/espressif/esp-idf.git

  ………….等待下载结束

  下载完成后,剪切文件到source文件夹打开ESP-IDF的目录结构如下:

  components:ESP-IDF的核心组件

  examples:ESP-IDF提供的实例程序

  make:ESP-IDF工程管理目录

  tools:ESP-IDF提供的工具集

  docs:ESP-IDF相关文档

5.添加Esp-idf环境变量

  ① 将ESP-IDF目录下examples中的hello_world样例拷贝到我们之前新建的demo文件夹中

  ② 进入工程文件中,使用tree命令(没有这个命令的输入 sudo apt-get install tree下载)查看工程结构  

  ③可以看到整个工程主要有一个hello_world_main.c和一个Makefile,打开Makefile,发现里面需要一个IDF_PATH的变量,这个变量应当指向安装的ESP-IDF的实际位置,需要在编译的时候指明。

  ④最佳的方式是/etc/profile中添加下面这样一个环境变量(添加环境变量步骤具体方法请看步骤3)

  export IDF_PATH=/esp32/sources/esp-idf

6.配置项目工程

  ①在/esp32/demos/hello_world/目录下 输入命令进入菜单设置:

  make menuconfig(注意控制台的窗体大小放大一点否则会报错)

  进入后,命令台界面如下

  ② 进入SDK tool configuration查看交叉编译工具链是否指定正确,已经python命令是否正确安装,ESP-IDF需要你的python属于python2的版本,最好不要实用python3

  ③ 进入Bootloader config目录,配置bootloader的打印日志显示信息等级为warning

  ④进入Serial flasher config,指定用于烧写程序的串口设备,一般使用USB转串口的选择/dev/ttyUSB0即可,设置默认的波特率为115200,Flash的SPI模式为DIO,SPI速率为80MHz,Flash的大小为4MB(默认就好)

  ⑤进入Partition Table设置分区表,为了更好的管理SPI Flash,ESP-IDF引入了分区表的概念,默认使用Single factory app,no OTA制作分区BIN(略默认就好,各位看家可以自己点进去瞅瞅)

  ⑥ Component config是对ESP-IDF的内核进行的更加详细的配置(略 默认就好)

  ⑦最后选择 Exit 退出make menuconfig的配置界面,保存刚才的配置,将会在工程根目录下看到新生成的一个build文件夹和sdkconfig文件

 7.编译

  ① 在/esp32/demos/hello_world下输入编译命令生成bin文件,make all将会编译所有的BIN文件,默认会编译bootloader、partition_table、app文件,并且还会提示如何进行烧写。

  make all -j8  或者  make all -j

  (“-j [<jobsnum>]” “–jobs[=<jobsnum>]” 指同时运行命令的个数。如果没有这个参数,make运行命令时能运行多少就运行多少。如果有一个以上的“-j”参数,那么仅最后一个“-j”才是有效的。(注意这个参数在MS-DOS中是无用的))

   如果有报错 有可能是没有让环境变量运行起来 输入 source /etc/profile 再编译试试.

8.烧写

  ②输入命令打开minicom 查看: sudo minicom -D /dev/ttyUSB0 (这里指定打开USB0)

    ****没有minicom的童鞋 请输入 sudo apt-get install minicom 进行安装.*****

番外:

 1、USB读写权限(这个只需要配置一次

  在烧写程序之前,需要给USB设备增加读写权限

  sudo usermod  -a  -G  dialout  $USER

  然后需要重启系统以生效

  sudo reboot

2、mini

/————————————————————————————————————————完结撒花

总的来说Ubuntu系统还是蛮有意思的.刚刚接触 也熟悉了不少命令. 接下来进入ESP32的开发篇一GPIO.(终于来点我认识的东西了………)

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/220082.html<

(0)
管理的头像管理
上一篇2025-04-14 10:00
下一篇 2025-04-14 10:02

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注