使用USB引导加载程序时如何设置ARM用户应用程序起始地址?
刚刚购买了其中一个 ARM Cortex-M3 LPC1768 迷你板。它基本上是一个分线板。
然而,根据它附带的少量文档,我确定它有一个类似于 NXP 的 LPC1700 辅助 USB 引导加载程序 (AN10866) 应用说明。
两个文档(应用笔记和开发板文档)都表明要构建用户程序,使其起始地址为 0x2000。 因为USB引导加载程序已经位于0x0并占用8K。
两个文档还显示了有关如何在 Keil uVision 中执行此操作的屏幕截图(请参阅应用说明的第 14 页),但是我计划使用 GNU 工具链(Yagarto + Eclipse + OpenOCD)。
使用 GNU 工具链进行编译时,如何指定起始地址 0x2000,以便它能够与 USB 引导加载程序正常工作?
Just picked up one of these ARM Cortex-M3 LPC1768 mini boards from eBay. It's basically a breakout board.
However, based on what little documentation came with it, I've determined that it has a USB bootloader similar to that described by NXP's
LPC1700 secondary USB bootloader (AN10866) app note.
Both docs (the app note and board docs) indicate that user programs are to be built such that their starting address is 0x2000. Because the USB bootloader is already at 0x0 and takes up 8K.
Both docs also show screenshots (see page 14 of app note) on how to do this within Keil uVision, however I'm planning on using a GNU toolchain (Yagarto + Eclipse + OpenOCD).
How do I specify a starting address of 0x2000 when compiling with a GNU toolchain so that it will work properly with the USB bootloader?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我有很多基于 Arm 的示例:
https://github.com/dwelch67
查找或创建您自己的链接器脚本。它可能会说 ORIGIN = 0x00000000 对于 rom 将其更改为 0x2000,例如:
您可能想要/需要一个 .data
或类似的东西。取决于您的程序和启动代码等等。
如果您已经有一个为 0x00000000 构建的工作系统,则找到正在使用的链接描述文件并复制它,并将其更改为 0x2000 并指定该链接描述文件。
I have lots of arm based examples:
https://github.com/dwelch67
Find or create your own linker script. where it might have said ORIGIN = 0x00000000 for the rom change that to 0x2000, something like this for example:
you might want/need a .data with
or something like that. depends on your programs and boot code and all that.
If you already have a working system that builds for 0x00000000 then find the linkerscript being used and make a copy of it and change it to 0x2000 and specify that linker script.