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

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

3天內不再提示

Matter工廠數據使用介紹(二)

泰凌微電子 ? 來源:泰凌微電子 ? 2024-04-03 10:47 ? 次閱讀

接上一篇分享,我們將使用工廠數據構建一個示例應用,討論如何工廠數據以及大致介紹如何使用自己的工廠數據的實現。

1

使用工廠數據構建一個示例應用

您可以使用上述步驟手動生成工廠數據集,也可以使用 Telink 平臺構建系統,該系統使用 Kconfig 選項自動創建工廠數據內容。

要啟用自動生成工廠數據集,請轉到示例應用的目錄,并使用以下選項構建示例應用:

westbuild---DCONFIG_CHIP_FACTORY_DATA=y-DCONFIG_CHIP_FACTORY_DATA_BUILD=y

或者,您還可以將 `CONFIG_CHIP_FACTORY_DATA_BUILD=y` 的Kconfig設置添加到示例應用的 `prj.conf` 文件中。

注意,如果這一步遇到了 ModuleNotFoundError 的報錯,請在 connectedhomeip 目錄下執行以下命令更新依賴項后,再次嘗試構建:

.environment/pigweed-venv/bin/python3-mpipinstall-rscripts/setup/requirements.telink.txt

構建成功后會得到開啟了工廠數據分區的應用的固件,和獨立的工廠數據集二進制文件,燒錄時需要分別燒錄它們。

每個工廠數據參數都有一個默認值。這些在Kconfig文件中有描述。要為工廠數據參數設置一個新值,可以通過將其作為構建參數列表提供,或使用交互式 Kconfig 界面來完成。

1

提供工廠數據參數作為生成參數列表

這種提供工廠數據的方式可以與第三方構建腳本一起使用,因為它只使用一個命令??梢酝ㄟ^west命令的附加選項開啟工廠數據功能:

westbuild---DCONFIG_CHIP_FACTORY_DATA=y--DCONFIG_CHIP_FACTORY_DATA_BUILD=y--DCONFIG_CHIP_DEVICE_DISCRIMINATOR=0xF11

或者,也可以將相關的 Kconfig 選項行添加到示例應用的 `prj.conf` 文件中。

2

分開燒錄應用固件和工廠數據集

我們的應用固件和工廠數據集都是二進制 BIN 文件,可以使用 BDT 工具和 Telink burning key 燒錄到設備的Flash指中。

燒錄時使用 Telink BDT 工具的多地址燒錄即可:

選擇 Tool 中的 Multi-address download

91d16238-f15c-11ee-a297-92fbcf53809c.png

此處以 v1.1-branch 分支上的固件為例,工廠數據的偏移值是 `0x104000`:

91de8d5a-f15c-11ee-a297-92fbcf53809c.png

2

設置工廠數據

將獨立的工廠數據集,合并到示例應用的固件之中的一種方法,是使用在[使用工廠數據構建一個示例應用](#使用工廠數據構建一個示例應用)中描述的Telink平臺構建系統,并使用附加下面的選項構建示例應用 `-DCONFIG_CHIP_FACTORY_DATA_MERGE_WITH_FIRMWARE=y`:

westbuild--

-DCONFIG_CHIP_FACTORY_DATA=y

-DCONFIG_CHIP_FACTORY_DATA_BUILD=y

-DCONFIG_CHIP_FACTORY_DATA_MERGE_WITH_FIRMWARE=y

為了更好地理解以上設置項所對應的需求場景,可以參見下面的表格:

91f994ec-f15c-11ee-a297-92fbcf53809c.png

9209a45e-f15c-11ee-a297-92fbcf53809c.png

您還可以構建一個使用自動生成的新CD、DAC和PAI證書的示例應用。新生成的證書將被自動添加到工廠數據集里。要生成新證書,通過使用附加選項構建示例應用來禁用默認證書 `-DCHIP_FACTORY_DATA_USE_DEFAULT_CERTS=n`:

westbuild--

-DCONFIG_CHIP_FACTORY_DATA=y

-DCONFIG_CHIP_FACTORY_DATA_BUILD=y

-DCONFIG_CHIP_FACTORY_DATA_MERGE_WITH_FIRMWARE=y

-DCONFIG_CHIP_FACTORY_DATA_USE_DEFAULT_CERTS=n

注意:要使用Telink平臺構建系統生成新的證書,您需要系統變量PATH中的 `chip-cert` 可執行文件。要了解如何獲取 `chip-cert`,請參考[構建matter工具](#構建-matter-工具)中的步驟,并將新構建的可執行文件添加到系統變量PATH中。Cmake構建系統將自動找到這個可執行文件。

然后,在示例應用目錄中,可以使用生成的一個二進制固件,便可以同時寫入應用固件和新生成的工廠數據。

3

使用自己的工廠數據實現

上面介紹的工廠數據生成過程僅是對Telink平臺有效的示例應用。根據用途和格式的不同,可以用不同的方式從設備的閃存中讀取工廠數據集。在Telink示例中,工廠數據以 `CBOR` 格式存儲。

還可以創建一個包含任意格式的所有工廠數據組件表的HEX文件,然后實現一個解析器來讀取所有參數并將它們傳遞給提供程序。每個制造商都可以通過在Matter棧中實現解析器和工廠數據訪問器來自行實現工廠數據集。

使用 Telink工廠數據提供程序(FactoryDataProvider.h)和工廠數據解析器(FactoryDataParser.h)作為示例。設備使用工廠數據解析器(FactoryDataParser.h)讀取輸出原始數據,將其解碼并存儲在 `FactoryData` 結構中。工廠數據提供程序(FactoryDataProvider.h)實現使用這個解析器獲取所有需要的工廠數據參數,并將它們提供給Matter核心。

在Telink示例中, `FactoryDataProvider`是一個模板類,繼承自`DeviceAttestationCredentialsProvider`, `CommissionableDataProvider`, 和 `DeviceInstanceInfoProvider` 類。

自定義實現必須繼承這些類并實現它們的功能來從設備的閃存中獲取所有工廠數據集。這些類是虛類,需要由派生類重寫。

要覆蓋繼承的類,請完成以下步驟:

1、覆蓋以下方法:

//=====MembersfunctionsthatimplementtheDeviceAttestationCredentialsProvider

CHIP_ERRORGetCertificationDeclaration(MutableByteSpan&outBuffer)override;

CHIP_ERRORGetFirmwareInformation(MutableByteSpan&out_firmware_info_buffer)override;

CHIP_ERRORGetDeviceAttestationCert(MutableByteSpan&outBuffer)override;

CHIP_ERRORGetProductAttestationIntermediateCert(MutableByteSpan&outBuffer)override;

CHIP_ERRORSignWithDeviceAttestationKey(constByteSpan&messageToSign,MutableByteSpan&outSignBuffer)override;

//=====MembersfunctionsthatimplementtheCommissionableDataProvider

CHIP_ERRORGetSetupDiscriminator(uint16_t&setupDiscriminator)override;

CHIP_ERRORSetSetupDiscriminator(uint16_tsetupDiscriminator)override;

CHIP_ERRORGetSpake2pIterationCount(uint32_t&iterationCount)override;

CHIP_ERRORGetSpake2pSalt(MutableByteSpan&saltBuf)override;

CHIP_ERRORGetSpake2pVerifier(MutableByteSpan&verifierBuf,size_t&verifierLen)override;

CHIP_ERRORGetSetupPasscode(uint32_t&setupPasscode)override;

CHIP_ERRORSetSetupPasscode(uint32_tsetupPasscode)override;

//=====MembersfunctionsthatimplementtheDeviceInstanceInfoProvider

CHIP_ERRORGetVendorName(char*buf,size_tbufSize)override;

CHIP_ERRORGetVendorId(uint16_t&vendorId)override;

CHIP_ERRORGetProductName(char*buf,size_tbufSize)override;

CHIP_ERRORGetProductId(uint16_t&productId)override;

CHIP_ERRORGetSerialNumber(char*buf,size_tbufSize)override;

CHIP_ERRORGetManufacturingDate(uint16_t&year,uint8_t&month,uint8_t&day)override;

CHIP_ERRORGetHardwareVersion(uint16_t&hardwareVersion)override;

CHIP_ERRORGetHardwareVersionString(char*buf,size_tbufSize)override;

CHIP_ERRORGetRotatingDeviceIdUniqueId(MutableByteSpan&uniqueIdSpan)override;

2、將新創建的解析器和提供程序文件移動到項目目錄中。

3、把文件添加到 `CMakeList.txt` 中。

4、禁用工廠數據提供程序的默認實現和Telink實現,以開始使用您自己的工廠數據解析器和提供程序實現。這可以通過以下方式之一來實現:

把Kconfig設置 `CONFIG_CHIP_FACTORY_DATA_CUSTOM_BACKEND=y` 加到 `prj.conf` 文件中。

用以下選項構建一個示例:

westbuild---DCONFIG_CHIP_FACTORY_DATA_CUSTOM_BACKEND=y


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

    關注

    10

    文章

    1562

    瀏覽量

    146818
  • 二進制
    +關注

    關注

    2

    文章

    717

    瀏覽量

    41310
  • 泰凌微
    +關注

    關注

    5

    文章

    127

    瀏覽量

    10662

原文標題:【技術專欄】Matter工廠數據使用介紹(二)

文章出處:【微信號:telink-semi,微信公眾號:泰凌微電子】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    什么是Matter?為什么使用Matter?Matter的主要內容干貨分享BF2 Matter網絡技術應用

    BF2 matter應用 :什么是Matter?為什么使用Matter?Matter的主要內容; 在BF2上開發Matter應用;什么是
    的頭像 發表于 07-13 21:35 ?3186次閱讀
    什么是<b class='flag-5'>Matter</b>?為什么使用<b class='flag-5'>Matter</b>?<b class='flag-5'>Matter</b>的主要內容干貨分享BF2 <b class='flag-5'>Matter</b>網絡技術應用

    Matter生態中Multi-Fabric使用介紹

    地改善用戶體驗。 接下來我們就以Apple和Google生態為例,為大家介紹如何將一個泰凌 Matter設備
    的頭像 發表于 04-10 10:22 ?892次閱讀
    <b class='flag-5'>Matter</b>生態中Multi-Fabric使用<b class='flag-5'>介紹</b>

    matter芯片選型指南

    matter芯片選型指南matter作為CSA聯盟推出的一項新的技術,新的技術意味著新的機會,這將讓CSA聯盟耕耘多年的公司(Zigbee產品)和剛加入CSA聯盟并計劃開發matter的公司回到
    發表于 02-14 07:55

    Matter來了,未來Zigbee會被Matter替代嗎?

    Matter問世后智能家居領域中zigbee的地位會被取代嗎?
    發表于 11-18 16:46

    Matter設備的測試與認證

    泰凌微電子積極參與了Matter協議中的Matter設備的功能開發,Matter設備的測試與認證,以及Matter標準中文解讀等方面的工作。作為致力于低功耗高性能無線連接SoC芯片解決
    的頭像 發表于 08-10 09:03 ?2436次閱讀

    如何將非Matter設備橋接到Matter網絡

    Matter橋接設備可為 Matter 結構中的非 Matter 物聯網設備提供連接。消費者可以在使用新Matter 設備的同時,繼續使用現有的非
    的頭像 發表于 10-24 16:30 ?1071次閱讀

    Matter協議是什么?IoT時代Matter能解決什么問題?

    近日,CSA聯盟(Connectivity Standards Alliance)正式對外發布了Matter 1.0 標準,并宣布認證計劃現已開放。這意味著智能家居品牌廠商可以對其產品進行
    發表于 10-27 17:25 ?5475次閱讀

    Matter訪談—芯科科技完整的端到端開發平臺加速Matter應用及產品落地

    根據全球技術市場研究公司 ABI Research 的最新報告,從 2022 年到 2030 年,將有超過 55 億臺符合 Matter 標準的智能家居設備出貨, Matter 的重要性不言而喻
    的頭像 發表于 11-28 15:15 ?839次閱讀

    Matter數據模型和開發

    在第一篇內容中,我們介紹了智能家居互聯標準 Matter會帶來什么好處。本文,我們來了解一下Matter數據模型和開發。
    的頭像 發表于 12-01 10:18 ?1072次閱讀

    Matter開發介紹

    在第一篇內容中,我們介紹了智能家居互聯標準Matter會帶來什么好處。本文,我們來了解一下Matter數據模型和開發。一個簡單的Matter
    的頭像 發表于 12-01 11:41 ?1844次閱讀
    <b class='flag-5'>Matter</b>開發<b class='flag-5'>介紹</b>

    詳解:如何獲得Matter認證?

    Matter徽標,意味今后可最大程度節約開發、維護成本和上市時間,享受品牌效應,獲得更廣闊的市場。本文將介紹如何獲得Matter認證?建議收藏備用。Matter認證
    的頭像 發表于 01-11 16:33 ?1642次閱讀
    詳解:如何獲得<b class='flag-5'>Matter</b>認證?

    2023 Matter中國區開發者大會直播回放-芯科科技全棧Matter開發方案

    上觀看直播超過萬人次。(數據來源: CSA 連接標準聯盟視頻號、智能頭條視頻號)。 此次 Silicon Labs (亦稱 “ 芯科科技 ” )作為黃金贊助成員積極參與了 Matter 中國區開發者
    的頭像 發表于 12-08 11:25 ?294次閱讀
    2023 <b class='flag-5'>Matter</b>中國區開發者大會直播回放-芯科科技全棧<b class='flag-5'>Matter</b>開發方案

    Matter協議是什么?Matter協議詳細介紹

    Matter協議,也被稱為Connectivity Standard,是由Connectivity Standards Alliance(CSA)開發的開源智能家居標準。它旨在通過使來自不同制造商
    的頭像 發表于 12-08 16:20 ?1044次閱讀

    Matter最新TestHarness工具使用介紹(一)

    為了簡化Matter設備的測試和認證過程,連接標準聯盟開發了一套標準化的測試工具,即Matter TestHarness。
    的頭像 發表于 04-24 10:38 ?400次閱讀
    <b class='flag-5'>Matter</b>最新TestHarness工具使用<b class='flag-5'>介紹</b>(一)

    Matter網關是什么?Matter網關的功能作用

    Matter網關是指支持Matter協議的設備,Matter(之前被稱為Project CHIP,Connected Home over IP)是由 Connectivity Standards
    的頭像 發表于 05-27 14:13 ?92次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>