物联网开发板ESP8266的调试与使用

    最近刚入手ESP8266,也就是Nodemcu。过去使用过51单片机,MSP430单片机和STM32,也玩过UC/OSII,由于最近需要用到物联网方面的硬件,所以买了一个NodeMCU。在我看来,这就是一个自带WiFi模块的单片机,它的使用方法也比较特殊,官方推荐使用Lua语言开发,也可以用Arduino的IDE开发。当使用Lua开发的时候,需要先刷固件,这可能对于一些同学理解起来的有点费劲,其实刷固件就像给我们的电脑装操作系统,当然是烧入Flash中去,因为掉电要保存。

在讨论nodemcu的lua固件之前,我想先回顾一下其它开发板的调试过程。
  • 对于stm32和TI DSP时,先用仿真器把代码送到内存,运行调试。调试完后再把编译的bin烧写到flash中。
  • arduino等单片机没有仿真器,貌似也没有断点debug等断点功能。直接用串口把程序烧到flash,程序从flash送到内存中运行。
  • nodemcu与arduino一样,都是一根串口线连到flash,串口可以和mcu通信,也可以烧写程序,同样不能断点debug。
对于esp-12的固件
  • 我们拿到的esp-12模块可以发送AT指令,因为包含AT指令的固件已经烧进mcu。
  • 我们能用lua语言编程程序上传运行,因为包含lua模块和执行器的固件已经烧进mcu
烧写进nodemcu的lua固件更像一个操作系统,它有对应的文件系统SPIFFS
  • ESPlorer把.lua文件上传至nodemcu的文件系统统SPIFFS,在物理上是把这部代码上传到flash,放在文件系统对应的地址中。

  • lua固件和文件系统的.lua代码载入内存运行,固件负责解释代码并执行。

  • 上传lua与烧写flash固件的区别是:烧写固件是将原固件擦除并更新,通常不会影响文件系统。而Esplore上传.lua只是更新文件系统。文件系统和固件占用flash的不同地址,互不影响。

  • 要烧写nodemcu的固件,windows下需要VM虚拟系统下的linux编译源码(乐鑫官方的编译方式),或者用安信可的SDK,当然你也可以在网上订制,点击NodeMCU custom builds,你需要烧写工具nodemcu flasher把bin文件写入flash

  • 切记,一旦你烧写nodemcu的固件,意味着你更新了操作系统。它可能增加或减少几个功能模块。而文件系统的.lua文件一般情况下会保留。这与重装电脑c盘,d盘的文件不受影响是一个道理。

关于SPIFFS

SPIFFS是nodemcu的文件系统,用于falsh中放置.lua文件,flash也放置固件。查看nodemcu官方文档SPIFFS的说明,点击这里,这里简单说一下:

  • SPIFFS 全称是SPI Flash File System,用于SPI读写flash的文件系统,其实也可用于NOR flash
  • SPIFFS 文件系统用于嵌入式平台的 SPI NOR flash设备,同样适用于MCU内部的falsh
  • nodmcu的lua固件包含了SPIFFS文件系统的镜像工具。第一次烧写flash,没有检测到flash中的文件系统,会在flash中新建一个文件系统。文件系统的起始地址=固件结束地址+64K~128K
  • 如果新固件大小<原固件大小+64K,原有的文件系统就会保留,否则会新建,原有lua文件丢失

接下来,我们进行实际操作,玩转lua操作系统


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nwsuaf_huasir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值