ESP8266_NONOS_SDK指南.上
首先要明确一点就是,乐鑫官方其实是不推荐用这个NoNos的模式开发的.这个开发就是向从传统的单片机开发模式一样.只不过是这个比哪个的抽象水平更高级而已.本质上也是无系统的开发,需要考虑的事情很多,但是自定义性是无与伦比的,也是比较考验开发能力的开发方式.同时也是我割舍不下的一种的开发方式,当然啦.对于太复杂的芯片还是得用RTOS更好一些,首先就是开发的效率问题,不需要太考虑底层实现.但是你越接近底层越离真相近.
我这里再补一个NONOS_SDK的详细说明,Non-OS SDK 为⽤用户提供了了⼀一套应⽤用程序编程接⼝口 (API),能够实现 ESP8266 的核⼼心功能 改,例例如数据接收/发送、TCP/IP 功能、硬件接⼝口功能,以及基本的系统管理理功能等。⽤用 户不不必关⼼心底层⽹网络,如 Wi-Fi、TCP/IP 等的具体实现,只需要专注于物联⽹网上层应⽤用的 开发,利利⽤用相应接⼝口实现各种功能即可。
Non-OS SDK 是不不基于操作系统的 SDK,提供 IOT_Demo 和 AT 的编译。Non-OS SDK 主 要使⽤用定时器器和回调函数的⽅方式实现各个功能事件的嵌套,达到特定条件下触发特定功能 函数的目的。Non-OS SDK 使⽤用 espconn 接⼝口实现⽹网络操作,⽤用户需要按照 espconn 接 ⼝口的使⽤用规则进⾏行行软件开发。
这篇文章是对于ESP8266的无系统开发模式的一个随笔,方便自己来查找,同时也为相关感兴趣的小伙伴提供我力所能及的一些帮助.
https://www.espressif.com/zh-hans/support/documents/technical-documents
https://github.com/espressif/ESP8266_NONOS_SDK
首先第一点,官网的资料是最好的,一定要看.以上两个链接是我文章中最重要的两个链接.一个是官方的文章地址,二是SDK的GitHub地址.
有很多的各种文档,一定要仔细阅读.
甚至做笔记都可以,学习嘛~不磕碜
令人遗憾的一点就是目前NsdK已经不再更新了,官方只修复最大的Bug.这样也好,你学会以后代码这辈子不用改~
ESP8266 NonOS的支持政策
从2019年12月开始,
我们不会为ESP8266 NonOS SDK添加任何新功能。
我们仅会修复ESP8266 NonOS SDK中的严重错误。
我们将仅维护ESP8266 NonOS SDK的master分支,该分支是基于v3.0的持续错误修复版本。这表示:
所有其他已发布的分支将不会更新。
所有将来的版本将仅从上述master分支发布。
建议您将ESP8266_RTOS_SDK而不是ESP8266 NonOS SDK用于您的项目。
最新的ESP8266_RTOS_SDK允许用户使用与所有Espressif芯片(包括ESP8266系列,ESP32系列和即将推出的新系列芯片)的SDK兼容的架构开发应用程序。切换到ESP8266_RTOS_SDK将有助于用户:
消除了维护多个应用程序(针对不同芯片)的必要性,从而大大降低了维护成本。
将来可以轻松切换到其他Espressif芯片,以增强灵活性,减少依赖性并缩短产品上市时间。
https://www.espressif.com/sites/default/files/documentation/2a-esp8266-sdk_getting_started_guide_cn.pdf
以上就是官方发文,嘤嘤嘤.不爱NoSDK.最后一个来链接是:
我看的是中文版本
https://www.espressif.com/sites/default/files/documentation/2a-esp8266-sdk_getting_started_guide_en.pdf
下
以上链接是SDK指南的英文版本,可以两个文档一起看,学习英语.俺就是这样学习了,效果好得很.
虽然说不更新了,但是还有有人再用.而且账号也有人回答问题
这个时间就很有趣,回答了个寂寞
还是支持不行
对了这个文档是一定要看得文档,我们写程序就是得不停得按照这个里面写
这个是从GitHub上面拉下来的SDK
· bin:编译⽣生成的 BIN ⽂文件,可直接下载到 Flash 中。
· documents:SDK 相关的⽂文档或链接。· driver_lib:外设驱动的库⽂文件,如:UART、I2C 和 GPIO 等。
· examples:可供⽤用户⼆二次开发的示例例代码,如 IoT Demo 等。
· include:SDK ⾃自带头⽂文件,包含了了⽤用户可使⽤用的相关 API 函数及其他宏定义,⽤用户 ⽆无需修改。
· ld:链接时所需的脚本⽂文件,若⽆无特殊需求,⽤用户⽆无需修改。
· lib:SDK 提供的库⽂文件。
· tools:编译 BIN ⽂文件所需的⼯工具,⽤用户⽆无需修改。
再放一张开发流程图
HDK是ESP8266 Hardware Development Kit (HDK) 包括芯⽚片 ESP8266EX、模组 ESPWROOM-02 和开发板 ESP-LAUNCHER 等
这个是我们要写程序将编译好的固件下载到设备内需要的软件以及硬件
注意单一个模组的时候一些引脚的问题
RX,TX不用说,传输数据时必要的接口
注意这个IO 0(数字)的作用,与GND搭配起来选择模块的下载方式
这个IO口,我具体的定义就打码了.大家看这个接口的一些应用就好了
这IO 5 这个脚.大家在使用的时候在去查一下资料
我用的模组不是这样的,资料里面也没有这个IO 5 的说明
注意到这个话
在写上内存布局
· 系统程序:⽤用于存放运⾏行行系统必要的固件。
· 用户数据:当有多余的 Flash 空间⽤用于⽤用户数据区时,空闲区域均可⽤用于存放⽤用户数 据。⽤用户可在其中任意空闲位置设置⽤用户参数区,建议⾄至少为⽤用户参数区预留留 12 KB 空间。
· RF_CAL 参数:⽤用于系统⾃自动保存校准后的 RF 参数。
· 默认 RF 参数:将 esp_int_data_default.bin 下载⾄至该区,⽤用于保存默认的参数信息。
· 系统参数:⽤用于保存系统参数信息。
· Boot 信息:位于 FOTA 固件的分区 1,存放 Boot ⽂文件。
在这些文件里面修改,flash的布局
irom0.text 的地址
⽤用户可以通过修改 ESP8266_NONOS_SDK/ld/eagle.app.v6.ld ⽂文件来改变 eagle.irom0text.bin 的上限值,即修改⽂文件中 irom0_0_seg 参数的 len 字段,
如图 红⾊色标示。
必须查阅 eagle.app.v6.ld ⽂文件, 确保将 eagle.irom0.text.bin 下载到正确的地址。
图中蓝色
标示即为 eagle.irom0.text.bin 的地址
Non-FOTA Flash 布局(单位:KB)
这个里面就是例子,我们的学习资料
1编译选项
(1)编译
可能的值:gcc
默认值:
如果未设置,则默认使用xt-xcc。
(2)开机
可能的值:无/旧/新
无:无需启动
旧:使用boot_v1.1
新增:使用boot_v1.2 +
默认值:无
(3)APP
可能的值:0/1/2
0:原始模式,生成eagle.app.v6.flash.bin和eagle.app.v6.irom0text.bin
1:生成user1
2:生成user2
默认值:0
(3)SPI_SPEED
可能的值:20 / 26.7 / 40/80
默认值:40
(4)SPI_MODE
可能的值:QIO / QOUT / DIO / DOUT
默认值:QIO
(4)SPI_SIZE_MAP
可能的值:0/2/3/4/5/6
默认值:0
例如:
使COMPILE = gcc BOOT = new
APP = 1
SPI_SPEED = 40
SPI_MODE = QIO
SPI_SIZE_MAP = 0
2您还可以使用gen_misc生成并生成所需的特定bin。
Linux:./ gen_misc.sh
Windows:gen_misc.bat
我把readme给翻译了.这篇文章就到这里.不然真的是太长了,很少有人看完的