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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

wKgZO2kg8naAHK-lAAAwidjUaJQ168.png

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

1.核心定位與核心特性

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

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

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

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

?唯一ID訪問:每個(gè)數(shù)據(jù)項(xiàng)對(duì)應(yīng)唯一ID,通過ID精準(zhǔn)讀寫,支持SN、MAC、密鑰等16種標(biāo)準(zhǔn)類型及自定義類型。

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

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

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

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

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

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

開發(fā)中需通過ID標(biāo)識(shí)數(shù)據(jù)項(xiàng),常用標(biāo)準(zhǔn)ID如下:

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

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

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

1.前期準(zhǔn)備:環(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é)點(diǎn)或PC工具開發(fā)

(2)編譯配置

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

?UBOOT層:默認(rèn)集成源碼,需確保編譯時(shí)勾選“Vendor Storage Support”。

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

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

UBOOT層主要用于設(shè)備啟動(dòng)時(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ù)項(xiàng)ID,pbuf =接收數(shù)據(jù)的緩沖區(qū),size =期望讀取字節(jié)數(shù)

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

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

?入?yún)ⅲ篿d =數(shù)據(jù)項(xiàng)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ū)動(dòng)級(jí)讀寫)

Kernel層通過驅(qū)動(dòng)接口提供IOCTL節(jié)點(diǎn),供應(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層無需手動(dòng)初始化,驅(qū)動(dòng)加載時(shí)自動(dòng)完成初始化。

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

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

1.打開設(shè)備節(jié)點(diǎn):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é)點(diǎn)。

示例代碼片段(讀取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.測試驗(yàn)證:工具與方法

(1)PC工具測試(RKDevInfoWriteTool)

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

?寫后重啟:寫完后重啟機(jī)器;

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

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

1.數(shù)據(jù)大?。簢?yán)格遵循64字節(jié)整數(shù)倍分配規(guī)則,避免空間浪費(fèi);

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

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

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

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


審核編輯 黃宇

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

    關(guān)注

    27

    文章

    794

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    RK3562 單板機(jī)圖形用戶界面開發(fā)完全手冊:Qt Creator 配置與 LVGL 案例詳解(二)

    本節(jié)為創(chuàng)龍科技RK3562 單板機(jī) Qt 開發(fā)指南,核心包含開發(fā)環(huán)境配置、工程編譯、網(wǎng)絡(luò)調(diào)試及實(shí)戰(zhàn)案例。詳細(xì)說明 Qt Creator 交叉編譯工具鏈、Debuggers、Kits 配置流程
    的頭像 發(fā)表于 02-27 10:42 ?4976次閱讀
    <b class='flag-5'>RK</b>3562 單板機(jī)圖形用戶界面<b class='flag-5'>開發(fā)</b>完全手冊:Qt Creator 配置與 LVGL 案例詳解(二)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    中微愛芯AiP8F35XX系列觸摸芯片開發(fā)指南

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

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

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

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

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

    STM32F10xxx硬件開發(fā)指南

    官方STM32F10xxx硬件開發(fā)指南
    發(fā)表于 04-14 14:59 ?3次下載

    【北京迅為】iTOP-RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開發(fā)-第4章 UART基礎(chǔ)知識(shí)

    【北京迅為】iTOP-RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開發(fā)-第4章 UART基礎(chǔ)知識(shí)
    的頭像 發(fā)表于 03-17 15:50 ?1038次閱讀
    【北京迅為】iTOP-<b class='flag-5'>RK</b>3568<b class='flag-5'>開發(fā)</b>板OpenHarmony系統(tǒng)南向驅(qū)動(dòng)<b class='flag-5'>開發(fā)</b>-第4章 UART<b class='flag-5'>基礎(chǔ)知識(shí)</b>

    【北京迅為】iTOP-RK3568OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開發(fā)GPIO基礎(chǔ)知識(shí)

    【北京迅為】iTOP-RK3568OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開發(fā)GPIO基礎(chǔ)知識(shí)
    的頭像 發(fā)表于 03-06 11:23 ?1254次閱讀
    【北京迅為】iTOP-<b class='flag-5'>RK</b>3568OpenHarmony系統(tǒng)南向驅(qū)動(dòng)<b class='flag-5'>開發(fā)</b>GPIO<b class='flag-5'>基礎(chǔ)知識(shí)</b>