Świat jest analogowy, nie cyfrowy...

Tanio i chyba oszczędnie

Tanio i chyba oszczędnie

Hasło „urządzenie mobilne” kojarzy się z niskim poborem mocy. Jak mogłoby być inaczej. Czy ktoś wyobraża sobie, że baterie w zegarku naściennym wymieniamy co kilka tygodni? Raczej nie. Prędzej raz na 2-3 lata. W aplikacjach mobilnych zasilanie to jedno z wielu zagadnień, którego nie można potraktować po macoszemu. W amatorskiej zabawie z elektroniką podstawowym problememWięcej oTanio i chyba oszczędnie[…]

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

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