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