我正在尝试将旧DA14580项目迁移到DA14585:
旧代码:
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 *)0x47F56;
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时钟
新代码:
int cnt = 100000;
setbits16(clk_amba_reg,otp_enable,1);//启用OTP时钟
while(getword16(ana_status_reg)&ldo_vdd_ok)!= ldo_vdd_ok && cnt--)
//在读取模式下设置OTP
setword32(otpc_mode_reg,0x1);
UINT8_T * OTP_MAJOR =(UINT8_T *)0x47F54;
UINT8_T * OTP_MINOR =(UINT8_T *)0x47F56;
memcpy(&beacon_data [major],otp_major,2);
memcpy(&beacon_data [minor],Otp_minor,2);
setbits16(clk_amba_reg,otp_enable,0);//禁用OTP时钟
使用ldo_vdd_ok而不是ldo_otp_ok它是正确的吗?
我认为DA14585具有较大的OTP大小,内存位置仍然正常工作吗?
谢谢
嗨DLO,
如果我正确地确定,则尝试将现有应用程序置于DA14580和SDK5.0.4至DA14585和SDK6.0.14。我的理解是否正确?
根据数据表:
DA14585:ANA_STATUS_REG [LDO_VDD_OK]:表示LDO_VDD处于规定
DA14580:ANA_STATUS_REG [LDO_OTP_OK]:表示LDO_OTP处于规范状态
所以,我认为它可能不是问题。
在DA14585的情况下,请参阅数据表和第9节内存映射。OTP从0x07f80000开始,结束于0x07f8ffff。
请查看UM-B-082:DA14585&DA14586 SDK6移植指南用户指南。
希望它有用!
谢谢,PM_DIALOG.
谢谢PM!
我一直在咨询UM-B-082。我确实错过了从数据表的OTP开始和结束,并将回去审查它。谢谢!
嗨DLO,
谢谢你接受我的答案。如果您有任何Follwo-Up问题,请创建一个新的论坛帖子。
谢谢,PM_DIALOG.