1

我正在尝试为我的 BeagleBoard C5 板成功构建 u-boot。我正在使用 Ubuntu 10.04 和 Crosstool-NG 工具链。我有 Xloader (MLO)、u-boot.bin 和 uImage 的工作映像,我发现这些映像是从 AngstromBB 项目中预构建的,这些板可以成功启动 Angstrom。

我可以通过执行以下操作成功构建 u-boot.bin 文件:

git clone git://git.denx.de/u-boot.git u-boot/
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- omap3_beagle_config
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- 

然后我复制我刚刚构建的 u-boot.bin 以替换 SD 卡上 u-boot.bin 的工作版本并尝试启动板,但它挂在以下位置失败:

Reading boot sector
Loading u-boot.bin from mmc

它会永远坐在那里!我似乎找不到任何关于为 C5 BeagleBoard 构建 u-boot 的明确说明,除了它与以前的版本不同或需要使用 u-boot 构建的称为“SPL”的东西。有人知道我如何成功地为 BeagleBoard C5 构建自己的 u-boot.bin 映像吗?

4

1 回答 1

2

您的第一步应该是研究开发板的启动顺序。一些处理器不直接引导至 u-boot。他们启动存储在 Flash 或板上的 EEPROM 中的应用程序。对于您的 C5,此应用程序是 X-Loader (https://gitorious.org/x-loader)。您将需要了解此 1 级引导加载程序的作用以及它如何启动 u-boot。通常,他们会在启动完整的引导加载程序之前进行一些基本的 PSC、DRAM 等配置。但它在哪里寻找 u-boot?X-Loader 是否将 u-boot 复制到 RAM 并从那里开始执行?还是它从您的 MMC 开始执行?有时可以设置一些跳线来控制启动顺序。因此 X-Loader 可以根据设置从 NAND、NOR 或 SD/MMC 启动。

你从哪里得到你的 u-boot 源代码?你是直接从 denx 网站下载的还是随你的 Beagle 板一起提供的?

一般来说,在没有工具的情况下调试开发板(即使它是参考板)是非常困难的。开发板是否提供了调试器,或者您有自己的 JTAG 调试器,您可以使用它来设置硬件断点并单步执行代码?

于 2012-07-09T17:50:42.567 回答