esp8266~入坑sdk 3.0 IDF框架和linux交叉编译环境搭建

一、交叉编译环境搭建步骤

1、安装virtualbox、ubuntu虚拟机共享windows文件夹,注!virtualbox最好装在C盘,不然安装虚拟工具经常会失败。
2、新建共享目录,挂载共享目录到虚拟机中

sudo mount -t vboxsf share /mnt/Share/

3、下载 xtensa-lx106-elf 交叉编译工具,这里根据操作系统选择

  • Windows
  • Mac
  • Linux(64)
  • Linux(32)

4、配置xtensa gcc编译工具链,先解压

sudo tar zxvf /mnt/Share/xtensa-lx106-elf-linux32-1.22.0-88-gde0bdc1-4.8.5.tar.gz -C /opt

修改xtensa-lx106-elf目录权限,这步很重要!

sudo chmod 777 /opt/xtensa-lx106-elf

修改环境变量,编辑etc/environment添加”:/opt/xtensa-lx106-elf/bin”,使用vi或者文本编辑器打开都OK,但需要管理员权限!修改之后保存,让它立即生效:

source /etc/environment

检查环境变量是否成功,查看xtensa gcc版本

echo $PATH
xtensa-lx106-elf-gcc -v

5、git下载 esp8266 3.0-rtos-sdk

git clone https://github.com/espressif/ESP8266_RTOS_SDK.git

复制example下面的工程项目到我们存放工程代码的目录

cp -r ESP8266_RTOS_SDK/examples/get-started/project_template/ .

切换到刚才的工程,修改makefile后,执行make编译
如下修改makefile指定依赖sdk:

#
# This is a project Makefile. It is assumed the directory this Makefile resides in is a
# project subdirectory.
#

PROJECT_NAME := project_template
IDF_PATH = /mnt/Share/ESP8266_RTOS_SDK
include $(IDF_PATH)/make/project.mk

如果执行make后,不能正常编译提示下面日志,则需更新python相关的工具,
esp8266~入坑sdk 3.0 IDF框架和linux交叉编译环境搭建_第1张图片
可执行面命令,更新相关的工具。

sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-serial

正常第一次编译都比较慢,耐心等待。也可以参考网上很多的教程:ESP8266交叉编译环境搭建之linux篇、 ESP8266 Ubuntu开发环境的搭建,但感觉都比较旧了,推荐大家网上找东西的时候还是注意下日期。
6、最后一步配置工程属性,执行make menuconfig。进入下面窗口,可以设置很多东西,很好的是还提供了linux串口调试下载的工具monitor,执行make monitor即可打开串口。
esp8266~入坑sdk 3.0 IDF框架和linux交叉编译环境搭建_第2张图片
esp8266~入坑sdk 3.0 IDF框架和linux交叉编译环境搭建_第3张图片

二、入坑sdk 3.0

我之前开发esp8266是从网上下载一体化开发工具,也挺好用的,只是代码风格确实不够专业相比rtk8710的SDK,2.0及以前资料还是挺丰富的。受我之前小伙伴的影响,他也在玩8266,乐鑫推荐他们开发使用3.0的SDK了,IDF框架有很多优点包括省内存、代码简洁等。用了之后都说好,哈哈。

就这样,我现在开发写代码使用的是vscode,编译和下载完全使用了linux了。其实IDF编码的风格和rtk8710SDK很像啦!就这样,我切换到了3.0,在此之前又玩过一下esp32,确实感觉乐鑫的东西越做越方便了哈。
当然新的东西不一定很完善,后续会简单记录一些比较重要的点,来帮大家熟悉esp-idf、esp32。

参考:
1、新ESP8266-RTOS-SDK(v3.0)开发环境搭建
2、Esp8266 进阶之路27【高级篇】跟紧脚步,Windows下用 Visual Studio Code开发 esp8266 rtos SDK v3.0版本,全新 idf 框架,节省内存模块化开发。

你可能感兴趣的:(IoT嵌入式,#,wifi,蓝牙)