Probleme bei der Übergabe eines Arrays an eine Funktion

Gast #3530604
Lesenswert?

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?
Moderator (Firma: Titel) Persönliche Seite #3530671
Lesenswert?

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?

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