ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!

文章目录

    • 1.前言
    • 2. SDK概述
      • 2.1 SDK使用流程
      • 2.2 ESP8266 HDK —— 硬件开发工具
      • 2.3 ESP8266 SDK —— 软件开发工具包
        • 2.3.1 Non-OS SDK
        • 2.3.2 RTOS SDK
      • 2.4 ESP8266 FW
      • 2.5 ESP8266 工具集
    • 3. Non-OS SDK
      • 3.1 下载 SDK
      • 3.2 Non-OS SDK 目录结构
    • 4. 软件环境搭建 —— 安信可一体化开发环境
      • 4.1 简介
      • 4.2 安装包下载
      • 4.3 安装环境 IDE
    • 5. SDK_Template模板工程
      • 5.1 创建 SDK_Template
      • 5.2 导入 SDK_Template
      • 5.3 编译 SDK_Template
        • 5.3.1 初次编译 SDK_Template —— 没办法,就是编译失败了
        • 5.3.2 二次编译 SDK_Template
          • 5.3.2.1 步骤1 先解决Clean Project的问题
          • 5.3.2.2 步骤2 在解决 Build Project错误
      • 5.4 构建SDK_Template,删除多余文件
        • 5.4.1 处理driver文件夹
        • 5.4.2 处理 include文件夹
        • 5.4.3 处理user文件夹
        • 5.4.4 最终SDK_Template
      • 6.向世界 say Hello World!
        • 6.1 01 Hello World
      • 6.2 烧录Bin文件
    • 7.总结

授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力。希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石。。。

共同学习成长QQ群 622368884,不喜勿加,里面有一大群志同道合的探路人

快速导航
单片机菜鸟的博客快速索引(快速找到你要的)

如果觉得有用,麻烦点赞收藏,您的支持是博主创作的动力。

1.前言

ESP8266EX芯片由espressif乐鑫公司开发,提供了一套高度集成的Wi-Fi SOC解决方案,其低功耗、紧凑设计和高稳定性可以满足用户的需求。

ai-thinker 安信可公司基于 ESP8266EX芯片去设计了一系列ESP8266 模组(基本上我们现在说的ESP8266多是指 ESP8266模组)。这些模组包括:

ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
这下子,初学者应该可以了解芯片-模组-开发板的关系了。
  • 乐鑫开发芯片
  • 安信可开发模组
  • 其他厂家开发开发板

为了学习ESP8266编程,我们首选的开发板就是 NodeMcu Esp8266开发板。

而软件开发方式则分为几种:

  • AT指令
    需要烧录AT固件,借助另外一款MCU进行控制,有点浪费ESP8266的天赋,后面博主专门写一个帖子专门介绍一下

  • Lua开发
    据我了解不是很多人会去考虑的开发方式,有点杀马特的感觉,除非你之前已经懂Lua语言,不然不建议。

  • Arduino 开发
    非常简单愉快的一种开发方式,非常适合具有Arduino基础的同学,博主也推出了一个专栏专门讲解 ESP8266 Arduino教程,极度推荐。

  • SDK开发
    这也是官方极度推荐的开发方式,也是博主本系列重点关注的内容。

  • MicroPython开发
    适合有Python开发基础的同学,不过更建议在ESP32上使用此种开发方式。

总体来说,我更推荐用Arduino开发或者SDK开发。接下来,就开始初步认识一下SDK开发流程。

2. SDK概述

2.1 SDK使用流程

ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
请读者自行下载以上所有工具。

3. Non-OS SDK

我们本系列主要是讲 Non-OS SDK的开发,那么首先第一步肯定要下载 SDK 文件。

3.1 下载 SDK

SDK 下载地址:https://github.com/espressif/ESP8266_NONOS_SDK/releases

记住,该SDK是不断迭代开发,到博主写本篇博文为止最新版本:

ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
下载 Source Code,这里就可以下载下来 SDK 开发包。

3.2 Non-OS SDK 目录结构

解压上面的SDK Zip包,可以得到以下结构:

ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
  • documents:SDK 相关的文档或链接。

  • driver_lib:外设驱动的库文件,如:UART、I2C 和 GPIO 等。后面我们会把这里重命名为 app目录开发我们的用户程序。

    ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
  • includeSDK 自带头文件,包含了了用户可使用的相关 API 函数及其他宏定义(包括各种网络操作、系统操作等),用户无需修改。需要用到什么功能我们就引入对应的头文件。

    ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
  • lib:SDK 提供的库文件(这就是乐鑫官方牛逼的地方,封装好了各种方法调用)。

    ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
  • tools:编译 BIN 文件所需的?工具,用户无需修改。这里通过makefile来编译我们的代码生成固件。

    ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!

    4.3 安装环境 IDE

    • 点击上面的 AiThinkerIDE_V1.0.exe 安装,注意安装路径中不要有中文或者空格
    • 博主安装到D盘根目录,等待安装完成
    • 安装完成后,请不要打开 IDE,先找到安装路径,并且以管理员方式运行ConfigTool.exe配置程序,此配置程序只需要运行一次即可,之后就不需要在运行
      ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
      Eclipse Path路径为 eclipse.exe 所在的路径;
      Cygwin Path路径为 编译器路径;
      IDF Path路径暂时没懂怎么用;

    至此,开发环境配置完毕。接下来:

    • 找到刚才的安装路径,启动 IDE,这里建议读者建立桌面快捷方式:

      ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
      这里自带的SDK目前是2.x版本,可以支持 1MB以下的 ESP8266(比如01系列);
    • 默认情况下,初次安装完IDE之后,IDE会把空格显示出来,所以我们需要配置点环境,按照下面两图操作:

    ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
    点击Apply即可。
    • 为了更好地讲解 Hello World,我们先将IDE自带的SDK和官方案例全部delete掉
      ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
      感觉整个世界都很清静!!!!!!!

    接下来开始编译第一个例子。

    5. SDK_Template模板工程

    首先,我们这里使用最新版本的官方SDK 3.0版本,这里默认读者已经把SDK文件下载下来。

    SDK文件博主已经上传到个人QQ交流群,需要的请自行去下载。

    基于 Non-OS SDK的开发方式,意味着我们需要基于SDK文件去开发我们的项目,所以建立一个通用的 SDK模板代码是比较科学的,我们后面也可以基于这个模板工程去自定义个人项目。

    5.1 创建 SDK_Template

    • 解压 ESP8266_NONOS_SDK-3.0 zip包
    • 重命名文件夹名为 SDK_Template(后面所有的代码都基于这个最基本的模板代码)。
      ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
    • 步骤2
      ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
    • 导入成功
      ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
      看看Clean结果,可以看到Make Clean出问题了。
      ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
      继续看看编译结果
      ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!

      别怕,慢慢解决它,哪里有问题就搞哪里。

      在SDK编程中,读者需要时刻牢记这是MakeFile编译。

      在SDK编程中,读者需要时刻牢记这是MakeFile编译。

      在SDK编程中,读者需要时刻牢记这是MakeFile编译。

      重点的内容,博主强调三遍,请读者必须牢记于心。

      5.3.2 二次编译 SDK_Template

      5.3.2.1 步骤1 先解决Clean Project的问题

      ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
      再次,Clean一下工程看看:
      ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
      这里是说,我们没有这个user目录,所以执行不了 user clean。

      解决方法:
      找到 官方事例 IOT_Demo,拷贝所有的文件,粘贴覆盖到app目录

      ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!

      再次,clean工程

      ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
      打开 SDK_Template/app/user/user_main.c 文件看看这个错误是什么来的/p>

      这里意思就是 SPI_FLASH_SIZE_MAP 很可能被配置成了 0 或者 1。

      SPI_FLASH_SIZE_MAP 是个什么鬼/p>

      enum flash_size_map {    FLASH_SIZE_4M_MAP_256_256 = 0,  /**    FLASH_SIZE_2M = 1,   /**    FLASH_SIZE_8M_MAP_512_512 = 2,      /**    FLASH_SIZE_16M_MAP_512_512 = 3,     /**    FLASH_SIZE_32M_MAP_512_512 = 4,     /**    FLASH_SIZE_16M_MAP_1024_1024 = 5,   /**    FLASH_SIZE_32M_MAP_1024_1024 = 6,    /**    FLASH_SIZE_32M_MAP_2048_2048 = 7,    /**    FLASH_SIZE_64M_MAP_1024_1024 = 8,     /**    FLASH_SIZE_128M_MAP_1024_1024 = 9     来源:单片机菜鸟哥
                                                              

      声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

  • 上一篇 2020年1月14日
    下一篇 2020年1月14日

    相关推荐