6.7 KiB
6.7 KiB
title | categories | abbrlink | date | tags | |
---|---|---|---|---|---|
ESP8266工程的导入 |
|
6b9c1836 | 2018-01-22 20:32:57 |
前言:
本篇文章主要讲一下,ESP8266的工程怎么导入到Eclipse里。
准备一个SDK工程
- 既然是导入那么你首先得有一个现有的工程(不存在建工程的,这辈子都不可能徒手建工程的),工程从网上找一个就OK了。
- ESP8266的SDK有两种,一种是无系统(NON-OS SDK),另一种是运行了FreeRTOS的(RTOS SDK)。
SDK类型 | 描述 | 优缺点 |
---|---|---|
NOn-OS SDK | 1.主要使⽤定时器和回调函数的⽅式实现各个功能事件的嵌套,达到特定条件下触发特定功能函数的⽬的。 2.使⽤ espconn 接⼝实现⽹络操作,⽤户需要按照 espconn 接⼝的使⽤规则进⾏软件开发. | 1.无系统,顺序执行好理解占用资源少,但是不能有while(1); 2.不能有超过10ms的阻塞(延时)发生,否则将会重启。 |
RTOS SDK | 1.用户可以使⽤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。
- 点击右边的下载按钮会跳转到GitHub(需要你懂一点点的git的知识才能下载)。如果实在没办法的话(求求你学一点git吧),我把我写文章的时候的最新的上传到网盘,大家可以去下载 链接: https://pan.baidu.com/s/1c39VpXQ 密码: dup8 。
- 下载下来解压到你想放置的目录,不要有中文和(空格?),这样工程就完成了初步的布置。接下来就是重头戏了。
导入工程
- 第一步:应该能想到吧,那就是打开Eclipe_IDE(不会打开就算了你不适合用电脑)。
- 第二步:打开eclipse之后会出现欢迎界面:"Welcome to the Eclipse IDE for C/C++ Developers"。
- 第三步:点击 工具栏->File->Import (如图)进入导入工程窗口。
- 第四步:在select窗口选择C/C++->Existing Code as Makefile Project->点击Next进行下一步
- 第五步:Import Existing Code 窗口选择浏览你的工程路径(就是解压出来的文件的路径)->下方选择 Cygwin GCC 工具->再点击Finish按钮完成导入。如果在这一步发现没有Cygwin GCC选项回头去检查是否用Eclipse_IDE.exe选择了正确的 Cygwin 路径。
- 第六步:这时候你会发现,什么都没出现!怎么办?,那就是把欢迎界面叉掉!这样在右边Project栏就能发现一个折叠的工程,点击可以展开,整个界面大致如下图。我的因为是用git直接克隆下来的,所以在工程名旁边会提示橙色的字。如果你是从百度云下载的那就没有,这个无需理会,都一样(牛逼吧,git)。这时候问题输出窗口应该是什么都没有的,如果提示什么找不到g++、make等等,返回去检查是否选择的工具是Cygwin GCC!!!。
后记
我们都是用别人的工程(Demo)上开发的,所以这一步属于比较基础的,我们导入进来之后应该是编译通不过的!为什么,因为我们的SDK路径和写Demo的人不一样。这个涉及到makefile的编写了,不过别人已经把整个makefile编写的比较"智能"了,我们只是想要编译成功的话其实是不需要懂makefile的。我们改一改SDK的路径就行了。这个下一节再讲。
附录
乐鑫官方的快速上手指导文档在上一篇<ESP8266开发环境搭建>->后记 里有网盘链接在这里就不放了。里面有SDK文件目录的讲解7/31页,看一下便于后面理解。 我整理了一下:
- 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 文件所需的工程具,用户无需修改。
- Non-OS SDK工程目录讲解
- bin:编译⽣成的 BIN 文件,可直接下载到 Flash 中。
- documents:SDK 相关的⽂档或链接。
- driver_lib:外设驱动的库文件,如:UART、I2C 和 GPIO 等。
- examples:可供用户次开发的示例代码,如 IoT Demo 等。
- include:SDK ⾃带头文件,包含了用户可使用的相关 API 函数及其他宏定义,用户无需修改。
- ld:链接时所需的脚本文件,若无特殊需求,用户⽆需修改。
- lib:SDK 提供的库文件。
- tools:编译 BIN 文件所需的工具,用户无需修改。