This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM263P4:启用交换功能后、如何使用区域 A 中的闪存操作 API(Flash_Read、Flash_Write 等)来控制物理位于区域 B 中的数据(例如,地址为 0x60500000)?

Guru**** 2376610 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1528466/am263p4-when-the-swap-feature-is-enabled-how-can-i-use-flash-operation-apis-flash_read-flash_write-etc-in-region-a-to-manipulate-data-physically-located-in-region-b-e-g-at-0x60500000

器件型号:AM263P4

工具/软件:

在配置了 A 和 B 分区的情况下启用交换功能时、实际测试显示、将活动区域设置为FSS_selectRegionA () 后、调用 Flash 操作 API、就像 Flash_read 读取偏移处的数据一样、 0x100000 并 0x500000 始终从物理地址检索数据一样 0x60100000。 同样、当设置为区域 B 时、读取相同偏移(和)0x100000  0x500000会始终从物理地址返回数据 0x60500000。具体如下:

这就引出了一个问题: 如何使用Flash_read Flash_write区域 A 中的闪存操作 API(,等)来操作物理位于区域 B 中的数据(例如,在) 0x60500000

我考虑的一种方法是,在区域 A 中操作但需要访问区域 B 闪存数据时,我首先使用切换到区域 B FSS_selectRegionB ,执行必要的闪存操作,然后FSS_selectRegionA在退出前切换回区域 A ()。 这种方法是否可行?  是否有其他更可靠或更简单的方法可用?

非常感谢您的回答!!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Dai Mingzhe Dai:

    请允许我检查一下、然后返回给您。

    此致、

    Aswin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Dai Mingzhe Dai:

    这将是物理写入地址 0x6050000 的方法。

    启用 FOTA 后、如果启用 FSSA、就无法写入该地址。 您需要切换到 FSSB 才能写入该区域。

    此致、

    Aswin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、我能否确认这是否是 唯一 有效的方法? 同样、如果我需要从分区 B 访问物理分区 A(例如地址 0x60100000)中的数据、我还必须:

    1. 切换到分区 A、

    2. 在分区 A 中执行所需的数据操作、

    3. 然后切换回分区 B?“

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、戴明哲:

    通常我们使用 bootseg IP 进行图像交换。 我们通常不会写入映像位置、因为这会损坏固件映像。 我想知道背后的要求是什么。

    此致、

    Aswin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    激活后、您好、  交换机制 、我们打算配置内存范围  0x400000 - 0x481000 作为共享区域  可由分区 A 和分区 B 访问。此设计从开始考虑分区 B 的引导加载程序  0x481000 。 请注意、分区 B 中不需要次级引导加载程序 (SBL)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Dai Mingzhe Dai:

    可以考虑的另一种方法是将引导段和引导掩码寄存器设置为 0(基本上禁用转换)。 这可以通过调用来实现  fss_addressBitMask() 将掩码和段设置为 0。 执行写入操作后、可以重新配置 bootseg。  

    此致、
    Aswin