你好,
我正在使用辅助引导程序,我的应用程序驻留在闪存中。Bootloader标题位于默认位置(0x1f000)。我有一些应用相关数据,即我在外部闪存中存储在0x1e000位置。有时我发现我的应用程序数据在地址0x1e000上写道。我相信我的应用程序在该地址上没有写任何垃圾数据。所以,我想确认它是辅助引导程序还是BLE堆栈访问0x1e000地址以自行使用?
如果是,请建议我可以为我的应用程序使用的位置。
嗨ankit,
请帮我理解这个问题。您的应用程亚博国际官网平台网址序具有辅助引导程序。你可以指定这个二级引导加载程序是否居住在哪里?在外部闪存应用中,主引导加载程序查看应用程序图像的0x00位置。如果您有辅助引导程序,则可以在闪存中自定义应用程序图像的位置。
无论主/次级引导加载程序如何,在引导时都在启动时完成的所有内容都将被复制到RAM以执行。因此,BLE堆栈不会访问闪存。除非用户应用程序请求读/写,否则SDK的其他部分都没有访问闪存。
最好的,LC.
我的二级引导程序和我的应用程序都驻留在闪存中。根据我的知识,二级引导程序将分区的信息存储在闪存内部签名,图像分区开始地址,CRC等。我在0x1f000上配置了Product_Header_position。但我发现,有时我的应用程序数据只有1扇区的产品_header_position位于0x1e000,已损坏。它全部充满零。
据我所知,二级引导加载程序基本上不会写入闪存或执行任何擦除操作。那些addr定义,如product_header_position只告诉它在读取所需数据的位置,辅助引导加载程序不会写入或擦除闪光灯。SDK中唯一可以操纵Flash内容的功能,我可以提出Suota并为安全需求保存绑定信息。禁用这些功能时检查是否有任何更改。除了您可能需要重新检查您自己的应用程序中的SPI Flash处理的一切。
你好,我们又见面了,
我仍然面临这个问题。我正在做闪存,读写操作。
每次闪光灯操作后必须引入延迟吗?如果是,那么特定操作的延迟应该是什么?
我不认为有需要在闪存操作之间采取延迟,当SDK与闪存进行交互时,没有延迟,你有时会得到损坏的数据,也许可能与仿处擦除每个在写新图像之前,这需要一个相当大的图像到达0x1e000,如果这是这样的话,这意味着你可以轻松复制每次在银行2中写的问题,此外,如果套筒弄乱了额外的数据,也许是删除您将看到0xff而不是零的数据。如果问题不可复制,这意味着您的数据被别的东西损坏而不是由Suota损坏。
谢谢mt_dialog.
嗨ankit,
请帮我理解这个问题。您的应用程亚博国际官网平台网址序具有辅助引导程序。你可以指定这个二级引导加载程序是否居住在哪里?
在外部闪存应用中,主引导加载程序查看应用程序图像的0x00位置。如果您有辅助引导程序,则可以在闪存中自定义应用程序图像的位置。
无论主/次级引导加载程序如何,在引导时都在启动时完成的所有内容都将被复制到RAM以执行。因此,BLE堆栈不会访问闪存。除非用户应用程序请求读/写,否则SDK的其他部分都没有访问闪存。
最好的,
LC.
我的二级引导程序和我的应用程序都驻留在闪存中。根据我的知识,二级引导程序将分区的信息存储在闪存内部签名,图像分区开始地址,CRC等。我在0x1f000上配置了Product_Header_position。但我发现,有时我的应用程序数据只有1扇区的产品_header_position位于0x1e000,已损坏。它全部充满零。
嗨ankit,
据我所知,二级引导加载程序基本上不会写入闪存或执行任何擦除操作。那些addr定义,如product_header_position只告诉它在读取所需数据的位置,辅助引导加载程序不会写入或擦除闪光灯。SDK中唯一可以操纵Flash内容的功能,我可以提出Suota并为安全需求保存绑定信息。禁用这些功能时检查是否有任何更改。除了您可能需要重新检查您自己的应用程序中的SPI Flash处理的一切。
你好,我们又见面了,
我仍然面临这个问题。我正在做闪存,读写操作。
每次闪光灯操作后必须引入延迟吗?如果是,那么特定操作的延迟应该是什么?
嗨ankit,
我不认为有需要在闪存操作之间采取延迟,当SDK与闪存进行交互时,没有延迟,你有时会得到损坏的数据,也许可能与仿处擦除每个在写新图像之前,这需要一个相当大的图像到达0x1e000,如果这是这样的话,这意味着你可以轻松复制每次在银行2中写的问题,此外,如果套筒弄乱了额外的数据,也许是删除您将看到0xff而不是零的数据。如果问题不可复制,这意味着您的数据被别的东西损坏而不是由Suota损坏。
谢谢mt_dialog.