跳转到主要内容

从设备唯一ID读取更多字段?..

DA14580

7个月前

从设备唯一ID读取更多字段?..

发布的alexsunny1230点 1回复
0的问题

你好,

我想分配一个8字节的唯一id到每个OTP,我烧,除了MAC地址(广播地址)。
在智能片段中,在OTP报头下,有许多字段称为“设备唯一ID”,其中前两个用于6字节的广播地址。

如何读取程序中的这些字段?
在nvds.c中,我发现了读取OTP广播地址的代码。

空白nvds_read_bdaddr_from_otp ()

# ifdef BDADDR_FROM_OTP

的ifndef APP_BOOT_FROM_OTP
...在我的编译中定义了APP_BOOT_FROM_OTP
其他#
uint8_t *otp_bdaddr = (uint8_t *)0x20000000 + BDADDR_FROM_OTP;//其中OTP报头是BDADDR
# endif

memcpy (&dev_bdaddr otp_bdaddr, sizeof (dev_bdaddr));
SetBits16 (CLK_AMBA_REG OTP_ENABLE 0);/ /禁用OTP时钟
# ifdef SUPPORT_1_8_V
SetBits16 (DCDC_CTRL2_REG DCDC_VBAT3V_LEV 0 x0);/ / / - 1.8 v的引导支持
# endif

# endif

我可以创建一个简单的8字节静态数组,并在上面的memcpy下面添加以下一行:

Memcpy (my_unique_id, (otp_bdaddr + 8), 8);

这是正确的做法吗?
是否有一个不同的位置,我应该用来存储标识符为我自己的定制使用(以支持未来的堆栈,等等)?
我还在0x47F54中看到了称为客户特定字段的字段。

谢谢

alexsunny

7个月前

PM_Dialog

嗨alexsunny123,

谢谢你在网上提出的问题。所以,如果我理解正确,您想要完成的是在OPT中添加另一个唯一的ID,除了设备BD地址?nvds_read_bdaddr_from_otp将尝试从OTP(0x7fd4)获取地址,并将地址值复制到“dev_bdaddr”。

谢谢,PM_Dialog