您好,
除了MAC地址(广播地址)之外,我还希望将8字节的唯一ID分配给我刻录的每个OTP。
在智能片段下,在OTP标题下,有许多称为“设备唯一ID”的字段,其中前两个用于6个字节的广播地址。
如何在程序中读取这些字段?
在NVDS.C中,我找到了读取OTP广播地址的代码。
void 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
#万一
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,0x0);/// - 支持1.8V启动
#万一
#万一
}
我可以制作一个简单的8字节静态阵列,并在上面的Memcpy下面添加以下行:
memcpy(my_unique_id,(otp_bdaddr + 8),8);
这是正确的方法吗?
是否有一个不同的位置,我应该用来存储我自己的自定义用法的标识符(支持未来的堆栈等)?
我还在0x47F54看到了名为客户特定字段的字段。
谢谢
Alexsunny
设备:
嗨AlexSunny123,
谢谢你的问题在线。因此,如果我理解正确,您希望完成的是在OPT中添加其他唯一ID,期望设备BD地址?nvds_read_bdaddr_from_otp将尝试从OTP(0x7fd4)中获取地址并将地址值复制到“dev_bdaddr”。
谢谢,PM_DIALOG.