2

刚从 eBay 买了一块 ARM Cortex-M3 LPC1768 迷你板。它基本上是一个分线板。

但是,根据随附的少量文档,我确定它具有类似于 NXP 的 LPC1700 辅助 USB 引导加载程序 (AN10866)应用说明中描述的 USB 引导加载程序。

两个文档(应用说明和板文档)都表明要构建用户程序,使其起始地址为 0x2000因为 USB 引导加载程序已经在 0x0 并且占用了 8K

两个文档还显示了有关如何在 Keil uVision 中执行此操作的屏幕截图(参见应用说明的第 14 页),但是我计划使用 GNU 工具链(Yagarto + Eclipse + OpenOCD)。

使用 GNU 工具链编译时如何指定0x2000 的起始地址,以便它可以与 USB 引导加载程序一起正常工作?

4

1 回答 1

6

我有很多基于手臂的例子:

https://github.com/dwelch67

查找或创建您自己的链接描述文件。它可能会说 ORIGIN = 0x00000000 将 rom 更改为 0x2000,例如:

MEMORY
{
   rom : ORIGIN = 0x00002000, LENGTH = 0x6000
   ram : ORIGIN = 0x40000000, LENGTH = 0x2000
}
SECTIONS
{
   .text : { *(.text*) } > rom
   .bss  : { *(.bss*) } > ram
}

你可能想要/需要一个 .data

   .data  : { *(.data*) } > ram AT >rom

或类似的东西。取决于您的程序和引导代码等等。

如果您已经有一个为 0x00000000 构建的工作系统,那么找到正在使用的链接描述文件并复制它并将其更改为 0x2000 并指定该链接描述文件。

于 2011-10-17T18:58:43.027 回答