Świat jest analogowy, nie cyfrowy...

Start z OpenGL ciąg dalszy – GLAD

Start z OpenGL ciąg dalszy – GLAD

GLFW, które udało mi się z sukcesem zainstalować (link do wpisu) teoretycznie wystarczy, żeby pracować z OpenGL. Dlaczego teoretycznie? OpenGL nie jest samodzielną biblioteką implementującą funkcje graficzne. Tak naprawdę jest to standard definiujący interfejs sterownika karty graficznej i za implementację poszczególnych funkcji odpowiedzialny jest producent sterownika karty graficznej. Jest to rozsądne, bo każda karta graficznaWięcej oStart z OpenGL ciąg dalszy – GLAD[…]

OpenGL i Visual Studio 2019

OpenGL i Visual Studio 2019

Po wielu latach wracam do Visual Studio. Nie kręci mnie budowanie środowiska „from scratch” i spędzania godzin na instalacji i konfiguracji i łączenia narzędzi, które były rozwijane równolegle bez myśli o współpracy ze sobą. Visual Studio od Microsoftu zawsze było budowane w jednym konkretnym celu, więc jest narzędziem dopracowanym i raczej niespodzianek nie należy sięWięcej oOpenGL i Visual Studio 2019[…]

Sterownik do HD44780 na I2C

Sterownik do HD44780 na I2C

Po długiej walce ze zdobywaniem wiedzy na temat pisania sterowników pod magistralę I2C udało mi popełnić pierwszy. Jest nieco ułomny, bo poza sterowanie podświetleniem oraz dostępem do dwóch linii, nie udostępnia nic ciekawego. Planuję sukcesywną rozbudowę oczywiście. Dodanie obsługi ioctrl\’i, dodanie urządzenia znakowego i rozbudowę do obsługi innych wyświetlaczy zgodnych z HD44780. Ale to później…Więcej oSterownik do HD44780 na I2C[…]

Strumień jedynkowy

Strumień jedynkowy

Po wielu perypetiach związanych z uruchomieniem „środowiska” do kompilacji modułu jądra, udało mi się uruchomić „Witaj świecie!”. Teraz przyszedł czas na coś bardziej ambitnego. Urządzenie znakowe produkujące jedynki, działające tak samo jak /dev/zero. Czasami takie urządzenie się przydaje. Znacznie rzadziej, ale jak jest potrzebne, to jest problem. Moduł nie niesie ze sobą nic odkrywczego. TypoweWięcej oStrumień jedynkowy[…]

Malinowe jajo i moduły

Malinowe jajo i moduły

Stwierdzam, że w projekcie Raspbery Pi panuje rozgardiasz. Przykładowo chciałem sobie skompilować moduł jądra, klasyczne „Witaj świecie”, żeby zobaczyć czy wszystko działa. Generalnie koncept jest bardzo prosty: # rpi-update # rpi-source W odpowiednim folderze skompilować moduł… # make -C /lib/modules/$(uname -r)/build M=$(pwd) modules I na tym koniec… teoretycznie koniec. Problem pierwszy. Wersja GCC. Bieżąca wersjaWięcej oMalinowe jajo i moduły[…]

Walka ze słówkiem inline

Walka ze słówkiem inline

Wymyśliłem sobie taką strukturę obsługi przerwań: tablica wektorów przerwań wraz z definicjami funkcji znajdują się w pliku isr_vectors.c; jako, że w przerwaniu nie koniecznie obsługujemy tylko zdarzenie od jednego peryferium, fragmenty obsługi dla danego peryferium (np przycisku) znajdują się np w zl27arm_buttons.c, a procedura obsługi przerwania woła odpowiedni kod. Wszystko ładnie, czysto, nie trzeba szukaćWięcej oWalka ze słówkiem inline[…]

Przykłady do ZL28ARM ze strony kamami.pl

Przykłady do ZL28ARM ze strony kamami.pl

Przykłady do ZL28ARM ze strony kamami.plZauważyłem pewien problem związany z przykładowym kodem dołączonym do książki „Mikrokontrolery AT91SAM7 w przykładach” (Robert Brzoza-Woch). Jeżeli zostanie włączona optymalizacja linkera -Xlinker –gc-sections linker usuwa cały kod programu i wynikiem jest plik o długości 0x0 bajtów. Powodem jest źle skonstruowany skrypt linkera/plik startowy. W oryginalnym pliku tablica wektorów wyjątków jestWięcej oPrzykłady do ZL28ARM ze strony kamami.pl[…]

STM32 prosty skrypt linkera

STM32 prosty skrypt linkera

Skrypt jest rzeczywiście prosty. Zaprezentuję go w całej okazałości, żeby był bardziej zrozumiały. Jest to generalnie kompilacja działających i niedziałających przykładów z internetu. Minimum jest bardzo proste. Na początku w pamięci flash musi znaleźć się tablica wektorów przerwań (tablica wskaźników do funkcji obsługujących przerwania). Opisuje go sekcja oznaczona jako isr_vectors. KEEP jest konieczny, gdyż inaczejWięcej oSTM32 prosty skrypt linkera[…]

Kompilacja OpenOCD z D2XX

Kompilacja OpenOCD z D2XX

Używam systemu Ubuntu (na maszynie wirtualnej). Można pod nim dokonać cross-kompilacji OpenOCD z obsługą sterowników D2XX. W systemie Ubuntu muszą być zainstalowane następujące rzeczy: # apt-get install gcc-mingw32 # apt-get install mingw32 # apt-get install libconfig8 # apt-get install libtool # apt-get install autoconf # apt-get install automake # apt-get install cmake # apt-get installWięcej oKompilacja OpenOCD z D2XX[…]

Eclipse Helios + STM32 + J-LINK

Eclipse Helios + STM32 + J-LINK

Ostatnio bardzo popularnym narzędziem do programowania stał się interface J-LINK, a raczej jego podróbka (czy też jak niektórzy mówią „odpowiednik”). Korzystanie z podróbek zakupionych oraz korzystanie z dołączonego do nich oprogramowania jest nielegalne. Oryginalny J-Link jest dość drogi, kosztuje około 1500 PLN. Na rynku dostępna jest wersja edukacyjna, dzięki której można tworzyć niekomercyjne projekty iWięcej oEclipse Helios + STM32 + J-LINK[…]