1. 程式人生 > >自己動手編譯NodeMCU韌體

自己動手編譯NodeMCU韌體

目前常用的編譯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/app/include目錄下的user_model.huser_config.h
下面介紹的都是可選配置,完全根據個人需求進行選擇。

  • 選擇要編譯的模組: user_model.h
    user_modules

  • 預設波特率: user_config.h中的BIT_RATE_DEFAULT(使用74880波特率啟動時無亂碼)
    bit

  • 只使用整數: user_config.h中的LUA_NUMBER_INTEGRAL(可節省記憶體)
    integral

  • 開啟WIFI SMART智慧配網: user_config.h

    中的WIFI_SMART_ENABLE(手機配網SmartConfig或AirKiss)
    smart

  • 可以將nodemcu-firmware/local/fs目錄下的檔案打包成可在燒錄時寫入快閃記憶體中的二進位制檔案。(比如可以通過燒錄的方式將lua檔案直接寫入,詳情請檢視 )
    fs

第三步 - 編譯韌體

定位到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目錄中。
bin

  • 韌體:
    nodemcu_20180627.bin -> 0x00000
  • 準備預先寫入的二進位制檔案(根據快閃記憶體容量進行選擇):
    512KByte:0x74000-4mb.bin -> 0x74000
    1MByte:0x80000-8mb.bin -> 0x80000
    4MByte:0x80000-32mb.bin -> 0x80000

提示: 可以使用srec_cat命令將韌體與準備預先寫入的二進位制檔案連線成一個檔案進行燒錄。

燒錄工具

相關推薦

自己動手編譯NodeMCU

目前常用的編譯NodeMCU的方式主要有兩種,線上構建和本地構建。 線上構建 使用線上構建服務[NodeMCU custom builds]來定製自己的韌體,只需要在該網站選擇你需要的庫,留下郵箱,很快就能收到編譯好的韌體,這裡不多敘述。 本地

自己編譯NodeMCU & 提交資料到伺服器

自己編譯NodeMCU韌體 之前這篇文章nodeMCU使用小記裡用到的韌體是比較老的韌體,不帶http模組,所以無法實現http的post請求。所以……在雲構建韌體沒法用的情況下,還得自己編譯韌體啊。

win7下使用docker編譯Nodemcu

win10最方便,新版Docker直接使用HyperV虛擬主機。 Win7則要使用Docker Toolbox,安裝Virtualbox。 安裝Toolbox時,不安裝Git,則執行Docker Quickstart Terminal時需要手動指定Git的bash路徑。 它

【比特幣】自己動手編譯比特幣客戶端

https://github.com/imharrywu/fastcoin本帖只談技術實現,首先我們自己來編譯一個比特幣客戶端吧, 技術討論QQ群,161928517,歡迎大家入夥(註明:csdn)。 2014.7.18更新: 靜態編譯的第三方依賴和MINGW64工具

Hadoop2 自己動手編譯Hadoop的eclipse外掛

前言:       畢業兩年了,之前的工作一直沒有接觸過大資料的東西,對hadoop等比較陌生,所以最近開始學習了。對於我這樣第一次學的人,過程還是充滿了很多疑惑和不解的,不過我採取的策略是還是先讓環境跑起來,然後在能用的基礎上在多想想為什麼。       通過這三個禮拜(基本上就是週六週日,其他時間都在

openwrt編譯x86 VMware安裝映象

x86 看到這裡相信你們已經把映象編譯完成了,如下圖所示,兩個映象 對應兩個不同的檔案系統,想辦法把他拷貝到windows物理機上面去,你可以用U盤拷貝,還可以用ftp方式拷貝!具體方法就百度去啦! 新建虛擬機器,作業系統型別選擇其他! 一直下一步

esp8266實驗:搭建最小系統,刷nodemcu,dht11溫度讀取並上傳伺服器

esp8266-12E模組esp8266轉接板cp2102模組 or ch304g模組輕觸開關洞洞板HT7533A-1 3.3v穩壓晶片3.7v鋰電池DHT11溫度溼度模組2.焊接esp8266轉接板,製作測試底板esp8266模組不是特別小,實際使用可以直接把它焊在洞洞板上,但是作為反覆使用的話,建議焊接到

自學篇--使用keil5.23建立一個stm32工程並編譯包自帶版本)

之前在本科學習階段學習過一點51微控制器的知識,可是因為基本沒有實踐過幾次現在已經完全忘記了。。前幾天老師突然丟給我幾個板子說讓我把程式編譯、燒寫環境裝好,當時我就震驚了,不過經過三四天的自我摸索,之後參考他人的學習經驗,現在已經基本能處理這個問題了,所以為了方便後面的學者

自己動手編譯mod_jk,Tomcat與JK聯結器。

我的環境是ubuntu12.04,tomcat7.0.32,apache2.2.22。 編譯出來的mod_jk.so可以直接在本機/伺服器環境上使用,省去在網上找so的麻煩。  對於apache與tomcat的整合,請參考之前的文章: 1.下載tomcat--conne

怎麼在arduino IDE上編譯grbl

之前搞了很久,一直沒弄明白怎麼在windows下的arduino IDE上編譯grbl韌體程式碼(改了Makefile的,可以在linux下編譯,http://opensourceecology.org/wiki/GRBL),無奈只能安裝了一個Ubuntu的虛擬機器。由於需

esp8266學習筆記①:nodeMCU編譯環境配置和下載

一、工具下載 連結:https://pan.baidu.com/s/1Xl9mhIZFTpw1yaOvTOB6pQ 提取碼:2wls 二、開發環境的搭建 1、驅動安裝 首先開啟檔案包裡面的串列埠驅動檔案選擇需要安裝的驅動,看你的開發板是哪個串列埠晶片就選擇安裝哪個,一般開

RK3288 Android 5.1 編譯

官網連結:http://wiki.t-firefly.com/zh_CN/Firefly-RK3288/compile_android.html   以下內容為原文轉載+部分修改   編譯 Android 5.1 韌體 準備工作 編譯 Android 對機

自己動手安裝交叉編譯工具鏈

一、安裝步驟: 步驟1:開啟虛擬機器,在/usr/local/下建立/usr/local/arm資料夾 步驟2:先將安裝包從Windows中弄到linux中去。可以用共享資料夾,也可以  用Samba,也可以cuteftp。 步驟3:解壓。tar -jxvf arm-

openwrt之18.06版本原始碼編譯mt7688平臺說明

映象編譯說明: 新增nodejs功能,參照OpenWrt Node.js Packages (nodejs),遇到Illegal instruction問題,參照部落格openwrt 編譯node.js功能(解決Illegal instruction錯誤),最好是把networ

聯發科MT6167編譯和引數配置方法

本文介紹聯發科MT6167平臺FAQ晶片資料解決方法 MTK Modem韌體編譯和引數配置的嗎?按照網上的“ 射頻引數___MTK_固化射頻引數方法介紹_eservice.doc”之類的文件配置後,新編譯生成的韌體:資料網路連線後沒有上下行資料【無法上網】。META工具匯出資料有些與校準引數相同

esp8266編譯問題之旅

console資訊: make clean  /usr/bin/make -C app clean; make[1]: Entering directory '/cygdrive/e/esp8266/esp8266workspace/helloword/app' Makef

智慧閘道器編譯學習筆記——Makefile

參考部落格:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=408225 一、makefile簡介 (1)程式的編譯和連結 為了更好的理解makefile的意義,有必要了解一些程式編譯的規範和

自己動手安裝ARM交叉編譯工具鏈

一,首先說一下在linux中安裝軟體的特點: 相比windows下安裝要稍顯複雜,linux中安裝一般有以下幾種方法: 1.線上安裝,譬如ubuntu中使用apt-get install vim 來安裝vim軟體 2.自己下載安裝包來安裝。這種方式的缺陷就是你不

RK3288編譯 Android 5.1

1 準備工作編譯 Android 對機器的配置要求較高:64 位 CPU16GB 實體記憶體+交換記憶體30GB 空閒的磁碟空間用於構建,原始碼樹另外佔用大約 25GB安裝 OpenJDK 7:   sudo apt-get install openjdk-7-jdk提示:安裝 openjdk-7-jdk,會

第二十三期 基於hg255d的OpenWrt編譯《路由器就是開發板》

https://blog.csdn.net/aggresss/article/details/52752554         這一期來進行OpenWrt的編譯,我們的最終目的是生成可以被U-Boot引導的OpenWrt韌體,整個編譯過程比較耗時,根據網路