66 lines
6.7 KiB
Markdown
66 lines
6.7 KiB
Markdown
|
---
|
|||
|
title: ESP8266工程的导入
|
|||
|
categories:
|
|||
|
- ESP8266
|
|||
|
abbrlink: 6b9c1836
|
|||
|
date: 2018-01-22 20:32:57
|
|||
|
tags:
|
|||
|
---
|
|||
|
## 前言:
|
|||
|
本篇文章主要讲一下,ESP8266的工程怎么导入到Eclipse里。
|
|||
|
## 准备一个SDK工程
|
|||
|
- 既然是导入那么你首先得有一个现有的工程(不存在建工程的,这辈子都不可能徒手建工程的),工程从网上找一个就OK了。
|
|||
|
- ESP8266的SDK有两种,一种是无系统(NON-OS SDK),另一种是运行了FreeRTOS的(RTOS SDK)。
|
|||
|
|
|||
|
<!---more---->
|
|||
|
|
|||
|
<table><tr><th width="15%">SDK类型</th><th width="55%">描述</th><th width="30%">优缺点</th></tr><tr><td>NOn-OS SDK</td><td>1.主要使⽤定时器和回调函数的⽅式实现各个功能事件的嵌套,达到特定条件下触发特定功能函数的⽬的。<br>2.使⽤ espconn 接⼝实现⽹络操作,⽤户需要按照 espconn 接⼝的使⽤规则进⾏软件开发.</td><td>1.无系统,顺序执行好理解占用资源少,但是不能有while(1);<br>2.不能有超过10ms的阻塞(延时)发生,否则将会重启。</td></tr><tr><td>RTOS SDK</td><td>1.用户可以使⽤FreeRTOS 的标准接⼝实现资源管理、循环操作、任务内延时、任务间信息传递和同步等⾯向任务流程的设计⽅式;<br>2.⽹络操作接⼝是标准 lwIP API,同时提供了 BSD Socket API 接⼝的封装实现,⽤户可以直接按照 Socket API 的使⽤⽅式来开发软件应⽤,也可以直接编译运⾏其他平台的标准 Socket 应⽤; <br>3.引⼊了 cJSON 库,使⽤该库函数可以更加⽅便的实现对 JSON 数据包的解析;<br>4.兼容 non-OS SDK 中的 Wi-Fi 接⼝、SmartConfig 接⼝、Sniffer 相关接⼝、系统接⼝、定时器接⼝、FOTA 接⼝和外围驱动接⼝,不⽀持 AT 实现。</td><td>1.有系统,通过任务的调度完成系统的运行,可以有延时。<br>2.但是资源占用较多。</td></tr></table>
|
|||
|
|
|||
|
- 例子可以从乐鑫官方的[下载地址](http://espressif.com/zh-hans/support/download/sdks-demos)下载.在下图所在的网页上面有选项选择ESP8266EX之后可以从下图所示的界面选择你所需要的SDK。
|
|||
|
![乐鑫SDK下载](https://s1.ax1x.com/2018/01/22/p4Iub8.md.png)
|
|||
|
- 点击右边的下载按钮会跳转到GitHub(需要你懂一点点的git的知识才能下载)。如果实在没办法的话(求求你学一点git吧),我把我写文章的时候的最新的上传到网盘,大家可以去下载 链接: [https://pan.baidu.com/s/1c39VpXQ](https://pan.baidu.com/s/1c39VpXQ) 密码: dup8 。
|
|||
|
- 下载下来解压到你想放置的目录,不要有中文和(空格?),这样工程就完成了初步的布置。接下来就是重头戏了。
|
|||
|
## 导入工程
|
|||
|
- 第一步:应该能想到吧,那就是打开Eclipe_IDE(不会打开就算了你不适合用电脑)。
|
|||
|
- 第二步:打开eclipse之后会出现欢迎界面:"Welcome to the Eclipse IDE for C/C++ Developers"。
|
|||
|
- 第三步:点击 工具栏->File->Import (如图)进入导入工程窗口。
|
|||
|
![导入工程1](https://s1.ax1x.com/2018/01/22/p5SChq.png)
|
|||
|
- 第四步:在select窗口选择C/C++->Existing Code as Makefile Project->点击Next进行下一步
|
|||
|
![导入工程2](https://s1.ax1x.com/2018/01/22/p5ptMT.png)
|
|||
|
- 第五步:Import Existing Code 窗口选择浏览你的工程路径(就是解压出来的文件的路径)->下方选择 Cygwin GCC 工具->再点击Finish按钮完成导入。如果在这一步发现没有Cygwin GCC选项回头去检查是否用Eclipse_IDE.exe选择了正确的 Cygwin 路径。
|
|||
|
![导入工程3](https://s1.ax1x.com/2018/01/23/p5AYtg.png)
|
|||
|
- 第六步:这时候你会发现,什么都没出现!怎么办?,那就是把欢迎界面叉掉!这样在右边Project栏就能发现一个折叠的工程,点击可以展开,整个界面大致如下图。我的因为是用git直接克隆下来的,所以在工程名旁边会提示橙色的字。如果你是从百度云下载的那就没有,这个无需理会,都一样(牛逼吧,git)。这时候问题输出窗口应该是什么都没有的,如果提示什么找不到g++、make等等,返回去检查是否选择的工具是Cygwin GCC!!!。
|
|||
|
[![工程整体结构图](https://s1.ax1x.com/2018/01/23/p5ERIS.png)](https://imgchr.com/i/p5ERIS)
|
|||
|
## 后记
|
|||
|
我们都是用别人的工程(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 文件所需的工程具,用户无需修改。
|
|||
|
2. Non-OS SDK工程目录讲解
|
|||
|
- bin:编译⽣成的 BIN 文件,可直接下载到 Flash 中。
|
|||
|
- documents:SDK 相关的⽂档或链接。
|
|||
|
- driver_lib:外设驱动的库文件,如:UART、I2C 和 GPIO 等。
|
|||
|
- examples:可供用户次开发的示例代码,如 IoT Demo 等。
|
|||
|
- include:SDK ⾃带头文件,包含了用户可使用的相关 API 函数及其他宏定义,用户无需修改。
|
|||
|
- ld:链接时所需的脚本文件,若无特殊需求,用户⽆需修改。
|
|||
|
- lib:SDK 提供的库文件。
|
|||
|
- tools:编译 BIN 文件所需的工具,用户无需修改。
|
|||
|
|
|||
|
|
|||
|
|