2012-06-22 2 views
0

MPLAB X (언젠가 MPLAB 8)를 사용하고 완성 할 프로젝트를 얻습니다.마이크로 칩 : MPLAB X에서 두 개 이상의 HEX 파일을로드하는 방법

  • bootloader.hex

부트 로더가 0x7FF에 0x0 주소에서로드

  • magic_flag.hex : 나는이 HEX 파일이 있습니다. magic 플래그는 주소 0x40에 위치합니다 (부트 로더 영역에서).

    이제 모든 것을로드하기 위해 MPLAB X에서 프로젝트를 설치해야합니다 (bootloader + magicFlag + app). 부트 로더를로드 한 다음 magicFlag를 설정 한 다음 Preserved 플래시 메모리를 설정하고 응용 프로그램에서 작업하고 appl 영역 (0x800에서 0xFFFF까지) 만로드 할 수는 있지만,별로 편안하지 않습니다. 예를 들어 iSYSTEM의 WinIDEA IDE가있는 Freescale에서 작업 할 때 많은 SX 파일을 매우 간단하고 빠르게로드하도록 설정할 수있었습니다. 내가 MPLAB XI와 함께 그것을 시도하지만 항상 얻을 오류 :

    내가 뭘하려

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

    : 로딩

    • 설치 파일을 프로젝트 속성에서 프로젝트 속성 (섹션로드)
    • 설정 메모리 범위 (섹션 ICD 3)

    하지만 ICD 3 로딩에는 문제가되지 않습니다. MPLAB X가 통합 된 16 진수 파일을 만들 때 오류가 발생했기 때문입니다. 이 내 프로젝트와 magicFlag와 단지가 부트 로더뿐만 아니라이고 나는 APPL 만 소스 코드를 가지고,

    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 
    

    I 알림 :

    그리고 상상에 대한

    ,이 링커 내 일부입니다. 물론 하나의 프로젝트에서 부트 로더 소스 코드를 appl로 만드는 것이 더 좋습니다.

    그래서, MPLAB X는 나를 죽이고, 당신은 동일한 메모리 주소 공간에 두 개의 응용 프로그램을로드 할 수 없습니다

  • 답변

    0

    :-) 저를 도와주세요! magic_flag 응용 프로그램을 프로그램 플래시 메모리에 병합 할 수있는 것보다 높은 주소로 다시 컴파일해야합니다. 링커는 대신 그것을 할 수 없습니다. :)

    +0

    아니요, http://www.microchip.com/forums/m716681.aspx를 참조하십시오. –

    관련 문제