我正在尝试使用以下代码读取OTP内存:
int cnt = 100000;
setbits16(clk_amba_reg,otp_enable,1);//启用OTP时钟
while(getword16(ana_status_reg)&ldo_otp_ok)!= ldo_otp_ok && cnt--)
//在读取模式下设置OTP
setword32(otpc_mode_reg,0x1);
UINT8_T * OTP_MAJOR =(UINT8_T *)0x47F54;
UINT8_T * OTP_MINOR =(UINT8_T *)0x47F58;
memcpy(&user_beacon_config.major_alt_val1,otp_major,2);
memcpy(&user_beacon_config.minor_alt_val2,Otp_minor,2);
setbits16(clk_amba_reg,otp_enable,0);//禁用OTP时钟
使用PLT,我将数据写入OTP地址7F54:6C 7F55:00 7F56:00 7F57:00 7F58:00
但似乎程序运行时,它不会正确抓取数据。我的广告字符串显示主要和次要才能为0。
或者要测试这一点,我可以只写下我想要的值的自定义数据字段,并在稍后的时间内完好地完整的OTP标题字段的其余部分?诸如32kHz场选择,BD地址等领域......?
设备:
嗨DLO,
我正在研究你的问题,我会尽快回复你。
谢谢,PM_DIALOG.
嗨pm_dialog,
我想我已经解决了它,谢谢你的支持!
嗨DLO,
很高兴你识上你的问题。
谢谢,PM_DIALOG.