使用辅助引导程序时闪存地址0x1e000访问

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
6个帖子/ 0新
最后一篇
ankit.
离线
最后一次露面:3个月3周前
加入:2017-05-24 07:42
使用辅助引导程序时闪存地址0x1e000访问

你好,

我正在使用辅助引导程序,我的应用程序驻留在闪存中。Bootloader标题位于默认位置(0x1f000)。我有一些应用相关数据,即我在外部闪存中存储在0x1e000位置。有时我发现我的应用程序数据在地址0x1e000上写道。我相信我的应用程序在该地址上没有写任何垃圾数据。所以,我想确认它是辅助引导程序还是BLE堆栈访问0x1e000地址以自行使用?

如果是,请建议我可以为我的应用程序使用的位置。

设备:
lc_dialog
离线
最后一次露面:6天12小时前
职员
加入:2016-09-19 23:20
嗨ankit,

嗨ankit,

请帮我理解这个问题。您的应用程亚博国际官网平台网址序具有辅助引导程序。你可以指定这个二级引导加载程序是否居住在哪里?
在外部闪存应用中,主引导加载程序查看应用程序图像的0x00位置。如果您有辅助引导程序,则可以在闪存中自定义应用程序图像的位置。

无论主/次级引导加载程序如何,在引导时都在启动时完成的所有内容都将被复制到RAM以执行。因此,BLE堆栈不会访问闪存。除非用户应用程序请求读/写,否则SDK的其他部分都没有访问闪存。

最好的,
LC.

ankit.
离线
最后一次露面:3个月3周前
加入:2017-05-24 07:42
我的二级引导程序和

我的二级引导程序和我的应用程序都驻留在闪存中。根据我的知识,二级引导程序将分区的信息存储在闪存内部签名,图像分区开始地址,CRC等。我在0x1f000上配置了Product_Header_position。但我发现,有时我的应用程序数据只有1扇区的产品_header_position位于0x1e000,已损坏。它全部充满零。

qinjiny_dialog
离线
最后一次露面:6天前1周
职员
加入:2016-11-01 05:47
嗨ankit,

嗨ankit,

据我所知,二级引导加载程序基本上不会写入闪存或执行任何擦除操作。那些addr定义,如product_header_position只告诉它在读取所需数据的位置,辅助引导加载程序不会写入或擦除闪光灯。SDK中唯一可以操纵Flash内容的功能,我可以提出Suota并为安全需求保存绑定信息。禁用这些功能时检查是否有任何更改。除了您可能需要重新检查您自己的应用程序中的SPI Flash处理的一切。

ankit.
离线
最后一次露面:3个月3周前
加入:2017-05-24 07:42
你好,我们又见面了,

你好,我们又见面了,

我仍然面临这个问题。我正在做闪存,读写操作。

每次闪光灯操作后必须引入延迟吗?如果是,那么特定操作的延迟应该是什么?

mt_dialog.
离线
最后一次露面:3个月1周前
职员
加入:2015-06-08 11:34
嗨ankit,

嗨ankit,

我不认为有需要在闪存操作之间采取延迟,当SDK与闪存进行交互时,没有延迟,你有时会得到损坏的数据,也许可能与仿处擦除每个在写新图像之前,这需要一个相当大的图像到达0x1e000,如果这是这样的话,这意味着你可以轻松复制每次在银行2中写的问题,此外,如果套筒弄乱了额外的数据,也许是删除您将看到0xff而不是零的数据。如果问题不可复制,这意味着您的数据被别的东西损坏而不是由Suota损坏。

谢谢mt_dialog.