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.

[参考译文] RTOS/AM3358:PocketBeagle SD 卡启动

Guru**** 2614265 points
Other Parts Discussed in Thread: AM3358

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/659460/rtos-am3358-pocketbeagle-sd-card-boot

器件型号:AM3358

工具/软件:TI-RTOS

您好!

我正在尝试在新的 PocketBeagle 上引导至我自己的引导加载程序。 PocketBeagle 使用 AM3358芯片并具有板载 SD 读卡器。 我已经能够引导到 Beagle Board 网站建议的 Linux 发行版中。 现在、我想引导至我自己的代码。  

 根据手册 的第26.1.6节(SD 引导为26.1.8.5),如果我将文件命名 MLO为,我可以从带有 FAT 文件系统的 SD 卡引导到此代码。 现在、如果我在汇编代码中正确获取了寄存器、那么 PocketBeagle 上的 USR0、USR1、USR2和 USr3 LED 应该会亮起。 (请参阅此处 的 USR 至 PIN 映射)这是因为 GPIO1_21、22、23和24引脚对应于这4个 LED、这些引脚是我(尝试)设置为高电平的引脚。

但 LED 不会亮起。 所以我做了一些错误的事情、但我不能弄清楚。 我是否错误地认为我可以在 MLO 阶段运行代码? 或者、我是否需要以某种方式指定 U-Boot 文件并完成引导过程?

可以在此处找到我的汇编代码和 make 文件

https://stackoverflow.com/questions/48433672/how-can-i-boot-bare-metal-from-sd-card-on-pocketbeagle

我试过 Starterware、但没有成功... 如果没有一百万次不同的失败、我甚至无法编译它。

感谢您帮助理解此过程。 如果我可以获得一些学习材料来帮助我了解引导过程、请告诉我。  

编辑:有关详细信息、请参阅第一次答复。

编辑2:已解决问题。 解决方案发布在上面的堆栈溢出链接上。

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

    编辑:

    我现在尝试在原始模式下引导(按照手册 第26.1.8.5.5节)。

    附件是十六进制格式的汇编代码以及汇编文件。 我使用 HxD 将二进制文件写入第一个 SD 卡上的存储器字节。 (这意味着它没有文件系统)。

    我根据手册创建了 TOC;通过查看十六进制文件的前512个字节可以看出这一点。  

    我正处于我认为我的 gcc 编译器无法正常工作的阶段... 但我不知道如何检查。 我查看了从反编译器生成的代码、它是准确的、因此编译的代码是正确的目标 ARM。 我将设置已启用寄存器、并将寄存器设置为高电平。 为什么这种输出不是很高?

    e2e.ti.com/.../RawMode.txte2e.ti.com/.../boot.asm

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    TI 不支持 PocketBeagle。 请将您的问题直接发送至 www.beagleboard.com