日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

wKgZO2kg8naAHK-lAAAwidjUaJQ168.png

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

1.核心定位與核心特性

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

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

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

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

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

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

Vendor Storage支持EMMC、SPI NOR、NAND等主流存儲介質,整體架構分為“索引區(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.關鍵ID定義(標準類型)

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

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

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

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

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

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

(2)編譯配置

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

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

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

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

UBOOT層主要用于設備啟動時讀取關鍵數(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ā)(驅動級讀寫)

Kernel層通過驅動接口提供IOCTL節(jié)點,供應用層調用,核心接口與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層無需手動初始化,驅動加載時自動完成初始化。

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

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

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

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

3.調用IOCTL接口完成讀寫;

4.關閉設備節(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模式寫號(適用于在空片情況下使用);

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

?適用場景:量產階段批量寫入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

三、使用途徑:不同場景下的應用選擇

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

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

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

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

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

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

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

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


審核編輯 黃宇

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

    關注

    27

    文章

    861

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RK3576 單板機 C/Python/MQTT 應用開發(fā)手冊(二)

    本文為創(chuàng)龍科技RK3576 單板機應用開發(fā)指南,包含開發(fā)環(huán)境配置、GDB 調試、外設控制(LED/CAN/ 串口)、Python 開發(fā)及 MQTT 通信案例。提供完整編譯命令、代碼解析
    的頭像 發(fā)表于 04-21 10:43 ?108次閱讀
    <b class='flag-5'>RK</b>3576 單板機 C/Python/MQTT 應用<b class='flag-5'>開發(fā)</b>手冊(二)

    芯科科技低功耗Wi-Fi開發(fā)指南

    Silicon Labs(芯科科技)整理并制作了低功耗Wi-Fi開發(fā)指南的網站資源,以幫助開發(fā)人員使用低功耗 Wi-Fi 6協(xié)議進行下一代物聯(lián)網產品開發(fā)。
    的頭像 發(fā)表于 04-21 10:09 ?249次閱讀

    RK3576 單板機 C/Python/MQTT 應用開發(fā)手冊(一)

    本文為創(chuàng)龍科技RK3576 單板機應用開發(fā)指南,包含開發(fā)環(huán)境配置、GDB 調試、外設控制(LED/CAN/ 串口)、Python 開發(fā)及 MQTT 通信案例。提供完整編譯命令、代碼解析
    的頭像 發(fā)表于 04-20 13:55 ?374次閱讀
    <b class='flag-5'>RK</b>3576 單板機 C/Python/MQTT 應用<b class='flag-5'>開發(fā)</b>手冊(一)

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

    本文為創(chuàng)龍科技RK3576 單板機 Linux 系統(tǒng)開發(fā)指南,涵蓋 SDK 搭建、內核與引導程序開發(fā)、根文件系統(tǒng)修改、鏡像打包、分區(qū)配置及硬件資源調優(yōu)等全流程。提供命令實操、參數(shù)說明與
    的頭像 發(fā)表于 04-15 11:18 ?582次閱讀
    <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 ?181次閱讀
    <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 ?7452次閱讀
    <b class='flag-5'>RK</b>3562 單板機嵌入式 ROS2 <b class='flag-5'>開發(fā)指南</b>:環(huán)境搭建與工程編譯

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

    本文為創(chuàng)龍科技RK3562 單板機應用開發(fā)指南,核心包含交叉編譯工具鏈部署、GDB 遠程調試,以及 LED、CAN、TCP/UDP、MQTT 等實戰(zhàn)案例。文檔支持 C/C++ 與 Python 雙語
    的頭像 發(fā)表于 02-25 11:35 ?1808次閱讀
    <b class='flag-5'>RK</b>3562 單板機 Linux 應用<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ā)指南:內核配置、實時性優(yōu)化與案例詳解

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    目的; 場景2:特性Bundle動態(tài)化,特性和宿主應用發(fā)布解耦; 開發(fā)指南 目錄說明 動態(tài)加載時要求應用沙箱內目錄架構如下所示: /data/data/應用/files/arkui-x
    發(fā)表于 06-15 23:33
    佛学| 峡江县| 大石桥市| 盘锦市| 普格县| 日照市| 会理县| 海兴县| 广平县| 新田县| 浮山县| 永仁县| 汤原县| 资中县| 微博| 朝阳区| 尉犁县| 剑川县| 郓城县| 岳西县| 沧源| 安义县| 淮滨县| 夏邑县| 红原县| 进贤县| 射阳县| 沧源| 白城市| 万宁市| 广丰县| 乌恰县| 进贤县| 遂平县| 洛阳市| 军事| 沂源县| 边坝县| 新宁县| 东阳市| 多伦县|