Guten Morgen. Ich habe ein Problem bei folgender selbstdefinierter
Funktion (ausgeführt auf einem Virtex (MicroBlaze)):
int function(u8 *transmitter_buffer)
{
xil_printf("transmitter_buffer[0]: %x\n\r",transmitter_buffer[0]);
xil_printf("transmitter_buffer[1]: %x\n\r",transmitter_buffer[1]);
xil_printf("transmitter_buffer[2]: %x\n\r",transmitter_buffer[2]);
xil_printf("transmitter_buffer[2]: %x\n\r",transmitter_buffer[3]);
xil_printf("transmitter_buffer[2]: %x\n\r",transmitter_buffer[4]);
return(0);
}
In der main() rufe ich das ganze wie folgt auf:
uint8_t tx_buffer[5];
tx_buffer[0] = 0x0A;
tx_buffer[1] = 0x0B;
tx_buffer[2] = 0x0C;
tx_buffer[3] = 0x0D;
tx_buffer[4] = 0x0E;
function(tx_buffer);
Ausgabe auf der Console:
transmitter_buffer[0]: FF
transmitter_buffer[1]: FF
transmitter_buffer[2]: C
transmitter_buffer[3]: D
transmitter_buffer[4]: E
Es werden die zwei ersten Einträge stets als "FF" ausgegeben. Ich habe
die Funktion einmal auf dem PC im devC++ Editor getestet. Dort tut sie
was sie soll. Hat einer eine Erklärung?
Der von Dir gezeigte Code und die von Dir gezeigte Ausgabe stimmen nicht überein.
Lola schrieb: > Der von Dir gezeigte Code und die von Dir gezeigte Ausgabe stimmen nicht > überein. Ich vermute, das ist das Problem... CAnfänger schrieb: > In der main() rufe ich das ganze wie folgt auf: > uint8_t tx_buffer[5]; Das sieht nach einem amoklaufenden Pointer aus. Ist es genau dises Programm in dieser Reihenfolge und ohne Interrupts, das die Probleme macht? Was wird denn VOR dem tx_buffer deklariert?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.