ESP8266工程的导入

前言:

本篇文章主要讲一下,ESP8266的工程怎么导入到Eclipse里。

准备一个SDK工程

  • 既然是导入那么你首先得有一个现有的工程(不存在建工程的,这辈子都不可能徒手建工程的),工程从网上找一个就OK了。
  • ESP8266的SDK有两种,一种是无系统(NON-OS SDK),另一种是运行了FreeRTOS的(RTOS SDK)。
SDK类型描述优缺点
NOn-OS SDK1.主要使⽤定时器和回调函数的⽅式实现各个功能事件的嵌套,达到特定条件下触发特定功能函数的⽬的。
2.使⽤ espconn 接⼝实现⽹络操作,⽤户需要按照 espconn 接⼝的使⽤规则进⾏软件开发.
1.无系统,顺序执行好理解占用资源少,但是不能有while(1);
2.不能有超过10ms的阻塞(延时)发生,否则将会重启。
RTOS SDK1.用户可以使⽤FreeRTOS 的标准接⼝实现资源管理、循环操作、任务内延时、任务间信息传递和同步等⾯向任务流程的设计⽅式;
2.⽹络操作接⼝是标准 lwIP API,同时提供了 BSD Socket API 接⼝的封装实现,⽤户可以直接按照 Socket API 的使⽤⽅式来开发软件应⽤,也可以直接编译运⾏其他平台的标准 Socket 应⽤;
3.引⼊了 cJSON 库,使⽤该库函数可以更加⽅便的实现对 JSON 数据包的解析;
4.兼容 non-OS SDK 中的 Wi-Fi 接⼝、SmartConfig 接⼝、Sniffer 相关接⼝、系统接⼝、定时器接⼝、FOTA 接⼝和外围驱动接⼝,不⽀持 AT 实现。
1.有系统,通过任务的调度完成系统的运行,可以有延时。
2.但是资源占用较多。
  • 例子可以从乐鑫官方的下载地址下载.在下图所在的网页上面有选项选择ESP8266EX之后可以从下图所示的界面选择你所需要的SDK。
    乐鑫SDK下载
  • 点击右边的下载按钮会跳转到GitHub(需要你懂一点点的git的知识才能下载)。如果实在没办法的话(求求你学一点git吧),我把我写文章的时候的最新的上传到网盘,大家可以去下载 链接: https://pan.baidu.com/s/1c39VpXQ 密码: dup8 。
  • 下载下来解压到你想放置的目录,不要有中文和(空格?),这样工程就完成了初步的布置。接下来就是重头戏了。

导入工程

  • 第一步:应该能想到吧,那就是打开Eclipe_IDE(不会打开就算了你不适合用电脑)。
  • 第二步:打开eclipse之后会出现欢迎界面:”Welcome to the Eclipse IDE for C/C++ Developers”。
  • 第三步:点击 工具栏->File->Import (如图)进入导入工程窗口。
    导入工程1
  • 第四步:在select窗口选择C/C++->Existing Code as Makefile Project->点击Next进行下一步
    导入工程2
  • 第五步:Import Existing Code 窗口选择浏览你的工程路径(就是解压出来的文件的路径)->下方选择 Cygwin GCC 工具->再点击Finish按钮完成导入。如果在这一步发现没有Cygwin GCC选项回头去检查是否用Eclipse_IDE.exe选择了正确的 Cygwin 路径。
    导入工程3
  • 第六步:这时候你会发现,什么都没出现!怎么办?,那就是把欢迎界面叉掉!这样在右边Project栏就能发现一个折叠的工程,点击可以展开,整个界面大致如下图。我的因为是用git直接克隆下来的,所以在工程名旁边会提示橙色的字。如果你是从百度云下载的那就没有,这个无需理会,都一样(牛逼吧,git)。这时候问题输出窗口应该是什么都没有的,如果提示什么找不到g++、make等等,返回去检查是否选择的工具是Cygwin GCC!!!。
    工程整体结构图

后记

我们都是用别人的工程(Demo)上开发的,所以这一步属于比较基础的,我们导入进来之后应该是编译通不过的!为什么,因为我们的SDK路径和写Demo的人不一样。这个涉及到makefile的编写了,不过别人已经把整个makefile编写的比较”智能”了,我们只是想要编译成功的话其实是不需要懂makefile的。我们改一改SDK的路径就行了。这个下一节再讲。

附录

乐鑫官方的快速上手指导文档在上一篇<ESP8266开发环境搭建>->后记 里有网盘链接在这里就不放了。里面有SDK文件目录的讲解7/31页,看一下便于后面理解。 我整理了一下:

  1. RTOS SDK工程目录讲解
  • bin:编译⽣成的 BIN 文件,可直接下载到 Flash 中。
  • documents:SDK 相关的⽂档(RTOS api)或链接。
  • driver_lib:乐鑫官方提供的驱动示例代码。(IIC SPI GPIO等)
  • examples:可供用户二次开发的示例代码。(我们把不要的删掉)
    • openssl_demo:乐鑫官方提供的 OpenSSL 接口功能示例代码。
    • project_template:乐鑫官方提供的工程模板示例代码。(我们用这个,其他的以后再说)
    • smart_config:乐鑫官⽅提供的 SmartConfig 功能示例代码。
    • spiffs_test:乐鑫官方提供的 SPIFFS 文件系统功能示例代码。
    • websocket_demo:乐鑫官方提供的 WebSocket 功能示例代码。
  • include:SDK 自带头文件,包含了用户可使⽤的相关 API 函数及其他宏定义,用户无需修改。
  • ld:链接时所需的脚本文件,如⽆特殊需求,用户无需修改。(根据这个可以生成多钟bin文件)
  • lib:SDK 提供的库文件。(只能用api不能改不能看)
  • third_party:乐鑫开放源代码的第三方库,当前包含FreeRTOS、JSON、LWIP,mbedTLS、noPoll、OpenSSL、SPIFFS 和 SSL。
  • tools:编译 BIN 文件所需的工程具,用户无需修改。
  1. Non-OS SDK工程目录讲解
  • bin:编译⽣成的 BIN 文件,可直接下载到 Flash 中。
  • documents:SDK 相关的⽂档或链接。
  • driver_lib:外设驱动的库文件,如:UART、I2C 和 GPIO 等。
  • examples:可供用户次开发的示例代码,如 IoT Demo 等。
  • include:SDK ⾃带头文件,包含了用户可使用的相关 API 函数及其他宏定义,用户无需修改。
  • ld:链接时所需的脚本文件,若无特殊需求,用户⽆需修改。
  • lib:SDK 提供的库文件。
  • tools:编译 BIN 文件所需的工具,用户无需修改。

ESP8266工程的导入
http://example.com/2018/01/22/ESP8266工程的导入/
作者
Ekko bao
发布于
2018年1月22日
许可协议