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.

[参考译文] OMAP L138从 SD 卡引导

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/577004/omap-l138-boot-from-sd-card

我正在尝试让 OMAP-L138LCDK 从 SD 卡启动。 我一直在阅读 TI 的许多 wiki 文章、但其中许多专门用于在 ARM 端使用 Linux。

我计划在 DSP 上使用 SYS/BIOS 并运行 ARM 裸机。 现在、我的 ARM 代码只是启用 DSP 并运行无限循环。

我已将 AISGen 工具与 ARM 和 DSP 输出文件一起使用、以创建我的 bin 文件并将其放置在 SD 卡的根目录中。 目前、DSP 代码正在使 LED 闪烁并通过 McASP 读取音频数据(代码已通过 CCS 仿真器进行测试并正常工作)。 ARM 代码将 DSP 的引导地址矢量设置为 0x11800000 (这是我为 DSP 显式放置_c_int00的位置)、并唤醒 DSP。

将 microSD 卡放在插槽中并对电路板进行电源循环会导致什么情况下都没有发生。

我还使用了 OMAPL13X 调试 GEL 文件来确保我的开关正确无误、并查看我得到了哪些错误。 引导 ROM 向我发出0x000000C4、这不是一个可识别的错误。

我假设问题是如何在 SD 卡中加载.AIS 文件、或者如何配置.AIS 文件。 我没有在 AISGen 中设置特定的入口点、我的 ARM 代码从0xFFFFFF000开始、而不是0x8000000。 这可能是个问题吗?

我计划不使用 DDR2存储器、并已将我的 DSP 代码设置为在 L2 RAM 中运行、这里可能存在问题? 尽管它在使用 CCS 时可以从 L2 RAM 运行、但没有问题。

我还想确保不会误解引导加载程序的工作方式。 我的理解是、引导加载程序会检查引导引脚以确定要从中加载数据的器件。 然后、它读取 AIS 文件以将应用程序加载到 RAM 中并设置任何可配置寄存器。 是这样吗? 或者我还需要做其他事情吗?

抱歉、一个大问题中包含了所有问题。 如果需要更多详细信息、请告诉我!

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

    我已通知 RTOS 团队。 他们的反馈将在此处发布。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    需要将.AIS 文件复制到原始或未格式化的分区中。 AIS 启动映像应位于存储器器件的用户数据区域、并写入该区域的地址0。 引导加载程序通过检查魔术字(0x41504954)来检测 AIS 映像。

    尝试使用 CCS 方法中描述的 SDMMCWriter 将 AIS 映像刷写到 SD 卡中。
    processors.wiki.ti.com/.../OMAP-L138_Preparing_SD_Card_for_Boot

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

    我尝试通过 CCS 项目(使用 CCS7是一场噩梦)和 Linux 将 AIS 文件放在 SD 卡中。

    都不起作用。 我从两个不同的源读取、引导加载程序在0x8000000以及0xFFF00000中使用 RAM。 我已确保我的 ARM DSP 唤醒代码位于远离0x80004000中这两个代码的位置。

    将调试 GEL 与 ARM 端一起使用、我现在得到 ROM 错误代码0x0000001B (SDMMC 错误)。 我找不到有关此错误的任何其他文档、并且很难进行调试。 我确实注意到、如果我加载 DSP 代码(用于初始化 PLL 和 PSC)、则错误代码变为0x00000000。 但是、在尝试从加电启动代码时没有变化。

    我进行了检查、以确保 AIS 文件中包含了正确的魔术词。

    我在这里没有想法。 许多用于启动 SD 卡的资源都非常模糊或过时。 还有什么可能遗漏的东西吗?

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

    更新。 确实显示正在读取 SD 并更新我在 AISgen 中配置的 PLL 和 PSC 值。 我假设代码中的其余 AIS 加载存在问题、或者 ARM 未跳转到正确的位置。 加载数据后、我是否可以检查它尝试跳转到哪个地址?

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

    Raz、

    AIS Gen 映像尝试初始化的所有模块。 它是否尝试设置 DDR? 还是仅通过 uboot 完成。 您是否已检查器件上生成的时钟(SYSCLK2- SYSCLK6)是否未违反规格。 您能否连接 Debug GEL 文件中的转储、以便我可以查看 PC 和错误代码、并尝试将其与 ROM 代码相关联。

    此致、

    Rahul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好,Rahul。 您的提示帮助我解决了问题! 我注意到用于初始化 SDRAM (CS0)的配置已设置。 由于 SDRAM 未连接、我假设这是导致挂起的原因。 一旦我更改了配置、它就能正常工作! 再次感谢您的帮助!