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:使用 uart_uniflash.py 在0x00030000闪存区域处刷写应用程序失败。

Guru**** 2391415 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/1512971/am263p4-application-flashing-is-failing-with-uart_uniflash-py-at-0x00030000-flash-area

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

工具/软件:

您好团队:

我们将使用 uart_uniflash.py 脚本将 SBL 和应用程序刷写到外部 OSPI 闪存中。

以下.cfg 用于刷写

当我们使用0x00030000处的应用存储器地址时、应用程序刷写失败

SBL 映像大小小于0x30000

  

 当我们使用0x00080000处的应用存储器地址时、序列相同

下面的任何地址  0x00080000无法正常工作。

q)使用 低于 0x00080000的 OSPI 闪存地址是否有任何限制?

q)为什么低于 0x00080000的地址出现故障?

请提供意见来解决 问题。

此致、

Hari Krishna Kaki

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

    尊敬的 Hari:

    如果您要更改刷写时的偏移量、您是否已经更改了 SBL syscfg 中应用程序映像的偏移量?

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

    下面是显示 syscfg 的屏幕截图:

    -修改后,重新编译 SBL 映像  

    -然后相应地刷新更新的 sbl_ospi 或您的自定义引导加载程序映像

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

    您好、Anand、

    感谢您的快速响应!

    我们未使用 SBL syscfg、我们已经在0x0处创建了自己的 SBL、并在0x30000处创建了应用程序。

    在我们的用例中、不可能使用 SYSCFG 解决方案

    我使用 uart_uniflash.py python 脚本进行刷写、该文件正在计算应用程序地址引用0x30000。

    与 syscfg 文件类似、是否可以设置偏移值?

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

    /*引导加载程序引导介质特定参数*/
    BootLoader0Args = Bootloader_Flash

    .flashIndex = CONFIG_FLASH0、
    .curOffset = 0、
    .appImageOffset = 0x00000000、
    };

    Bootloader_Config gBootloaderConfig[CONFIG_Bootloader_NUM_Instances]=


    &gBootloaderFlashFxns、
    &gBootloader0Args、
    bootloader_media_flash
    0、
    0、
    空、
    .socCoreOpMode=(void *)&operatingMode、
    .isAppimageSigned = true、
    .disableAppImageAuth = false、
    .initICSSM = false、
    0、
    }、
    };

    如上面的代码片段所示、偏移量是  Bootloader_Flash Args 结构的一部分、是 Bootloader_Config 的一部分

    因此您可以在代码中编辑相同的内容

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

    您好、Anand、

    我们在工作中不使用 TI SDK 中的任何代码、我们使用 uart_uniflash 仅用于刷写 SBL 和应用程序。

    实际上、我们有 BootManager (BM)+ Bootloader (BL)。

    BM 充当 SBL、在0x0处刷写、TI ROM BL 应在0x70002000处加载到 RAM 中。

    BL 作为应用程序在我们的例子中,BM 将把 BL 加载到 RAM 中。

    现在我们能够在0x0处刷写 BM、但 BL (Application)在0x30000处闪存失败。

    q)谁将引用/计算0x30000作为应用程序映像偏移?  

     在 TI case 中为 sbl_uart_uniflash.release.tiimage 或 bm /sbl_ospi.release.tiimage

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

    SBL 有责任这样做。

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

    好的、当偏移量为0x80000时、这两种情况都可以正常工作。

    我们没有像您提到的那样使用以下代码

    /*引导加载程序引导介质特定参数*/
    BootLoader0Args = Bootloader_Flash

    .flashIndex = CONFIG_FLASH0、
    .curOffset = 0、
    .appImageOffset = 0x00000000、
    };

    Bootloader_Config gBootloaderConfig[CONFIG_Bootloader_NUM_Instances]=


    &gBootloaderFlashFxns、
    &gBootloader0Args、
    bootloader_media_flash
    0、
    0、
    空、
    .socCoreOpMode=(void *)&operatingMode、
    .isAppimageSigned = true、
    .disableAppImageAuth = false、
    .initICSSM = false、
    0、
    }、
    };

    仍然闪烁的地址为0x80000、无法运行0x80000以下的任何偏移。  

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

    Hari、

    我仍然不清楚您从何处开发 SBL? 来自 MCU PLUS SDK 或其他地方。

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

    尊敬的 Anand:

    不是、不是来自 TI SDK。 我们正在开发自己的 SBL。

    SBL 从 RAM 中运行正常、现在我们需要将其移动到 OSPI 闪存区域。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    SBL 从 RAM 中运行正常、现在我们需要将其移动到 OSPI 闪存区域。

    嗨、Hari、SBL 旨在从闪存执行、而不能从闪存执行

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

    是的、在执行之前、SBL 应复制到 RAM 中。

    我们寻求相同的目标、 TI ROM BL 应在0x70002000处将我们的 SBL 加载到 RAM 中。

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

    即使您正在开发自定义引导加载程序、也可以正确使用 SDK 驱动程序?

    Args Bootloader_Flash gBootloader0Args =

    引导加载程序驱动程序 API 使用此结构来查找应用程序映像的位置。

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

    我们在 SBL 开发中没有使用 SDK。 仅用于生成 SBL 的 TI 映像并将 SBL 的 TI 映像刷写到 OSPI 闪存中。

    如果有调试会话、它将非常有用。 我们也可以关闭此票证  

    AM263P4:ROM 引导加载程序未在0x70002000处将 SBL 从闪存复制到 RAM

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

    尊敬的 Hari:

    通过调用讨论时、请使用最新的 SDK uart_uniflash 闪存器、因为这里已修复错误。 立即关闭此主题。

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

    谢谢 Anand。