OTP中安全引导加载程序的正确配置是什么?

⚠️
你好。。谢谢你来到论坛。令人兴奋的消息!我们现在正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有员额和帐户都已迁移。我们现在只接受新论坛的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
6个员额/0个新员额
最后一篇文章
托马斯Donhauser
离线
最后一次见到:4个月1周前
加入:2019-10-20 10:45
OTP中安全引导加载程序的正确配置是什么?

嗨PM_Dialog !

我需要开发一个特殊的OPT安全引导加载程序,不知道正确的配置是什么。在ble_suota_loader的配置如下:
#定义dg_configEXEC_模式_是否镜像
#定义dg_configCODE_LOCATION NON_VOLATILE_IS_NONE

但是,如果我遵循da14683文档中的捕获“3.4.3 BootROM序列”,配置也可能是这样的:

#定义dg_configEXEC_模式_是否缓存
#定义dg_配置代码_位置非易失性_为OTP

我已经反复阅读了这些文档,但我没有得出任何结论,说明它们的优点和缺点。到目前为止,我所知道的是,由于我的安全引导加载程序大于16K,所以模式“镜像”和非“易失性”的组合“OTP”不起作用。

所以我的问题是:什么是最好的选择?

非常感谢。
托马斯

设备:
PM_对话框
离线
最后一次见到:2天21小时前
工作人员
加入:2018-02-08 11:03
你好托马斯,

你好托马斯,

让我查一下,然后给你答复。

同时,您是否检查了以下教程?

http://lpccs-docs.dialog-semiconductor.com/da14683_secure_boot/index.html

谢谢,下午好

托马斯Donhauser
离线
最后一次见到:4个月1周前
加入:2019-10-20 10:45
你好PM_Dialog,

你好PM_Dialog,

谢谢你的回答。我已经知道文件了。但正如我所提到的,在没有可用文档的情况下,底层内容详细描述了任何高级脚本的工作方式或它们的作用。然而,出于某些原因,我必须编写自己的安全引导加载程序,当没有cli_程序员可用时,这些程序将在以后进行编程。我受够了。最后一部分是正确的内存和执行配置问题。

总的来说,我认为da14683是一个幻觉SOC,我很高兴选择它。但是,所有关于脚本的文档都非常糟糕,这些脚本是由Smart Snipped Studio提供的。SUOTA的工作方式是由脚本预先定义的,它的工作方式并不明显。我花了几天时间调试cli_programmer和mkimage等工具,以便更深入地了解它们的功能。例如:bin2image为QSPI和OTP制作不同的图像。我“猜”这和bootRom有关。但我不知道是什么和为什么。

这是我在调试时学到的。但我更希望有一份解释它的文件。因此,当我阅读那些显示脚本执行截图的文档时,我一次又一次地感到不安。这绝对不是开发人员所需要的。这对那些想在业余爱好的地下室里玩的人来说很好,但对专业人士来说完全不够。

我的客户是一家大公司,我不能告诉他们:“看,亚博全网这是一个很酷的脚本,可以为你做任何事情,但我不知道具体是什么。但相信我,你不需要知道。Dialog的工程师非常聪明,我完全信任他们。”

因此,如果我能得到专业人士的文件和解释,我将不胜感激。

非常感谢。

托马斯

PM_对话框
离线
最后一次见到:2天21小时前
工作人员
加入:2018-02-08 11:03
你好托马斯,

你好托马斯,

请参阅图9:启用安全功能的OTP布局在DA14683数据表中。根据该图,OTP中用于放置Secure辅助引导加载程序的可用空间是58516个字节,而不是16K。

您能告诉我们您在哪里找到16K的限制吗?

此外,镜像或缓存模式与保存代码的大小无关。请在下面查找更多详细信息:

-镜像模式:所有代码都加载到RAM中,并完全从RAM中执行。在这种情况下,整个代码和数据必须适合128K RAM(也可以配置为144K=128K RAM+16K缓存RAM)

-XIP缓存模式:代码通过缓存机制就地执行(XIP)。缓存机制使用16K的RAM进行缓存。数据和RAM保留代码必须适合128K。闪存中的代码总量可能高达32MB,这样就有足够的空间容纳如此大的代码。

16K的缓存并不意味着代码完全加载在那里。它是一种缓存机制,根据需要加载部分可执行代码。它也是一种只读缓存机制。对于OTP,缓存模式或镜像模式都不会对代码大小产生任何影响,因为OTP的大小小于RAM。

在您的情况下,建议的方法是使用现有的ble_suota_加载程序和安全引导OTP配置,并为您添加额外的功能。如果您的额外功能导致二进制文件大于OTP中58516字节的可用空间,那么缓存或镜像显然没有帮助,因为代码首先不适合OTP。在这种情况下,一个可能的解决方案可能是将您的安全引导拆分为一个更复杂的方案,其中在OTP中是初始安全引导,它将以安全的方式从闪存加载其更大的自定义安全引导。然后,从闪存定制的安全引导必须以您想要的安全方式执行实际的FW加载。

谢谢,下午好

星期一
离线
最后一次见到:8个月1个星期前
加入:2020-06-20 08:35
你好对话框支持,

你好对话框支持,

我正在使用的是DA14683,应用程序固件写入外部闪存,通过SmartSnippets工具箱写入DA14683的OTP,现在我想读取OTP中的BD地址和芯片ID,我需要使用哪些接口和函数?

谢谢,
佩里

PM_对话框
离线
最后一次见到:2天21小时前
工作人员
加入:2018-02-08 11:03
嗨weel1,

嗨weel1,

谢谢你在网上发帖。为了从OTP获取BD地址,请查看来自过去论坛线程的说明-下面提供了链接:

https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-软件/如何获取bd地址otp rom

如果你有任何后续问题,我建议创建一个新的论坛帖子,因为这是旧的。

谢谢,下午好