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

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

wKgZO2kg8naAHK-lAAAwidjUaJQ168.png

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

1.核心定位與核心特性

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

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

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

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

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

2.存儲架構與數據布局

Vendor Storage支持EMMC、SPI NOR、NAND等主流存儲介質,整體架構分為“索引區+數據區+校驗區”三部分:

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

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

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

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

開發中需通過ID標識數據項,常用標準ID如下:

數據類型 對應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 數字版權保護授權
傳感器校準數據 VENDOR_SENSOR_CALIBRATION_ID 傳感器精度校準參數
自定義數據 VENDOR_CUSTOM_ID(含擴展) 用戶自定義廠商數據

二、開發流程:從環境配置到功能實現

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

1.前期準備:環境配置與源碼依賴

(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節點或PC工具開發

(2)編譯配置

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

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

2.核心開發:接口調用(分場景實現)

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

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

?初始化:int vendor_storage_init(void)

?功能:初始化Vendor Storage模塊

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

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

?入參:id =數據項ID,pbuf =接收數據的緩沖區,size =期望讀取字節數

?返回值:非- 1 =實際讀取字節數,-1 =讀取失敗

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

?入參:id =數據項ID,pbuf =待寫入數據緩沖區,size =寫入字節數

?返回值: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層開發(驅動級讀寫)

Kernel層通過驅動接口提供IOCTL節點,供應用層調用,核心接口與UBOOT層類似:

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

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

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

(3)Linux應用層開發(用戶態讀寫)

應用層通過打開/dev/vendor_storage設備節點,結合IOCTL實現讀寫,核心步驟:

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

2.構造讀寫請求(指定ID、緩沖區、數據大小);

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

4.關閉設備節點。

示例代碼片段(讀取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等數據,或快速驗證數據正確性。

wKgZO2kg8naAIr_rAAD6RK8DnnI490.png

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

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

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

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

?讀取自定義ID數據到文件:

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

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

vendor_storage -r VENDOR_SN_ID -t string

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

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

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

四、開發注意事項

1.數據大小:嚴格遵循64字節整數倍分配規則,避免空間浪費;

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

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

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

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


審核編輯 黃宇

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

    關注

    27

    文章

    792

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

    本節為創龍科技RK3562 單板機 Qt 開發指南,核心包含開發環境配置、工程編譯、網絡調試及實戰案例。詳細說明 Qt Creator 交叉編譯工具鏈、Debuggers、Kits 配置流程
    的頭像 發表于 02-27 10:42 ?4898次閱讀
    <b class='flag-5'>RK</b>3562 單板機圖形用戶界面<b class='flag-5'>開發</b>完全手冊:Qt Creator 配置與 LVGL 案例詳解(二)

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

    本節為創龍科技RK3562 單板機 Qt 開發指南,核心包含開發環境配置、工程編譯、網絡調試及實戰案例。詳細說明 Qt Creator 交叉編譯工具鏈、Debuggers、Kits 配置流程
    的頭像 發表于 02-26 11:41 ?247次閱讀
    <b class='flag-5'>RK</b>3562 單板機圖形用戶界面<b class='flag-5'>開發</b>完全手冊:Qt Creator 配置與 LVGL 案例詳解(一)

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

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

    RK3562 單板機 Linux-RT 系統開發指南:內核配置、實時性優化與案例詳解

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

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

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

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

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

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

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

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

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

    C#上位機實戰開發指南

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

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

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

    中微愛芯AiP8F35XX系列觸摸芯片開發指南

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

    ArkUI-X在Android平臺動態化開發指南

    目的; 場景2:特性Bundle動態化,特性和宿主應用發布解耦; 開發指南 目錄說明 動態加載時要求應用沙箱內目錄架構如下所示: /data/data/應用/files/arkui-x
    發表于 06-15 23:33

    STM32F10xxx硬件開發指南

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

    【北京迅為】iTOP-RK3568開發板OpenHarmony系統南向驅動開發-第4章 UART基礎知識

    【北京迅為】iTOP-RK3568開發板OpenHarmony系統南向驅動開發-第4章 UART基礎知識
    的頭像 發表于 03-17 15:50 ?1034次閱讀
    【北京迅為】iTOP-<b class='flag-5'>RK</b>3568<b class='flag-5'>開發</b>板OpenHarmony系統南向驅動<b class='flag-5'>開發</b>-第4章 UART<b class='flag-5'>基礎知識</b>

    【北京迅為】iTOP-RK3568OpenHarmony系統南向驅動開發GPIO基礎知識

    【北京迅為】iTOP-RK3568OpenHarmony系統南向驅動開發GPIO基礎知識
    的頭像 發表于 03-06 11:23 ?1252次閱讀
    【北京迅為】iTOP-<b class='flag-5'>RK</b>3568OpenHarmony系統南向驅動<b class='flag-5'>開發</b>GPIO<b class='flag-5'>基礎知識</b>