Świat jest analogowy, nie cyfrowy...

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[…]

ARM7 to prehistoria

ARM7 to prehistoria

Z nudów odkopałem płytki deweloperskie do procków na rdzeniu ARM7. Mam dwie. Jedna na LPC2129 od NXP, druga na AT91SAM7XC256 od Atmela. Napisałem kod startowy i… pojawił się problem. Nie byłem w stanie debugować kodu. Walczyłem z tym przez kilka ładnych godzin. Jednak bez skutku. Zastanawiałem się co zepsułem, ale po zarwanej nocy okazało się,Więcej oARM7 to prehistoria[…]

Złoty Byk – STM32F107

Złoty Byk – STM32F107

Kolejny wytwór chińskiego geniuszu ekonomicznego. Płytka zwie się „Złoty Byk”. Płytka oczywiście złota nie jest, choć na rynku dostępna jest z żółtą soldermaską. Płytkę nabyłem mniej więcej w tym samym okresie co płytkę do LPC1768. Tym razem Cortex M-3 ze stajni ST. STM32F107VCT6. Na polskim rynku wciąż dostępna w cenie około 300 PLN. Na wWięcej oZłoty Byk – STM32F107[…]

Tygrys górski

Tygrys górski

Po polsku płytka prawdopodobnie nazywa się „Żbik”, HY-Landtiger. Chińska płytka deweloperska dla procesora LPC1768. Kupiłem ją ładnych parę lat temu, gdy rdzeń Cortex M-3 zaczął zdobywać rynek mikrokontrolerów. Cena była bardzo atrakcyjna, bo coś w okolicy 300 PLN. Na tamte czasy była to niezwykła okazja, gdyż tak wyposażona płytka innych firm kosztowała kilkaset PLN. ZwykleWięcej oTygrys górski[…]

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[…]