chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

RK?平臺?Vendor Storage?開發(fā)指南:基礎(chǔ)知識、流程與實用技巧

jf_44130326 ? 來源:Linux1024 ? 作者:Linux1024 ? 2025-11-22 07:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

瑞芯微(RK)平臺的嵌入式開發(fā)中,vendor_storage是一個核心模塊,專門用于存儲SN(序列號)、MAC地址、DRM密鑰等廠商專屬數(shù)據(jù)。它不僅提供了跨環(huán)境的數(shù)據(jù)讀寫能力,還具備可靠性校驗、掉電恢復(fù)等關(guān)鍵特性,是保障設(shè)備身份標識、功能授權(quán)等核心信息安全的重要組件。本文將從基礎(chǔ)知識、開發(fā)流程、使用途徑三方面,為開發(fā)者梳理完整的開發(fā)邏輯。

wKgZO2kg8naAHK-lAAAwidjUaJQ168.png

一、核心基礎(chǔ)知識:了解Vendor Storage是什么?

1.核心定位與核心特性

Vendor Storage的核心作用是集中管理廠商專屬靜態(tài)數(shù)據(jù),這些數(shù)據(jù)通常需要在設(shè)備全生命周期中穩(wěn)定存儲,且支持多環(huán)境訪問。其核心特性包括:

?多場景讀寫:支持UBOOT、Kernel、Linux應(yīng)用層、PC工具直接讀寫,覆蓋設(shè)備啟動到運行的全流程;

?數(shù)據(jù)可靠性:自帶Hash校驗、掉電恢復(fù)機制,避免數(shù)據(jù)損壞或丟失;

?靈活分配:數(shù)據(jù)按64字節(jié)整數(shù)倍分配(1-64字節(jié)占64字節(jié),65-128字節(jié)占128字節(jié),以此類推);

?唯一ID訪問:每個數(shù)據(jù)項對應(yīng)唯一ID,通過ID精準讀寫,支持SN、MAC、密鑰等16種標準類型及自定義類型。

2.存儲架構(gòu)與數(shù)據(jù)布局

Vendor Storage支持EMMC、SPI NOR、NAND等主流存儲介質(zhì),整體架構(gòu)分為“索引區(qū)+數(shù)據(jù)區(qū)+校驗區(qū)”三部分:

?索引區(qū)(64K):存儲數(shù)據(jù)項的ID、偏移量、大小、空閑空間等元信息,便于快速定位數(shù)據(jù);

?數(shù)據(jù)區(qū)(按需分配):存儲實際廠商數(shù)據(jù),如SN、WIFI MAC、LAN MAC、BT MAC等,支持用戶自定義數(shù)據(jù)項;

?校驗區(qū)(8字節(jié)):包含4字節(jié)Hash校驗值和4字節(jié)版本號,確保數(shù)據(jù)完整性。

3.關(guān)鍵ID定義(標準類型)

開發(fā)中需通過ID標識數(shù)據(jù)項,常用標準ID如下:

數(shù)據(jù)類型 對應(yīng)ID名稱 用途
序列號 VENDOR_SN_ID 設(shè)備唯一標識
有線網(wǎng)MAC VENDOR_LAN_MAC_ID 局域網(wǎng)身份標識
無線網(wǎng)MAC VENDOR_WIFI_MAC_ID WIFI模塊身份標識
藍牙MAC VENDOR_BT_MAC_ID 藍牙模塊身份標識
DRM密鑰 VENDOR_DRM_KEY_ID 數(shù)字版權(quán)保護授權(quán)
傳感器校準數(shù)據(jù) VENDOR_SENSOR_CALIBRATION_ID 傳感器精度校準參數(shù)
自定義數(shù)據(jù) VENDOR_CUSTOM_ID(含擴展) 用戶自定義廠商數(shù)據(jù)

二、開發(fā)流程:從環(huán)境配置到功能實現(xiàn)

Vendor Storage的開發(fā)流程圍繞“環(huán)境配置→接口調(diào)用→測試驗證”三步驟展開,覆蓋UBOOT、Kernel、應(yīng)用層全場景。

1.前期準備:環(huán)境配置與源碼依賴

(1)源碼路徑

?UBOOT層:

u-boot/board/rockchip/common/storage/storage.c

?Kernel層:

kernel/drivers/soc/rockchip/rk_vendor_storage.c、sdmmc_vendor_storage.c

?應(yīng)用層:基于Kernel提供的IOCTL節(jié)點或PC工具開發(fā)

(2)編譯配置

?Kernel層:通過Menuconfig啟用驅(qū)動(路徑:Drivers -> SOC -> Rockchip -> Vendor Storage);

?UBOOT層:默認集成源碼,需確保編譯時勾選“Vendor Storage Support”。

2.核心開發(fā):接口調(diào)用(分場景實現(xiàn))

(1)UBOOT層開發(fā)(設(shè)備啟動階段讀寫)

UBOOT層主要用于設(shè)備啟動時讀取關(guān)鍵數(shù)據(jù)(如MAC地址),核心接口如下:

?初始化:int vendor_storage_init(void)

?功能:初始化Vendor Storage模塊

?返回值:0 =成功,非0 =失敗

?讀取數(shù)據(jù):int vendor_storage_read(u32 id, void *pbuf, u32 size)

?入?yún)ⅲ篿d =數(shù)據(jù)項ID,pbuf =接收數(shù)據(jù)的緩沖區(qū),size =期望讀取字節(jié)數(shù)

?返回值:非- 1 =實際讀取字節(jié)數(shù),-1 =讀取失敗

?寫入數(shù)據(jù):int vendor_storage_write(u32 id, void *pbuf, u32 size)

?入?yún)ⅲ篿d =數(shù)據(jù)項ID,pbuf =待寫入數(shù)據(jù)緩沖區(qū),size =寫入字節(jié)數(shù)

?返回值:0 =成功,非0 =失敗

示例場景:UBOOT階段讀取SN并打印

vendor_storage_init();// 初始化charsn_buf[64];intret =vendor_storage_read(VENDOR_SN_ID, sn_buf,64);// 讀取SNif(ret >0) { printf("Device SN: %sn", sn_buf);}

(2)Kernel層開發(fā)(驅(qū)動級讀寫)

Kernel層通過驅(qū)動接口提供IOCTL節(jié)點,供應(yīng)用層調(diào)用,核心接口與UBOOT層類似:

?讀取數(shù)據(jù):int rk_vendor_read(u32 id, void *pbuf, u32 size)

?寫入數(shù)據(jù):int rk_vendor_write(u32 id, void *pbuf, u32 size)

?注意:Kernel層無需手動初始化,驅(qū)動加載時自動完成初始化。

(3)Linux應(yīng)用層開發(fā)(用戶態(tài)讀寫)

應(yīng)用層通過打開/dev/vendor_storage設(shè)備節(jié)點,結(jié)合IOCTL實現(xiàn)讀寫,核心步驟:

1.打開設(shè)備節(jié)點:int sys_fd = open("/dev/vendor_storage", O_RDWR, 0);

2.構(gòu)造讀寫請求(指定ID、緩沖區(qū)、數(shù)據(jù)大小);

3.調(diào)用IOCTL接口完成讀寫;

4.關(guān)閉設(shè)備節(jié)點。

示例代碼片段(讀取WIFI MAC):

intsys_fd =open("/dev/vendor_storage", O_RDWR,0);if(sys_fd =0) { printf("WIFI MAC:%02x:%02x:%02x:%02x:%02x:%02xn",     req.data[0], req.data[1], req.data[2],     req.data[3], req.data[4], req.data[5]);}close(sys_fd);

3.測試驗證:工具與方法

(1)PC工具測試(RKDevInfoWriteTool)

?兼容模式:選擇“兼容模式”下面寫號,在這種模式下面,可以選擇”強制MASKROM”強制機器到maskrom下面寫號,或者不選擇“強制MASKROM”,那么機器需要先切換到loader模式寫號(適用于在空片情況下使用);

?寫后重啟:寫完后重啟機器;

?適用場景:量產(chǎn)階段批量寫入SN、MAC等數(shù)據(jù),或快速驗證數(shù)據(jù)正確性。

wKgZO2kg8naAIr_rAAD6RK8DnnI490.png

(2)命令行工具測試(vendor_storage工具)

RK提供專用命令行工具,支持Linux環(huán)境快速讀寫,常用命令示例:

?寫入字符串到自定義ID(ID=26):

vendor_storage -w VENDOR_CUSTOM_ID_1A -t string -i "test_storage"

?讀取自定義ID數(shù)據(jù)到文件:

vendor_storage -r VENDOR_CUSTOM_ID_1A -t file -i /userdata/read.bin

?讀取SN并以字符串顯示:

vendor_storage -r VENDOR_SN_ID -t string

三、使用途徑:不同場景下的應(yīng)用選擇

根據(jù)開發(fā)階段和使用場景,可選擇不同的訪問途徑,具體如下:

使用場景 推薦途徑 優(yōu)勢
設(shè)備啟動階段(UBOOT) UBOOT層API 啟動早、資源占用少,適合關(guān)鍵數(shù)據(jù)讀取
驅(qū)動開發(fā)/內(nèi)核態(tài)操作 Kernel層API 權(quán)限高、性能好,支持底層數(shù)據(jù)管理
應(yīng)用層程序讀寫 Linux應(yīng)用層IOCTL接口 開發(fā)便捷,無需關(guān)注底層實現(xiàn)
量產(chǎn)批量寫入/快速驗證 PC工具(ProvisioningTool) 可視化操作,支持批量處理
調(diào)試/命令行快速操作 vendor_storage命令行工具 輕量化,適合Linux環(huán)境快速測試

四、開發(fā)注意事項

1.數(shù)據(jù)大?。簢栏褡裱?4字節(jié)整數(shù)倍分配規(guī)則,避免空間浪費;

2.數(shù)據(jù)可靠性:寫入關(guān)鍵數(shù)據(jù)后建議讀取校驗,確保Hash驗證通過;

3.ID唯一性:自定義ID需避開標準ID(0-255中已定義的16種類型),避免沖突;

4.權(quán)限控制:應(yīng)用層訪問/dev/vendor_storage需root權(quán)限,可通過修改設(shè)備節(jié)點權(quán)限優(yōu)化。

Vendor Storage作為RK平臺的核心廠商數(shù)據(jù)管理模塊,其設(shè)計兼顧了可靠性、靈活性和多場景適配性。掌握本文梳理的基礎(chǔ)知識、開發(fā)流程和使用途徑,可快速實現(xiàn)SN、MAC、密鑰等數(shù)據(jù)的管理需求,適配從設(shè)備啟動到量產(chǎn)交付的全流程開發(fā)場景。


審核編輯 黃宇

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

    關(guān)注

    27

    文章

    838

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    RK3576 單板機 LinuxSDK 開發(fā)與系統(tǒng)定制手冊(二)

    本文為創(chuàng)龍科技RK3576 單板機 Linux 系統(tǒng)開發(fā)指南,涵蓋 SDK 搭建、內(nèi)核與引導(dǎo)程序開發(fā)、根文件系統(tǒng)修改、鏡像打包、分區(qū)配置及硬件資源調(diào)優(yōu)等全流程。提供命令實操、參數(shù)說明與
    的頭像 發(fā)表于 04-16 15:39 ?87次閱讀
    <b class='flag-5'>RK</b>3576 單板機 LinuxSDK <b class='flag-5'>開發(fā)</b>與系統(tǒng)定制手冊(二)

    RK3576 單板機 LinuxSDK 開發(fā)與系統(tǒng)定制手冊(一)

    本文為創(chuàng)龍科技RK3576 單板機 Linux 系統(tǒng)開發(fā)指南,涵蓋 SDK 搭建、內(nèi)核與引導(dǎo)程序開發(fā)、根文件系統(tǒng)修改、鏡像打包、分區(qū)配置及硬件資源調(diào)優(yōu)等全流程。提供命令實操、參數(shù)說明與
    的頭像 發(fā)表于 04-15 11:18 ?136次閱讀
    <b class='flag-5'>RK</b>3576 單板機 LinuxSDK <b class='flag-5'>開發(fā)</b>與系統(tǒng)定制手冊(一)

    RK3562 單板機嵌入式 eMMC 健康監(jiān)測開發(fā)指南:數(shù)據(jù)采集與狀態(tài)分析

    本文為創(chuàng)龍科技RK3562 單板機 eMMC 健康管理開發(fā)指南,圍繞 emmc_get_info 案例,詳解 eMMC 的 EXT_CSD 寄存器查詢、多品牌壽命評估(擦寫次數(shù)、壞塊、壽命消耗
    的頭像 發(fā)表于 03-31 15:07 ?129次閱讀
    <b class='flag-5'>RK</b>3562 單板機嵌入式 eMMC 健康監(jiān)測<b class='flag-5'>開發(fā)指南</b>:數(shù)據(jù)采集與狀態(tài)分析

    RK3562 單板機嵌入式 ROS2 開發(fā)指南:環(huán)境搭建與工程編譯

    本文為創(chuàng)龍科技RK3562 單板機 ROS2 Foxy 開發(fā)指南,涵蓋系統(tǒng)測試與開發(fā)流程。詳細說明 Python/C++ 節(jié)點通信、turtlesim 可視化測試的實操指令,以及上位
    的頭像 發(fā)表于 03-27 11:26 ?7375次閱讀
    <b class='flag-5'>RK</b>3562 單板機嵌入式 ROS2 <b class='flag-5'>開發(fā)指南</b>:環(huán)境搭建與工程編譯

    瑞芯微RK3506 Flexbus技術(shù)開發(fā)指南,從原理、內(nèi)核配置到測試的完整攻略

    基于觸覺智能的RK3506核心板/開發(fā)板,介紹FlexBus總線的技術(shù)架構(gòu)、設(shè)備樹配置、驅(qū)動實現(xiàn)與測試方法,為嵌入式開發(fā)者提供從理論到實戰(zhàn)的一站式指南。如需
    的頭像 發(fā)表于 03-14 07:24 ?492次閱讀
    瑞芯微<b class='flag-5'>RK</b>3506 Flexbus技術(shù)<b class='flag-5'>開發(fā)指南</b>,從原理、內(nèi)核配置到測試的完整攻略

    RK3562 單板機 Linux 應(yīng)用開發(fā)實戰(zhàn)手冊:LED/CAN/TCP/UART 案例與 Python 開發(fā)(二)

    本文為創(chuàng)龍科技RK3562 單板機應(yīng)用開發(fā)指南,核心包含交叉編譯工具鏈部署、GDB 遠程調(diào)試,以及 LED、CAN、TCP/UDP、MQTT 等實戰(zhàn)案例。文檔支持 C/C++ 與 Python 雙語
    的頭像 發(fā)表于 02-25 11:35 ?1467次閱讀
    <b class='flag-5'>RK</b>3562 單板機 Linux 應(yīng)用<b class='flag-5'>開發(fā)</b>實戰(zhàn)手冊:LED/CAN/TCP/UART 案例與 Python <b class='flag-5'>開發(fā)</b>(二)

    RK3562 單板機 Linux-RT 系統(tǒng)開發(fā)指南:內(nèi)核配置、實時性優(yōu)化與案例詳解

    本文為創(chuàng)龍科技RK3562 單板機 Linux-RT 開發(fā)指南,核心聚焦實時內(nèi)核的性能測試與開發(fā)應(yīng)用。內(nèi)容包括 Linux 與 Linux-RT 實時性對比、CPU 負載測試、內(nèi)核配置編譯,以及
    的頭像 發(fā)表于 02-10 11:49 ?1.8w次閱讀
    <b class='flag-5'>RK</b>3562 單板機 Linux-RT 系統(tǒng)<b class='flag-5'>開發(fā)指南</b>:內(nèi)核配置、實時性優(yōu)化與案例詳解

    一文吃透RK平臺OTA升級開發(fā):從邏輯到調(diào)試的完整指南

    ,能讓開發(fā)者高效解決固件更新、功能迭代等問題。本文將從升級邏輯、核心技巧、調(diào)試要點到問題排查,全方位拆解 RK 平臺 OTA 升級開發(fā),附關(guān)鍵流程
    的頭像 發(fā)表于 02-09 16:26 ?679次閱讀
    一文吃透<b class='flag-5'>RK</b><b class='flag-5'>平臺</b>OTA升級<b class='flag-5'>開發(fā)</b>:從邏輯到調(diào)試的完整<b class='flag-5'>指南</b>

    RK平臺UART開發(fā)!從驅(qū)動配置到測試全流程

    完善的 UART 開發(fā)支持,本文將結(jié)合官方開發(fā)指南,從功能特點、驅(qū)動配置、測試驗證三個維度,帶大家快速掌握 RK 平臺 UART 開發(fā)技巧,
    的頭像 發(fā)表于 02-04 17:44 ?2068次閱讀
    <b class='flag-5'>RK</b><b class='flag-5'>平臺</b>UART<b class='flag-5'>開發(fā)</b>!從驅(qū)動配置到測試全<b class='flag-5'>流程</b>

    從eMMC到SPI+SSD:雙存儲方案下Vendor Storage適配指南

    Vendor Storage 訪問異常。本文將結(jié)合實際調(diào)試案例,拆解適配過程中的核心問題與解決方案,幫助開發(fā)者快速踩坑。
    的頭像 發(fā)表于 02-04 17:38 ?3514次閱讀
    從eMMC到SPI+SSD:雙存儲方案下<b class='flag-5'>Vendor</b> <b class='flag-5'>Storage</b>適配<b class='flag-5'>指南</b>

    RK?平臺?SPI?開發(fā)完全指南(驅(qū)動?+?配置?+?測試?+?優(yōu)化)

    Linux 平臺 SPI 驅(qū)動已形成完善的開發(fā)體系,支持 Master/Slave 雙模式、多速率適配及靈活配置。本文基于 Rockchip 官方開發(fā)指南,從功能特性、驅(qū)動配置、測試驗證到優(yōu)化方案
    的頭像 發(fā)表于 01-30 22:35 ?1112次閱讀
    <b class='flag-5'>RK</b>?<b class='flag-5'>平臺</b>?SPI?<b class='flag-5'>開發(fā)</b>完全<b class='flag-5'>指南</b>(驅(qū)動?+?配置?+?測試?+?優(yōu)化)

    C#上位機實戰(zhàn)開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《C#上位機實戰(zhàn)開發(fā)指南.pdf》資料免費下載
    發(fā)表于 01-11 17:15 ?6次下載

    避坑指南RK3568開發(fā)板選型,這5點沒看清千萬別下手!(附迅為驅(qū)動開發(fā)指南資源)

    避坑指南!RK3568開發(fā)板選型,這5點沒看清千萬別下手!(附迅為驅(qū)動開發(fā)指南資源)
    的頭像 發(fā)表于 10-30 15:49 ?1039次閱讀
    避坑<b class='flag-5'>指南</b>!<b class='flag-5'>RK</b>3568<b class='flag-5'>開發(fā)</b>板選型,這5點沒看清千萬別下手!(附迅為驅(qū)動<b class='flag-5'>開發(fā)指南</b>資源)

    中微愛芯AiP8F32XX系列芯片開發(fā)指南

    中微愛芯為AiP8F32XX系列芯片提供一份產(chǎn)品開發(fā)指南,幫助用戶快速掌握芯片性能,降低產(chǎn)品開發(fā)周期,提高開發(fā)效率。
    的頭像 發(fā)表于 08-13 11:39 ?4300次閱讀
    中微愛芯AiP8F32XX系列芯片<b class='flag-5'>開發(fā)指南</b>

    ArkUI-X在Android平臺動態(tài)化開發(fā)指南

    目的; 場景2:特性Bundle動態(tài)化,特性和宿主應(yīng)用發(fā)布解耦; 開發(fā)指南 目錄說明 動態(tài)加載時要求應(yīng)用沙箱內(nèi)目錄架構(gòu)如下所示: /data/data/應(yīng)用/files/arkui-x
    發(fā)表于 06-15 23:33