dwm_mac_addr_set_once
MACアドレスリストをOTPメモリに書き込みます。慎重に使用してください。書き込み後は値を変更できません。これは、UWB、BLE、Ethernet、またはWi-Fiインターフェースで使用するデバイスのMACアドレスプールを提供するために、製造段階で使用することを目的としています。現在、MAC アドレスのリストは次のようにさまざまなインターフェイスに割り当てられています:
MAC アドレス 0 が UWB インターフェイスに割り当てられます。最下位 2 バイトは 0x0000 または 0xFFFF と等しくであってはなりません。
MAC アドレス 1 が BLE インターフェイスに割り当てられます。このアドレスはパブリック BLE アドレスとして使用されます。
MAC アドレス 2 はイーサネット、MAC アドレス 3 は Wi-Fi インターフェースにそれぞれ割り当てられます。アドレスは、LAA/UAA および U/I ビットに関して EUI-48 形式である必要があります。
-
void dwm_mac_addr_set_once(dwm_mac_addr_t *addr, uint8_t count)
- パラメータ
input -- mac_addr_0, [mac_addr_1], [mac_addr_2], [mac_addr_3]
mac_addr_0 -- 48 ビット値 (リトルエンディアンの UWB MAC アドレス)
mac_addr_1 -- 48 ビット値 (少しの BLE MAC アドレス)エンディアン)
mac_addr_2 -- 48 ビット値 (リトルエンディアンのイーサネット MAC アドレス)
mac_addr_3 -- 48 ビット値 (リトルエンディアンの WIFI MAC アドレス)
output: -- ステータスコード
Cコード例
dwm_mac_addr_list_t mac_addr_list;
dwm_mac_addr_get(&mac_addr_list);
memcpy(mac_addr_list.mac[0], (uint8_t[DWM_MAC_ADDR_LEN]){0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}, DWM_MAC_ADDR_LEN);
rv: dwm_mac_addr_set(&mac_addr_list);
if (rv != DWM_OK) {
printf("can't set MAC address list, error %d\n", rv);
}
SPI/UART 例
TLV 要求 |
||
---|---|---|
タイプ |
長さ |
価値 |
0x82 |
0x18 |
(バイト 0-5) リトルエンディアンの MAC アドレス 0
(バイト 6-11) リトルエンディアンの MAC アドレス 1
(バイト 12-17) リトルエンディアンの MAC アドレス 2
(バイト 18-23) リトルエンディアンの MAC アドレス 3
|
... |
タイプ 0x82 (130 dec) はコマンド dwm_mac_addr_set_once を意味します
TLV 応答 |
||
---|---|---|
タイプ |
長さ |
値(エラーコードを参照) |
0x40 |
0x01 |
0x00 |
タイプ0x40は、直前のコマンドの ステータスコード を意味する