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.

[参考译文] TMDS243EVM:首次加载 SBL 的新 AM2432芯片

Guru**** 2319880 points
Other Parts Discussed in Thread: SYSCONFIG, TMDS243EVM, UNIFLASH, AM2434, AM2432
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1519868/tmds243evm-new-am2432-chip-first-time-to-load-sbl

器件型号:TMDS243EVM
Thread 中讨论的其他器件: UNIFLASH、SYSCONFIG、 AM2434AM2432

工具/软件:

尊敬的 TI 专家:

   我有一个我们自己设计的电路板、主 IC 是 AM2432BSEFHIALVR。

   我们原理图的以下相关部分与 TMDS243EVM 没有区别。

   我获得了以下链接、首次将 SBL 加载到我的电路板。

   Linke https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/latest/exports/docs/api_guide_am243x/EVM_SETUP_PAGE.html#EVM_FLASH_SOC_INIT

   我 使用 SD 引导尝试了闪存 SOC 初始化二进制文件和 SOC 初始化。

   对于 闪存 SOC 初始化二进制、在 UART 模式下、停留在这里。

PS C:\ti\mcu_plus_sdk_am243x_09_02_01_05\tools\boot> python uart_uniflash.py -p COM13 --cfg=sbl_prebuilt/am243x-evm/default_sbl_null.cfg

正在解析配置文件...
正在解析配置文件...成功。 找到2个命令!!!

正在执行命令1 (共2个)...
找到闪存写入器...正在发送 sbl_prebuilt/am243x-evm/sbl_uart_uniflash.release.hs_fs.tiimage
已在33.53s 内发送大小为324798字节的闪存写入器 sbl_prebuilt/am243x-evm/sbl_uart_uniflash.release.hs_fs.tiimage。

正在执行命令2 (共2个)...
命令参数:--file=sbl_prebuilt/am243x-evm/sbl_null.release.hs_fs.tiimage --operation=flash --flash-offset=0x0
发送 sbl_prebuilt/am243x-evm/sbl_null.release.hs_fs.tiimage:0%| 0/292638 [00:00

 对于 使用 SD 引导进行 SOC 初始化、不通过 UART 打印任何内容。

 然后我尝试了 UniFlash 工具、也出现了错误并失败。 (我选择了合适的芯片、其中显示  MAIN_Cortex_R5_0_0断开连接:释放 R5)

错误:文件:C:/Users/cfue07770/workspace_v12/sbl_null.debug.hs_fs.tiimage:加载失败。

[error] MAIN_Cortex_R5_0_0:文件加载程序:内存写入失败:无法读取算法文件"C:\ti\uniflash_8.7.0\deskdb\content\TICloudAgent\win\ccs_base\DebugServer\bin\..\..\Sitara_MCU\flasher\"

 我不知道接下来该怎么办、您能指导我第一次将 SBL 和应用程序映像加载到电路板吗?

 我发现 api_guide_am243x/EVM_SETUP_PAGE 中的以下图片与 技术参考手册不匹配。

 似乎它们是相反的。 TRM 显示:OSPI B3:B6 1000、而 EVM_SETUP_PAGE 显示 B3:B6   0111。

 我是否有误解或 STH 错误?

BR、  

春阳  

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

    您好、

    感谢您的等待。

     似乎它们是相反的。 TRM 显示:OSPI B3:B6 1000、而 EVM_SETUP_PAGE 显示 B3:B6  0111。

    我认为 TRM 中显示的是正确的表示形式、MCU SDK 文档中显示的那个实际上是作为 OSPI 编写的、但根据 TRM、它是启用 SFDP 位的 xSPI 引导模式。  

    您能否确认我的上述陈述?

    除此之外、您能否确认定制电路板上使用的闪存器件?

    此致、

    Vaibhav

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

    尊敬的  Vaibhav:

      我可以确认您关于 EVM 实际上使用 xSPI 的声明。

      在我的电路板上、闪存器件与 EVM 的 S28HS512TGABHI010相同。

      这就是我保留 Mode 引脚配置 的原因、如 MCU SDK 文档所示的 OSPI 配置。

    MODE 引脚

    15

    14

    13

    12

    11.

    10.

    9.

    8.

    7.

    6.

    5.

    4.

    3.

    2.

    1.

    0

    O (x) SPI

    0

    0

    0

    0

    0

    0

    1.

    0

    0

    1.

    1.

    1.

    0

    0

    1.

    1.

     我排除了单个电路板的原因、因为我在几个电路板上进行了测试、结果与我昨天发布的结果相同。

     我一直在 E2E 中浏览相关帖子、并认定您是该领域的专家。

     请帮助我解决此问题。

    BR、

    春阳  

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

    您好、

    我知道您已设置为 xSPI 引导模式。

    您能否确认 DDR 对于定制电路板是否正确?

    请告诉我您的 MMCSD 设置是否也正确?

    期待您的答复。

    此致、

    Vaibhav

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

    尊敬的  Vaibhav:

     是的、请参阅 MCU SDK 文档中的 EVM 配置 。在尝试通过 Uniflash 加载 SBL 时、我使用 xSPI 引导模式。

      当我尝试通过 UART 和 Python 命令加载 SBL 时、我使用 UART 引导模式。

      对于 DDR、EVN 为2G、而我的 DDR 在板中为1G。 在工程 sbl_uart_uniflash_am243x-evm_r5fss0-0_nortos_ti-arm-clang 中、

      我 在 SysConfig 中将 MPU_ARMv7->CONFIG_MPU_REGION4 0x80000000从2GB 修改为1GB。

      然后 由 UART&Python 和 Uniflash 将此 sbl_uart_uniflash.Debug.hs_fs.tiimage 加载到我的电路板、两者也失败。

      对于 MMCSD、卡类型默认值为 EMMC、而我的卡为 SD。

      在我  通过 UART&PYTHON 加载 sbl_uart_uniflash.release.hs_fs.tiimage 和 sbl_null.release.hs_fs.tiimage 时、这与 DDR 或 SD 卡是否重要?

      顺便说一句,当我尝试按照您的指南从这个链接,我总是得到步骤下面的图片显示.

    e2e.ti.com/.../5744361

    1. 打开文件 SBL Null: c:\ti\mcu_plus_sdk_am243x_10_00_00_20\examples\drivers\boot\sbl_null\am243x-lp\r5fss0-0_nortos\main.c
    2. 在之后引入 loop_forever()  int32_t 状态;
    3. 在调试模式而非释放模式下重新编译应用、以便我们可以分步调试。
    4. 确保通过 Python 命令执行 UART unigflash 步骤、然后在步骤2 (即 SBL Null.debug.tiimage(hs FS 映像)中卡住
    5. 然后、打开 CCS 并连接到 R5F0_0内核、您将看到流程卡在 LOOP_FOREVER ()处。
    6. 在这一点上,只需在 loop_forever()中设置 loop = 0的值,并开始一次调试一行。
    7. 请这样做、直到您在假设使用某个 API 时看到一些错误。 请告诉我该 API 的名称。

      

    如何让它跳转到 Main.c->loop_forever()?

    我应该使用哪个工程 sbl_null_am243x-evm_r5fss0-0_nortos_ti-arm-clang 或 sbl_uart_uniflash_am243x-evm_r5fss0-0_nortos_ti-arm-clang?

    我都尝试过、都没能成功调试。

    BR、

    春阳  

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

    对于我的电路板和 EVM、我都无法在  e2e.ti.com/.../5744361中运行您的指南、因为他们都跳转到"地址为"0x7002645a"、没有可用的调试信息、或在程序代码之外。" 不是函数 loop_forerver()。

    供参考

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

    嗨、 Vaibhav

     如果我坚持到这里、这是否意味着我的 Test_mcu_2432_DDR1G.tiimage 未执行?

     此映像从 sbl_uart_uniflash_am243x-evm_r5fss0-0_nortos_ti-arm-clang 格式获取、我  在 SysConfig 中将 mpu_armv7->config_mpu_REGION4 0x80000000从2GB 修改为1GB。

    谢谢  

    春阳

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

    您好、

    感谢您的等待。

    从上述步骤开始、我希望您没有按照步骤1中所述构建 AM243 LP 应用程序、而是为 AM243 EVM 构建了该应用程序。

    [引述 userid="578304" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1519868/tmds243evm-new-am2432-chip-first-time-to-load-sbl/5847112 #5847112"]
    • 确保通过 Python 命令执行 UART unigflash 步骤、然后在步骤2 (即 SBL Null.debug.tiimage(hs FS 映像)中卡住
    • 然后、打开 CCS 并连接到 R5F0_0内核、您将看到流程卡在 LOOP_FOREVER ()处。
    [/报价]

    在连接到 R5内核后、我需要您点击 LOAD 符号并提供指向生成的.out 的路径、该路径将是 sbl_uart_uniflash tiiimage .out、但是 HS FS 1。

    是 HS FS 映像还是 GP 映像来确认、请参阅以下常见问题解答: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1228618/faq-am6xx-how-to-check-if-device-type-is-hs-se-hs-fs-or-gp

    期待您的答复。

    此致、

    Vaibhav

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

    尊敬的  Vaibhav:

    按照您的说明操作、我可以运行此  sbl_uart_uniflash 工程、然后结果会与客户在以下帖子中一样。  

    https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1487991/am2432-uart-flash-soc lp-initialization-binary-faile-on-lp-am243-evm/5744361?tisearch=e2e-sitesearch&keymatch=AM2432%252525252520Uart%2525252520download#5744361

    我们把 sciclient.c 的同一行卡住了

    我遵循了您对这个 linke https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1329012/am6442-sbl-is-blocked-in-an-loop-of-bootloader_socwaitforfwboot/5057360#5057360的指导

     我将这个 sbl_null.debug.hs_fs.tiimage 发送两次给我的电路板、然后我执行了这个 SBL。

    但 SBL 似乎没有存储在我的闪存中。 当我将引导模式更改为 XSPI 并重新启动电路板时、不会打印任何内容。

    因此、在 UART 模式下、在我发送 SBL 两次后、可以通过 JTAG 进行调试、但在 XSPI 模式下、无法通过 JTAG 调试。

    我的 OSPI 闪存似乎无法用于 SBL、但我们已经通过 运行 OSPI 闪存诊断演示来验证了我的 OSPI 闪存是否一切正常。

    AM2434和 AM2432之间的差异是否影响这一点?

    请指导我从 OSPI 闪存启动。

    BR、

    谢谢

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

    您好、

    感谢您的等待。

    因此、在 UART 模式下、在我发送 SBL 两次后、我可以通过 JTAG 进行调试、但在 XSPI 模式下、我无法通过 JTAG 进行调试。

    第一种方法应该起作用、第二种方法不起作用。 您必须仍处于 UART 引导模式、然后应该能够进行调试。

    您是否也有机会查看这个问题?

    此致、

    Vaibhav

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

    尊敬的 Vaibhav:

     我检查了 AM2432、 它是 FS、而不是 GP。

     是的、现在我们可以使用 CCS 通过 UART 模式或 SD 模式调试电路板(现在由我的同事解决、只运行 SBL 而不是应用程序)。

     但对于该产品、我们需要使用 XSPI (OSPI)模式来从闪存引导电路板。

     期待您的指导。

    BR、

    春阳

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

    尊敬的 Vaibhav:

     现在、我可以使用以下工程通过 UART 和 Python 将 SBL 和 Imag 加载到我的电路板中。 将 EMMC->Card Type 更改为 No Device (因为我的电路板中没有 EMMC)。 我使用此 sbl_uart_uniflash.Debug.hs_fs.tiimage 成功加载 SBL。

     工程:- sbl_uart_uniflash_am243x-evm_r5fss0-0_nortos_ti-arm-clang

    然后、我要通过 JTAG 加载 SBL、按照上述方法、  在以下工程中将 EMMC->Card Type 更改为 No Device。

    工程:-- flasher_JTAG_uniflash_am243x-evm_r5fss0-0_nortos_ti-arm-clang

    但有了这个 flasher_JTAG_uniflash_am243x-evm_r5fss0-0_nortos_ti-arm-clang.out、我无法成功加载。

    您能解释为什么以及如何将此工程修改为 JTAG 闪存器吗?

    BR

    春阳   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid="578304" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1519868/tmds243evm-new-am2432-chip-first-time-to-load-sbl/5853845 #5853845"]

     现在、我可以使用以下工程通过 UART 和 Python 将 SBL 和 Imag 加载到我的电路板中。 将 EMMC->Card Type 更改为 No Device (因为我的电路板中没有 EMMC)。 我使用此 sbl_uart_uniflash.Debug.hs_fs.tiimage 成功加载 SBL。

     工程:- sbl_uart_uniflash_am243x-evm_r5fss0-0_nortos_ti-arm-clang

    [/报价]

    我假设您为此运行了 python uart_uniflash.py 命令  

    但对于另一个:

    [引述 userid="578304" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1519868/tmds243evm-new-am2432-chip-first-time-to-load-sbl/5853845 #5853845"]

    工程:-- flasher_JTAG_uniflash_am243x-evm_r5fss0-0_nortos_ti-arm-clang

    但有了这个 flasher_JTAG_uniflash_am243x-evm_r5fss0-0_nortos_ti-arm-clang.out、我无法成功加载。

    您能解释为什么以及如何将此工程修改为 JTAG 闪存器吗?

    [/报价]

    您如何处理此问题? 如何通过 JTAG 进行刷写? 使用的任何特定命令。

    此致、

    Vaibhav

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

    尊敬的 Vaibhav:

      我解决了我的问题。

      在上述方面、 我使用 UniFlash 8.7.0工具、该工具可以使用镜像或.out 文件作为闪存器。

      只需移除 uniflash 工程中的 eMMC、然后闪存器就可以用于我的电路板。

    谢谢、

    春阳