Cześć,
W programie mam dwa wątki, które pracują na porcie szeregowym (RS485) pod #linux. Jeśli dobrze się orientuję, to na płytce (customowa), którą posiadam jest transmitter, który powoduje, że komunikacja nie jest full-duplex. W związku z czym używam select(), do sprawdzania czy jest możliwy zapis / odczyt. Problem polega na tym, że od czasu do czasu ramka jest źle odczytywana i ucinane są końcowe bajty, choć wiem że urządzenie
W programie mam dwa wątki, które pracują na porcie szeregowym (RS485) pod #linux. Jeśli dobrze się orientuję, to na płytce (customowa), którą posiadam jest transmitter, który powoduje, że komunikacja nie jest full-duplex. W związku z czym używam select(), do sprawdzania czy jest możliwy zapis / odczyt. Problem polega na tym, że od czasu do czasu ramka jest źle odczytywana i ucinane są końcowe bajty, choć wiem że urządzenie

Jak piszecie unit testy pod soft, który jest dedykowany dla innej architektury? W moim przypadku robię development na Ubuntu z x86 pod płytkę ARMową z RTOSem, problem jest taki, że nawet chcąc oddzielić logikę pod unit testy od warstwy RTOSa, to i tak potrzebuję skompilować całość. Czy problem jest głównie w mojej architekturze kodu czy jest na to jakieś sprytne obejście?
#embedded #linux #cpp #
@a231
@Strus
Ok, dzięki Panowie. Głównie bubla zrobiłem w tym, że wśród elementów realizujących logikę i przetwarzanie danych mam taski i struktury danych pochodzące z tego RTOSa. O ile struktury danych już udało mi się oddzielić, to mam problem z oddzieleniem wątków. Czy sensownie w tym przypadku jest stworzenie jakiegoś thread poola, żeby łatwo było się przepiąć pomiędzy systemami?
https://xenomai.org/documentation/xenomai-3/html/xeno3prm/group__alchemy__task.html
Jest możliwość, żeby było POSIX, ale akurat mam płytkę gdzie nie jest to zrobione i muszę z tym żyć.