ESP8266 NONOS SDK开发初探各种报错解决方法(一)

前言:本文适合单片机开发工程师初次接触ESP8266 SDK开发。由于非专门从事软件工作,所以对开发环境不甚了解。本人经过多天的摸爬滚打,才把官方的SDK编译成功。

本文主要研究NON_OS版本的SDK。RTOS版本,以后再研究吧。 网上的教程很多,几年下来,沉淀了各种版本,出错后,几乎找不到正确的解决办法。现在把我遇到的几大坑罗列一下

1、ESP8266开发可以在linux和Windows下开发。

可能因前几年没有windows下的开发环境,教程大都是让人安装linux,这真的很让人恼火,我甚至安装了虚拟机,下载了Ubuntu,也下决心好好研究一下linux指令,不过对于零基础的我,简直是莫大的折磨,如同赶鸭子上架,这段时间让我崩溃了,都想放弃了。
幸亏思路转变了一下,不去网上找教程,转而去官网翻教程。果然给了我一个大教训。
官方Windows环境搭建:http://aiclouds3.0-docs.aithinker.com/#/2.device/configuration_windows

2、按照官方的指导(NONOS SDK),可以创建好开发环境

NONOS SDK3.0下载地址:https://codeload.github.com/espressif/ESP8266_NONOS_SDK/zip/v3.0

对于RTOS SDK,官方指导说了一句自行百度,瞬间让我不想踏足了,一个陌生的领域,是令人恐惧的。有相关知识背景的朋友可以尝试,我试着下载了git管理软件,也git了SDK,但是,没看明白下载下来的都是啥。所以我决定搁置!在这里插入图片描述
另外“SDK”是指软件开发包,也就是软件公司做好了一部分功能的程序文件,你拿来直接用,修改相关代码,加入自己的应用程序,从而进行二次开发。习惯了所有代码都自己敲的单片机工程师,可能会不太适应,但是有过STM32库文件开发的经历,对SDK就显得不那么排斥了。

3、在clean时出现make: *** No rule to make target ‘clean’. Stop.

16:47:51 **** Clean-only build of configuration Default for project ESP8266_NONOS_SDK30 ****
make COMPILE=gcc BOOT=new APP=1 SPI_SPEED=40 SPI_MODE=DIO SPI_SIZE_MAP=6 clean 
make: *** No rule to make target 'clean'.  Stop.

16:47:51 Build Finished (took 136ms)

这个坑,曾经我翻遍了网络,也没有填上,按照官方的指导步骤,却一直通过不了。直到我重新审视了我的工程目录,与官方指导的目录:

在这里插入图片描述
在这里插入图片描述
我才意识到了什么。。原来需要手动将demo,放到根目录才行。这个在内行人看来是再低级不过的错误,让我这个外行人栽了个大跟头。也怪我没有仔细思考,就一门心思想按照教程一步一步走一遍。

4、又一个大坑来了/bin/sh: line 1: xtensa-lx106-elf-gcc: command not found

DEPEND: xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -fno-builtin-printf -DICACHE_FLASH -DSPI_FLASH_SIZE_MAP=2 -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle -I ../../driver_lib/include user_main.c
/bin/sh: line 1: xtensa-lx106-elf-gcc: command not found

同样,翻遍网络也没搞清楚是咋回事。基本上都是LINUX下的解答。没有任何参考价值。而官方教程有一个常见问题指南,但是说的我是云里雾里,完全看不懂啥意思。总之往这方面去想吧
在这里插入图片描述

官方IDE下载链接:https://pan.baidu.com/s/1bk_mc-X9Aol9MgiU0gZA0A 提取码:shm3
里面会有一个“esp8266 Windows工具链”
在这里插入图片描述
而这个文件夹里,有这些:
在这里插入图片描述
原来这东西叫工具链。将“v5.2.0_for_3.0.rar”解压,放入D:\AiThinkerIDE_V1.5.2\msys32\opt\esp8266文件夹,如果原来有,则覆盖。同时,检查系统环境变量是否正确。我之前的环境变量就写错了。
在这里插入图片描述
再编译,就不报这个错误了。
在这里插入图片描述

然后换了另一个错误

user_esp_platform_timer.c: In function 'split':
user_esp_platform_timer.c:77:19: error: implicit declaration of function 'indexof' [-Werror=implicit-function-declaration]
         int end = indexof(p1, p2, start);
                   ^
user_esp_platform_timer.c: In function 'user_platform_timer_first_start':

怎么看怎么是demo程序的错误,没有继续深究它。也许是Demo自身有问题,也可能不是。不过不重要了。

5、感谢https://blog.csdn.net/felix_tao/article/details/106698643提供的帮助。

按照上面的手把手指导,我安装了JDK,这个是官方教程上没有说的。虽然不知道有什么用,但是还是照做了。目前1-7步骤没有出现过问题。

未完待续……

猜你喜欢

转载自blog.csdn.net/weixin_43128823/article/details/108058537
今日推荐