beaglebone黑色的裸金属编程

时间:2015-06-05 22:48:34

标签: beagleboneblack bare-metal

我有一个黑色的beaglebone,我想从头开始研究一个项目。我已经设置了flyswatter2用于调试和闪存。

我可以使用一个理想情况下应该工作的启动代码。但问题是我不知道begalebone black开始启动的内存地址是什么?什么内存地址我应该将代码刷到董事会的内存中?

如果我知道应该从哪里开始我的启动代码,那么我可以在调试器的帮助下编程并编写UART以获取代码的进度。但我在第一步陷入困境。

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

如果有人能让我知道在地址0xXXXXXXX处闪烁我的代码会在启动时执行我的代码,那么我可以从那里拿走它。

提前致谢 -Ravi

1 个答案:

答案 0 :(得分:1)

实际上,Beaglebone黑板配置为使用外部SD卡或内部e​​MMC存储器启动,事实上它是焊接在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代码,可以理解"该文件并执行代码加载。

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

希望它有所帮助。