2012-06-22 116 views
0

我使用MPLAB X(某時是MPLAB 8),並完成了一些項目。我有這些HEX文件:Microchip:如何在MPLAB X中加載多個HEX文件

  • bootloader.hex
  • magic_flag.hex

的Bootloader從地址0x0到0x7FF加載。神奇的標誌位置在地址0x40(所以在bootloader區域)。

現在我需要在MPLAB X中設置項目來加載所有內容(bootloader + magicFlag + app)。 可以加載bootloader,然後magicFlag,然後安裝Preserved flash memory並在應用程序上工作,並只加載應用程序區域(從0x800到0xFFFF),但對我來說不太舒服。例如,當我與飛思卡爾一起使用iSYSTEM的WinIDEA IDE時,我可以設置許多SX文件來加載,非常簡單,快速,並且工作正常。但是,當我與MPLAB XI嘗試總是得到錯誤:

(944) data conflict at address 0h between appl.hex and bootloader.hex.

我試了一下:

  • 加載設置文件在項目屬性(部分負載)
  • 設置存儲器範圍,項目性質(部分ICD 3)

但是我不認爲它與ICD 3加載的問題。由於MPLAB X在創建統一的十六進制文件時出現錯誤。

而對於想象,這是我連接的一部分:

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的bootloader源代碼會更好。

所以,MPLAB X是殺死我,請幫我:-)

回答

0

不能裝載兩個應用程序相同的內存地址空間! 您需要將magic_flag應用程序重新編譯到更高的地址,而不是將兩者合併到程序FLASH存儲器中。鏈接器不能這樣做,而不是你。 :)

+0

不正確,請參閱http://www.microchip.com/forums/m716681.aspx –