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:写入外部闪存时出现闪存偏移对齐问题

Guru**** 2551110 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1566218/am263p4-flash-offset-alignment-issue-when-writing-to-external-flash

器件型号:AM263P4
Thread 中讨论的其他器件:UNIFLASH

工具/软件:

您好、

作为对未来密钥管理体系结构的测试的一部分、我将一个虚拟 256 位 AES 密钥刷写到 MCU 的外部闪存中(从开始)0x60000000。 除了我的tiimage SBL 和mcelf应用程序,我在 uniflash 配置文件中添加了以下行,该文件被传递到uart_uniflash.py:

# Key test --file="C:/KeyManagement/keys.bin" --operation=flash-sector-write --flash-offset=0x9A000

调试时,我从开始检查内存0x60000000 + 0x9A000 = 0x6009A000,希望在那里看到密钥的开始。 但是、密钥实际上似乎开始了 两个字节之前 、AT0x60099FFE(即偏移)0x99FFE

我的问题:

  1. 为什么闪存偏移0x9A000 () 和密钥实际出现的位置 () 之间存在 2 个字节的差异0x99FFE

  2. flash-sector-write操作与flash可在 uniflash 配置文件中指定的标准操作之间有什么区别?

  3. 当我尝试将0x99FFE uniflash 配置文件中的偏移量更改为并重新刷写时、 闪存操作会失败。 我假设这是由于对齐要求所致。 在此器件上进行闪存写入的对齐块大小是多少?

谢谢!

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

    您好、Oliver:

    请允许我花点时间检查一下。 因为我在过去一周是 OOO、所以对延误表示歉意。  

    同时、您能否告诉我、您正在使用哪个 SDK 版本?

    此致、

    Aswin

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

    尊敬的 Aswin:

    不用担心、我使用的是最新的 SDK 版本 11。

    谢谢、

    Olivier H

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

    您好 Olivier、

    我在我这边做了一些实验。 我尝试使用 uart_uniflash.py python 脚本在 UART 引导模式下以闪存偏移 0x9A000 刷写 256 字节的数据。  

    这就是我的配置文件的外观。

    完成刷写后、我通过 CCS 中的“Memory Browser“检查闪存中的此存储器区域。 我看到钥匙在他们应该是的地址。

    请告诉我  

    -如果您尝试使用 uniflash GUI 工具在所需的地址刷新?

    -这是在定制电路板上还是在 TI EVM 上完成的。 我在 AM263P LP LaunchPad 上执行了此操作?

    -如果使用定制板,我可以知道正在使用哪种闪存吗?

    -我也可以知道内存是如何被查看的吗?

    我将回复您、回复您重置问题。

    此致、

    Aswin

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

    您好 Olivier、

    为什么闪存偏移 ()0x9A000 和密钥实际显示位置 () 之间存在 2 个字节的差异0x99FFE

    这需要进行检查。 我在我这边做了一些实验,我在前面的信息中提到了。 是否有任何与我的步骤不同的特定方法。 您是否在定制闪存/电路板上进行了测试。  

    flash-sector-writeflash在 uniflash 配置文件中指定的操作与标准操作之间有什么区别?

    区别在于擦除的方式。 闪存扇区写入执行扇区擦除、而闪存写入执行块擦除。 这可以通过检查 文件 bootloader_uniflashProcessFlashCommands() 中的函数进行分析。 在此函数中、switch 语句中的某些情况相当于此标志。

    当我尝试将0x99FFE uniflash 配置文件中的偏移量更改为并重新刷写时、 闪存操作会失败。 我假设这是由于对齐要求所致。 此器件上闪存写入的对齐块大小是多少?

    所有写入应扇区对齐。 否则、它将失败。 这就是出现故障消息的原因。

    此致、

    Aswin