Blinkande lysdioderna på en Zedboard med Bluespec och Connectal (4 / 8 steg)
Steg 4: Redigera testleds.cpp
Vi kommer att ändra testleds.cpp så att den visar användbar information: zedboard IP-adress. Vi kommer att ha det blinka varje byte för en sekund och sedan alla tom för en sekund.
Redigera testleds.cpp. Du kan göra detta på github webbgränssnittet eller i din favorit editor.
Lägger du först till
#include < string.h >
i listan över innehåller, eftersom vi kommer att kalla memset().
Det enklaste sättet att bestämma styrelsens IP-adress är att springa ifconfig, så Lägg till följande rader efter "Starting LED test.":
Fil * röret = popen ("ifconfig eth0", "r");
char buf [256];
läsa den första raden och kasta det
fgets (buf, sizeof(buf), pipe);
Läs den andra raden
fgets (buf, sizeof(buf), pipe);
printf ("adressrad: %s", buf);
klar med röret, stänga den
fclose(pipe);
Buf innehåller nu en sträng av formuläret "inet addr:172.17.1.185", så Lägg ett anrop till scanf:
int addr [5]. < br > memset (addr, 0, sizeof(addr));
int status = sscanf (buf, "inet addr:%d.%d.%d.%d", & addr [0], & addr [1], & addr [2], och addr[3]);
printf ("eth0 addr % d.%d.%d.%d\n" addr [0], addr [1], addr [2], addr[3]);
Slutligen, uppdaterar du koden som skickar LED värden att använda addr byte:
för (int jag = 0; jag < 20; i ++) {< br > printf ("ledde värde %x\n", addr [i % 5]);
enhet -> setLeds (addr [i % 5], blinkinterval);
Sleep(sleepinterval);
}
Nu spara filen, begå det och tryck github. Om du redigerar på github webbgränssnittet, gör den push automatiskt.