Forum: Mikrocontroller und Digitale Elektronik PIC32 Linkerfiles


von Matthias (Gast)


Lesenswert?

Hallo Leute,
ich bin dahinter einen Bootloader zu schreiben und nun wollte ich fragen 
ob sich bei den Linkerfiles einen Fehler eingeschlichen haben. Vielen 
Dank fürs Querlesen ;-) Weil irgendwas funktioniert noch nicht bei 
meinem Bootloader und evtl hab ich dort noch einen Fehler...

Bootloaderscript:

PROVIDE(_vector_spacing = 0x00000001);
_ebase_address = 0x9FC01000;

_RESET_ADDR              = 0xBFC00000;
_BEV_EXCPT_ADDR          = 0xBFC00380;
_DBG_EXCPT_ADDR          = 0xBFC00480;
_DBG_CODE_ADDR           = 0xBFC02000;
_DBG_CODE_SIZE           = 0xFF0     ;
_GEN_EXCPT_ADDR          = _ebase_address + 0x180;


MEMORY
{
  kseg0_program_mem    (rx)  : ORIGIN = 0x9D000000, LENGTH = 0x10000
  kseg0_boot_mem             : ORIGIN = 0x9FC00490, LENGTH = 0x970
  exception_mem              : ORIGIN = 0x9FC01000, LENGTH = 0x1000

  /* leave them alone */
  kseg1_boot_mem             : ORIGIN = 0xBFC00000, LENGTH = 0x490
  debug_exec_mem             : ORIGIN = 0xBFC02000, LENGTH = 0xFF0
  config3                    : ORIGIN = 0xBFC02FF0, LENGTH = 0x4
  config2                    : ORIGIN = 0xBFC02FF4, LENGTH = 0x4
  config1                    : ORIGIN = 0xBFC02FF8, LENGTH = 0x4
  config0                    : ORIGIN = 0xBFC02FFC, LENGTH = 0x4
  kseg1_data_mem       (w!x) : ORIGIN = 0xA0000000, LENGTH = 0x10000 /* 
instead of 0x20000 */
  sfrs                       : ORIGIN = 0xBF800000, LENGTH = 0x100000
  configsfrs                 : ORIGIN = 0xBFC02FF0, LENGTH = 0x10
}


und scriptfile der applikation

PROVIDE(_vector_spacing = 0x00000001);
_ebase_address = 0x9D011000;

_RESET_ADDR              = 0x9D012000;
_BEV_EXCPT_ADDR          = 0xBD012380;
_DBG_EXCPT_ADDR          = 0xBD012480;
_DBG_CODE_ADDR           = 0xBFC02000;
_DBG_CODE_SIZE           = 0xFF0     ;
_GEN_EXCPT_ADDR          = _ebase_address + 0x180;

MEMORY
{
  kseg0_boot_mem       : ORIGIN = 0x9D011000, LENGTH = 0x1000
  exception_mem        : ORIGIN = 0x9D012000, LENGTH = 0x1000
  kseg0_program_mem    : ORIGIN = 0x9D013000, LENGTH = 0x80000 - 0x13000


  kseg1_boot_mem             : ORIGIN = 0xBFC00000, LENGTH = 0x490
  debug_exec_mem             : ORIGIN = 0xBFC02000, LENGTH = 0xFF0
  config3                    : ORIGIN = 0xBFC02FF0, LENGTH = 0x4
  config2                    : ORIGIN = 0xBFC02FF4, LENGTH = 0x4
  config1                    : ORIGIN = 0xBFC02FF8, LENGTH = 0x4
  config0                    : ORIGIN = 0xBFC02FFC, LENGTH = 0x4
  kseg1_data_mem       (w!x) : ORIGIN = 0xA0000000, LENGTH = 0x20000
  sfrs                       : ORIGIN = 0xBF800000, LENGTH = 0x100000
  configsfrs                 : ORIGIN = 0xBFC02FF0, LENGTH = 0x10
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.