2015-06-05 31 views
1

我有一个beaglebone黑色,我想从头开始在一个项目上工作。为了调试和闪烁目的,我已经设置了flyswatter2。beaglebone黑色裸金属编程

我可以有一个启动代码,理想情况下应该工作。但问题是,我不知道从哪个内存地址开始启动黑客?以及我应该将我的代码闪存到电路板内存中的什么内存地址?

如果我知道我应该从哪里开始启动代码的地方,那么我可以在调试器的帮助下编写启动代码,然后使用UART编程以获得代码进度。但我坚持了第一步。

请注意,我已阅读ARM的AM335x技术参考手册的第26章,其中讨论了某些地址的公用RAM和ROM。但我仍然不确定从哪里开始。

如果有人可以让我知道,在地址0xXXXXXXX闪烁我的代码将在启动执行我的代码,那么我就可以把它从那里。

预先感谢 -Ravi

回答

1

实际上Beaglebone黑色板被配置为与任一外部的SD卡或内部的eMMC存储器来引导,即事实上的是在PCB焊接一个MMC卡。

如果您在第26章看到了处理器的documentation它描述了引导过程,从文档的所有这一部分,您将会对第26.1.5.7.6章中的BBB感兴趣。最简单的方法是以FAT格式格式化MMC(或内部eMMC),格式化后立即创建一个名为“MLO”的文件。此文件是FAT文件系统中的第一个文件非常重要,因此请确保在格式化后立即复制该文件。

该文件是一个小头,随后以二进制格式应用程序。报头具有以下格式(来自同一文档中章节26.1.9.2):

  • 在偏移0,与图像的大小的4个字节字。
  • 在偏移4,与您的图片加载地址的4个字节的字。

然后,只需你的形象。

还有就是的Sitara处理器“理解”该文件,并执行该代码的负载内的ROM码。

不是一个简单的程序裸机,但....

希望它能帮助。