blog_post/_posts/ESP8266工程的导入.md
2024-04-03 08:20:53 +08:00

66 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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