QSPI的DA1468X引导过程

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
7个帖子/ 0新
最后一篇
Mikle.
离线
最后一次露面:10个月前1年
加入:2019-06-20 07:19
QSPI的DA1468X引导过程

你好!我困惑并希望在使用BLE(DA14681)中了解QSPI缓存模式的启动过程中的一些帮助(DA14681)。
在Document UM-B-044(软件参考)中,它对我来说不清楚,其中从闪存中的图像中的保留区域中切断了8个字节(参考图43)?正如我所能理解的,必须有两个补丁条目(4×2),必须在启动过程中复制到RAM。所以我们松开这些条目吗?
如我所理解的:IVT(192)+64(补丁)= 256,48个修补字节从0x8000 0000,所以保留区域必须为64,而不是56。
拜托,说出我的想法是什么?

也……嗯- b - 044:
只需将标题预先生到二进制映像将在闪存中迁移整个图像并损坏
作为所有函数地址的代码都是错误的。相反,bin2image只修改第一个
0 x100字节。
但是在AN-B-046_DA1468x_booting_from_serial_interface:
flash头包含添加在flash二进制图像上的8个字节,将前248个字节向下移动8个字节。

这是否意味着248字节后有8个零字节?但是248-192=56,不是64 (patch)

设备:
PM_DIALOG.
离线
最后一次露面:1天12小时前
职员
加入:2018-02-08 11:03
嗨Mikle,

嗨Mikle,

谢谢你在线的询问。让我试着向你解释如何重定向到RAM正在发生。

  • 中断向量表(IVT)具有192Bytes(= 0xC0)大小。
  • BLE的修补程序控制器具有112字节(0x70)大小,并且是4个字节对齐,因此补丁的最大条目为122/4 = 28个条目。
  • 由于执行引导加载程序,只有256个字节(= 0x100)将从闪光灯复制到第一RAM小区(0x07C000),在添加闪存报头时发生在发生时发生的转变。将重定向256bytes是固定的并且包括IVT和来自补丁控制器的某些条目。下面您可以找到Bootloader将运行后立即镜像字节:
  1. IVT:192Bytes(= 0xC0)
  2. 补丁控制器:64bytes(= 0x40),其对应于修补的16个地址

因此,(192 + 64)= 256bytes(0x100)将被重定向到第一个RAM单元格,该ram单元格固定而不从任何闪存地址换档变为。

  • 为此,将仅将112字节中的64byts复制到RAM中。剩下的(112-64)字节= 48bytes(0x30)仍将存在于闪存中。
  • 您也可以查看SDK / LDScripts / sections.ld.h文件的init_text部分,并且您将看到之前提到的内容:0x100字节将复制到第一个RAM单元格,其中包括IVT和16个补丁条目。剩下的(0x130 - 0x100)字节= 0x30(= 48字节)对应于闪存中的12个补丁条目。

谢谢,PM_DIALOG.

附件:
Mikle.
离线
最后一次露面:10个月前1年
加入:2019-06-20 07:19
非常感谢您的回复

非常感谢您的回复
1.对于所有应用程序的Flash Requerd的内存布局,即在112个补丁字节之后保留区域中存在2雷竞技安卓下载08个字节?

2.也在数据表da14681-01-ds-v3.0在第36段“memory map”说:QSPI flash from 0x800 0000。
但是在软件参考um-b-044-da1468x中…在图43中显示:0x8000 0100,即在0x8之后有3个零,而不是n数据表中的2个零。
也许我错了?

3.此外,在答案中,您所说的:
第一个RAM单元(0x07C000),在图片0x7C0000上,但在数据表RAM中以0x7FC 0000开始。
什么是对的?
正如我可以在BLE_ADVIZE中看到的部分.INIT_TEXT .elf从0x800 0100开始,而不是在数据中心(我是关于MSB Byte)。

4.所以我的主要问题:a)装载机封面后,什么映射地址(0x0000 0000)点到48个补丁字节?
b)闪存中的代码(在208年保留字节之后)是什么映射的地址?

拜托,不要为我的愚蠢问题扔石头。

PM_DIALOG.
离线
最后一次露面:1天12小时前
职员
加入:2018-02-08 11:03
嗨Mikle,

嗨Mikle,

是的,始终保留此区域,以便保留跳转表的可扩展性以实现ROM修补。QSPI闪存从0x800 0000开始。代码和数据从0x800 0100开始。RAM从0x7FC0000开始,您是正确的 - 它是一个拼写错误!关于你的最后一个问题,你能澄清一下吗?

谢谢,PM_DIALOG.

Mikle.
离线
最后一次露面:10个月前1年
加入:2019-06-20 07:19
非常感谢。

非常感谢。

我的最后一个问题是在重对0x0后的代码地址(800 0100的代码)。IE。IVT在0x0000 0000,0x0000 0100,0x0000 0100,0x0000 0130的0x0000 0100的贴片字节。

有真正的应用程序代码吗?

在0x0000 0200?

PM_DIALOG.
离线
最后一次露面:1天12小时前
职员
加入:2018-02-08 11:03
嗨Mikle,

嗨Mikle,

Flash中的代码和数据从0x80000200开始。

谢谢,PM_DIALOG.

Mikle.
离线
最后一次露面:10个月前1年
加入:2019-06-20 07:19
是的,我明白了这一点。但

是的,我明白了这一点。但从重新映射07FC 0000至000000 0000之后,有0800 0200(不是8000 0200)。

是这个权利:0x0800 0200 => 0x0000 0200 ???