国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

LuatOS FOTA升級:新手也能秒懂的操作指南

青山老竹農(nóng) ? 來源:jf_82863998 ? 作者:jf_82863998 ? 2026-02-04 15:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

面對成千上萬的終端設(shè)備,如何低成本完成版本迭代?FOTA是答案。本文聚焦LuatOS平臺的遠程升級能力,以極簡語言和清晰步驟,帶你走過從創(chuàng)建項目、獲取校驗碼到設(shè)備重啟升級的全過程,真正實現(xiàn)“極速上手”。

一、Flash 分區(qū)與 FOTA 分區(qū)簡介

大家好,在開始動手操作 FOTA 之前,我們必須先了解它的“工作場地”——模組內(nèi)部的 Flash 存儲器。這就像裝修房子前,一定要先看懂戶型圖。

不同型號的模組,F(xiàn)lash 分區(qū)就像不同的“戶型”,格局各異,但都有一個核心設(shè)計:必須有一個獨立的“系統(tǒng)升級專用間”,也就是 FOTA 分區(qū)。

今天,我們就以 Air780EHM 為例,來詳細解讀這份關(guān)鍵的“Flash 戶型圖”。

wKgZPGmCvx2AfBGVAAKdaf0OKsw654.png

首先,我們看全局。Air780EHM 的 Flash 是一棟總?cè)萘?8MB 的“大樓”。但這里有個精妙的設(shè)計:這棟樓有兩個門牌號系統(tǒng)。

物理地址(0x0 – 8MB):這是 Flash 芯片真實的“磚塊地址”,用于存儲所有數(shù)據(jù)。

XIP 映射地址(8MB – 16MB):CPU 執(zhí)行代碼時“看到”的地址。系統(tǒng)固件被“映射”到這個區(qū)域,CPU 可以直接讀取執(zhí)行,這叫 XIP(就地執(zhí)行)。

簡單來說,固件實體存放在物理地址的低 8MB,而當 CPU 要運行時,它“看到”的是從 8MB 開始的那段地址。

大家可以看到,flash 中分區(qū)很多,但作為 LuatOS 開發(fā)者,我們主要關(guān)注其中四個“房間”:ap+cp image 分區(qū)(包含腳本代碼區(qū))、LFS 分區(qū)、KV 分區(qū)和 FOTA 分區(qū)

1.1 ap+cp image 分區(qū)– “主系統(tǒng)套房”:

作用 :這是設(shè)備的操作系統(tǒng)和核心應(yīng)用所在,相當于電腦的 C 盤。它包含了底層 C 固件、Lua 虛擬機,以及最重要的——腳本區(qū)。

腳本區(qū):這是我們 Lua 代碼的“家”。代碼在這里擁有持久化特性,只有固件升級時才會被整體更新。它的大小在編譯時就已經(jīng)固定,不同固件版本會有差異,

腳本區(qū)大小會根據(jù)模組型號不同,固件編號不同也會有差別,大小在編譯時固定

1.2 LFS 分區(qū)– “用戶資料室” :

作用:提供一個小型文件系統(tǒng),用于存儲用戶數(shù)據(jù)和配置。

特點:具有持久化存儲,斷電不丟失 、可動態(tài)寫入和讀取、支持文件系統(tǒng) API 訪問、可隨時創(chuàng)建和刪除的特性。可以用來儲存用戶配置文件、設(shè)備運行日志、網(wǎng)絡(luò)配置信息、臨時數(shù)據(jù)和緩存、用戶生成的文件。

文件系統(tǒng)空間大小會根據(jù)模組型號不同,固件編號不同也會有差別,實際大小= 基礎(chǔ) lfs 空間 + 附件空間。

附加空間通常是去掉某些功能所節(jié)省出來的空間,所以有了不同編號的固件,來實現(xiàn)不同功能 + 大內(nèi)存的需求。

1.3 KV 分區(qū)– “配置存儲間”:

作用:KV(Key-Value)分區(qū)是一個小型的鍵值對存儲區(qū)域,用于保存設(shè)備的配置信息和狀態(tài)數(shù)據(jù)。

特點:

持久化存儲:斷電后數(shù)據(jù)不丟失

高效訪問:支持快速的鍵值對讀寫操作

固定大小:通常為 64KB

輕量級:適合存儲少量關(guān)鍵配置,如網(wǎng)絡(luò)參數(shù)、設(shè)備 ID、運行狀態(tài)等

KV 分區(qū)的典型用途:

存儲設(shè)備唯一標識符

保存網(wǎng)絡(luò)連接參數(shù)(APN、服務(wù)器地址等)

記錄設(shè)備運行狀態(tài)和統(tǒng)計信息

存儲用戶自定義配置

保存升級狀態(tài)和版本信息

1.4 FOTA 分區(qū)“系統(tǒng)升級專用間”:

1.4.1 分區(qū)介紹

作用 :這是今天的主角,用于臨時存放固件升級包,實現(xiàn)安全、隔離的遠程升級。

fota 分區(qū)具有以下特性:

1、獨立空間 :與其他分區(qū)嚴格分離,確保升級安全,從網(wǎng)絡(luò)或其他渠道下載的完整固件包或差分包先存儲到 FOTA 分區(qū)

2、安全機制 :支持升級包完整性校驗和簽名驗證,升級包寫入 FOTA 分區(qū)后會進行 MD5 校驗,確保傳輸未損壞

FOTA 升級的核心安全規(guī)則:為什么“戶型”要對齊?

這里有一個至關(guān)重要的安全限制,可以通過下面這個表格來了解:

wKgZPGmCwUmASo8kAAEIGbjeRlk858.png

通過上面表格可以看出,雖然兩個固件的 FOTA 分區(qū)大小完全一樣,但它們的 fota 分區(qū)、ap+cp 分區(qū)和 LFS 分區(qū)的起始、結(jié)束地址發(fā)生了偏移。

結(jié)論:使用錯誤編號的固件包升級時,其設(shè)計的分區(qū)地址與設(shè)備當前分區(qū)布局不匹配。FOTA 機制會在升級包寫入前校驗升級包,將會檢查出完整性異常,并返回升級失敗。

所以會有一個鐵律:不同編號的固件之間不能進行 fota 升級,F(xiàn)OTA 差分升級只能在相同編號的固件版本之間進行。 既編號 1 固件只能差分升級為新版本的編號 1 固件,編號 2 固件只能差分升級為新版本的編號 2 固件。在制作升級包時,務(wù)必首先確認這個編號匹配關(guān)系。

如果不同編號固件間升級 :需要使用完整包重新燒錄,不能使用 fota 升級

雖然這個房間總大小 1048KB,但是 fota 升級包大小并不等于 fota 分區(qū)空間大小。

在不同編號的固件版本規(guī)劃中,為了容納不同的功能,其整個 Flash 的分區(qū)表布局(包括 FOTA、AP、CP、LFS 等分區(qū)的起始地址和大小)是預(yù)先定義好且固定的。因此,不同編號的固件,其 FOTA 分區(qū)大小可能相同也可能不同,但更關(guān)鍵的是其在整個 Flash 中的"位置"(地址)不同。所以具體 fota 分區(qū)大小可以看 1.5 章節(jié)具體表格。

1.4.2 升級流程

初始化 FOTA → 下載升級包 → 寫入 FOTA 分區(qū) → MD5 校驗 → 設(shè)置升級標志 → 重啟

重啟后:Bootloader 檢查升級標志 → 驗證升級包 → 寫入目標分區(qū) → 啟動新固件 → 驗證新固件

wKgZPGmC0L2AWtPdAAErH0G7Ffs017.pngwKgZO2mC0O6ANprGAACm1V8X-Hk140.pngwKgZPGmC0QeAKD7eAACAk_Lp5VA726.png

1、升級包寫入流程:

初始化 FOTA 模塊: 創(chuàng)建升級上下文結(jié)構(gòu)體,分配必要的緩沖區(qū)和資源,為升級流程做準備。

下載升級包:

通過 HTTP、MQTT 或 UART通信協(xié)議從服務(wù)器或本地下載升級包數(shù)據(jù)。支持下載到文件系統(tǒng),或者直接分包寫入 fota 分區(qū)。

寫入 FOTA 分區(qū):

如果是下載到文件系統(tǒng)中暫存,待整個升級包在文件系統(tǒng)中下載完成后,再一次性從文件系統(tǒng)讀取并寫入到專用的 FOTA 分區(qū)。

也可以實時分包接收升級包數(shù)據(jù)并寫入到文件系統(tǒng)中。

完成寫入,驗證升級包:

執(zhí)行升級包的完整性校驗(MD5)

若校驗通過,則在特定位置中設(shè)置升級標志,并重啟系統(tǒng)。Bootloader 下次啟動時執(zhí)行升級。

若校驗失敗,則報告錯誤并終止升級流程。

2、重啟后升級流程:

設(shè)備上電,執(zhí)行 Bootloader

設(shè)備重啟后,Bootloader 首先檢查是否存在有效的升級標志。

驗證與執(zhí)行升級 若無升級標志:Bootloader 跳過升級流程,直接啟動現(xiàn)有固件。 若存在升級標志:

1.5 各模組 fota 分區(qū)空間

在實際使用中,不同的固件版本或型號為了支持不同的功能,會調(diào)整 FOTA 分區(qū)內(nèi)的大小,因此用戶實際可用的升級空間可查看下表。

Air7xx 系列模組 LuatOS 多固件版本

wKgZPGmC0bGATy1QAACPPX52ZKs938.pngwKgZPGmC0dKAUxDqAACju2s0nJY452.png

Air8000 系列固件版本

wKgZO2mC0kSAYGvLAACfdUR5qQs614.png

二、soc 軟件包文件分析

“理解了 FOTA 的‘工作場地’(Flash 分區(qū)),接下來一個很自然的問題是:我們要通過網(wǎng)絡(luò)下載并寫入這個場地的‘升級包’,它到底是什么?

這個核心的升級包就是 .soc 文件。它不是一個普通的固件,而是合宙定義的標準化容器。在 FOTA 流程中,它扮演著三個關(guān)鍵角色:

它是差分的藍本:我們下一章要講的‘差分升級’,其核心就是對比新舊兩個版本的.soc 文件,生成差異部分。

它攜帶了分區(qū)地圖:.soc 包內(nèi)的info.json配置文件,明確寫明了本固件的編號、分區(qū)地址等信息,這是 FOTA 進行安全校驗(防止變磚)的核心依據(jù)。

它統(tǒng)一了操作對象:無論底層是移芯還是展銳芯片,最終都封裝成統(tǒng)一的.soc 格式,讓升級工具和流程得以標準化。

所以,拆解.soc 文件,就是理解 FOTA 操作對象和實現(xiàn)原理的基礎(chǔ)。明白了它里面有什么,你才能徹底搞懂后續(xù)的差分生成和升級執(zhí)行究竟在操作什么。”

下面講解一下模組所用固件包.soc 文件的組成以及格式相關(guān)內(nèi)容。

2.1 soc 簡介

.soc 文件,是我們在 2021 年自定義的一個文件,該文件, 用于用一種通用的格式,保存不同型號模組的固件。


該文件格式的優(yōu)點是可以屏蔽模組差異, 對用戶通用, 對Luatools 通用;

缺點是,當前的 IOT 升級后臺尚且無法支持這個格式。

對于遠程升級來說, 必須用 Luatools 內(nèi)置的差分包制作工具, 輸入兩個不同版本的 soc文件, 生成一個.bin 結(jié)尾的差分包,才能上傳到 IOT 后臺進行遠程升級。


LuatOS 將來會適配非常多的 SoC/MCU 芯片來設(shè)計模組, 而各種模組的刷機格式各不相同,有必要定義一個統(tǒng)一的對外格式。

這里稱之為 soc 格式, 后綴選定為 soc, 實際內(nèi)容為 info.json 及多個固件文件的壓縮包。

2.2 SoC 組成部分

[必選]包含的文件 info.json

[可選]腳本數(shù)據(jù)存儲文件 script.bin, 使用 LuaDB v2 格式存儲

[必選]原始固件,以不同 SoC 芯片為準

2.2.1 info.json 的內(nèi)容

info.json 是固件配置文件,包含固件的詳細參數(shù)和配置信息。以 780EHM 的 2018 版本 1 號固件解壓后打開 info.json,具體包含如下參數(shù):

wKgZPGmC06KAAio-AAdSrFf6fjw243.png

2.2.2 腳本數(shù)據(jù)文件 script.bin

在給出的底層固件中并不包含此文件,此文件是在 luatools 工具點擊生成量產(chǎn)文件后所生成的。是 Lua 腳本的二進制文件,包含了用戶編寫的應(yīng)用程序代碼。文件格式為 LuaDB 格式存儲。

LuaDB 并非數(shù)據(jù)庫, 而是一種用于 LuatOS 固件的文件打包格式.

其作用相當于一個只讀文件系統(tǒng).

2.2.3 原始固件

原始固件是構(gòu)成 .soc 文件的核心數(shù)據(jù)部分,指由芯片原廠(如展銳、移芯)提供的底層系統(tǒng)映像文件。其格式依芯片平臺而定,常見后綴包括 .pac、.binpkg、.fls、.img 等。該固件包含了操作系統(tǒng)內(nèi)核、基礎(chǔ)驅(qū)動、通信協(xié)議棧等核心代碼,是設(shè)備功能運行的基石。

在 .soc 文件體系中,info.json 配置文件內(nèi)的 "rom" -> "file" 字段即指明了所包含的原始固件文件名(例如 "luatos.binpkg")。該文件與 info.json、可選的 script.bin 一同被打包壓縮,最終形成統(tǒng)一的 .soc 分發(fā)文件。

展銳平臺:

展銳平臺的 4G 模組,當前我們用的是 8910 平臺,典型模組是Air724UG,編譯之后的文件后綴為 PAC, 可以用展銳提供的upgrade 固件燒錄工具燒錄,也可以用 Luatools 燒錄。

移芯平臺:

移芯平臺的 4G 模組,我們用的有 EC718、EC618、716 等。典型模組是 Air780EXX 系列、Air8000 系列。

移芯平臺編譯出來的固件,都是 binpkg 后綴結(jié)尾的固件,可以用移芯提供的 flashtool 工具燒錄,也可以用 Luatools 燒錄。

對于最終用戶和開發(fā)者而言,無論底層原始固件格式如何,均推薦使用 Luatools 配合 .soc 文件進行下載和升級。

所以,.soc文件的核心就在于,用一個外層的標準化包裝,封裝了內(nèi)部不同平臺的原生固件,讓用戶和工具都能用同一種方式處理它們。

2.3 soc 實際文件分析

soc 解壓后實際文件在不同的模組中也不盡相同,但是都是 info.json+ 原始固件 + 輔助文件 + 腳本數(shù)據(jù)文件組成。

下面以移芯系列固件為例:將 .soc 壓后會得到 7 個核心文件: comdb.txt 、 info.json 、 luat_conf_bsp.h 、 luatos.binpkg 、 luatos.elf 、 luatos_debug.map 、 mem_map.txt 。而使用 Luatools 生成量產(chǎn)文件后,還會多出兩個文件: core.binpkg 和 script.bin 。

這些文件各司其職,共同構(gòu)成了一個完整的固件系統(tǒng)。接下來,我們逐個分析它們的作用。

還是以 780ehm 為例,看下它的固件 soc 解壓后都有哪些文件:

wKgZPGmC1DuAU--nAACL8AXBHxw161.png

info.json

第一個要介紹的是 info.json ,這是固件的核心配置文件,相當于固件的"身份證"。

這個文件主要包含有:

芯片類型(

ROM 文件信息及下載地址

腳本文件信息及下載地址

分區(qū)表配置

下載參數(shù)(波特率、強制波特率等)

luatos.binpkg

LuatOS 的核心二進制固件包,包含了系統(tǒng)運行所需的所有核心代碼。

.binpkg 為移芯系列芯片所生成的原始固件內(nèi)容,是移芯芯片特有的格式,不同的芯片會有不同的原始固件格式

其他輔助文件

mem_map.txt:這是設(shè)備內(nèi)存的"地圖",內(nèi)存映射配置文件,定義了設(shè)備內(nèi)存的分區(qū)結(jié)構(gòu)和地址范圍。

luat_conf_bsp.h :支持功能配置頭文件,定義了一些功能相關(guān)的配置宏,比如引腳定義、外設(shè)配置等。

luatos.elf :包含完整調(diào)試信息的可執(zhí)行文件,開發(fā)通常用不到,出現(xiàn) ramdump 死機的時候用于解析死機日志時使用。

luatos_debug.map :調(diào)試映射文件,記錄了函數(shù)和變量在內(nèi)存中的地址。

comdb.txt :組件數(shù)據(jù)庫文件,記錄了固件中包含的各種組件信息,使用 EPAT 抓取日志時需要。

在 luatools 上點擊生成量產(chǎn)文件后,量產(chǎn)文件也是一個 soc 文件,解壓后除了上述內(nèi)容外還會多出兩個文件:core.binpkg、script.bin

core.binpkg :核心固件包,包含了系統(tǒng)的核心功能。

script.bin :Lua 腳本的二進制文件,包含了用戶編寫的應(yīng)用程序代碼。這是一個非常重要的文件,它支持單獨更新腳本,無需重新下載完整固件。

總的來說,.soc 文件就是一個集配置文件、核心固件、用戶腳本于一體的標準化容器。它解決了多平臺統(tǒng)一管理的問題,并通過 info.json 實現(xiàn)精細控制,實現(xiàn)固件燒錄、差分升級等功能。為后續(xù)的差分升級打下了堅實的基礎(chǔ)。那么,如何利用兩個不同版本的.soc 文件,生成一個體積小巧的升級包呢?這就是我們接下來要揭秘的——差分升級的奧秘

三、差分包生成原理以及差分升級原理

3.1 差分升級的基本概念

在 FOTA(無線固件升級)中,升級方式主要分為兩種:整包升級和差分升級。

整包升級:指將完整的新版本固件包全部下載至設(shè)備,并完全覆蓋設(shè)備上現(xiàn)有的舊版本固件。其過程直接,但數(shù)據(jù)量大。

差分升級:是一種增量更新技術(shù)。其核心在于,設(shè)備無需下載完整的新固件包,而是僅下載新舊兩個固件版本之間的差異部分(即“差分包”)。設(shè)備在本地利用此差分包與自身已有的舊版本固件進行合并,從而生成完整的新版本固件。

一個生動的比喻是:你手中有一本舊版的書籍,出版社發(fā)布了修訂版,但實際內(nèi)容只更改了其中的 30 頁。此時,你無需購買整本新書,只需獲取這 30 頁的修訂頁,并替換舊書中對應(yīng)的頁面即可。差分升級正是這一高效思路在固件更新上的體現(xiàn)。

傳統(tǒng)整包升級的痛點:

升級包體積大:消耗大量網(wǎng)絡(luò)帶寬與設(shè)備存儲空間。

升級耗時長:下載時間長,升級過程慢,影響用戶體驗。

流量成本高:對于部署量龐大的物聯(lián)網(wǎng)設(shè)備群,升級產(chǎn)生的總流量成本非常顯著。

差分升級的顯著優(yōu)勢:

體積極小:差分包通常僅為完整新固件包的 10%-30%,甚至更低。

速度極快:下載時間大幅縮短,升級效率顯著提升。

可靠性更高:傳輸數(shù)據(jù)量小,在弱網(wǎng)環(huán)境下傳輸失敗或出錯的概率降低。

成本大幅節(jié)省:在海量設(shè)備升級場景下,能節(jié)省可觀的流量費用與服務(wù)器帶寬成本。

3.2 差分升級原理:只傳"差異",不傳"全部"

差分升級的技術(shù)本質(zhì)可概括為 “計算差異、傳輸差異、應(yīng)用差異”。其核心在于通過算法比對,僅處理和傳輸發(fā)生變化的數(shù)據(jù)塊,而非整個文件。

具體來說,在升級前,會使用專門的算法工具(luatools),對舊固件(V1)和新固件(V2)的二進制內(nèi)容進行深度比對,精確找出所有被修改、新增或刪除的數(shù)據(jù)塊。然后,只將這些“差異”信息,打包成一個結(jié)構(gòu)化的差分包(Δ)。設(shè)備獲取這個小包后,在本地執(zhí)行反向操作,根據(jù)包內(nèi)的指引,將差異應(yīng)用到自身的 V1 版本上,從而重構(gòu)出 V2。

1. 差分包生成原理

差分升級的核心是 差異比較算法 ,常用的有:

BSDiff :基于后綴排序的高效差異算法

HDiffPatch :高性能的差異比較庫

Rsync 算法 :用于網(wǎng)絡(luò)傳輸?shù)牟町愃惴?/p>

我們的 Luatools 等工具就集成了這類算法,能夠智能地比較兩個.soc 文件或原始固件,生成最優(yōu)的差分包。

2. 差分包的組成

一個標準的差分包(通常為.bin 文件)是一個精心設(shè)計的數(shù)據(jù)包,通常包含::

差異數(shù)據(jù) :新舊固件的二進制差異

元信息 :版本號、校驗值、生成時間

合并指令 :指導設(shè)備如何合并生成新固件

校驗機制 :確保差分包完整性和安全性

3. 差分升級的工作流程

下面看一下差分升級的工作流程,具體流程如下:

wKgZO2mC1XyACP5GAACuaMsgijA663.png

流程詳解:

1、生成階段:在 luatools 上,指定新舊版本 V1 和 V2,生成一個包含合并指令和差異數(shù)據(jù)的差分包(Δ)。

2、傳輸階段:這個極小的差分包通過蜂窩網(wǎng)絡(luò)、以太網(wǎng)藍牙Wi-Fi 或本地串口等渠道,高效地下發(fā)到設(shè)備。

3、應(yīng)用階段:設(shè)備端在設(shè)備的固件升級功能模塊控制下,完成差分包校驗、新固件合并寫入與最終驗證后,重啟切換至新版本固件完成升級的過程。

四、單腳本升級以及 core+ 腳本升級 升級包制作

4.1 LuatOS 開發(fā)結(jié)構(gòu)

LuatOS 二次開發(fā)由兩部分組成:

Core 部分:既底層固件,底層 C 代碼編譯的二進制固件,包含操作系統(tǒng)內(nèi)核、驅(qū)動、基礎(chǔ)庫,文件較大,更新頻率較低。

Script 部分:上層 Lua 應(yīng)用腳本,包含業(yè)務(wù)邏輯、基礎(chǔ)配置、應(yīng)用功能等,文件較小,更新頻率較高。。

在設(shè)備使用過程中,升級的時候通常會碰到三種情況,一種是單腳本需要升級,一種是腳本 + 固件都需要升級。

在 4G 相關(guān)的模組中,比如 Air780Exx 系列、Air8000 系列模組中

單腳本升級時為全量升級,含 core 升級時為差分升級。

在 wifi 模組 Air8101 和 Air8101A 中

單腳本升級和含 core 升級都為全量升級

4.2 單腳本升級

4.2.1 為什么腳本升級使用全量模式?

單腳本升級采用全量升級模式,原因有三:

大小因素:腳本文件本身就很小,一般幾十到幾百 KB,即使全量傳輸消耗的流量和帶寬也很有限,差分計算帶來的收益不明顯。

變更模式:腳本更新頻繁,且可能完全重寫邏輯,相鄰版本之間可能沒有明顯的"差異",而是完全不同的實現(xiàn),這種情況下差分效果差。

實現(xiàn)復雜度:全量升級實現(xiàn)簡單,直接覆蓋文件即可,無需復雜的差分生成和合并算法,開發(fā)成本低。

4.2.2 單腳本升級升級包制作

在 luatools 中點擊生成量產(chǎn)文件,在生成的量產(chǎn)文件夾中,對應(yīng)的.bin 后綴的就是單腳本升級的升級包。

4.2.3 實際應(yīng)用場景

場景 1:快速迭代開發(fā)

在開發(fā)階段,業(yè)務(wù)邏輯頻繁調(diào)整,每次修改后直接全量更新腳本,簡單快捷。

場景 2:配置文件更新

當需要修改服務(wù)器地址、端口號、超時時間等配置參數(shù)時,直接替換整個配置文件即可。

4.2.4 工作流程

開發(fā)者編寫新腳本 → 打包為升級文件 → 通過 FOTA 平臺下發(fā) → 設(shè)備接收并覆蓋舊腳本 → 重啟后生效。

整個過程簡單直接,適合高頻次的業(yè)務(wù)邏輯更新。

4.3 含 core 升級

4.3.1 為什么必須用差分升級?

含 core 升級必須使用差分模式,主要原因如下:

1、文件大小因素:Core 固件通常很大(512KB~2MB+),全量傳輸消耗大量流量和時間。差分可以顯著減少傳輸數(shù)據(jù)量,通常減少 90% 以上。

2、變更模式特點:Core 固件更新頻率低,相鄰版本變化小,主要是 bug 修復和功能增強,大部分代碼不變,適合差分算法。

3、技術(shù)必要性:嵌入式設(shè)備存儲空間有限,無法同時存儲兩個完整固件;fota 分區(qū)通常比較小。

4.3.2 含 core 升級升級包制作

對于含 core 升級的話需要制作差分包,原始版本生成一次量產(chǎn)文件,新版本生成一次量產(chǎn)文件。

針對這兩個量產(chǎn)文件,制作一個差分文件,點擊到 luatools 的主界面,依次點擊圖中藍框所示意的地方(注:必須使用 luatools_3.0.9 及其以上版本,要不差分包升級的時候可能會出問題)

wKgZPGmC1sqAdc8XAADmKbPMHg4229.png

按下圖所示選擇低版本以及高版本的固件,然后點擊開始執(zhí)行即可,如果不想輸出的差分包在 luatools 根目錄下,可以自行選擇一個輸出路徑

wKgZO2mC1ueAMWvMAAET05Tjxk4520.png

在你選擇的目錄下看到如下所示,.bin 文件就是升級差分包。

wKgZPGmC1wWAetOKAAAscJy0qq0887.png

4.3.3 Core 固件的變更特點

Core 固件的更新通常是增量式的:修復一個 bug、優(yōu)化某個驅(qū)動、增加一個小功能。比如 V1.0.0 到 V1.0.1,可能只是修復了網(wǎng)絡(luò)連接中的一個空指針異常,99% 的代碼都沒有變化。這種場景下,差分升級只需傳輸那 1% 的變化部分,效率極高。

4.3.4 含 core 升級各芯片差異

4G 模組:

移芯系列模組:780Exx 系列、8000 系列等用移芯芯片的模組,含 core 升級為差分升級,需要手動差分

展銳系列模組:724UG 系列、722UG 系列、795UG 等用展銳芯片的模組,含 core 升級為差分升級,不過如果使用的是我們 iot 平臺的話,可以上傳新版本的量產(chǎn)文件,差分過程可在服務(wù)器后臺自動進行,但是如果是第三方服務(wù)器升級需要手動差分,把差分包上傳到自己服務(wù)器中。

特殊情況:wifi 模組 8101 和 8101A,由于芯片不支持差分升級,單腳本升級或 core+ 腳本升級時都為全量升級。在 luatools 生成全量文件的時候,在指定目錄下會有兩個文件 full_fota 和 script_ota。full_fota 中為 core+ 腳本 升級的升級包,script_ota 中為單腳本的升級包。

wKgZO2mC11uALhTDAABJBDG5CcY209.png

4.4 升級類型對 Flash 分區(qū)影響與二次開發(fā)關(guān)系總結(jié)

4.4.1 升級類型對 Flash 分區(qū)的影響

wKgZO2mC2D6AN_uKAABvn3bycm8413.png


4.4.2 各分區(qū)與二次開發(fā)的關(guān)系

wKgZO2mC2E-AOXs8AADMffNk2AM195.png


4.4.3 升級包特點

單腳本升級:文件小,更新頻繁,直接生成.bin 文件

含 core 升級:文件大,更新頻率低,4G 模組需制作差分包,WiFi 模組為全量包

五、fota 升級相關(guān) api 簡介(libfota2 擴展庫和 fota 核心庫)

在 luatos 中,升級一般是有兩組接口都能實現(xiàn) fota 功能,分別是 libfota2 擴展庫和 fota 核心庫

5.1 libfota2 擴展庫與 fota 核心庫 如何選擇

5.1.1 核心區(qū)別總結(jié)

fota(底層核心庫)

定位: 基礎(chǔ)升級,提供最核心的固件寫入能力

核心能力:

支持兩種寫入方式:fota.run() 分段寫入 和 fota.file() 文件直接升級

支持內(nèi)部存儲和外部 SPI Flash

提供完整的升級流程控制:init → run/file → isDone → finish

fota2(libfota2 擴展庫)

定位: 完整的遠程升級解決方案,開箱即用

核心能力

自動處理 HTTP/HTTPS 網(wǎng)絡(luò)下載

支持 IoT 平臺和自建服務(wù)器

內(nèi)置版本檢查、下載、驗證全流程

提供詳細錯誤碼和回調(diào)函數(shù)

代碼特點:

wKgZO2mC2JOANpl0AACo3a6-1Zk187.png

5.1.2 適用場景推薦

1、選擇 fota 的情況

需要自定義升級數(shù)據(jù)源

通過串口接收升級包

通過 MQTT、TCP 等自定義協(xié)議傳輸

從 SD 卡、U 盤等外部存儲讀取

對升級流程有特殊控制需求:

需要在升級前后執(zhí)行特定操作

需要精細控制數(shù)據(jù)寫入時機

需要自定義進度監(jiān)控邏輯

資源極度受限環(huán)境

設(shè)備存儲空間極小,內(nèi)存緊張,無法加載額外庫

開發(fā)測試階段

需要調(diào)試升級過程的每個環(huán)節(jié)

需要驗證自定義升級方案

2、選擇 libfota2 的情況

標準的 HTTP 遠程升級

從服務(wù)器下載升級包

使用 IoT 平臺服務(wù)

需要 HTTPS 安全下載

希望快速實現(xiàn)升級功能

不想處理網(wǎng)絡(luò)下載細節(jié)

需要自動版本檢查

希望簡單的錯誤處理

生產(chǎn)環(huán)境部署

需要穩(wěn)定的遠程升級方案

需要詳細的升級狀態(tài)反饋

支持定時自動檢查更新

5.1.3 實際選擇建議

新手用戶 → 直接選擇 libfota2

接口簡單,學習成本低

內(nèi)置完整錯誤處理

適合大多數(shù)物聯(lián)網(wǎng)應(yīng)用場景

高級用戶 → 根據(jù)需求選擇

標準網(wǎng)絡(luò)升級 → libfota2

自定義數(shù)據(jù)傳輸 → fota + 自定義邏輯

一句話總結(jié):

libfota2 擴展庫:適合絕大多數(shù)標準遠程升級場景。你只要給它一個服務(wù)器地址(合宙 iot 平臺甚至不用給),它自己就幫你完成版本檢查、HTTP 下載、校驗所有流程。一行代碼 libfota2.request(cb) 就能發(fā)起升級,省心省力。

fota 核心庫:給你最大的控制權(quán)。適合非標準升級渠道,比如通過串口、MQTT、TCP 自定義協(xié)議,或者從 SD 卡、U 盤讀取升級包。你需要自己控制數(shù)據(jù)流的接收和寫入過程。


5.2 libfota2 擴展庫 api 介紹

5.2.1 libfota2.request(cbFnc, opts)

功能

發(fā)起遠程升級

libfota2.request 是 LuatOS 為物聯(lián)網(wǎng)設(shè)備提供的一個強大、靈活且安全的遠程固件升級接口,它能極大簡化通過平臺或私有服務(wù)器實現(xiàn)設(shè)備 FOTA 功能的開發(fā)流程。

參數(shù)

cbFnc

wKgZO2mC2liAWm6-AAROfbe-6r0655.png

opts

wKgZO2mC2uGASXMdABSqy38IduI118.png


返回值

示例

本示例章節(jié)僅列舉一些常用功能的核心代碼片段

wKgZO2mC2xmAOp6jAAPQqxt4aHc161.png

5.3 fota 核心庫 api 介紹

5.3.1 fota.init()

功能

初始化 fota 流程。

參數(shù)

返回值

local result = fota.init()

result

wKgZO2mC20KAXnL_AABwlfL6J9w974.png

例子

wKgZO2mC3AKAb8eHAACOen8GPco306.png


5.3.2 fota.wait()

功能

等待底層 fota 流程準備好,等待底層固件升級流程初始化完成,包括存儲設(shè)備就緒、升級上下文準備等。

參數(shù)

返回值

local isDone = fota.wait()

isDone

wKgZO2mC3CyAdY53AABq_AXWY04127.png


例子

wKgZO2mC3EaAIT7UAACatLErwdI415.png

5.3.3 fota.run(buff, offset, len)

功能

寫入 fota 數(shù)據(jù),支持逐段寫入升級包。

注意事項:如果傳入的是 zbuff,寫入成功后,請自行清空 zbuff 內(nèi)的數(shù)據(jù)

參數(shù)

buff

wKgZO2mC3HCAQUzUAACFH466OqI143.png


offset

wKgZPGmC3IuATVLpAACPjLrfLRo368.png

len

wKgZO2mC3L-AFwvQAACWiXnvxyk444.png

返回值

local result, isDone, cache = fota.run(buff, offset, len)

result

wKgZPGmC3OCAO6JVAABtVwLRu7Y986.png

isDone

wKgZPGmC3SeAWDY-AABwb3GcUrM318.png

cache

wKgZO2mC3T6Ae5IvAACGNyehbSY039.png

例子

wKgZO2mC3VyAULzzAAJIEQwu2Mk608.png

5.3.4 fota.file(path)

功能

從指定文件讀取 fota 數(shù)據(jù)并寫入

參數(shù)

path

wKgZPGmC3eiAR2ZrAAB3_69p4I8931.png


返回值

local result, isDone, cache = fota.file("/xxx.bin")

result

wKgZPGmC3gaAeIprAABuk7wx5Ec125.png


isDone

wKgZO2mC3iOAWNddAABuH3ucTZI350.png

cache

wKgZO2mC3T6Ae5IvAACGNyehbSY039.png

例子

wKgZO2mC3mKAApbbAAUToIxV9-Y056.png

5.3.5 fota.isDone()

功能

等待底層 fota 流程完成

參數(shù)

返回值

local result, isDone = fota.isDone()

result

wKgZO2mC3uyAGV1cAABlR1zhQng323.png

isDone

wKgZO2mC3yaAM45cAABsaXhmBHM476.png


例子

wKgZPGmC3zuAe3X2AADA6y8K08U633.png


5.3.6 fota.finish(is_ok)

功能

結(jié)束 fota 流程

參數(shù)

is_ok

wKgZPGmC31-AQ-d7AAEGpzTXssM826.png


返回值

local result = fota.finish(is_ok)

result

wKgZO2mC33mAWT68AABoaJSbaSM811.png


例子

wKgZO2mC34yAXzd5AAF6ThLu5O8790.png

六、LuatOS 上 FOTA 功能實際應(yīng)用示例

本部分將深入兩項具體實踐:使用 FOTA 核心庫進行固件升級和使用 libfota2 擴展庫進行固件升級。

6.1 使用 FOTA 核心庫的固件升級

6.1.1 分析項目代碼

1、文件說明

main.lua:主程序入口文件。

fota_file.lua:文件系統(tǒng) FOTA 升級功能實現(xiàn),從文件系統(tǒng)直接讀取升級包進行固件升級。

fota_uart.lua:串口分段升級功能實現(xiàn),通過串口接收升級包數(shù)據(jù)進行固件升級。

2、演示功能

文件系統(tǒng)直接升級:

通過模組文件系統(tǒng)中的文件直接升級

代碼演示通過 luatools 的燒錄文件系統(tǒng)功能將升級包文件直接燒錄到文件系統(tǒng)然后升級

適用于本地升級、批量生產(chǎn)等場景

串口分段升級:

通過串口將升級包文件分多個片段發(fā)送,每個片段接收并寫入

代碼演示使用 USB 虛擬串口分段寫入升級包升級

適用于非標準數(shù)據(jù)傳輸(串口、TCP、MQTT 等自定義通道升級)

支持流程精細控制,可自定義升級前后處理邏輯

3、注意事項:

升級包必須是針對當前硬件平臺的正確固件

升級過程中請勿斷電或中斷升級流程

串口升級時,需確保串口連接穩(wěn)定

升級成功后,設(shè)備會自動重啟,無需手動操作。

升級失敗時,可通過日志查看具體錯誤信息

6.2 使用 libfota2 擴展庫的固件升級

6.2.1 分析項目代碼

1、目錄結(jié)構(gòu)

wKgZPGmC4TSAEo5IAAKgHS1jcuY810.png

2、文件說明

iot_server 目錄

main.lua :主程序入口,

update.lua :使用合宙 IoT 服務(wù)器簡單遠程升級模塊。

air_srv_fota.lua :使用合宙 IoT 平臺遠程通過 tcp 下發(fā)指令控制升級功能模塊。

netdrv_device.lua :網(wǎng)絡(luò)驅(qū)動設(shè)備配置,支持 4G、WIFI、以太網(wǎng)等多種網(wǎng)絡(luò)連接方式

psm_power_fota.lua :PSM 低功耗模式下的 FOTA 升級實現(xiàn),解決 PSM 狀態(tài)下升級中斷問題 TCP 客戶端 IoT 模塊

tcp_iot/tcp_iot_main.lua :TCP 客戶端主應(yīng)用,處理 TCP 連接和升級指令接收

tcp_iot/tcp_iot_sender.lua :TCP 數(shù)據(jù)發(fā)送功能,負責向服務(wù)器發(fā)送設(shè)備狀態(tài)和升級反饋

tcp_iot/tcp_iot_receiver.lua :TCP 數(shù)據(jù)接收功能,解析服務(wù)器下發(fā)的升級指令 網(wǎng)絡(luò)驅(qū)動

netdrv/netdrv_4g.lua :4G 網(wǎng)卡驅(qū)動實現(xiàn),負責 4G 網(wǎng)絡(luò)連接管理

netdrv/netdrv_eth_spi.lua :SPI 外掛 CH390H 芯片的以太網(wǎng)卡驅(qū)動

netdrv/netdrv_multiple.lua :多網(wǎng)卡優(yōu)先級管理,支持配置多種網(wǎng)卡的連接優(yōu)先級

self_server 目錄

main.lua :主程序入口。

update.lua :自定義服務(wù)器遠程簡單升級功能模塊。

customer_srv_fota.lua :自定義服務(wù)器通過 tcp 下發(fā)指令控制升級功能模塊。

psm_power_fota.lua :PSM 低功耗模式下的 FOTA 升級實現(xiàn),解決低功耗場景下的升級問題

netdrv_device.lua :網(wǎng)絡(luò)驅(qū)動設(shè)備配置,支持多種網(wǎng)絡(luò)連接方式 TCP 自定義服務(wù)器模塊

tcp_self_server/tcp_self_main.lua :TCP 客戶端主應(yīng)用,處理 TCP 連接和升級指令接收

tcp_self_server/tcp_self_sender.lua :TCP 數(shù)據(jù)發(fā)送功能,負責向服務(wù)器發(fā)送設(shè)備狀態(tài)和升級反饋

tcp_self_server/tcp_self_receiver.lua :TCP 數(shù)據(jù)接收功能,解析服務(wù)器下發(fā)的升級指令 網(wǎng)絡(luò)驅(qū)動

netdrv/netdrv_4g.lua :4G 網(wǎng)卡驅(qū)動實現(xiàn)

netdrv/netdrv_eth_spi.lua :SPI 以太網(wǎng)卡驅(qū)動

netdrv/netdrv_multiple.lua :多網(wǎng)卡優(yōu)先級管理

3、演示功能

場景一: IoT 服務(wù)器簡單升級

使用 iot.openluat.com 服務(wù)器進行遠程升級

上電就檢查升級,支持版本號自動檢測和升級包下載

適用于快速部署和管理大量設(shè)備

場景二:TCP 服務(wù)器下發(fā)升級指令

通過 TCP 服務(wù)器下發(fā) JSON 格式升級指令

通控制設(shè)備使用 FOTA 功能模塊

場景三:PSM 低功耗 FOTA

針對 PSM 狀態(tài)下升級未完成就進入休眠導致升級失敗的情況

支持低功耗設(shè)備的可靠升級

4、注意事項

進行遠程升級時,版本號必須按照"XXX.YYY.ZZZ"三段格式定義

不同場景的功能模塊不要同時加載,否則會導致功能沖突

升級過程中需保持網(wǎng)絡(luò)連接穩(wěn)定

建議在升級前檢查設(shè)備電量,確保有足夠電量完成升級。

6.3 Air780EHM 開發(fā)板上演示項目功能

準備硬件環(huán)境

Air780EHM 開發(fā)板一塊

TYPE-C USB 數(shù)據(jù)線一根

可聯(lián)網(wǎng)的 SIM 卡(用于遠程升級場景)

ttl 小板(可選,用于物理串口升級)

準備軟件環(huán)境

Luatools燒錄工具

內(nèi)核固件

腳本文件:對應(yīng)場景的腳本文件

模擬工具

串口升級:Python 環(huán)境和 main.py 腳本

遠程升級

演示流程

文件系統(tǒng)升級演示

使用 Luatools 燒錄升級包到文件系統(tǒng)

燒錄 fota_file.lua 相關(guān)腳本

觀察日志輸出,驗證升級是否成功

串口升級演示

燒錄 fota_uart.lua 相關(guān)腳本

按下 Power 鍵啟動升級模式

運行 Python 腳本發(fā)送升級包

觀察串口輸出和升級進度

遠程升級演示

在 IoT 平臺創(chuàng)建設(shè)備和升級任務(wù)

燒錄對應(yīng)場景的腳本

設(shè)備自動連接平臺并檢測升級

觀察升級進度和結(jié)果

6.4 升級擴展

支持藍牙功能的模塊比如 Air8000A 或者 Air8101 等模組,可以通過藍牙升級,具體升級可參考對應(yīng)教程文檔。

七、注意事項與常見問題

7.1 注意事項

1、版本號格式:

使用 IoT 平臺時,項目的 VERSION 必須為三段數(shù)字格式(如 "001.000.001"),否則平臺版本比對可能出錯。

2、PRODUCT_KEY:

使用 IoT 平臺時,必須在 main.lua 中正確定義全局變量 PRODUCT_KEY,其值需從 IoT 平臺的項目中獲取。

3、重啟時機:

下載升級包成功(result 為 0)后,通常需要調(diào)用 rtos.reboot() 重啟設(shè)備以更新。你可以根據(jù)需要延遲重啟。

4、自建服務(wù)器規(guī)則:

使用 libfota2 擴展庫的時候,填寫自建服務(wù)器 url 時候記得 url 前面拼上###

需要升級時,服務(wù)器應(yīng)返回 HTTP 200,消息體為升級文件內(nèi)容。

無需升級時,服務(wù)器應(yīng)返回 HTTP 300 或以上的狀態(tài)碼。

5、使用 iot 平臺需要注意:

設(shè)備在自己名下;

代碼中項目 key(PRODUCT_KEY)要填寫正確;

配置好升級包文件后需要指定升級設(shè)備,配置需要升級設(shè)備的 imei;

升級失敗可以在 iot 平臺中打開固件升級->升級日志頁面,輸入 iemi 來查看下升級失敗的原因是什么。

wKgZPGmC49aAUhL2AANkSEvzm2k083.png

7.2 為什么升級后我的模塊沒有任何反應(yīng)了,像是變磚一樣

有多種可能,

7.2.1 檢查腳本

首先先檢查下用戶自己的腳本,有可能是引起重啟/死機的代碼寫在了最前面,例如新加的某個值或者函數(shù)為 nil 但是還是去做了些加減乘除或者判斷大小的邏輯。可以直接本地燒錄下新版本的 core+ 腳本驗證,如果有 fskv 等用到 flash 的代碼,可能需要仔細檢查才能排除問題,比如下載的時候勾選如下圖所示的兩個選項。

7.2.2 檢查 core

如果是僅腳本升級,但是沒注意使用了新 core 中才有的接口,就有可能引起循環(huán)重啟,如果重啟在代碼最開頭,模塊可能來不及打印任何日志就重啟了,可以直接本地燒錄下新版本的 core+ 腳本驗證,如果有 fskv 等用到 flash 的代碼,可能需要仔細檢查。

7.3 檢查過腳本和 core,沒問題,為什么會循環(huán)升級 6 次以后禁止升級

檢查下升級包是否正常,有時候因為人員誤操作,經(jīng)常會出現(xiàn)舊腳本 + 新 core 或者新腳本 + 舊 core 的意外組合,

例如:

本來應(yīng)該如下表描述的一樣

wKgZO2mC5QSAdd0OAAAaUAjniWM290.png

操作人員失誤后變成了如下

wKgZO2mC5RWAVDEmAAA69ik3u8g389.png

然后誤操作舊版本(1) 和誤操作新版本(1)進行差分,這樣雖然腳本版本號舊版本大于了新版本,但是 core 的舊版本小于新版本,所以升級平臺依舊認為是依次有效的升級,下發(fā)了升級包。

升級完成后,模塊內(nèi)部腳本版本號變成了 001.000.000 core 版本號為 V2004 ,下次模塊請求升級的時候,當前固件上報的腳本版本號(001.000.000)依舊小于云平臺存儲的腳本版本號(001.000.005),然后繼續(xù)下發(fā)升級包,就這么循環(huán)升級,直到流量耗盡,建議可以做一個類似 iot 平臺的禁止升級規(guī)則

wKgZO2mC5SyAF_N6AAEXlIhz66A670.png

在正確生成差分包,并且上傳成功后,可以在 iot 平臺里解除禁止升級的限制

在"我的設(shè)備"中選擇升級 imei 所在的項目,然后點擊右邊的"解除禁止升級",

wKgZPGmC5UKAL7_LAAFNWHKofqA224.png

確定“導致設(shè)備循環(huán)升級的異常”已經(jīng)處理完成后,點擊確定解除,即可解除限制升級

wKgZPGmC5WaAAeDOAAFr5-HIKFY019.png

7.4 如何處理同個項目外面有多個版本設(shè)備的升級情況

7.4.1 場景 1:多種不同內(nèi)核固件版本都要升級為最新版本內(nèi)核固件 + 最新腳本

需要對每個版本都生成對應(yīng)的差分包

操作步驟:

7.4.2 場景 2:多種不同內(nèi)核固件版本 + 不同版本腳本都要升級為最新版本腳本,既只升級腳本。

操作步驟:

7.4.3 升級規(guī)則說明

內(nèi)核固件:需分情況對待,4G 模組系列比如 Air780EXX 系列、Air724UG、Air8000 系列等僅支持差分升級,wifi 模組 Air8101/Air8101A 是全量升級

腳本:支持全量升級,可一次性完成

7.5 fota 升級對 fskv 或文件系統(tǒng)的影響

7.5.1 遠程升級時,會清除 FSKV 中的數(shù)據(jù)嗎?

默認不會,F(xiàn)SKV 數(shù)據(jù)存儲在獨立分區(qū),遠程升級主要操作 FOTA 專用分區(qū)、ap/cp 分區(qū)、用戶腳本分區(qū),不會直接修改 FSKV 分區(qū)。

7.5.2 遠程升級時,自己創(chuàng)建的文件會被刪除嗎?

不會,用戶文件系統(tǒng)中自行創(chuàng)建的文件會保留,不會影響用戶文件。

八、fota 錯誤總結(jié)

8.1 差分包過大

wKgZPGmC5kSAAhW2AAKHaIIWB04929.png


8.2 iot 平臺升級沒有配置 imei

wKgZPGmC5mWAU-KiAAS9Pikv15c614.pngwKgZPGmC5oGAQjYPAAGNp8b3xS0733.png


8.3 制作差分包時的舊固件不是模組中實際的固件

下面例子模組中實際固件是 2016_2 號固件

制作差分時用的 2020_1 號固件對 2016_1 號固件制作的差分包

wKgZO2mC5qGAaWNVAARU7eLXN9o810.pngwKgZPGmC5sqARHKuAAQySFnanJs578.png

平臺校驗版本通過,正常下發(fā)升級包

wKgZPGmC5t-ABM1yAAG_dQrzfSc749.png

8.4 不同編號固件制作差分包

不同編號的固件制作差分包的時候通常制作的差分包過大,升級失敗,日志見 8.1

wKgZPGmC5vyAP9vbAAE1FCPwbT0788.png

問題將會持續(xù)更新......

今天的內(nèi)容就分享到這里了~

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FOTA
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    8175
  • LuatOS
    +關(guān)注

    關(guān)注

    0

    文章

    156

    瀏覽量

    2693
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    LuatOS FOTA升級全解析

    在實際項目中,Core優(yōu)化與腳本迭代往往需要同步推進。LuatOS支持腳本與Core的聯(lián)合FOTA升級,極大提升維護靈活性。本文將系統(tǒng)講解升級包制作、版本號管理、設(shè)備綁定等環(huán)節(jié),助你構(gòu)
    的頭像 發(fā)表于 02-04 15:36 ?884次閱讀
    <b class='flag-5'>LuatOS</b> <b class='flag-5'>FOTA</b><b class='flag-5'>升級</b>全解析

    零基礎(chǔ)入門:用libfota2實現(xiàn)第三方服務(wù)器FOTA升級服務(wù)

    ?即使你是FOTA新手通過本教程掌握遠程固件升級的核心實現(xiàn)。我們以libfota2為客戶端核心,結(jié)合自建第三方服務(wù)器,提供一份零基礎(chǔ)可
    的頭像 發(fā)表于 01-19 18:35 ?99次閱讀
    零基礎(chǔ)入門:用libfota2實現(xiàn)第三方服務(wù)器<b class='flag-5'>FOTA</b><b class='flag-5'>升級</b>服務(wù)

    FOTA升級全流程教學:基于libfota2與第三方服務(wù)器搭建

    遠程固件升級不再是大廠專屬,借助libfota2,你可以為自己的設(shè)備搭建私有FOTA系統(tǒng)。本文將“手把手”帶你完成從服務(wù)端搭建、固件包發(fā)布到設(shè)備端升級響應(yīng)的完整流程。所有環(huán)節(jié)均基于第
    的頭像 發(fā)表于 01-19 18:35 ?218次閱讀
    <b class='flag-5'>FOTA</b><b class='flag-5'>升級</b>全流程教學:基于libfota2與第三方服務(wù)器搭建

    LuatOS-Air轉(zhuǎn)LuatOS常見故障排查手冊

    方案,打造一份實用的“不翻車”操作指南。 一、lua版本不一樣 LuatOS-Air使用的是lua5.1版本,本身不支持位移運算符。 LuatOS使用的是lua5.3版本,取消了mod
    的頭像 發(fā)表于 01-13 19:20 ?133次閱讀
    <b class='flag-5'>LuatOS</b>-Air轉(zhuǎn)<b class='flag-5'>LuatOS</b>常見故障排查手冊

    掌握LuatOS系統(tǒng)消息:新手能看懂的列表詳解

    你是否在LuatOS開發(fā)中遇到過事件不響應(yīng)、回調(diào)未觸發(fā)的問題?這很可能與系統(tǒng)消息列表的配置或使用不當有關(guān)。作為LuatOS事件驅(qū)動模型的核心組件,消息列表管理著所有異步消息的排隊與分發(fā)。本文以新手
    的頭像 發(fā)表于 01-13 18:12 ?119次閱讀
    掌握<b class='flag-5'>LuatOS</b>系統(tǒng)消息:<b class='flag-5'>新手</b><b class='flag-5'>也</b>能看懂的列表詳解

    LuatOS MCU核心庫全接觸:新手操作與功能測試攻略!

    ?MCU芯片級開發(fā)新手如何快速掌握核心技能?本文圍繞LuatOS的MCU核心庫,系統(tǒng)演示時鐘頻率獲取、唯一ID讀取、高精度計時、IO復用配置等核心功能測試,并通過豐富示例,幫助開發(fā)者輕松入門,迅速
    的頭像 發(fā)表于 11-12 14:30 ?292次閱讀
    <b class='flag-5'>LuatOS</b> MCU核心庫全接觸:<b class='flag-5'>新手</b><b class='flag-5'>操作</b>與功能測試攻略!

    新手必備:LuatOS MCU核心庫功能測試與實踐指南

    新手如何快速掌握MCU芯片級開發(fā)?本文通過LuatOS的MCU核心庫,全面演示時鐘頻率獲取、唯一ID讀取、高精度計時、IO復用配置等核心功能的測試流程,并提供實用示例,幫助開發(fā)者高效入門,輕松應(yīng)對
    的頭像 發(fā)表于 11-12 14:26 ?337次閱讀
    <b class='flag-5'>新手</b>必備:<b class='flag-5'>LuatOS</b> MCU核心庫功能測試與實踐<b class='flag-5'>指南</b>

    USB設(shè)計操作指南:硬件關(guān)鍵與LuatOS API開發(fā)技巧!

    本文以Air780EPM系列低功耗模組為實例,分享USB接口硬件設(shè)計的要點以及LuatOS高效開發(fā)API的助力作用。旨在指導開發(fā)者在設(shè)計中規(guī)避常見陷阱,高效構(gòu)建穩(wěn)定可靠的USB應(yīng)用。 ? 在
    的頭像 發(fā)表于 11-11 18:29 ?263次閱讀
    USB設(shè)計<b class='flag-5'>操作</b><b class='flag-5'>指南</b>:硬件關(guān)鍵與<b class='flag-5'>LuatOS</b> API開發(fā)技巧!

    嵌入式入門必看!迅為RK3568?V2.0升級新手輕松玩轉(zhuǎn)

    嵌入式入門必看!迅為RK3568?V2.0升級新手輕松玩轉(zhuǎn)
    的頭像 發(fā)表于 10-28 13:26 ?431次閱讀
    嵌入式入門必看!迅為RK3568?V2.0<b class='flag-5'>升級</b>,<b class='flag-5'>新手</b><b class='flag-5'>也</b><b class='flag-5'>能</b>輕松玩轉(zhuǎn)

    零基礎(chǔ)能玩轉(zhuǎn)TCP/IP?LuatOS上手全攻略

    TCP/IP看似復雜,但借助LuatOS的簡化開發(fā)模式,即使沒有網(wǎng)絡(luò)編程經(jīng)驗,能在短時間內(nèi)輕松實現(xiàn)通信功能。本指南將帶你一步步用LuatOS快速入門,真正實現(xiàn)“輕松搞定”。 提到網(wǎng)絡(luò)
    的頭像 發(fā)表于 10-15 17:28 ?536次閱讀
    零基礎(chǔ)<b class='flag-5'>也</b>能玩轉(zhuǎn)TCP/IP?<b class='flag-5'>LuatOS</b>上手全攻略

    快速掌握TCP/IP?LuatOS新手入門指南

    想快速上手TCP/IP通信卻不知從何開始?LuatOS為開發(fā)者提供了簡潔高效的開發(fā)路徑。通過本指南的實操步驟,你將發(fā)現(xiàn),實現(xiàn)網(wǎng)絡(luò)連接其實比想象中更簡單。 提到網(wǎng)絡(luò)應(yīng)用,就繞不開TCP/IP ——它不
    的頭像 發(fā)表于 10-15 17:27 ?663次閱讀
    快速掌握TCP/IP?<b class='flag-5'>LuatOS</b><b class='flag-5'>新手</b>入門<b class='flag-5'>指南</b>

    音響配件氣密性檢測儀操作指南新手輕松上手-岳信儀器

    在音響生產(chǎn)與質(zhì)檢過程中,確保配件的氣密性是保障音質(zhì)穩(wěn)定、延長產(chǎn)品壽命的關(guān)鍵環(huán)節(jié)。許多企業(yè)已逐步采用專業(yè)的音響配件氣密性檢測儀來替代傳統(tǒng)的泡水法或人工聽漏,但面對新設(shè)備,不少新手操作員仍感到無從下手
    的頭像 發(fā)表于 10-10 11:00 ?357次閱讀
    音響配件氣密性檢測儀<b class='flag-5'>操作</b><b class='flag-5'>指南</b>,<b class='flag-5'>新手</b><b class='flag-5'>也</b><b class='flag-5'>能</b>輕松上手-岳信儀器

    燒錄工具操作教程:新手快速掌握~

    燒錄工具看似復雜,其實操作很簡單!現(xiàn)在就為你奉上清晰明了的使用說明,即使是新手迅速掌握。 本文就以 Air780EPM 開發(fā)板為例,演示燒錄工具的使用步驟。 ? 一、生成量產(chǎn)文件
    的頭像 發(fā)表于 09-26 19:20 ?920次閱讀
    燒錄工具<b class='flag-5'>操作</b>教程:<b class='flag-5'>新手</b><b class='flag-5'>也</b><b class='flag-5'>能</b>快速掌握~

    10分鐘上手寫代碼,LuatOS協(xié)程輕松掌握!

    10分鐘學會LuatOS協(xié)程,從此你的程序像通勤族利用碎片時間一樣游刃有余。現(xiàn)在就去動手試一試,開啟異步編程新體驗! 寫給第一次聽說協(xié)程的你?: 別怕!協(xié)程不是復雜概念,看完這篇,10分鐘就能
    的頭像 發(fā)表于 04-10 15:18 ?660次閱讀
    10分鐘上手寫代碼,<b class='flag-5'>LuatOS</b>協(xié)程輕松掌握!

    FOTA遠程升級的10個關(guān)鍵點!技術(shù)小白必須收藏

    本文將針對FOTA升級過程中的十大常見問題提供專業(yè)解答,幫助您規(guī)避風險,實現(xiàn)安全高效的固件更新。 一、FOTA遠程升級常見問題?? 01. 遠程升級
    的頭像 發(fā)表于 04-10 14:53 ?680次閱讀
    <b class='flag-5'>FOTA</b>遠程<b class='flag-5'>升級</b>的10個關(guān)鍵點!技術(shù)小白必須收藏