Moin! Ich bin gerade dabei mit einem Echoserver rumzuspielen. Also erstmal paar Daten: Ich nutze das ML507 und lasse einen Echoserver auf einem Microblase laufen und nutze EDK 12.4. Soweit funktioniert auch alles, aber ich will halt jetzt ein paar Änderungen daran vornehmen und da fängts an kompliziert zu werden. Erstmal ist der Echoserver ja so eine Beispiel application und dann kommt irgendwann im echo.c eine zeile wo irgendein payload angesprochen wird: if (tcp_sndbuf(tpcb) > p->len) { err = tcp_write(tpcb, p->payload, p->len, 1); jetzt würde ich gerne das Payload auslesen und auf einem Hyperterminal ausgeben lassen. Deswegen dachte ich mir, modifizier ich den Code mal folgendermaßen: if (tcp_sndbuf(tpcb) > p->len) { err = tcp_write(tpcb, p->payload, p->len, 1); xil_printf("Das Datapayload ist: %i", p->payload); es wird jedoch keine ausgabe fürs Payload gemacht. Dort steht immer Das Datapayload ist: aber es wird für das Payload nicht ausgegeben. Was is da falsch? Grüße Jan
%i erwartet einen Integer. Wenn ich dann integer sende, müssten die doch ausgegeben werden. Mit casting habe ichs auch schon versucht. klappt nix...
Jan S. schrieb: > aber es wird für das Payload nicht ausgegeben. > Was is da falsch? Welchen Datentyp hat payload? Was sagt der Compiler? Was kommt raus, wenn du sowas schreibst:
1 | xil_printf("Das Datapayload ist: %i", 55); |
p->payload ist doch ziemlich sicher ein Pointer auf einen Puffer dessen Länge in p->len steht, den kannst du nicht so direkt ausgeben.
Jan S. schrieb: > %i erwartet einen Integer. Wenn ich dann integer sende, müssten die doch > ausgegeben werden. Mit casting habe ichs auch schon versucht. klappt > nix... Hm, %i kenne ich von C her überhaupt nicht. %d wird benutzt, um integer auszugeben. So ist das auch in vielen Beispielen, die sich im Netz zu xil_printf finden. Leider habe ich keine genaue Dokumentation von Xilinx zu xil_printf gefunden. Da du ja genau weisst, dass dort auch %i gehen soll, musst du ja die entsprechende Dokumentation haben. Könntest du mir einen Link du geben, oder die Xilinx XAPP... Nummer? Würde mich nämlich jetzt mal interessieren.
%i ist zwar ungebräuchlich, aber u.A. sowohl von der glibc und auch von MS VisualStudio unterstützt. Funktion ist identisch zu %d.
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.