Att sätta hjul på din Zedboard (14 / 14 steg)
Steg 14: Test_hbridge.cpp
Denna fil definierar SW komponenten i vårt projekt. Eftersom gränssnittet är HBridgeCtrlIndication att vara genomförs i SW och anropas från HW, vi måste genomföra det som en ärvd klass av maskin-genererade HBridgeCtrlIndicationWrapper. Genererade omslaget deklarerar en ren virtuella instans av varje metod i den ursprungliga definitionen av HBridgeCtrlIndication BSV gränssnittet, vilket tvingar programmeraren att ge en konkret genomförande för var och en.
I main skapar vi en instans av våra HBridgeCtrlIndication (Wrapper) och en instans av genererad proxy för HBridgeCtrlRequest-gränssnittet som har genomförts i HW. Den genererade ctors för var och en av dessa moduler innehåller alla initieringskod som lokaliserar den korrekta HW register och mappar dem till användaren utrymme. Ctor för wrappers registrerar också objektet med händelsehanteraren avbrott-drive, som initieras via ett anrop till pthread_create genom att åberopa portalExec_start().
Efter instansieras omslag och proxyservrar, är vi redo att börja skicka kommandon till registeransvarige via portalen utsedda. När HW åberopar SW funktionalitet, lyfts ett avbrott som vaknar händelse tråden och utför den angivna metoden gränssnittsmetoden. Kommunikation mellan den röda tråden och händelsehanteraren implementeras med standard flertrådade programmering tekniker.