nodemcu固件编译

Posted 何亚红

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodemcu固件编译相关的知识,希望对你有一定的参考价值。

nodemcu固件编译

by HYH | 2017 年 10 月 10 日 下午 8:27

一.编译环境搭建

1.下载

百度云盘:https://pan.baidu.com/s/1dEOw8bZ 下载密码:v81b

下载vbox及ova虚拟机包。

里面也有安装文档。

技术分享图片

2.安装及必要软件安装

安装vbox时一路next即可,安装完成后双击.ova文件,点击导入即可。导入后虚拟机所有文件在 用户目录\VirtualBox VMs 下 技术分享图片

设置共享文件夹(主要是用于文件传输)

设置->共享文件夹(新建或更改共享文件夹为一个存在的目录)

技术分享图片

接下来运行虚拟机,注意用户密码是espressif

运行sudo -s后输入此密码。

技术分享图片

安装git,python,python-serial.

apt-get install git python python-serial

 

下载头文件

wget https://github.com/esp8266/esp8266-wiki/raw/master/include.tgz

技术分享图片

解压头文件

tar –directory=/opt/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.2/ -xvf include.tgz

技术分享图片

技术分享图片

下载sdk头文件

git clone https://github.com/espressif/ESP8266_RTOS_SDK.git extra_include/xtensa

技术分享图片

复制sdk头文件

cd extra_include/xtensa/extra_include/xtensa

cp -r * /opt/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.2/include/xtensa/

技术分享图片

二.nodemcu 0.9x固件下载及编译

1.下载

git clone -b old-master https://github.com/nodemcu/nodemcu-firmware.git

技术分享图片

下载完成后,当前目录下的nodemcu-firmware文件夹即为源码文件夹。

技术分享图片

2.编译

下面几个文件是可由用户配置

app/include/user_config.h:nodemcu配置

app/include/user_version.h:版本信息配置
app/include/user_modules.h:模块配置

以上配置均为注释define或取消注释来配置

若采用默认配置,直接编译即可(如果编译失败,请尝试注释掉user_module.h中的部分模块)

make

技术分享图片

编译成功后,会重新生成

0x00000.bin

0x10000.bin

技术分享图片

下面直接烧录到nodemcu上即可。

技术分享图片

 nodemcu-firmware

备用下载:https://github.com/HEYAHONG/nodemcu-firmware/tree/old-master/bin

技术分享图片

如果会把usb设备中的串口设备接入虚拟机,或使用实机。在直接接入一个USB串口转设备且设备且为nodemcu,可直接在源码目录使用make flash烧写。

技术分享图片

技术分享图片

三.nodemcu最新版编译

1.说明

最新版的配置方式和0.9x版一样。

由于编译环境限制,需要修改源码中esp-gdbstub组件,而且需要调整cc.h。

2.下载

如果下了nodemcu的源码,需要把原来的源码删除或者移动到别的地方。

git clone https://github.com/nodemcu/nodemcu-firmware.git

技术分享图片

2.下载libm.a:

wget https://github.com/nodemcu/nodemcu-firmware/raw/old-master/lib/libm.a

先make一下,下载sdk。

make

技术分享图片

移动libm.a到sdk目录。

技术分享图片

3.修改esp-gdbstub

技术分享图片

nano app/esp-gdbstub/gdbstub.c

在头部添加一下行:

#ifndef XCHAL_DEBUGLEVEL
#define XCHAL_DEBUGLEVEL 2
#endif

技术分享图片

4.调整cc.h

此时如果直接编译,会出现以下错误

技术分享图片

重复定义,实际两个定义的最终值都是14,所以只需要注释掉其中一个重复定义。最好注释掉源码中的那一个。

nano app/include/arch/cc.h

注释掉:

#define EFAULT 14

或者改为(1.5.4版所用方式)

#ifndef  EFAULT

#define EFAULT 14

#endif

技术分享图片

注释掉之后,就能正常编译了。

 

5.编译

make

技术分享图片

技术分享图片

6.烧录(直接接入nodemcu开发板,本人板子不是4m的)

make flash512k

技术分享图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 https://hyhsystem.cn/wordpress/





以上是关于nodemcu固件编译的主要内容,如果未能解决你的问题,请参考以下文章

NodeMCU入门:自定义构建刷入固件,上传代码

构建 NodeMCU 固件

NodeMCU入坑指南-烧写固件并连接WIFI

ESP8266刷AT固件与nodemcu固件

NodeMCU学习笔记--- 硬件介绍固件制作烧录

NodeMCU学习笔记--- 硬件介绍固件制作烧录