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.