单片机学习小组
直播中

二霸

12年用户 633经验值
私信 关注

怎样去搭建一种nodemcu固件编译环境呢

怎样去搭建一种nodemcu固件编译环境呢?
nodemcu固件编译发生错误又怎么办呢?

回帖(1)

何珊

2022-2-15 11:11:57
nodemcu固件编译

一.编译环境搭建
1.下载
下载vbox及ova虚拟机包。
里面也有安装文档。

2.安装及必要软件安装
安装vbox时一路next即可,安装完成后双击.ova文件,点击导入即可。导入后虚拟机所有文件在 用户目录VirtualBox VMs 下

设置共享文件夹(主要是用于文件传输)
设置->共享文件夹(新建或更改共享文件夹为一个存在的目录)

接下来运行虚拟机,注意用户密码是espressif
运行sudo -s后输入此密码。

安装git,python,python-serial.
apt-get install git python python-serial
下载头文件

解压头文件
tar –directory=/opt/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.2/ -xvf include.tgz

下载sdk头文件
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.下载

下载完成后,当前目录下的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上即可。

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

三.nodemcu最新版编译
1.说明
最新版的配置方式和0.9x版一样。
由于编译环境限制,需要修改源码中esp-gdbstub组件,而且需要调整cc.h。
2.下载
如果下了nodemcu的源码,需要把原来的源码删除或者移动到别的地方。

2.下载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
举报

更多回帖

发帖
×
20
完善资料,
赚取积分