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

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

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

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

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

接上一篇分享,我們將使用工廠數(shù)據(jù)構(gòu)建一個示例應(yīng)用,討論如何工廠數(shù)據(jù)以及大致介紹如何使用自己的工廠數(shù)據(jù)的實現(xiàn)。

1

使用工廠數(shù)據(jù)構(gòu)建一個示例應(yīng)用

您可以使用上述步驟手動生成工廠數(shù)據(jù)集,也可以使用 Telink 平臺構(gòu)建系統(tǒng),該系統(tǒng)使用 Kconfig 選項自動創(chuàng)建工廠數(shù)據(jù)內(nèi)容。

要啟用自動生成工廠數(shù)據(jù)集,請轉(zhuǎn)到示例應(yīng)用的目錄,并使用以下選項構(gòu)建示例應(yīng)用:

westbuild---DCONFIG_CHIP_FACTORY_DATA=y-DCONFIG_CHIP_FACTORY_DATA_BUILD=y

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

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

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

構(gòu)建成功后會得到開啟了工廠數(shù)據(jù)分區(qū)的應(yīng)用的固件,和獨立的工廠數(shù)據(jù)集二進制文件,燒錄時需要分別燒錄它們。

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

1

提供工廠數(shù)據(jù)參數(shù)作為生成參數(shù)列表

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

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

或者,也可以將相關(guān)的 Kconfig 選項行添加到示例應(yīng)用的 `prj.conf` 文件中。

2

分開燒錄應(yīng)用固件和工廠數(shù)據(jù)集

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

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

選擇 Tool 中的 Multi-address download

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

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

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

2

設(shè)置工廠數(shù)據(jù)

將獨立的工廠數(shù)據(jù)集,合并到示例應(yīng)用的固件之中的一種方法,是使用在[使用工廠數(shù)據(jù)構(gòu)建一個示例應(yīng)用](#使用工廠數(shù)據(jù)構(gòu)建一個示例應(yīng)用)中描述的Telink平臺構(gòu)建系統(tǒng),并使用附加下面的選項構(gòu)建示例應(yīng)用 `-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

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

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

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

您還可以構(gòu)建一個使用自動生成的新CD、DAC和PAI證書的示例應(yīng)用。新生成的證書將被自動添加到工廠數(shù)據(jù)集里。要生成新證書,通過使用附加選項構(gòu)建示例應(yīng)用來禁用默認(rèn)證書 `-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平臺構(gòu)建系統(tǒng)生成新的證書,您需要系統(tǒng)變量PATH中的 `chip-cert` 可執(zhí)行文件。要了解如何獲取 `chip-cert`,請參考[構(gòu)建matter工具](#構(gòu)建-matter-工具)中的步驟,并將新構(gòu)建的可執(zhí)行文件添加到系統(tǒng)變量PATH中。Cmake構(gòu)建系統(tǒng)將自動找到這個可執(zhí)行文件。

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

3

使用自己的工廠數(shù)據(jù)實現(xiàn)

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

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

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

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

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

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

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、將新創(chuàng)建的解析器和提供程序文件移動到項目目錄中。

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

4、禁用工廠數(shù)據(jù)提供程序的默認(rèn)實現(xiàn)和Telink實現(xiàn),以開始使用您自己的工廠數(shù)據(jù)解析器和提供程序?qū)崿F(xiàn)。這可以通過以下方式之一來實現(xiàn):

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

用以下選項構(gòu)建一個示例:

westbuild---DCONFIG_CHIP_FACTORY_DATA_CUSTOM_BACKEND=y


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

    關(guān)注

    10

    文章

    1635

    瀏覽量

    148040
  • 二進制
    +關(guān)注

    關(guān)注

    2

    文章

    795

    瀏覽量

    41654
  • 泰凌微
    +關(guān)注

    關(guān)注

    7

    文章

    148

    瀏覽量

    10808

原文標(biāo)題:【技術(shù)專欄】Matter工廠數(shù)據(jù)使用介紹(二)

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

收藏 人收藏

    評論

    相關(guān)推薦

    什么是Matter?為什么使用MatterMatter的主要內(nèi)容干貨分享BF2 Matter網(wǎng)絡(luò)技術(shù)應(yīng)用

    BF2 matter應(yīng)用 :什么是Matter?為什么使用Matter?Matter的主要內(nèi)容; 在BF2上開發(fā)Matter應(yīng)用;什么是
    的頭像 發(fā)表于 07-13 21:35 ?4707次閱讀
    什么是<b class='flag-5'>Matter</b>?為什么使用<b class='flag-5'>Matter</b>?<b class='flag-5'>Matter</b>的主要內(nèi)容干貨分享BF2 <b class='flag-5'>Matter</b>網(wǎng)絡(luò)技術(shù)應(yīng)用

    Matter生態(tài)中Multi-Fabric使用介紹

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

    matter芯片選型指南

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

    工廠供電 第2()版

    工廠供電 第2()版共10章。首先,介紹工廠供配電工作意義、要求及課程任務(wù),扼要講述供配電相關(guān)的基本知識;然后,分別介紹
    發(fā)表于 12-30 14:24 ?0次下載
    <b class='flag-5'>工廠</b>供電 第2(<b class='flag-5'>二</b>)版

    Matter設(shè)備的測試與認(rèn)證

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

    如何將非Matter設(shè)備橋接到Matter網(wǎng)絡(luò)

    Matter橋接設(shè)備可為 Matter 結(jié)構(gòu)中的非 Matter 物聯(lián)網(wǎng)設(shè)備提供連接。消費者可以在使用新Matter 設(shè)備的同時,繼續(xù)使用現(xiàn)有的非
    的頭像 發(fā)表于 10-24 16:30 ?1312次閱讀

    Matter協(xié)議是什么?IoT時代Matter能解決什么問題?

    近日,CSA聯(lián)盟(Connectivity Standards Alliance)正式對外發(fā)布了Matter 1.0 標(biāo)準(zhǔn),并宣布認(rèn)證計劃現(xiàn)已開放。這意味著智能家居品牌廠商可以對其產(chǎn)品進行
    發(fā)表于 10-27 17:25 ?6550次閱讀

    Matter數(shù)據(jù)模型和開發(fā)

    在第一篇內(nèi)容中,我們介紹了智能家居互聯(lián)標(biāo)準(zhǔn) Matter會帶來什么好處。本文,我們來了解一下Matter數(shù)據(jù)模型和開發(fā)。
    的頭像 發(fā)表于 12-01 10:18 ?1512次閱讀

    Matter開發(fā)介紹

    在第一篇內(nèi)容中,我們介紹了智能家居互聯(lián)標(biāo)準(zhǔn)Matter會帶來什么好處。本文,我們來了解一下Matter數(shù)據(jù)模型和開發(fā)。一個簡單的Matter
    的頭像 發(fā)表于 12-01 11:41 ?2306次閱讀
    <b class='flag-5'>Matter</b>開發(fā)<b class='flag-5'>介紹</b>

    詳解:如何獲得Matter認(rèn)證?

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

    Matter協(xié)議是什么?Matter協(xié)議詳細(xì)介紹

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

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

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

    Matter最新Test Harness工具使用介紹

    Matter的測試項根據(jù)聯(lián)盟的TestPlan目前可以分為五類:全自動測試項,半自動測試項,手動測試項,Python in docker測試項以及UI Python測試項。
    的頭像 發(fā)表于 05-08 10:42 ?2182次閱讀
    <b class='flag-5'>Matter</b>最新Test Harness工具使用<b class='flag-5'>介紹</b>(<b class='flag-5'>二</b>)

    Matter網(wǎng)關(guān)是什么?Matter網(wǎng)關(guān)的功能作用

    Matter網(wǎng)關(guān)是指支持Matter協(xié)議的設(shè)備,Matter(之前被稱為Project CHIP,Connected Home over IP)是由 Connectivity Standards
    的頭像 發(fā)表于 05-27 14:13 ?577次閱讀

    芯科科技Matter智能家居參考設(shè)計演示

    劉俊在介紹Matter標(biāo)準(zhǔn)的現(xiàn)況時提到,芯科科技作為Matter標(biāo)準(zhǔn)的發(fā)起者之一,重度參與了標(biāo)準(zhǔn)在整個行業(yè)的推廣和發(fā)展。目前Matter正在由蘋果、谷歌、亞馬遜還有三星等全球品牌推行,
    的頭像 發(fā)表于 08-20 15:08 ?904次閱讀