ESP8266学习之路 八 (再次编译烧写固件)

第一次编译固件是通过官网编译,但是官网有些默认功能是关闭的 比如说 smartconfig 通过官网编译的是不能使用的 , ESP8266模块的这个功能是通过一键配置连接Mqtt服务器的

这次记录是 如何自己在官方给的源码 去挑选自己想要的功能- 编译

首先是要有Linux环境:

如果你是第一次安装Linux Ubuntu 你需要在你虚拟机联网的情况下执行下面两条指令

1.更新软件源:     sudo apt-get update  
2.安装gcc ,g++:    sudo apt-get install make git tar unzip srecord python python-serial gcc g++

安装好普通的编译环境后,接下来正式编译--nodemcu-firmware-master


一.创建编译环境--xtensa-lx106-elf-ccf1cfd2.ta
在Linux Ubuntu中输入一下指令

1.修改xtensa-lx106-elf目录权限:这一步非常重要,否则在后续编译中很容易出现没有权限问题
sudo chmod 777 /opt/xtensa-lx106-elf
2.输入sudo gedit /etc/environment  按照格式要求输入“:/opt/xtensa-lx106-elf/bin”,保存并退出。最终结果如下:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/xtensa-lx106-elf/bin"
3.  source /etc/environment
4.   echo $PATH     查看当前环境变量,是否已经存在/opt/xtensa-lx106-elf/bin
5.  xtensa-lx106-elf-gcc -v  查看版本号为gcc版本为4.8.2

二.编译--nodemcu-firmware-master

1.根据需求打开所需要的功能,配置nodemcu-firmware/app/include目录下的user_model.h和user_config.h。更多设置请参考http://nodemcu.readthedocs.io/en/master/
2.编译固件--按顺序输入如下指令即可
(1)tar -Jxvf tools/esp-open-sdk.tar.xz
(2)export PATH=$PATH:$PWD/esp-open-sdk/xtensa-lx106-elf/bin
(3)export BUILD_DATE=$(date +%Y%m%d)
(4)make EXTRA_CCFLAGS="-DBUILD_DATE='\"'$BUILD_DATE'\"'" all
(5)cd bin/
(6)file_name="nodemcu_${BUILD_DATE}.bin"
(7)srec_cat -output ${file_name} -binary 0x00000.bin -binary -fill 0xff         0x00000 0x10000 0x10000.bin -binary -offset 0x10000
(8)cd ..
(9)make clean
最后根据需要进行烧入就可以了。

以上就是根据自己的需要修改添加目标功能....
此编译固件方法还可以把我们自己写好的lua文件添加进去,就不用每次使用ESPlorer.jar上传程序了,,不过这样也费事,只有最终确定了lua程序在这样编译才可以,,,不然有问题就重新编译一次固件费事

想要lua不被看见直接在编译固件放在 要编译的固件工程中 对应的目录:"nodemcu-firmware-master/local/fs"中, 把写好的lua文件放在此目录下然后编译工程,就不需要在使用ESPlorer.jar下载xxx.lua文件了,

不过此时编译的  .bin 文件有多个 ,其中的 nodemcu_xxxxxxxx.bin  (xxxxxxxx是生成的日期) 主文件这个是必须要烧写的,,, 其余的 如当时使用的是esp8266模块选择 0x70000-32mb.bin 文件烧写  这个是lua功能的文件   0x70000-表示烧写的地址 

但是这样需要写两个  .bin 文件啊 下面是合成的 bin文件这样就可以只烧写一个了  ..... 

猜你喜欢

转载自blog.csdn.net/dianzishi123/article/details/82667869