SDK物联 开发平台入门学习笔记

文章目录

  • 前言
  • 一、概述
    • 1.HDK(模组及开发板等硬件设备)
    • 2.ESP8266 SDK
    • 3.ESP8266 FW
    • 4.ESP8266 工具集
        • 编译器
        • 固件下载工具
        • 串口调试工具
  • 二、硬件准备
  • 三、软件准备
    • 1.Non-OS SDK
        • Non-OS SDK内容
          • bin:编译生成的 BIN 文件,可直接下载到 Flash 中
    • 2.软件环境搭建 —— 安信可一体化开发环境
        • 3.编译nonos-Template
  • 四、Flash布局
    • 布局说明
    • 存储大小位置修改
    • 下载地址
    • 烧录工具
  • 五:SDK程序架构
    • 1.普通单片机的程序运行是基于“主循环”的方式
    • 2.ESP8266的SDK编程是基于“内核回调”的方式
    • 3.乐鑫官方SDK API使用说明
        • 1.简介说明
        • 2. 代码结构
  • 六. 调用API,添加源文件
    • 1. 调用到的2个接口及头文件
    • 2. 串口打印“Hello world”和版本信息
    • 3. 设置串口信息
  • 七.看门狗
    • 1. 看门狗函数
    • 2.函数所调用的头文件
    • 3. 程序模拟用户长时间占用CPU,看门狗重启
    • 4.调用喂狗程序
  • 八.ESP8266的延迟函数delay
    • 1.delay函数
    • 2.调用的头文件
    • 3.编写延迟秒函数
    • 4 .串口打印函数
  • 九.设置8266的GPIO接口为输出模式
    • 1.实现功能
    • 1.设置IO口功能
        • 1.需要调用的头文件及C文件
        • 2.管脚功能选择
        • 3.ESP-12F和ESP8266芯片管脚位置和名称对应图
    • 2.设置IO口为输出模式
        • 1.实例
    • 3.设置管脚为输入模式(读引脚状态)
        • 1:思路
        • 2:函数库各函数官方解释
        • 3.实例
  • 十.入门完结

前言

一、概述

SDK使用框图:

1.Non-OS SDK

2.软件环境搭建 —— 安信可一体化开发环境

3.编译nonos-Template

命名下载下来的SDK文件,这个APP就是我们编写程序的地方

然后打开third_party文件,将Makefile命名为Makefile.bak
然后重新导入编译器中,这样就配置完毕
当我们导入成功工程之后,首次编译模板工程看看

正常的编译步骤:

  1. Clean Project
  2. 烧录工具

    1. 进入 Windows系统。
    2. 五:SDK程序架构

      1.普通单片机的程序运行是基于“主循环”的方式

      main.c文件中:
      int main (void) //程序入口
      {
      初始化.: // 10口、定时器、设置中断
      while(1)
      {
      … //主循环,完成程序功能
      }
      return 0;
      }
      void xxxIRQHandler (void)//中断函数
      {
      …//执行中断处理

      }

      2.ESP8266的SDK编程是基于“内核回调”的方式


      user main.c文中:

      3.乐鑫官方SDK API使用说明

      参考资料《ESP8266 Non-OS SDK API》

      1.简介说明

      1. Non-OS SDK简介Non-OS SDK为用户提供了一套应用程序编程接口(AP),能够实现ESP8266的核心功能改,例如数据接收/发送、TCPIP功能、硬件接口功能,以及基本的系统管理功能等。用户不必关心底层 络,如Wi-Fi,TCP/IP等的具体实现,只需要专注于物联 上层应用的开发,利用相应接口实现各种功能即可。
      2. ESP8266物联 平台的所有 络功能均在库中实现,对用户不透明。用户应用的初始化功能可以在user-main.c中实现。
      3. void user-init(void)是上层程序的入口函数,给用户提供一个初始化接口,用户可在该函数内增加硬件初始化、 络参数设置、定时器初始化等功能。
        ? 对于ESP8266-NONOS-SDK-v3.0.0及之后版本,请在user-main.c增加函数 void ICACHE-FLASHATTR user-pre-init(void) ,并且在user-pre-init中注册自己的partition table.
        ? 对于ESP8266NONOS-SDK-v1.5.2至ESP8266NONOS-SDK-v2.2.1之间的版本,请在user-main.c增加函数void user-rf-pre-init(void)和uint32user_rf-cal_sector_set(void),可参考10TDemo的user-main.c。用户可在user_rf_pre_init中配置RF初始化, RF设置接口为system_phy_set_rfoption,或者在Deep-sleep前调用system_deep-sleep-set_option,如果设置为RF不打开,则ESP8266 Station及SoftAP均无法使用,请勿调用Wi-F相关接口及 络功能。RF关闭时, Wi-Fi射频功能和 络堆栈管理API均无法使用。
        对于ESP8266NONOS-SDK-v2.1.0及之后版本,用户如果并未使用DIO-To-QIO flash,可以在user-main.c中增加空函数void user-spi-flash-dio-to-qio-pre-init(void)来优化iRAM空间。SDK中提供了对JSON包的处理API,用户也可以采用自定义数据包格式, 自行对数据进行处理。

      2. 代码结构

      Non-OS SDK中的代码结构具有以下特征:,
      Non-OS SDK不像基于RTOS的应用程序支持任务调度。Non-OS SDK使用四种类型的函数:

      • 应用函数
      • 回调函数
      • 用户任务
      • 中断服务程序(Interrupt Service Routines, ISR)
      1. 应用函数
        类似于嵌入式C编程中的常用C函数。这些函数必须由另一个函数调用。应用函数在定义时建议添加ICACHE-FLASH-ATTR宏,相应程序将存放在flash中,被调用时才加载到cache运行。而如果添加了IRAM_ATTR宏的函数,则会在上电启动时就加载到iRAM中

      2. 回调函数
        是指不直接从用户程序调用的函数,而是当某系统事件发生时,相应的回调函数由non-OS SDK内核调用执行。这使得开发者能够在不使用RTOS或者轮询,事件的情况下响应实时事件。
        要编写回调函数,用户首先需要使用相应的register_cb API注册回调函数。回调函数的示例包括定时器回调函数和 络事件回调函数。

      3. 中断服务程序(ISR)
        是一种特殊类型的回调函数。发生硬件中断时会调用这些函数。当使能中断时,必须注册相应的中断处理函数。请注意, ISR必须添加IRAM_ATTR。

      六. 调用API,添加源文件

      参考资料《ESP8266 Non-OS SDK API》

      1. 调用到的2个接口及头文件

      七.看门狗

      • 参考资料《ESP8266 Non-OS SDK API》
      • 如前所述, non-OS SDK不支持抢占任务或进程切换。因此开发者需要自行保证程序的正确执行,用户代码不能长期占用CPU,否则会导致看门狗复位, ESP8266重启。
      • 如果某些特殊情况下,用户线程必须执行较长时间(比如大于500 ms) ,建议经常调用system-soft-wdt_feed() API来喂软件看门狗,而不建议禁用软件看门狗。

      1. 看门狗函数

      3. 程序模拟用户长时间占用CPU,看门狗重启

      4.调用喂狗程序

      2.调用的头文件

      声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年8月2日
下一篇 2021年8月2日

相关推荐