目前常用的编译NodeMCU的方式主要有两种,在线构建本地构建

在线构建

使用在线构建服务[NodeMCU custom builds]来定制自己的固件,只需要在该网站选择你需要的库,留下邮箱,很快就能收到编译好的固件,这里不多叙述。

本地构建

想要自己编译NodeMCU,首先需要一个Linux环境,实体机或虚拟机都可以,安装教程网上有很多,这里以Ubuntu为例。

第一步 - 准备工作

以apt为例,首先安装编译相关软件包。

N 命令
1 sudo apt-get update
2 sudo apt-get install make git tar unzip srecord python python-pip python-serial gcc g++
3 pip install esptool

接下来克隆或下载 [ NodeMCU-Firmware ]

第二步 - 配置固件

配置nodemcu-firmware/app/include目录下的user_model.huser_config.h
下面介绍的都是可选配置,完全根据个人需求进行选择。

  • 选择要编译的模块: user_model.h

  • 默认波特率: user_config.h中的BIT_RATE_DEFAULT(使用74880波特率启动时无乱码)

  • 只使用整数: user_config.h中的LUA_NUMBER_INTEGRAL(可节省内存)

  • 开启WIFI SMART智能配网: user_config.h中的WIFI_SMART_ENABLE(手机配网SmartConfig或AirKiss)

  • 可以将nodemcu-firmware/local/fs目录下的文件打包成可在烧录时写入闪存中的二进制文件。(比如可以通过烧录的方式将lua文件直接写入,详情请查看 [ Internal filesystem # Technical Details ] )

还有很多设置,具体参考 [ NodeMCU Documentation ]

第三步 - 编译固件

定位到nodemcu-firmware目录,开始编译。
编译需要很长时间, 等待编译完成。

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
cd bin/
file_name="nodemcu_${BUILD_DATE}.bin"
srec_cat -output ${file_name} -binary 0x00000.bin -binary -fill 0xff 0x00000 0x10000 0x10000.bin -binary -offset 0x10000
cd ../
make clean
第四步 - 烧录固件

编译生成的二进制文件在nodemcu-firmware/bin目录中。

  • 固件:
    nodemcu_20180627.bin -> 0x00000
  • 准备预先写入的二进制文件(根据闪存容量进行选择):
    512KByte:0x74000-4mb.bin -> 0x74000
    1MByte:0x80000-8mb.bin -> 0x80000
    4MByte:0x80000-32mb.bin -> 0x80000

提示: 可以使用srec_cat命令将固件与准备预先写入的二进制文件连接成一个文件进行烧录。

烧录工具
  • [ ESPTool ]
  • [ ESP8266 Download Tool ]
  • [ NodeMCU Flasher ]
  • [ NodeMCU PyFlasher ]

自己动手编译NodeMCU固件相关推荐

  1. modemcu 打包_自己动手编译nodemcu固件

    简单背景 我之前的文章都是推荐使用项目组提供的云服务来编译固件.好处是,简单方便,只需要在网页上选择自己需要的模块就可以了.云服务编译好之后会把固件发送到邮箱. 不过,并不是只能通过云服务获取固件.完 ...

  2. linux nodemcu 编译,nodemcu固件编译

    nodemcu固件编译 by HYH | 2017 年 10 月 10 日 下午 8:27 一.编译环境搭建 1.下载 下载vbox及ova虚拟机包. 里面也有安装文档. 2.安装及必要软件安装 安装 ...

  3. linux nodemcu 编译,nodeMCU固件云编译没有esp32的版本

    我都跟着做了的.以下为我所有的问题. 问题1:编写Pwm控制舵机程序,舵机无反应,但是led有闪烁 根据资料http://wiki.ai-thinker.com/esp32从官网下载固件 git cl ...

  4. 自己动手制作路由器固件之快速开始

    如今市面上一两百元的双频(2.4G和5G,802.11ac)智能路由,几乎全部都是联发科的MT7620(2.4G+交换机)加上MT7612EN(PCIE接口,5G)的解决方案,软件也几乎千篇一律是Op ...

  5. nodemcu固件_从无到有玩NodeMcu:web端控制

    本文所有软件资源均可点击相应的超链接下载 我们的目标: 利用网页web端为搭载NodeMcu的esp8266连接wifi 硬件准备: 基于NodeMcu的esp8266 数据线:usb+micr-us ...

  6. Linux编辑firmware的文件,rk3328编译Linux固件

    一.编译 Linux 固件 这一章将介绍编译 ROC-RK3328-CC Linux 固件的整个流程. 1.1 准备工作 Linux 固件在如下的环境中编译: Ubuntu 16.04 amd64 安 ...

  7. 自己动手编译QGIS 3.18源代码,含出错大全和解决办法

    从2月19日开始打包,到2月23日,QGIS 3.18的安装包经过漫长的4天才完成打包,在这等待的4天里,大家有没有像我一样萌生出自己动手编译源代码的想法呢?今天想分享的是QGIS3.18源代码编译的 ...

  8. nodemcu刷鸿蒙系统,ESP01S刷入NodeMCU固件

    一开始我看别家的教程的时候走了很多歪路.搞的时候挺困难的,花了我大半天,但成功之后发现:哇,其实挺简单一个东西. 挺小一个 直入主题 开搞 一.准备工作 1.这里用到USB-TTL 某宝10块钱好像 ...

  9. 从零开始编译OpenWrt固件

    从零开始编译OpenWrt固件 前言 进来阅读这篇文章的相信都是对OpenWrt有一定的了解的,对于OpenWrt的介绍这里就不再赘述,可以自行查找相关百科了解. OpenWrt是适合于嵌入式设备的一 ...

  10. OPENWRT 插件ipk单独编译-无需编译整个固件

    下载官方源码包(可省) https://downloads.openwrt.org/releases/21.02.1/targets/x86/64/openwrt-sdk-21.02.1-x86-64 ...

最新文章

  1. 设置系统的viewController modal动画样式
  2. 关于U盘安装ubuntu-18.04安装时候出现的grub-efi-amd64-signed的问题。
  3. ALVのイベントを取得する方法
  4. 2021技术领域趋势报告:Rust继续增长、低代码是重要趋势
  5. Spring解决bean之间的循环依赖(循环引用)
  6. 微课|玩转Python轻松过二级:第3章课后习题解答2
  7. 惠普台式电脑引导不了系统_惠普电脑进入bios设置引导模式操作步骤图文
  8. oracle建表的方法,oracle建表语句
  9. 小程序获取视频缩略图
  10. Latex排版大括号让其左对齐
  11. 审稿意见的“so what”如何处理?
  12. MD2中用于随机置换的S盒是如何生成的?
  13. 零知开发板和红外人体感应模块使用
  14. 上传声音 微信小程序_微信小程序录音文件保存,播放
  15. unity井字棋和一些重要概念(中山大学3D游戏作业2)
  16. OSI七层模型的功能及协议
  17. idm下载器去哪里下载 idm下载器用不了什么原因
  18. LINUX提权入门手册
  19. 【每天学点管理】——员工激励
  20. 国内优秀开源电商项目评测、PHP版和Java版都有开源

热门文章

  1. RocketMq之一条消息在commitlog文件中如何存储验证
  2. 纯css实现二级下拉菜单
  3. rest api是什么_什么是REST API?
  4. 《重说中国近代史》—张鸣—(3)两个世界最初的碰撞(续)
  5. Centos下安装FastDFS
  6. 解决:元素内容必须由格式正确的字符数据或标记组成。
  7. 微信公众号二维码在哪里看?如何查看自己的微信公众号二维码?
  8. 利用云片网提供的API发送短信
  9. 微信小程序----开发小技巧(二)
  10. exchange server 2007 边缘传输服务器 垃圾邮件,边缘传输 启用反垃圾邮件更新向导 启用反垃圾邮件更新页...