Forum: Mikrocontroller und Digitale Elektronik Bootloader und Nutzprogramm in einem Projekt


von Sep (Gast)


Lesenswert?

Hallo,

ich habe mir für den PIC24HJ128GP504 einen Bootloader, basierend auf der 
AppNote 1094 von Microchip, gestrickt. Um den Bootloader an die richtige 
Stelle im Speicher des µCs zu bekommen habe ich im Linker-Skript-File 
folgendes stehen:

<schnip>
MEMORY
{
  data  (a!xr) : ORIGIN = 0x800,         LENGTH = 0x2000
  reset        : ORIGIN = 0x0,           LENGTH = 0x4
  ivt          : ORIGIN = 0x4,           LENGTH = 0xFC
  aivt         : ORIGIN = 0x104,         LENGTH = 0xFC
  program (xr) : ORIGIN = 0x600,         LENGTH = 0x15200
</schnipp>
<schnipp>
__CODE_BASE = 0x600;
</schnipp>
<schnipp>
  .text __CODE_BASE :
  {
        *(.init);
        *(.user_init);
        *(.handle);
        *(.libc) *(.libm) *(.libdsp);  /* keep together in this order */
        *(.lib*);
  } >program
</schnipp>

Nun steht da aber auch:
 /*
  ** User Code and Library Code
  **
  ** This section must not be assigned to __CODE_BASE,
  ** because CodeGuard(tm) sections may be located there.
  **
  ** Note that input sections *(.text) are not mapped here.
  ** The best-fit allocator locates them, so that .text
  ** may flow around PSV sections as needed.
  */
Wenn ich das richtig verstehe, wird meine Lösung funktionieren solange 
ich keinen CodeGuard verwende. Wie müsste ich das denn machen das das 
"korrekt" gelöst wäre?

Nächste Frage:
Ich würde gerne den Bootloader zusammen mit dem eigentlichen 
"Nutzprogramm" in einem Projekt unterbringen, so dass ich nachher mit 
einem Programmiervorgang sowohl Bootloader als auch Nutzprogramm mit dem 
ICT in  den Controller bekomme. Wenn dann später eine neue Version des 
Nutzprogrammes fertig ist, soll sie mittels des Bootloaders 
aufprogrammiert werden können.
Wie mache ich das? Ich muss ja irgendwie im Linker-Skript-File angeben 
können wo das Nutzprogramm hinsoll.

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.