基础知识

乐鑫官网乐鑫官网ESP8266资料

ESP8266模块安信可官网

本人使用的NodeMcu相关信息:

CPU、存储和Flash:

更多详细信息请看datasheet

  • CPU时钟最高可达16MHz
    • 外部晶振在24MHz~52MHz之间
  • 内置ROM和SRAM。芯片内无可编程存储器,用户程序必须由外部Flash存储
  • 理论上外部Flash最大支持16MB(128Mbit)
  • 支持TCP/IP完全遵循802.11 b/g/n WLAN MAC协议和Wi-Fi Direct标准

使用方式:

  • AT指令模式:当做从机,响应主机的AT指令来执行对应的命令
  • SDK编程模式:乐鑫官网提供的SDK(开源在github上:RTOS_SDKNONOS_SDK
    • bin:编译生成的BN文件,可直接下载到Fash中。
    • documents:SDK相关的文档或链接。
    • driver_lib:外设驱动的库文件,如:UART、I2C和GPIO等。
    • examples:可供用户二次开发的示例代码
    • include:SDK自带头文件,包含了用户可使用的相关API函数及其他宏定义,用户无需修改。
    • ld:链接时所需的脚本文件,若无特殊需求,用户无需修改。
    • lib:SDK提供的库文件。
    • toos:编译B|N文件所需的工具,用户无需修改

参考文档:

开发工具:

  • 安信可提供的开发工具
    • 安装
    • 使用
    • 烧录
      • 相关选项配置可以看ESP8266 SDK 入门指南下载固件 章节
      • 一般默认为:外部晶振频率26M,SPI速度40M,SPI模式DOUT,FLSH大小32Mbit,不勾选SpiAutoSet、DoNotChgBin
      • SpiAutoSet:不建议勾选 SpiAutoSet,推荐⽤户根据实际情况对 Flash 进⾏⼿动配置。⽤户如果了勾选 SpiAutoSet,下载⼯具将会按照默认的 Flash map 下载, 16 Mbit和 32 Mbit 的 Flash map 会被设置为 512 Kbyte + 512 Kbyte
      • DoNotChgBin
        • 勾选:Flash 的运⾏频率、⽅式和布局会以⽤户编译时的配置选项为准(采用Makefile中的配置项,不采用自己设置的SPI速度、模式等配置)
        • 不勾选:Flash 的运⾏频率、⽅式和布局会以下载⼯具最终的配置为准

下载模式:

  • GPI00=1、GPI02=1、GPI015=0 => 程序运行模式
  • GPI00=0、GPI02=1、GPI015=0 => 串口下载模式

Flash布局信息:

  • 详细情况可以看ESP8266 SDK 入门指南Flash布局 章节

  • Non-FOTA:

    Non-FOTA

    • ⽤户可以通过修改ESP8266_NONOS_SDK/ld/eagle.app.v6.ld⽂件来改变eagle.irom0text.bin的上限值,即修改⽂件中irom0_0_seg参数的len字段

      1
      2
      3
      4
      5
      6
      7
      MEMORY
      {
      dport0_0_seg : org = 0x3FF00000, len = 0x10
      dram0_0_seg : org = 0x3FFE8000, len = 0x14000
      iram1_0_seg : org = 0x40100000, len = 0x8000
      irom0_0_seg : org = 0x40210000, len = 0x5C000
      }
      • org的低5位为下载地址(0x10000=64kb),len为长度
    • 对于NodeMcu而言(4MB=32Mbit):

      • eagle.flash.bin:0x00000(64kb)
      • eagle.irom0text.bin:0x10000
      • blank.bin:0x3FB000(4kb)
      • esp_init_data_default.bin:0x3FC000(默认RF参数)
      • blank.bin:0x3FE000
  • FOTA:

    FOTA

    • RF_CAL 参数:⽤于系统⾃动保存校准后的 RF 参数
    • 默认 RF 参数:将 esp_int_data_default.bin 下载⾄该区,⽤于保存默认的参数信息
    • 系统参数:⽤于保存系统参数信息

基本功能