⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
5个帖子/ 0新
最后一篇
DLO.
离线
最后一次露面:2个月3周前
加入:2017-05-26 16:21
OTP客户区

使用DA14580,我们用于将自定义数据写入OTP标题自定义字段(特别是在地址0x47F54和0x47F56处)。

在DA14585上,OTP更改和查看OTP标题的存储器映射,我看到以地址0x07F8F8FE20开始的客户特定字段(可用144个字节)。

以前我曾经读过使用的数据:

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);

通过新的DA14585,我以为我只需要改变它:

UINT8_T * OTP_MAJOR =(UINT8_T *)0x07F8FE20;
uint8_t * otp_minor =(uint8_t *)0x07f8fe22;
memcpy(&beacon_data [major],otp_major,2);
memcpy(&beacon_data [minor],Otp_minor,2);

但是,当我这样做时,程序不再运行(它仍然编译)。我会尝试调试它在哪里失败,但如果我正在正确解释OTP映射,请告诉我。

谢谢,

设备:
DLO.
离线
最后一次露面:2个月3周前
加入:2017-05-26 16:21
我认为启用OTP

我认为在DA14585中启用OTP与DA14580略有不同。我在Arch_System.c上找到了一个段读取BD地址,因此我修改它以使用自定义数据字段,以下代码工作,它不会崩溃了:

hw_otpc_init();
hw_otpc_manual_read_on(false);

memcpy(&beacon_data [major],(uint8_t *)otp_hdr_customer_field_addr,2);
memcpy(&beacon_data [minor],(uint8_t *)otp_hdr_customer_field_addr + 2,2);

hw_otpc_manual_read_off();
hw_otpc_close();

PM_DIALOG.
离线
最后一次露面:1周5天前
职员
加入:2018-02-08 11:03
嗨DLO,

嗨DLO,

感谢您对社区的分享!是的,启用OTP是DA14585是DA4585的ITLTLE位不同。你是否设法解决了这次崩溃,或者需要骚动支持?

此外,在DA14585的情况下,无需6.8V编程电压,如DA14580中。有关更多信息,请参阅数据表。

谢谢,PM_DIALOG.

DLO.
离线
最后一次露面:2个月3周前
加入:2017-05-26 16:21
谢谢你检查PM,

谢谢你检查PM,

崩溃是由于在阅读前没有正确启用OTP。Memcopy将崩溃,因为它无法访问内存位置。

干杯,

PM_DIALOG.
离线
最后一次露面:1周5天前
职员
加入:2018-02-08 11:03
嗨DLO,

嗨DLO,

谢谢你的迹象。

问候,pm_dialog