C166V2/µVision3: Code "verschieben"

OP #1065520
Lesenswert?

Moin.

Kurze Frage: Wie verschiebt man Programmcode (mit µVision3) am besten 
so, dass dieser auf einem XC2287 (C166 V2) nicht bei 0xC00000 beginnt, 
sondern bei 0xC10000? Die ersten 64kB ab 0xC00000 sollen für einen 
Bootloader frei bleiben, der direkt nach einem externen Reset bzw. beim 
Einschalten startet und dann (nach einigen anderen Vorgängen) das 
Programm an 0xC10000 anspringen soll.
Und genau da gibts noch das Problem: Was muss man beim Programm ändern, 
dass dieses erst ab 0xC10000 beginnt, und wie spring ich das dann an?

Im Moment versuch ichs so, dass im Programm bei den Target Options der 
Haken bei "Use On-Chip ROM (0xC00000 - 0xC0EFFF)" deaktiviert ist; die 
erzeugte Hex-File beginnt dann auch erst bei 0xC10000.
Die Vorgaben im Linker für die einzelnen Sections scheinen auch zu 
stimmen.

Im Bootloader spring ich dann mit dem folgenden an 0xC10000.
1
 #pragma asm
2
  JMPS #00C1h,#0000h
3
 #pragma endasm

Nur hierhängt sich der Controller dann auf und tut nichts mehr;

mfG

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren