2添加从OTP内存中读取的函数,名为read \u bd \u address \u from \u OTP()。源代码如下:
静态bool静态bool读静态bool读写,bd\U U U U U地址从otp(uint32\t otp t t t t t t t t t t t t t t t t t静态bool读写,U U U U U地址,uint32\静态bool读写,U U U U U地址从otp(uint32\t otp t t t t t t t p u CellU偏移量,uint8\t t t t t bd U地址,uint32\t t t t U U U U U地址,uint32\u U U U U U U U地址,uint32\U U U U地址地址地址地址从静态boot8\t t t t t t 8\U U U U地址,U U U U地址从otp U U U U地址,U U U U U U U U U U U U U地址,U U U U U U U U U U U U U U U U U U U U地址,静态otp t t t t t t t t三是;目前,是正确的;是正确的;是正确的;是正确的;是正确的;是正确的;是错误的;是错误的;是错误的;是错误的;是错误的;是错误的;是错误的;是错误的;是错误的;是错误的;是错误的;是正确的;是错误的;是错误的;是正确的;是正确的;是正确的;otpc的otpc的fifo fifo读取(uint32 t t t t*)r buf,OTU buf,otp,otp,otp,OTU,otp地址,otp最终[1]=(r\u buf[0]>>8);bd;是8;bd公司地址,是地址,otp地址,otp地址,otp,最后[2]=(2]=(r\u buf[0]>>8]>>>8);bd;bd;bd;bd;bd公司地址;bd公司;bd公司地址;bd公司地址;bd公司地址,地址f[0]>>24);bd\u address\u otp\u final[4]=(r\u buf[1]>>0);bd\u address\u otp\u final[5]=(r\u buf[1]>>8);bd\u address\u otp\u final[6]=(r\u buf[1]>>16);bd\u address\u otp\u final[7]=(r\u buf[1]>>24);memcpy(bd\u address,bd\u address\u otp\u final,8);返回正确;}
你好,奈杰尔,
中的BD地址放在OPT报头中的特定地址(0x07F8EA58)中。请尝试使用SmartSnippets工具箱中的OTP工具读取OPT头。要从OTP报头读取BD地址,应遵循以下步骤:
1添加OTP控制器的LLD(低级驱动程序)
2添加从OTP内存中读取的函数,名为read \u bd \u address \u from \u OTP()。源代码如下:
三。从OTP内存中检索BD地址
谢谢,下午好
嗨,对话,
我基于你函数的测试似乎对DA14681不起作用。你能告诉我为什么“单元格偏移”是0x1D4B吗?与0x07F8EA58(OTP中的BD地址)有什么关系?我很好奇“physical_otp_address=hw_otpc_cell_to_mem(otp_cell_offset)”,然而,physical_otp_address=0x7F80000+(cell_offset<<3)in hw_otpc_cell to_mem()。它将不是0x07F8EA58。
谢谢
奈杰尔
你好nigelyang,
param[in]otp\单元格\偏移:otp单元格的偏移量。计算物理内存地址的公式是(0x7F80000+(otp\u cell\u offset<<3))。E、 g.偏移量0x1D4B对应于0x7F8EA58物理地址(BD地址的位置)
param[in]bd\u address:以1字节为单位的单元格内容
param[in]phy\u otp\u address:otp存储单元的物理地址(用于验证目的)
param[out]:如果已成功执行读取请求,则为True,否则为false
正如我在宝贵的回答中提到的,中的BD地址放在OPT头的特定地址(0x07F8EA58)中。您是否使用SmartSnippets工具箱中的OTP工具阅读了OPT头。BD地址是否位于0x07F8EA58中?否则,OTP地址位于哪个位置?
谢谢,下午好
嗨,对话,
我发现我的问题来自于使用cm\u sys\u clk\u set(sysclk\u PLL48)设置系统时钟。用cm\u sys\u clk\u set(sysclk\u XTAL16M)修改后,我得到了正确的OTP的BD地址;还有一个问题,如果使用cm\u sys\u clk\u set(sysclk\u PLL48),读取OTP BD地址的正确方法是什么?
谢谢
你好nigelyang,
是的,你应该用同样的方法读取BD地址。如果将时钟更改为PLL,是否可以从工具箱访问OPT头并读取包含的内容?如果您发现前面的答案有用,请将其中一个标记为“已接受”。
谢谢,下午好