项目架构

ESP8266项目开发并非使用IDE自动管理工程文件,而是使用了诸多第三方程序如Python,以及使用了Makefile管理依赖与控制编译,所以项目的创建与日常维护较为复杂,本篇将详述创建一般项目的详细步骤。下图描述了一个ESP8266工程的大致模样:

要开始本篇的教程,请确保已经完成了上一课《开发环境搭建》中的内容,此处的编译需要上一篇所提到的IDE与IDE文件夹下的Cygwin的支持,否则无法工作。创建这样一个项目的大致步骤如下:

步骤1,SDK下载

官网下载最新SDK,以下地址:

http://www.espressif.com/zh-hans/support/download/sdks-demos

暂时请下载1.5.3的文档,下载完成后解压(保留原压缩包,后续会使用),可以看到如下的目录结构:

此处修改文件夹名称ESP8266_NONOS_SDK 为有意义的名称,此名称将默认作为其后的项目工程名出现。

步骤2,创建入口主文件

在app文件夹下创建user、include文件夹,并分别在其下创建user_main.c,user_config.h。

user_main.c文件内容如下:

#include "osapi.h"

//射频初始化函数,留空
void user_rf_pre_init(void) { } //主文件入口处
void user_init(void)
{
}

user_config.h头文件留空即可,但为了保持良好的编程习惯,我们倾向于在此构建保护头,内容一般如下即可:

#ifndef _GUARD_USER_CONFIG_H_
#define _GUARD_USER_CONFIG_H_ #endif

步骤3,复制工程管理Makefile文件

将example\peripheral_test目录中的Makefile文件复制到app目录下;将example\peripheral_test\user目录中的Makefile复制到app\user目录下。

删除documents,driver_lib目录,删除Examples目录,仅留下项目必须文件结构。

这里需要复制的Makefile亦可手写完成,但太过复杂,不推荐。最终形成如下所示的目录结构:

步骤4,项目导入与编译控制

导入Eclipse IDE中,导入项目,选择Existing Code as Makefile Project,选择目标文件夹。项目导入完毕后,首先请右击项目名称,选择Clean Project清理一遍,然后选择Build Project。默认编译成功后控制台输出如下:

完成!

常见操作释疑

  1. 向项目新增文件

    普通.c源文件,可直接复制到user目录,makefile会自动控制进行编译。

  2. 向项目新增文件夹

参考examples\IoT Demo工程,以新增driver文件夹为例,在app下新增driver后,修改app\Makefile,为SUBDIRS新增 driver值,为COMPONENTS_eagle.app.v6新增 driver/libdriver.a值。

或者拷贝iot文件夹的makefile吧。

  1. 链接第三方库

  2. 项目头文件包含目录修改

后续章节将会慢慢提及,但如果需要精通此工具的使用,建议先熟练Makefile的书写,可以参考网络文档:《跟我一起写Makefile》。

更多教程、资料、文档,或者购买ESPUSH专属开发板,加Q群:480288089

最新文章

  1. apache配置 php中没有php5apache2_4.dll
  2. [Leetcode][JAVA] Minimum Depth of Binary Tree && Balanced Binary Tree && Maximum Depth of Binary Tree
  3. odoo报表条码无法显示解决[转]
  4. Memory Barriers ,cache-coherency
  5. ASP.NET MVC实现多个按钮提交事件
  6. windows下的python扩展包下载地址
  7. mybatis中几种typeHandler的定义使用
  8. border属性妙用
  9. Easyui弹出窗体在iframe的父级页面显示
  10. 各种字符串Hash函数比较
  11. Best Component for Bitmap Image
  12. screen实现关闭ssh之后继续运行代码
  13. 团队作业10——事后分析(Beta版本)
  14. scala 读取文件遇到encode问题(Mac -> remote Linux)
  15. ConcurrentHashMap源码
  16. Vue sync修饰符的使用
  17. Spark job 部署模式
  18. Android调试桥-Android Debug Birdge详解
  19. [NOIp2015]运输计划 (二分 $+$ 树上差分)
  20. jquery序列化表单以及回调函数的使用

热门文章

  1. cocos2d-x NotificationCenter
  2. POJ 1703 Find them, catch them (并查集)
  3. Chapter 1 Securing Your Server and Network(11):使用透明数据库加密
  4. linux就是这个范儿之融于心而表于行(1)
  5. 区域医疗移动医疗影像解决方案2--基于FLEX的PACS
  6. debian下图形化管理工具的安装
  7. mysql事务问题
  8. C# 之 获取文件名及拓展名
  9. Xcode常用快捷键总结
  10. ajax数据保存及解析