No oczywiście że nie ma problemu, ale trzeba umieć to napisać :] Nie każdy potrafi....
Trudność (nie problem) polega właśnie na napisaniu tego dispatchera, bo:
1) transakcje nie powinny być wskaźnikami w fifo, lecz powinna być
lista niezrealizowanych transakcji tak samo jak
lista zrealizowanych transakcji
2) transakcje powinny być priorytetowane
3) dispatcher analizuje zawartość listy transakcji niezrealizowanych, arbitruje po priorytecie, wybiera jedną z nich i wykonuje, po czym wrzuca wskaznik na liste transakcji zrealizowanych...
4) rozdawnictwo uchwytów - proces żądający danych transakcji musi wiedzieć kiedy one się skończyły: albo sygnały, albo polling bitu statusowego w "strukturze" transakcji
5) chyba najwygodniej zbudować "klasę"/"typedef struct" transakcji, aby łatwo było napisać funkcje:
-- dodawania transakcji do listy niezrealizowanych
-- dispatcher (koniecznie w przerwaniu SPI lub DMA
-- rozdającą uchwyty (wskazniki)
...no i oczywiście
nadal nie ma tu nigdzie problemu, ale początkujący połamie sobie na tym paznokcie i zemby
