6-(基础入门篇)学会编译lua固件,固件的合成
http://www.cnblogs.com/yangfengwu/p/9336274.html
基础教程源码链接请在淘宝介绍中下载,由于链接很容易失效,如果失效请联系卖家,谢谢
https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-18540610442.6.36a74814ZSaRsu&id=569295486025
注意哈,这一节只是介绍自己如何编译固件,对于初学者而言不必深究哈
虚拟机和ubuntu的安装
https://www.cnblogs.com/Alier/p/6337151.html
https://blog.csdn.net/colin_lisicong/article/details/70193539
https://blog.csdn.net/zqxdsy/article/details/79758194
总有一款适合你,没有百度一下解决不了的问题,如果有那就是百度两下。。。

链接:https://pan.baidu.com/s/1I9xAIMQ4RdVDmClbVI7DvQ 密码:0zjg
里面链接有视频教程和配置环境过程,我只是简单的演示一下编译过程,还有就是如何把自己的lua执行文件打包进bin,然后就是下载
我一般资料都放在opt目录(如果大家也是这样放的,就可以直接运行后面的指令编译)

想要打开SmartConfig

选择一些模块的功能

把自己的lua执行文件打包进bin,把自己的lua文件放在

然后就是编译
cd .. cd .. cd opt/nodemcu-firmware-master

tar -Jxvf tools/esp-open-sdk.tar.xz

然后设置一下环境变量
export PATH=$PATH:$PWD/esp-open-sdk/xtensa-lx106-elf/bin

获得现在的日期
export BUILD_DATE=$(date +%Y%m%d)

然后开始编译
make EXTRA_CCFLAGS="-DBUILD_DATE='\"'$BUILD_DATE'\"'" all
编译完成之后,进入bin目录

编译完之后bin里面是这样子

0x00000和0x10000实质上就是上一节,只不过咱是自己动手编译的,还打开了SmartConfig功能

0x80000-8mb和0x80000-32mb是咱写的程序然后打包成了bin
一个是8mb一个是32mb,咱用的芯片有的是8mb的有的是32mb的
ESP01就是8mb的 esp12就是32mb的 根据自己的芯片选择刷哪一个
咱现在看怎么合成
先把0x00000 和0x10000合成一个 1.bin的文件,这个文件可以作为开发使用,以后咱就用这个学习开发
srec_cat -output "1.bin" -binary 0x00000.bin -binary -fill 0xff 0x00000 0x10000 0x10000.bin -binary -offset 0x10000
说一下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),设置合成的时候,把自己的地址偏移到0x10000开始,
其实吧0x00000到0x10000 是65536个字节,就是从65536开始写入,后面再说为什么是0x10000,其实是和flash有关
注意:这里1.bin就可以使用了,后面的合成实质是把运行文件也打包进bin文件
如果不想运行我写的可以直接刷1.bin地址是0
现在再把1.bin和0x80000-8mb或者0x80000-32mb 合成一个bin
先和
1.bin和0x80000-8mb 生成一个 nodemcu_8mb
srec_cat -output "nodemcu_8mb.bin" -binary .bin -binary -fill 0xff 0x00000 0x80000 0x80000-8mb.bin -binary -offset 0x80000
我发现必须要先填充,否则固件就是不行
整体上说就是先内部生成一个文件(内部文件),0x00000 到 0x80000填充上0xff
然后把1.bin 拷贝到内部文件(从0地址开始拷贝)
然后 把0x80000-8mb.bin 从0x80000开始拷贝(感觉这里应该叫粘结)
然后生成nodemcu_8mb这个文件
现在生成32mb的
srec_cat -output "nodemcu_32mb.bin" -binary .bin -binary -fill 0xff 0x00000 0x80000 0x80000-32mb.bin -binary -offset 0x80000
好了现在清除一下,方便下次编译
返回上一级目录
cd ..
make clean
整体的
cd .. cd .. //进入nodemcu-firmware-master
cd opt/nodemcu-firmware-master //解压esp-open-sdk.tar.xz
tar -Jxvf tools/esp-open-sdk.tar.xz //配置环境变量
export PATH=$PATH:$PWD/esp-open-sdk/xtensa-lx106-elf/bin //获取日期
export BUILD_DATE=$(date +%Y%m%d) //编译
make EXTRA_CCFLAGS="-DBUILD_DATE='\"'$BUILD_DATE'\"'" all //进入bin目录
cd bin/ //把0x00000和0x10000合成1.bin
srec_cat -output "1.bin" -binary 0x00000.bin -binary -fill 0xff 0x00000 0x10000 0x10000.bin -binary -offset 0x10000 //把0x80000-8mb.bin和1.bin合成nodemcu_8mb.bin(有时候是0x70000注意自己的)
srec_cat -output "nodemcu_8mb.bin" -binary .bin -binary -fill 0xff 0x00000 0x80000 0x80000-8mb.bin -binary -offset 0x80000 //把0x80000-32mb.bin和1.bin合成nodemcu_32mb.bin
srec_cat -output "nodemcu_32mb.bin" -binary .bin -binary -fill 0xff 0x00000 0x80000 0x80000-32mb.bin -binary -offset 0x80000 //返回上一级
cd .. //清理编译
make clean
https://www.cnblogs.com/yangfengwu/p/9349579.html
6-(基础入门篇)学会编译lua固件,固件的合成的更多相关文章
- 5-(基础入门篇)学会刷Wi-Fi模块固件(刷LUA版本固件)
http://www.cnblogs.com/yangfengwu/p/9065559.html 基础教程源码链接请在淘宝介绍中下载,由于链接很容易失效,如果失效请联系卖家,谢谢 https://it ...
- 4-(基础入门篇)学会刷Wi-Fi模块固件(刷AT指令固件)
http://www.cnblogs.com/yangfengwu/p/8965054.html 基础教程源码链接如果失效,请在淘宝介绍中下载,由于链接很容易失效,如果失效请联系卖家,谢谢 https ...
- Linux及Arm-Linux程序开发笔记(零基础入门篇)
Linux及Arm-Linux程序开发笔记(零基础入门篇) 作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/bee ...
- 【Linux开发】Linux及Arm-Linux程序开发笔记(零基础入门篇)
Linux及Arm-Linux程序开发笔记(零基础入门篇) 作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/beer ...
- SQLAlchemy 教程 —— 基础入门篇
SQLAlchemy 教程 -- 基础入门篇 一.课程简介 1.1 实验内容 本课程带领大家使用 SQLAlchemy 连接 MySQL 数据库,创建一个博客应用所需要的数据表,并介绍了使用 SQLA ...
- FPGA基础入门篇(四) 边沿检测电路
FPGA基础入门篇(四)--边沿检测电路 一.边沿检测 边沿检测,就是检测输入信号,或者FPGA内部逻辑信号的跳变,即上升沿或者下降沿的检测.在检测到所需要的边沿后产生一个高电平的脉冲.这在FPGA电 ...
- JS基础入门篇(三十五)—面向对象(二)
如果没有面向对象这种抽象概念的小伙伴,建议先看一下我写的JS基础入门篇(三十四)-面向对象(一)
- 云小课|DGC数据开发之基础入门篇
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:欢迎来到DGC数据 ...
- 1-ESP8266 SDK开发基础入门篇--开发环境搭建
因为今天终于做好了自己的另一块工控板,所以我就开始写基础公开篇的内容,希望自己小小的努力能够帮到大家 自己做的另一块板子 https://www.cnblogs.com/yangfengwu/cate ...
随机推荐
- servlet篇 之 servlet的访问
三:servlet的访问 使用web.xml文件中的这个<url-pattern>标签中的映射路径,来访问servlet 6.1 在浏览器的地址栏中,直接输入servlet映射的路径来访问 ...
- JarvisOJ BASIC 德军的密码
已知将一个flag以一种加密形式为使用密钥进行加密,使用密钥WELCOMETOCFF加密后密文为 000000000000000000000000000000000000000000000000000 ...
- 删除本地git的远程分支和远程删除git服务器的分支【转】
转- 删除本地git的远程分支和远程删除git服务器的分支 在项目中使用git管理代码后,有些时候会创建很多不同名称的分支,以此区分各个分支代码功能. 而随着代码的合并,以前的分支就可能不再需要保存了 ...
- Git——快速安装Git及初始化配置【二】
文档 https://git-scm.com/book/zh/v2 下载 mac https://git-scm.com/download/mac Linux https://git-scm.com/ ...
- BZOJ3277 串 【后缀数组】【二分答案】【主席树】
题目分析: 用"$"连接后缀数组,然后做一个主席树求区间内不同的数的个数.二分一个前缀长度再在主席树上求不同的数的个数. 代码: #include<bits/stdc++.h ...
- 基于FPGA的数字秒表(数码管显示模块和按键消抖)实现
本文主要是学习按键消抖和数码管动态显示,秒表显示什么的,个人认为,拿FPGA做秒表真是嫌钱多. 感谢 感谢学校和至芯科技,笔者专业最近去北京至芯科技培训交流了一周.老师的经验还是可以的,优化了自己的代 ...
- 测试工作常用SQL查询语句
一.查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!>,!<,=>, ...
- a span做成按钮样式不选中文字
a,span做成按钮样式时,文字会被选中.加以下CSS可以让其不选中.测试三大浏览器都可以 .button { display: inline-block; -moz-user-select: non ...
- 录毛线脚本,直接抓包手写最简洁的LoadRunner性能测试脚本
通常情况下,我们测试性能先要做单场景测试,即某个功能,一般情况下,这个功能依赖的功能(可能是需要先登录)不会太多, 如果录制脚本的话,会录制到很多无关的请求,大大增加了脚本的复杂度以及调整脚本的工作量 ...
- mysql5.6更改datadir数据存储目录
环境需求: 有些数据存储场景可能需要将数据放到指定的挂载路径或目录,mysql默认存放数据路径在:/var/lib/mysql下. 测试环境: 操作步骤: 1. 查看当前存储目录 [root@mysq ...




