Cra*_*aig 2 embedded arm cortex-m3 bootloader
刚刚从eBay上购买了这些ARM Cortex-M3 LPC1768迷你主板之一.它基本上是一个突破板.
但是,基于它带来的小文档,我已经确定它有一个类似于恩智浦 LPC1700辅助USB引导加载程序(AN10866)应用笔记所描述的USB引导加载程序.
这两个文档(应用笔记和电路板文档)都表明要构建用户程序,使其起始地址为0x2000.因为USB引导加载程序已经是0x0并占用8K.
这两个文档还显示了如何在Keil uVision中执行此操作的屏幕截图(请参阅应用说明的第14页),但我计划使用GNU工具链(Yagarto + Eclipse + OpenOCD).
在使用GNU工具链进行编译时,如何指定起始地址0x2000,以便它能够与USB引导程序一起正常工作?
我有很多基于arm的例子:
查找或创建自己的链接描述文件.它可能已经说ORIGIN = 0x00000000为rom改为0x2000,例如:
MEMORY
{
rom : ORIGIN = 0x00002000, LENGTH = 0x6000
ram : ORIGIN = 0x40000000, LENGTH = 0x2000
}
SECTIONS
{
.text : { *(.text*) } > rom
.bss : { *(.bss*) } > ram
}
Run Code Online (Sandbox Code Playgroud)
你可能想要/需要一个.data
.data : { *(.data*) } > ram AT >rom
Run Code Online (Sandbox Code Playgroud)
或类似的东西.取决于您的程序和启动代码以及所有这些.
如果您已经有一个为0x00000000构建的工作系统,那么找到正在使用的linkerscript并复制它并将其更改为0x2000并指定该链接描述文件.