Hallo,
ich versuche gerade mit avr-gdb & avarice meinen Mega644 zu debuggen.
Normalerweise klappt auch alles! Nun Versuche ich gerade meinen
Bootloader zu debuggen, nur leider klappt das nicht.
Als Debugger verwende ich einen JTAG ICE mkII.
Das Phaenomen ist folgendes. Ich kann avarice ganz normal starten und
will dann mit Eclipse Debugger (wohlgemerkt mit der Normalen Firmware
klappt auch alles). Das BootRST Flag ist gesetzt und der Code startet
auch (meine LED blinkt). Sobald ich nun Debugge, steht das Programm auf
Adresse 0x1FFC0 (ja, ich weiss, die Adresse gibts nicht.). Saemtliche
Versuche, den Speicher auszulesen schlagen fehl!. (Er liest ueberall
0xFF).
Als Linker Flag habe ich folgendes
-Wl,--section-start=.text=0xE000
Laut DB 0x7000 => 0x7000 * 2 = 0xe000 da WORD Addressen
Meine Fuses 0xF7 0x18 0xFF
|-> OCD EN, JTAG EN, SPI EN, Boot Sz 4096 words,
Bootrst EN
mein Code
1 | int main(){
|
2 | DDRC |= (1 << PC6);
|
3 | PORTC ^= (1 << PC6);
|
4 | DDRC |= (1 << PC7);
|
5 | PORTC ^= (0 << PC7);
|
6 | while (1) {
|
7 | asm volatile ("nop");
|
8 | PORTC ^= ((1 << PC6) | (1 << PC7));
|
9 | }
|
10 | }
|
Hat irgendjemand schon mal soein Problem gehabt?
avarice 2.10 & 2.7; avr-gdb 6.8
Bzw. kann mir jemand helfen, warum ich das Programm nicht debuggen kann?