自己動手編譯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-serial gcc g++

接下來克隆或下載 [ NodeMCU-Firmware ]

第二步 - 配置固件

配置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 Documentation ]

第三步 - 編譯固件

定位到nodemcu-firmware目錄,開始編譯。

N 命令
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


編譯需要等待很長時間, 待出現這些就是編譯完成了, 繼續執行下面的命令

N 命令
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
第四步 - 燒錄固件

編譯生成的二進制文件在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命令將固件與準備預先寫入的二進制文件連接成一個文件進行燒錄。

燒錄工具
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章