tuxcnc: straszne bzdury wypisujesz o RPi5.
Oczywiście RPi5 różni się kolosalnie od poprzednich RPi, ale nie jest tak jak napisałeś że GPIO nie działają. Teraz jeszcze napisałeś że SPI nie działa... Bzdury kompletne.
Wyjaśnię Ci żebyś zrozumiał:
Na RPi1...RPi4 piny GPIO były wyprowadzone z procesora do złącza IDC. I na tych pinach był też UART, SPI, itp.
Na RPi5 wprawdzie też są piny GPIO w procesorze, ale nie są one wyprowadzone na złącze IDC40. Do IDC40 idą piny z mostka RP1 (nie mylić z RPi1). Procesor jest połączony z tym mostkiem za pomocą PCIe. Wszystkie interfejsy (UART, SPI, I2S, a nawet 3.0 USB) wychodzą dopiero z RP1. To mógłby być problem, ale nie jest aż taki duży. Po PCIe puszczony jest też dostęp do rejestrów peryferiów, oraz do linii przerwań, więc te interfejsy działają całkiem sprawnie. Te rejestry są zmapowane do przestrzeni adresowej głównego procesora, tak że procesor widzi to jak swoje rejestry. Mimo że tak naprawdę są w innym układzie, a transfery idą po PCIe.
Uprzedzając Twoje pytania lub co gorsza insynuacje: tak, testowałem GPIO oraz interfejsy na RPi5, i wydajność była całkiem spora (nawet nie wiem czy w ogóle mniejsza niż na RPi4, jeżeli tak to niezauważalnie). Jedynie przerwania są o wiele wolniejsze, ale i tak bardzo szybkie jak na puszczanie ich po PCIe (testowałem z DMA, i delay był około 1 us).
W przypadku tego projektu, skoro autor pisze że to działa na RPi5, to znaczy że działa (musiał wiedzieć jak to zrobić żeby działało). I tyle w temacie. Reszta dyskusji na ten temat jest debilna.