linux nodemcu 编译,nodemcu固件编译

nodemcu固件编译

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

一.编译环境搭建

1.下载

下载vbox及ova虚拟机包。

里面也有安装文档。

%E6%8D%95%E8%8E%B7-11.png

2.安装及必要软件安装

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

%E6%8D%95%E8%8E%B7-12.png

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

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

%E6%8D%95%E8%8E%B7-13.png

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

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

%E6%8D%95%E8%8E%B7-14.png

安装git,python,python-serial.

apt-get install git python python-serial

下载头文件

%E6%8D%95%E8%8E%B7-16.png

解压头文件

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

%E6%8D%95%E8%8E%B7-17.png

%E6%8D%95%E8%8E%B7-18.png

下载sdk头文件

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

%E6%8D%95%E8%8E%B7-21.png

复制sdk头文件

cd extra_include/xtensa/extra_include/xtensa

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

%E6%8D%95%E8%8E%B7-22.png

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

1.下载

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

%E6%8D%95%E8%8E%B7-19.png

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

%E6%8D%95%E8%8E%B7-20.png

2.编译

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

app/include/user_config.h:nodemcu配置

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

app/include/user_modules.h:模块配置

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

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

make

%E6%8D%95%E8%8E%B7-23.png

编译成功后,会重新生成

0x00000.bin

0x10000.bin

%E6%8D%95%E8%8E%B7-24.png

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

%E6%8D%95%E8%8E%B7-26.png

%E6%8D%95%E8%8E%B7-27.png

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

temp48.png

temp49.png

三.nodemcu最新版编译

1.说明

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

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

2.下载

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

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

temp50.png

2.下载libm.a:

先make一下,下载sdk。

make

temp52.png

移动libm.a到sdk目录。

temp53.png

3.修改esp-gdbstub

temp64.png

nano app/esp-gdbstub/gdbstub.c

在头部添加一下行:

#ifndef XCHAL_DEBUGLEVEL

#define XCHAL_DEBUGLEVEL 2

#endif

temp63.png

4.调整cc.h

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

temp60.png

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

nano app/include/arch/cc.h

注释掉:

#define EFAULT 14

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

#ifndef  EFAULT

#define EFAULT 14

#endif

temp61.png

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

5.编译

make

temp57.png

temp58.png

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

make flash512k

temp59.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值