【发布时间】:2013-11-26 16:38:09
【问题描述】:
在过去的几天里,我发现 SAM-BA 不仅可以写/读 flash/ram,还可以用作引导加载程序。我的问题是,如何知道将程序放在哪里以便 SAM-BA 可以在初始启动序列后运行它?我在作为文档提供的任何 pdf 中都找不到该信息。
我找到了 Adam Pierce 的一篇博文,并获得了一个链接器脚本,该脚本将程序与 RAM 链接起来。现在 RAM 内存位于 0x00200000,但入口点链接在 0x00202000 - 并解释说我们需要为 SAM-BA 留下“一些”内存。
为什么是 0x2000 字节?我怎样才能确定它是否是正确的地址,我在哪里可以找到一些信息来确认这一点?
【问题讨论】:
-
起始地址将是特定于设备的,您使用的是什么设备?大多数设备都有相关的设备特定 SAM-BA 应用说明。
-
我正在使用 Atmel 的 AT91SAM7X256。我尝试在几个地方查找它,但无济于事。我在 uC 数据表和 SAM-BA 用户指南中都找不到任何信息。我将不胜感激有关在哪里可以找到此信息的任何提示。
-
我在 AT91SAM CAN Bootloader User Notes 中找到了一个简短的说明:SAM-BA Boot4CAN 将自身复制到 SRAM 中,并将内部 SRAM 块用于变量和堆栈。因此,用户区从地址 0x202_000 开始。就是这样。