在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前言这节咱自己编译LUA固件
准备一台linux的机子
我把固件放到了git上,方便电脑用http下载 我先用这个连接linux 大家随意哈,只要是一台linux的机子就可以,不管是图形页面还是命令行形式使用,只要自己可以操作就可以 我用的是ubuntu16.4 如果自己的ubuntu什么都没有安装,,先执行个命令 apt-get update更新一下软件库列表,其实是发行ubuntu的人们为咱把几乎所有可能用到的软件都放到了一个地方.咱执行这个命令,就可以把所有软件的https下载链接存起来,咱想安装某个软件的时候(假设调用的是Ubuntu自带的安装软件指令), 这样的话系统先检查你输入的是下载哪个软件的指令,然后找到相应的链接,然后下载下来安装有些指令我就不唠叨了,请自行百度,看看各自的指令到底是什么意思,很多东西其实都是一层纸(也有可能是钢板),只要你肯下功夫戳破.....
安装其它一些软件执行 apt-get install make gedit git tar unzip srecord python python-serial gcc g++ 分开看(tar unzip ......自行百度都是干什么的)
gedit : 相当于记事本 tar : 解压tar类型的压缩包 unzip:解压zip类型的压缩包 srecord:裁剪拼接文件用 自行百度去.....领进门,修行靠个人..
进入opt文件夹
执行 git clone https://gitee.com/yang456/NodemcuCompile.git 这是我上传到git的,方便编译固件
然后执行 cd NodemcuCompile ls
nodemcu-firmware-2.0.0-master 这个是lua的源码 xtensa-lx106-elf 这个是编译8266所需要的环境
解压出来这两个文件
解压源码tar -xvf nodemcu-firmware-2.0.0-master.tar.bz2
接着解压 tar -xvf xtensa-lx106-elf-ccf1cfd2.tar.bz2
ls
修改下xtensa-lx106-elf 文件的权限,让文件可读可写,防止后续编译中出现没有权限问题 文件是绿色就不用修改...大家自己百度文件颜色和对应的权限 输入 chmod -R 777 ./xtensa-lx106-elf
设置环境环境 windows 都是鼠标点点点,键盘敲敲敲 linux就是键盘敲敲敲 vim /etc/environment
在文档的后面加上 :/opt/NodemcuCompile/xtensa-lx106-elf/bin https://www.runoob.com/linux/linux-vim.html vim命令看这个 这是我一开始的
先按键盘 i 移动到上面的位置,输入 :/opt/NodemcuCompile/xtensa-lx106-elf/bin
执行 source /etc/environment 立即生效环境变量
echo $PATH 查看当前环境变量
咱测试一下 执行 xtensa-lx106-elf-gcc -v
为了防止编译出错,咱也设置 nodemcu-firmware-2.0.0-master 里面所有的权限 执行 chmod -R 777 ./nodemcu-firmware-2.0.0-master 进入 nodemcu-firmware-2.0.0-master 执行 cd nodemcu-firmware-2.0.0-master
//解压esp-open-sdk.tar.xz //配置环境变量
//获取日期
//编译
好了 现在清理一下工程 make clean
进入bin文件 cd bin ls
里面有两个bin
一个从0x00000地址开始刷 一个从 0x10000 地址开始刷,刷进去这两个就是咱lua 开发的固件
但是刷两个比较麻烦,,咱就把这两个合成一个 //把0x00000和0x10000合成1.bin 说一下srec_cat 是文件合成指令 -output "1.bin" -binary 给它说最后输出一个名字是1.bin的二进制文件(-binary)
0x00000.bin -binary 找到第一个文件名字是0x00000.bin的二进制文件(-binary)
-fill 0xff 0x00000 0x10000 先把0x00000到0x10000全部填充0xff(其实内部会先生成一个用于存储的文件)
0x10000.bin -binary -offset 0x10000 找到第二个文件名字是0x10000.bin的二进制文件(-binary),设置合成的时候,
现在这个1.bin就是咱的Lua开发的固件了 现在这个1.bin就是咱的Lua开发的固件了 现在这个1.bin就是咱的Lua开发的固件了
修改或者添加功能
接着说 为了好叙述我还是用图形页面的linux说明....这个没有图形页面,叙述起来比较麻烦
修改完最后点击保存
然后向上面那样编译就可以 不过后期的编译只需要 //进入cd nodemcu-firmware-master //获取日期 //编译 //清理编译 然后到bin文件里面找到编译好的固件,下载到wifi里面就可以(可以先合成一个再下载,比较方便) //把0x00000和0x10000合成1.bin cd bin
现在的固件就支持了SmartConfig配网
把LUA程序打包进bin固件
咱现在看另一个事情,
一个一个的刷文件是不是感觉很不爽 刷完固件刷程序,还要一个一个的下载......麻烦 现在咱把咱写的lua程序打包进bin文件里面 我就写个简单的文件测试测试给大家看,多
然后把咱的程序文件放到
然后编译 //进入cd nodemcu-firmware-master //获取日期 //编译 //清理编译
然后咱看看bin文件里面
现在下载的话可以
程序默认一启动就运行了咱写的程序
不过这样多麻烦,,我还是喜欢刷一个固件
//进入bin目录
//把0x00000和0x10000合成1.bin
//把0xa0000-32mb.bin和1.bin合成nodemcu_32mb.bin
好了,,最后下载这一个就可以了
注意,由于程序文件大小不一样,所以这个地址也可能不一样
我留下几个
//把0x80000-8mb.bin和1.bin合成nodemcu_8mb.bin(有时候是0x70000注意自己的)
//把0x70000-8mb.bin和1.bin合成nodemcu_8mb.bin //把0x70000-32mb.bin和1.bin合成nodemcu_32mb.bin
//把0xb0000-8mb.bin和1.bin合成nodemcu_8mb.bin //把0xb0000-32mb.bin和1.bin合成nodemcu_32mb.bin
注意: 如果把自己的程序打包进bin下载的那么清除程序的时候
清除不了程序 你需要
|
请发表评论