Popularny post Kocisko Napisano Czerwiec 18, 2010 Popularny post Udostępnij Napisano Czerwiec 18, 2010 Programowanie mikrokontrolerów w Linuksie? Czemu nie! Czy to jest proste? Oczywiście! Czy to jest legalne? Jak najbardziej! Jeśli Linux jest systemem, z którego korzystasz na co dzień, lub planujesz przesiadkę na ten system, to chwała Ci za to. Tym bardziej, że umożliwia on wykonanie wielu czynności „dla których” ciągle pozostajesz przy Windowsie. Użytkownicy legalnego dziecka Microsoftu mogą ten temat potraktować jako ciekawostkę. Piratów za to gorąco zachęcam do zapoznania się z pingwinowym światem. Zanim przejdę do meritum pozwolę sobie wtrącić pewną kwestię: Dlaczego Linux? Głównie dla tego, że zapewne Twoja praca przy komputerze oscyluje w obszarze surfowania po internecie, pisania w Wordzie i oglądania filmów. Dodatkowo, z oczywistych względów, możesz być zainteresowany programowaniem i projektowaniem układów elektronicznych. Jeśli to co napisałem jest prawdą, to właściwie co trzyma Cie przy Windowsie? NIC! Linux daje Ci w 99% darmowe oprogramowanie, a w tym oryginalne oprogramowanie, które znasz (Firefox, Eagle, KiCad...), doskonałe zamienniki programów z których korzystasz nie legalnie (Microsoft Office- OpenOffice, PhotoShop- Gimp, 3DStudioMax- Blender, AutoCad- QCAD, Inventor-FreeCad... ) Wiele gier chodzi na emulatorach Wine i PlayOnLinux. Co zatem zrobić żeby programować w Linux? Po pierwsze zacząć z nim przygodę wybierając jedną spośród nie zliczonej liczby dystrybucji. Po drugie oswoić się z systemem Po trzecie.. przejść dalej 🙂 Jeśli interesuje Cię BASCOM istnieje cień szansy że uda się go uruchomić za pomocą emulatora systemu Windows, o nazwie Wine. Jeśli interesuje Cię programowanie w języku C, to masz dwa wyjścia: Pierwsze: Kroczyć drogą twardych linuxowych wyjadaczy. Ściągnąć kompilator, pisać w jakimś edytorze tekstu, oraz kompilować z kosoli. Drugie: Wersja dla normalnych zjadaczy chleba: Pierwsze co musimy zrobić, to ściągnąć odpowiednie pakiety. Cały proces pokażę na przykładzie systemu Linux Ubuntu. Otwieramy Menadżer Pakietów Synaptic (System/Administracja/Menadżer Pakietów Synaptic) Odszukujemy następujące pakiety: Bibliotekę: AVR-Libc Kompilator: GCC Narzędzie: Binutils Programatory: UISP i AvrDude Jeśli przyjrzałeś się zdjęciu zobaczyłeś podświetlony pakiet Kontrollerlab. Najprawdopodobniej tego pakietu nie znajdziesz w repozytoriach, więc będziesz musiał go ściągnąć z internetu. W tym celu wchodzimy na STRONĘ na której zapoznasz się z programem. Tutaj przechodzimy do sekcji Download i ściągamy wersję oprogramowania przeznaczoną dla Twojego systemu. W moim przypadku „Ubuntu binary” Jeśli korzystasz z Linuxa Ubuntu, lub Ubuntu podobnego (Linux Mint), lub jakiegoś, którego przodkiem jest Debian, to masz szczęście 🙂. Ściągnięty przez Ciebie pakiet ma końcówkę .deb, a zatem zostanie rozpakowany i automatycznie zainstalowany przez instalator pakietów Gdebi (lub inny). Dokonasz tego przechodząc do miejsca pobierania (standardowo Miejsca/Pobrane) i klikając PPM na pakiecie. Następnie wybierasz instalator pakietów i klikasz „Zainstaluj Pakiet”. Jeśli wszystko zostało zainstalowane to, chociaż Linux tego nie wymaga, można zrestartować system 🙂. OK! Jesteś już gotowy do pierwszego starcia z programowaniem. Odpalasz Kontrollerlab (Programy/Programowanie/Kontrollerlab) Polecam skorzystać z genialnej właściwości Linuxa, czyli wielu pulpitów. Jak widzimy program składa się z modułów, belki magicznych przycisków, oraz zbioru menu. Jest to kombajn programistyczny umożliwiający nam pracę podobną do takiej jaką poznać można chociażby w AVR Studio. Dodatkowo jednak wyposażony jest w przyjazny w użytkowaniu terminal do komunikacji szeregowej z procesorem. Pracę z programem zaczynamy standardowo od utworzenia nowego projektu (Project/New Project). Naszym oczom ukaże się sympatyczne okienko (jak wszystkie w Linuxie :] ) Tutaj oczywiście wybieramy folder oraz tworzymy projekt. (Uwaga- wszystkie operacje wykonujemy pojedynczym kliknięciem..) Następnie Tworzymy nowy plik (File/New/New). Wyieramy rodzaj pliku, nadajemy mu nazwę i po utworzeniu mamy chwilę na WTF... bez nerwów, nasz nowy pliczek schował się troszkę za modułem pamięci. Jest zmniejszony, więc należy go zmaksymalizować, a następnie kliknąć „strzałkę”. Tym sposobem oddzieliliśmy plik kodu źródłowego od reszty programu. Teraz okienko z kodem możemy wrzucić sobie na inny pulpit i delektować się wygodą pracy (Tego nie da się opisać.. tego trzeba spróbować, lub zobaczyć np. ). Zawartość okna oczywiście została wpisana przeze mnie. Utworzyliśmy projekt i zaczynamy pracę. Teraz należy ustawić właściwości projektu i programator. Po pierwsze klikamy ikonę klucza pod drzewkiem projekty, lub wchodzimy Project/Configure Projekt. Tutaj ustawiamy rodzaj procesora i jego taktowanie. W zakładce compiler możemy dodatkowo ustawić wartość optymalizacji. Następnie konfigurujemy programator klikając ikonę klucza koło flagi i rakiety, lub wchodzimy Project/ Configure Programmer. Tutaj ustalamy czy korzystać będziemy z UISP czy z AvrDude, a następnie konfigurujemy wybrane przez nas narzędzie. (Ja na przykład korzystam z Programatora STK200 i UISP). Kiedy wszystko jest gotowe można pisać i kompilować. Interesujące nas narzędzia zaczynają się na prawo od sekcji lupek i są to po kolei: Compile file, Build, Rebuild all, Erase device, upload, upload hex file, download, ignite, fuses. Dla pełnego odlotu, czyli kompilacji z automatycznym wgraniem programu, wykorzystamy oczywiście rakietę 🙂 Pozostało jedynie napisać program i wgrać do pamięci Twojego procesora. Powróć zatem do okna swojego programu i zwróć uwagę na właściwości Kontrollerlaba . W przeciwieństwie do AVR Studio, które możesz znać, program ten poza kolorowaniem składni zaznacza wcięcia, pokazuje pary klamerek {} oraz po naciśnięciu klawisza F11 (lub zaznaczeniu opcji w View) numeruje wiersze. Teraz możesz napisać program i go skompilować. Jeśli kompilacja przebiegła pomyślnie i udało Ci się wrzucić program do procesora to zostałeś „odpicowany” i od teraz możesz cieszyć się w pełni legalnym, i przyjemnym programowaniem. Jeśli coś poszło nie tak.... No cóż.. może się zdarzyć, że kompilator nie znajdzie standardowych plików nagłówkowych, np. „io.h”. Nie bój nic! Oznacza to że biblioteki są nie tam gdzie powinny. Najprostszy sposób to przekopiować je na miejsce. Wchodzimy w Komputer/ System Plików/usr/lib. Patrzymy czy jest tam katalog „avr” i katalog „gcc”. Zaglądamy do avr/include. Są potrzebne biblioteki? Jak tak to super. Teraz zaglądamy do gcc/avr/4.3.3/include. Są biblioteki? Jak nie to już wiesz co robić 😉 Jeśli w żadnym z tych miejsc nie ma bibliotek to zainstaluj ponownie pakiety. Hola hola.. ale nie mogę skopiować... 🙁 To jest system przeciw destrukcyjny Linuxa. Nic nie zrobisz w katalogach systemowych jeśli nie masz uprawnień roota. Jeśli jesteś nowy w linuxie to gwoli ścisłości zdejmę z Ciebie efekt WTF. System linux daje absolutnie nie ograniczone możliwości pracy. Te nie ograniczone możliwości muszą jednak być trzymane w ryzach, aby zwykły szary użytkownik najzwyczajniej w świecie nie popsuł systemu. Dla tego właśnie praca w linuksie podzielona jest na warstwę pracy roota (administratora) i usera. Standardowo pracujesz jako user, a jeśli znasz hasło to w dowolnej chwili możesz przejść do pracy jako administrator, czyli kolo, który może wszystko... głównie oczywiście w owianej legendami i straszącej dzieci „konsoli”. Aby usprawnić naszą pracę i ograniczyć korzystanie z tego a-fe narzędzia musisz je choć raz dotknąć. Wybierz Programy/Akcesoria/Terminal. Otworzy Ci się okno konsoli w którym wpiszesz: sudo apt-get install nautilus-gksu Następnie podasz hasło roota i zainstalujesz przesympatyczny dodatek do przeglądarki plików Nautilus, z której na 99% aktualnie korzystasz 🙂 Po wykonaniu tej operacji powrócisz do wspomnianych wcześniej katalogów avr i gcc. Tam przekopiujesz zawartość avr/include do gcc/avr/4.3.3/include wcześniej otwierając ten drugi poprzez PPM i „Otwórz jako administrator”. Teraz kiedy biblioteki są na swoim miejscu kompilacja powinna przebiec bezproblemowo. Przy okazji dowiedziałeś się gdzie szukać opisów procesorów oraz ich rejestrów, bo znajdziesz je w gcc/avr/4.3.3/include/avr. Ostatni problem z jakim możesz się spotkać to uprawnienia do korzystania z np. portu LPT. Jeśli tak jak ja chcesz programować przez ten port, musisz odpalić z powrotem koleżankę konsolę i wpisać do niej kolejną niezwykle magiczną wiązankę: chmod a+rw /dev/parport0 Od tej pory możesz w pełni korzystać z dobrodziejstw programu i dalej już uczyć się go na własną rękę. Powodzenia! PS. Jeśli choć trochę zaciekawiłem Cię systemem Linux, to cieszę się że skutecznie zasiałem ziarno propagandy. Nie bój się go, nie słuchaj podszeptów złych kolegów i porzuć życie pirata. Czasy nieprzyjaznego Linuxa się skończyły. Teraz kiedy 90% akcji można wyklikać, a na resztę znaleźć magiczne zaklęcia w internecie, Linux może stać się Twoim legalnym kumplem 🙂. Z czasem nawet magiczne wiązanki przestaną być magiczne 😉 6 Link do komentarza Share on other sites More sharing options...
c2v4 Lipiec 14, 2010 Udostępnij Lipiec 14, 2010 No no muszę przyznać że tutek świetny. Mi wiele wyjaśnił. Mam jednak pewien problem, który mam nadzieję że znajdzie swoje rozwiązanie na tym forum. Mianowicie posiadam Ubuntu 10.04 64bit które nie za bardzo współpracuje z Kontrollerlabem. Nie chce się zainstalować wersja 32bitowa. Czy jest jakiś sposób na instalację tej wersji, znalezienie wersji 64bit lub ominiecie tych narzędzi i wykorzystanie czegoś innego? Link do komentarza Share on other sites More sharing options...
Hudyvolt Lipiec 14, 2010 Udostępnij Lipiec 14, 2010 możesz spróbować czy podpasuje Ci Code::Blocks. Nie jest specjalnie przygotowywany pod AVR'y, ale można je w nim spokojnie programować. Jest w repozytoriach i także w wersji 64-bit. Link do komentarza Share on other sites More sharing options...
kocur_90 Lipiec 14, 2010 Udostępnij Lipiec 14, 2010 Spróbuj w tai sposób. Zainstaluj te pakiety: lib32asound2 ia32-libs ia32-libs-gtk libsigc++-2.0-0c2a libxss1 Ściągasz paczuszkę 32-bitową i instalujesz poleceniem: dpkg -i --force-architecture nazwa_pakietu.deb Musisz być w folderze z tą paczką. Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
c2v4 Lipiec 15, 2010 Udostępnij Lipiec 15, 2010 otóż: Kontrollerlab sie zainstalowal zgodnie z poleceniem uzytkownika kocur_90 lecz sie nie uruchamia. podczas próby uruchomienia go poprzez terminal dostaje wiadomosc kontrollerlab: error while loading shared libraries: libktexteditor.so.0: wrong ELF class: ELFCLASS64 zaznaczam ze mam zainstalowane te biblioteki ktore kocur_90 podal an poczatku postu. poszukalem troche i znalazlem informacje ze potrzebne moga byc pakiety qt4 lub quanty. zainstalowalem je i dalej mam ten sam komunikat. siegnalem glebiej i postanowilem sam skompilowac zrodlo. po wpisaniu ./configure dostaje nastepujacy komunikat checking for X... configure: error: Can't find X includes. Please check your installation and add the correct paths! zgooglowalem to i jedyne rozwiazanie jakie znalazlem to : zainstaluj cos innego sprobuj czegos innego itd podsumowujac moja wypowiedz chyba bede zmuszony do pisania oraz kompilowania programikow do AVR'ka innymi drogami. Tak więc zwracam sie do Was: jakie narzedzia polecacie oprócz w/w Code::Blocks oraz jak kompilowac programy z C do hexa? Link do komentarza Share on other sites More sharing options...
kocur_90 Lipiec 15, 2010 Udostępnij Lipiec 15, 2010 Ja używam programu geany. Wciskam F9 i makefile robi mi resztę. A co do błędu podczas kompilacji to pewnie brak paczek dev takich jak: xserver-xorg-dev xorg-dev Link do komentarza Share on other sites More sharing options...
c2v4 Lipiec 15, 2010 Udostępnij Lipiec 15, 2010 mam te paczki ;/ geany jest bardzo dobry ale mi nei kompiluje do hexa chyba bede musial go skonfigurowac dodajac te linijki do polecenia buduj : avr-gcc -Os -mmcu=atmega8 -c %f avr-gcc -g -mmcu=atmega8 -o %e.elf %e.o avr-objcopy -j .text -j .data -O ihex %e.elf %e.hex czy u Ciebie tez trzeba bylo go konfigurowac jesli tak to napisz jak go skonfigurowales. Dodatkowo mozna dodac pod wykonaj polecenie z avr-dude zeby wgrywalo program. rzeczywiscie po odpowiednim skonfigurowaniu geany wydaje sie dosyc przyzwoitym narzedziem 😉 Link do komentarza Share on other sites More sharing options...
kocur_90 Lipiec 16, 2010 Udostępnij Lipiec 16, 2010 A co to konfiguracja? :E Skopiowałem makefile z winavr'a. Lekko poprawiłem co by mi syf usuwał od razu i wgrywał do procka. Działa aż miło 🙂 Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »