我正在为 HCS08 微 Controller 系列开发基于 USB 的引导加载程序。我在程序集中有引导加载程序代码(适用于串行通信)。 我正在从此汇编代码中调用用于 USB 通信的 C 函数(终端 <> 微 Controller )。然而,这些 C 函数似乎没有位于 protected 区域 ROM 中,我可以在 project.map 中看到这一点。它们与我的引导加载程序代码不连续,即我的 Bootstrap 代码从 F003 开始,但这些 USB 函数在某些地方~1000-2000。 我的问题是,如何让这些 C 函数继续 ROM 中的 bootloader.asm 代码。
这是程序流程:我有一个 C 主函数,它在加电时跳转到 bootloader.asm。 尽管 bootloader.asm 工作正常,但由于非 protected 程序 ROM 区域中的 USB 例程,这些也被删除,此后引导加载程序无法与我的终端通信。
在这方面的任何建议都会非常有帮助。
谢谢
最佳答案
当您为嵌入式系统生成代码时,您通常会使用“链接器/定位器”而不仅仅是链接器。 “定位器”部分意味着它允许您设置参数,告诉它内存应该位于什么地址。不幸的是,我无法确切地告诉您如何使用您正在使用的工具集来指定它。如果您告诉我们那是什么工具集,也许有人(不像我)使用过它会知道为您使用的定位器指定地址的详细信息。
关于c - 如何将 C 函数放入某个地址范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4038697/