91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

RK3588平臺(tái)雙存儲(chǔ)(SPI+PCIE)OTA升級(jí)方案教學(xué)文檔

jf_44130326 ? 來(lái)源:Linux1024 ? 2026-02-01 16:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、方案概述

1.1背景與目標(biāo)

嵌入式設(shè)備中,單一存儲(chǔ)介質(zhì)可能存在容量限制或可靠性風(fēng)險(xiǎn)。RK3588平臺(tái)的雙存儲(chǔ)OTA升級(jí)方案支持SPI(如SPI NAND/NOR)與PCIE存儲(chǔ)(如PCIE SSD混合部署場(chǎng)景,通過(guò)統(tǒng)一升級(jí)引擎實(shí)現(xiàn)跨存儲(chǔ)設(shè)備的固件管理,解決多存儲(chǔ)介質(zhì)下的升級(jí)兼容性問(wèn)題,同時(shí)保障升級(jí)過(guò)程的安全性與可靠性。

1.2核心特性

?混合存儲(chǔ)支持:同時(shí)適配SPIMTD設(shè)備)與PCIE(塊設(shè)備)存儲(chǔ),支持不同類型分區(qū)獨(dú)立升級(jí)。

?固件格式擴(kuò)展:新增多存儲(chǔ)固件格式,兼容原有單存儲(chǔ)固件。

?精細(xì)化存儲(chǔ)識(shí)別:每個(gè)分區(qū)獨(dú)立標(biāo)記存儲(chǔ)類型(MTD /MTD),替代全局判斷。

?安全校驗(yàn)增強(qiáng):針對(duì)不同存儲(chǔ)類型優(yōu)化校驗(yàn)邏輯,確保數(shù)據(jù)完整性。

二、環(huán)境配置與編譯準(zhǔn)備

2.1 Buildroot配置(rk3588.config

開(kāi)啟升級(jí)功能并指定新升級(jí)引擎,確保編譯時(shí)包含必要組件:

#開(kāi)啟升級(jí)相關(guān)功能

BR2_PACKAGE_RECOVERY=y

#使用新升級(jí)程序(替代原有流程)

BR2_PACKAGE_RECOVERY_USE_UPDATEENGINE=y

#編譯recovery二進(jìn)制文件

BR2_PACKAGE_RECOVERY_RECOVERYBIN=y

#編譯新升級(jí)引擎二進(jìn)制文件

BR2_PACKAGE_RECOVERY_UPDATEENGINEBIN=y

#關(guān)閉UI(適用于無(wú)顯示場(chǎng)景)

BR2_PACKAGE_RECOVERY_NO_UI=y

2.2依賴調(diào)整(glibc.mk

為兼容雙存儲(chǔ)升級(jí)引擎,將glibc版本從2.38降級(jí)至2.31

#原版本

# GLIBC_VERSION = 2.38-27-g750a45a783906a19591fb8ff6b7841470f1f5701

#調(diào)整后版本

GLIBC_VERSION = 2.31-54-g6fdf971c9dbf7dac9bea552113fe4694015bbc4d

注:版本調(diào)整需根據(jù)實(shí)際兼容性測(cè)試結(jié)果確認(rèn)。

三、核心技術(shù)實(shí)現(xiàn)

3.1存儲(chǔ)類型定義與標(biāo)識(shí)

3.1.1存儲(chǔ)類型枚舉(rkimage.h

定義支持的存儲(chǔ)類型,包含SPIPCIE

typedef enum {

STORAGE_FLASH_CODE = 1<<0,? //閃存

STORAGE_EMMC_CODE = 1<<1,? // eMMC

STORAGE_SD0_CODE = 1<<2,? // SD0

STORAGE_SD1_CODE = 1<<3,? // SD1

STORAGE_SPINOR_CODE = 1<<9,? // SPI NORMTD設(shè)備)

STORAGE_SPINAND_CODE = 1<<8,? // SPI NANDMTD設(shè)備)

STORAGE_USB_CODE = 1<<7,? // USB存儲(chǔ)

STORAGE_PCIE_CODE = 1<<11? // PCIE存儲(chǔ)(塊設(shè)備)

//其他存儲(chǔ)類型...

} STORAGE_CODE;

3.1.2固件標(biāo)簽標(biāo)識(shí)(defineHeader.h

通過(guò)標(biāo)簽區(qū)分固件類型:

//多存儲(chǔ)固件標(biāo)簽(SPI+PCIE等混合存儲(chǔ))

#define SSFW_TAG 0x57465353

//普通單存儲(chǔ)固件標(biāo)簽

#define RKFW_TAG 0x57464B52

3.2多存儲(chǔ)固件格式設(shè)計(jì)

雙存儲(chǔ)固件采用分層打包結(jié)構(gòu),外層為容器,內(nèi)層包含各存儲(chǔ)設(shè)備的獨(dú)立固件:

update_ssfw.img(外層容器)

├── STORAGE_FW_HDR(頭部,4KB

├── tag: SSFW_TAG(標(biāo)識(shí)多存儲(chǔ)固件)

├── head_size:頭部大小

├── entry_count:存儲(chǔ)設(shè)備數(shù)量(如2個(gè):SPIPCIE

└── entry_size:每個(gè)存儲(chǔ)條目的大小

├── STORAGE_ENTRY(條目表,可變長(zhǎng))

├── [SPI存儲(chǔ)條目]

├── storage: STORAGE_SPINAND_CODE(存儲(chǔ)類型)

├── offset: SPI固件在內(nèi)層的偏移量

└── size: SPI固件大小

└── [PCIE存儲(chǔ)條目]

├── storage: STORAGE_PCIE_CODE

├── offset: PCIE固件在內(nèi)層的偏移量

└── size: PCIE固件大小

├── SPI固件(內(nèi)層,RKFW格式)

└── PCIE固件(內(nèi)層,RKFW格式)

3.3固件解析流程

3.3.1解析入口(rkimage.c

analyticImage函數(shù)根據(jù)固件標(biāo)簽判斷類型,分支處理:

int analyticImage(const char *filepath, PRKIMAGE_HDR phdr, PRKIMAGE_STORAGE image_storage, int num) {

//讀取固件頭部標(biāo)簽

if (rkimage_tag == SSFW_TAG) {

//解析多存儲(chǔ)固件(SPI+PCIE

return analyticDualStorageImage(filepath, phdr, image_storage, num);

} else if (rkimage_tag == RKFW_TAG) {

//解析普通單存儲(chǔ)固件

return analyticRKFWImage(filepath, phdr, 0, fileSize);

}

}

3.3.2多存儲(chǔ)固件解析(analyticDualStorageImage

1.讀取外層容器頭部,驗(yàn)證SSFW_TAG

2.解析條目表,獲取SPIPCIE固件的偏移量與大??;

3.分別解析內(nèi)層SPI固件和PCIE固件(調(diào)用analyticRKFWImage);

4.整合所有分區(qū)信息,并標(biāo)記每個(gè)分區(qū)的存儲(chǔ)類型(is_mtd):

?SPI存儲(chǔ)的分區(qū)(如SPI NAND)標(biāo)記為is_mtd = true;

?PCIE存儲(chǔ)的分區(qū)標(biāo)記為is_mtd = false

3.4升級(jí)執(zhí)行適配

3.4.1存儲(chǔ)類型感知的燒寫(xiě)邏輯(flash_image.c

將全局存儲(chǔ)類型判斷改為分區(qū)級(jí)判斷,適配SPIMTD)與PCIE(塊設(shè)備):

//原邏輯:全局判斷是否為MTD設(shè)備

// if (is_sdboot || is_usbboot || !isMtdDevice()) {

//新邏輯:使用當(dāng)前分區(qū)的is_mtd屬性

if (is_sdboot || is_usbboot || !pcmd->is_mtd) {

//塊設(shè)備操作(如PCIE存儲(chǔ)):直接寫(xiě)入/dev/block路徑

} else {

// MTD設(shè)備操作(如SPI存儲(chǔ)):通過(guò)mtd-utils工具操作

}

3.4.2校驗(yàn)邏輯適配(md5sum.c

comparefile函數(shù)增加is_mtd參數(shù),根據(jù)存儲(chǔ)類型選擇校驗(yàn)方式:

//新增is_mtd參數(shù)

bool comparefile(..., bool is_mtd) {

if (is_mtd) {

// MTD設(shè)備校驗(yàn)(SPI存儲(chǔ)):使用mtd讀取接口

checkdata_mtd(dest_path, md5sum_dest, dest_offset, checkSize);

} else {

//塊設(shè)備校驗(yàn)(PCIE存儲(chǔ)):使用普通文件讀取接口

checkdata(dest_path, md5sum_dest, dest_offset, checkSize);

}

}

3.4.3升級(jí)流程整合(update.c

1.升級(jí)前解析固件時(shí),通過(guò)image_storage記錄各分區(qū)的is_mtd屬性;

2.升級(jí)執(zhí)行時(shí),為每個(gè)分區(qū)的update_cmd設(shè)置is_mtd;

3.調(diào)用燒寫(xiě)函數(shù)(flash_normal/flash_bootloader)和校驗(yàn)函數(shù)(comparefile)時(shí),傳入is_mtd參數(shù),確保操作與存儲(chǔ)類型匹配。

四、關(guān)鍵技術(shù)點(diǎn)總結(jié)

技術(shù)點(diǎn)

作用

實(shí)現(xiàn)方式

多存儲(chǔ)固件格式

支持SPIPCIE固件打包

外層SSFW容器+內(nèi)層RKFW固件

分區(qū)級(jí)存儲(chǔ)標(biāo)識(shí)

區(qū)分每個(gè)分區(qū)的存儲(chǔ)類型

is_mtd屬性(true=SPIfalse=PCIE

動(dòng)態(tài)燒寫(xiě)適配

針對(duì)存儲(chǔ)類型選擇操作接口

塊設(shè)備直接寫(xiě)入/ MTD設(shè)備通過(guò)mtd-utils

校驗(yàn)邏輯適配

確保不同存儲(chǔ)類型的校驗(yàn)準(zhǔn)確性

根據(jù)is_mtd選擇校驗(yàn)方法

五、測(cè)試與驗(yàn)證

5.1測(cè)試場(chǎng)景

1.基礎(chǔ)功能測(cè)試:分別升級(jí)SPIPCIE存儲(chǔ)的分區(qū),驗(yàn)證單獨(dú)升級(jí)有效性;

2.混合升級(jí)測(cè)試:同時(shí)升級(jí)SPI(如uboot)和PCIE(如rootfs)分區(qū),驗(yàn)證跨存儲(chǔ)協(xié)同;

3.容錯(cuò)測(cè)試:升級(jí)中斷后重啟,檢查是否支持?jǐn)帱c(diǎn)續(xù)傳或回滾;

4.兼容性測(cè)試:驗(yàn)證對(duì)原有單存儲(chǔ)固件(RKFW_TAG)的兼容能力。

wKgZO2kancSATQrJAAA7LJ_L6VY686.pngwKgZO2kancSAIIldAABA4FqOeL0554.png

5.2驗(yàn)證指標(biāo)

?升級(jí)成功率:≥99.5%1000次測(cè)試);

?升級(jí)速度:SPI NAND≥8MB/s),PCIE SSD≥30MB/s);

?校驗(yàn)準(zhǔn)確性:100%識(shí)別數(shù)據(jù)篡改(通過(guò)人工修改固件測(cè)試)。

六、總結(jié)

本方案通過(guò)擴(kuò)展固件格式、引入分區(qū)級(jí)存儲(chǔ)標(biāo)識(shí)、適配動(dòng)態(tài)燒寫(xiě)與校驗(yàn)邏輯,實(shí)現(xiàn)了RK3588平臺(tái)SPIPCIE雙存儲(chǔ)的OTA升級(jí)。方案兼顧兼容性與靈活性,可滿足復(fù)雜存儲(chǔ)場(chǎng)景下的升級(jí)需求,為多存儲(chǔ)設(shè)備的嵌入式系統(tǒng)提供可靠的固件更新能力。


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

    關(guān)注

    5198

    文章

    20435

    瀏覽量

    333907
  • 存儲(chǔ)
    +關(guān)注

    關(guān)注

    13

    文章

    4786

    瀏覽量

    90053
  • RK3588
    +關(guān)注

    關(guān)注

    8

    文章

    555

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    瑞芯微RK3588開(kāi)發(fā)板RK3588 EVB和RK3588S EVB解讀

    行業(yè)類應(yīng)用產(chǎn)品;RK3588S EVB 面向高端平板、AR/VR、個(gè)人移動(dòng)互聯(lián)網(wǎng)設(shè)備等消費(fèi)類電子產(chǎn)品。 1. RK3588 EVB:高性能 多接口 RK3588 EVB采用RK3588
    的頭像 發(fā)表于 09-22 15:54 ?2.3w次閱讀
    瑞芯微<b class='flag-5'>RK3588</b>開(kāi)發(fā)板<b class='flag-5'>RK3588</b> EVB和<b class='flag-5'>RK3588</b>S EVB解讀

    RK3588 EVB 開(kāi)發(fā)板介紹

    RK3588 EVB:高性能 多接口RK3588 EVB采用RK3588芯片,RK806-2PMIC的供電
    發(fā)表于 03-16 16:39

    RK3588 EVB 用戶使用指南

    文檔主要介紹 RK3588 EVB 基本功能和硬件特性、多功能硬件配置、軟件調(diào)試操作使用方法,旨在幫助調(diào)試人員更快、更準(zhǔn)確地使用 RK3588 EVB,熟悉 RK3588 芯片開(kāi)發(fā)應(yīng)
    發(fā)表于 03-16 16:57

    重磅!基于瑞芯微RK3588旗艦芯片打造的MinipcRK3588面世

    ,而且很容易升級(jí)支持未來(lái)更高性能的擴(kuò)展。首先,RK3588采用瑞芯微最新的第四代編解碼技術(shù),真8K視頻同編同解,圖像更清晰、細(xì)節(jié)更豐富。根據(jù)產(chǎn)品需求,還可以支持更高分辨率比如12K視頻的播放,同樣,可以
    發(fā)表于 04-04 17:14

    求一種基于RK3588實(shí)現(xiàn)SPI-NOR大容量存儲(chǔ)方案

    1、基于RK3588S自研平板方案實(shí)現(xiàn)硬件存儲(chǔ)CPU: RK3588SDDR: LPDDR5 8GBNOR: SPI接口 32MB容量SSD
    發(fā)表于 05-23 14:20

    介紹一種基于RK3588平臺(tái)的便攜式8K錄播一體機(jī)解決方案

    和8K@60硬件解碼和輸出,并且作為一顆通用型SoC,RK3588有著豐富的拓展接口,下面將介紹基于KR3588平臺(tái)的便攜式8K錄播一體機(jī)解決方案。  
    發(fā)表于 07-13 16:14

    基于RK3588芯片方案開(kāi)發(fā)ARM PC項(xiàng)目

    V-by-One、LVDS等屏幕接口,可以滿足各種尺寸的一體機(jī)電腦需求?! ∈菘蛻舳藱C(jī)也是RK3588的一個(gè)應(yīng)用方向,準(zhǔn)確地講,RK3588平臺(tái)的ARMPC已經(jīng)不算是嚴(yán)格意義上的瘦客戶端機(jī)了,因?yàn)?/div>
    發(fā)表于 07-27 16:05

    求一種基于RK3588平臺(tái)的高端游戲掌機(jī)產(chǎn)品解決方案

    流暢PSP游戲,對(duì)于新發(fā)布的網(wǎng)游和高端模擬器支持較差。ScenSmart推出基于RK3588平臺(tái)的高端游戲掌機(jī)產(chǎn)品解決方案,可流暢運(yùn)行PS2游戲和最新的手游,還可以提供AR、MR游戲方案
    發(fā)表于 08-01 16:55

    求一種RK3588+FPGA高速圖像處理通信處理機(jī)解決方案

    方案,支持LPDDR4X/eMMC存儲(chǔ),擁有HDMI、MIPI、VGA、SATA等10余個(gè)外設(shè)接口,具有集成度高、性能強(qiáng)、擴(kuò)展能力強(qiáng)等特點(diǎn),滿足各類行業(yè)AIoT終端設(shè)備對(duì)產(chǎn)品的需求。RK3588
    發(fā)表于 09-15 17:41

    基于RK3588平臺(tái)的高性能XR解決方案

    近日,瑞芯微電子股份有限公司(“瑞芯微” Rockchip)與詮視科技(Xvisio Technology)聯(lián)合宣布達(dá)成戰(zhàn)略合作,基于各自優(yōu)勢(shì)和資源,雙方將共同打造基于瑞芯微RK3588平臺(tái)的高性能XR平臺(tái)解決
    的頭像 發(fā)表于 03-25 16:26 ?3310次閱讀

    基于RK3588平臺(tái)的會(huì)議平板即將發(fā)布

    瑞芯微與宇視合作推出的會(huì)議平板即將發(fā)布,據(jù)官方測(cè)試,這款 RK3588 平板安兔兔跑分可達(dá) 55 萬(wàn)。 RK3588性能強(qiáng)大,RK3588平臺(tái)針對(duì)平板瑞芯微有多款高端平板
    的頭像 發(fā)表于 10-09 16:13 ?3139次閱讀
    基于<b class='flag-5'>RK3588</b><b class='flag-5'>平臺(tái)</b>的會(huì)議平板即將發(fā)布

    RK35883588s的區(qū)別

    RK35883588s的區(qū)別 Rockchip RK3588RK3588s是兩種功能強(qiáng)大且廣受歡迎的片上系統(tǒng)(SoC)解決方案,用于一系
    的頭像 發(fā)表于 08-15 17:03 ?2.9w次閱讀

    Banana Pi BPI-W3 RK3588平臺(tái)驅(qū)動(dòng)調(diào)試篇 [ PCIE篇二 ] - PCIE的開(kāi)發(fā)指南

    Banana Pi BPI-W3 RK3588平臺(tái)驅(qū)動(dòng)調(diào)試篇 [ PCIE篇 ] - PCIE的開(kāi)發(fā)指南(二)
    的頭像 發(fā)表于 11-02 09:24 ?1945次閱讀
    Banana Pi BPI-W3 <b class='flag-5'>RK3588</b><b class='flag-5'>平臺(tái)</b>驅(qū)動(dòng)調(diào)試篇 [ <b class='flag-5'>PCIE</b>篇二 ] - <b class='flag-5'>PCIE</b>的開(kāi)發(fā)指南

    北京迅為RK3588平臺(tái)成功適配“望獲”國(guó)產(chǎn)OS

    北京迅為RK3588平臺(tái)成功適配“望獲”國(guó)產(chǎn)OS
    的頭像 發(fā)表于 04-09 15:35 ?1046次閱讀
    北京迅為<b class='flag-5'>RK3588</b><b class='flag-5'>平臺(tái)</b>成功適配“望獲”國(guó)產(chǎn)OS

    實(shí)戰(zhàn)復(fù)盤(pán):RK3588 SPI+PCIe3x4方案啟動(dòng)修復(fù),從節(jié)點(diǎn)配置到驅(qū)動(dòng)適配全解析

    ? ? ? 在 RK3588 嵌入式項(xiàng)目中, “ 接口配置不匹配 ” 是高頻踩坑點(diǎn) —— 近期 基于 linux6.1 內(nèi)核 調(diào)試 SPI 閃存 +PCIe3x4 外設(shè) 方案時(shí),就遇到
    的頭像 發(fā)表于 01-08 10:24 ?337次閱讀
    實(shí)戰(zhàn)復(fù)盤(pán):<b class='flag-5'>RK3588</b> <b class='flag-5'>SPI+PCIe</b>3x4<b class='flag-5'>方案</b>啟動(dòng)修復(fù),從節(jié)點(diǎn)配置到驅(qū)動(dòng)適配全解析