【问题标题】:Microchip: How to load more then one HEX file in MPLAB XMicrochip:如何在 MPLAB X 中加载多个 HEX 文件
【发布时间】:2012-06-22 05:48:02
【问题描述】:

我使用 MPLAB X(有时是 MPLAB 8)并完成了一些项目。我有这些 HEX 文件:

  • bootloader.hex
  • magic_flag.hex

引导加载程序从地址 0x0 加载到 0x7FF。魔术标志的位置在地址 0x40(所以在引导加载程序区域)。

现在我需要在 MPLAB X 中设置项目以加载所有内容(bootloader+magicFlag+app)。 可以加载引导加载程序,然后是magicFlag,然后设置保留闪存并处理应用程序并仅加载应用程序区域(从0x800到0xFFFF),但这对我来说不太舒服。例如,当我使用 iSYSTEM 的 WinIDEA IDE 与飞思卡尔合作时,我能够设置许多要加载的 SX 文件,非常简单、快速并且可以正常工作。但是当我用 MPLAB X 尝试它时,我总是得到错误:

(944) appl.hex 和 bootloader.hex 之间地址 0h 的数据冲突。

我尝试了什么:

  • 在项目属性中加载的设置文件(加载部分)
  • 在项目属性中设置内存范围(ICD 3 部分)

但我认为加载 ICD 3 没有问题。因为在 MPLAB X 创建统一的 hex 文件时,错误及时出现。

想象一下,这是我的链接器的一部分:

CODEPAGE   NAME=BootResetVec START=0x000             END=0x007         PROTECTED
CODEPAGE   NAME=BootHighISR  START=0x008             END=0x017         PROTECTED
CODEPAGE   NAME=BootLowISR   START=0x018             END=0x029         PROTECTED
CODEPAGE   NAME=TRMAGIC      START=0x040             END=0x07F         PROTECTED
CODEPAGE   NAME=BootLoader   START=0x080             END=0x07FF        PROTECTED

CODEPAGE   NAME=page         START=0x800             END=0x7D7F
CODEPAGE   NAME=debug        START=0x7D80            END=0x7FFF        PROTECTED

我提醒一下,这不仅是我的项目,而且只是带有 magicFlag 的引导加载程序,而且我只有来自 appl 的源代码。当然,最好在一个项目中拥有带有appl的bootloader源代码。

所以,MPLAB X 害死我了,请帮助我 :-)

【问题讨论】:

    标签: loading microchip pic18 mplab


    【解决方案1】:

    您不能将两个应用程序加载到同一个内存地址空间! 您需要将magic_flag 应用程序重新编译到更高的地址,而不是在程序闪存中合并两者。链接器不能代替你做。 :)

    【讨论】:

      猜你喜欢
      • 2017-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多