Potrzebne oprogramowanie i sprzęt: :: Kompilacja (programów w C dla AVR): :: Debugowanie, ...: :: Nut/OS :: ARM :: Linki i moje projekty

Mikrokontrolery

mikrokontrolery są to programowalne, scalone układy cyfrowe integrujące w sobie jednostkę centralną (CPU), pamięć (zarówno operacyjną jak i służącą do przechowywania programu oraz danych) oraz układy wspomagające takie jak przetworniki analogowo-cyfrowe, ... .

W dziale tym zajmiemy się głównie układami opartymi na mikrokontrolerach AVR oraz programowaniem tych układów w C (z elementami asemblera). Na wstępie zachęcam do zapoznania się z instrukcją modułu zawierającego mikrokontroler ATMega128, dodatkowy RAM (z zewnętrznym kontrolerem pamięci) oraz kontroler ethernetowy: MMnet02 (zwłaszcza opis działania kontrolera pamięci i metody podłączenia do wyświetlacza LCD - uświadamia też pewne aspekty działania PC) oraz z materiałami z zajęć na Wydziale Fizyki UW na temat sterowanie z wykorzystaniem komputera. Zachęcam też do zajrzenia do działu programowanie w C/C++ na mojej stronie.

Potrzebne oprogramowanie i sprzęt:

* mikrokontroler z podpiętym czymś do wejść oraz wyjść
* kompilator avr-gcc (dostępny dla Linuxa oraz w WinAVR dla Windows) wraz z blibliotek avrc
* programator isp lub jtag (zarówno soft, jak i na ogół sprzęt, projekt prostego programatora SIP)
* debugger, symulator, ...

Kompilacja (programów w C dla AVR):

Kompilujemy i linkujemy: avr-gcc -mmcu=atmega128 -Os -ggdb plik_zrodlowy.c -o plik_wynikowy.o
Tworzymy plik hex:avr-objcopy -O ihex plik_wejsciowy.elf plik_wynikowy.hex

Debugowanie, ...:

O debugowaniu, dezasemblerowaniu i symulacji z wykorzystaniem narzędzi linuxowych napisałem w "Debugowanie (gdb)". Jednak opisany tam program do symulacji nie jest jeszcze idealny i może się zdarzyć że nie będzie działał poprawnie, drobne problemy miałem też z jtag. Wtedy pozostaje skorzystanie z Atmelowskiego "AVRStudio". Pakiet ten potrafi wczytać plik hex, dokonać jego dezasembleryzacji oraz symulować działanie tej aplikacji (zarówno softwarowo jak i w układzie docelowym (przez jtag)).

Przy szukaniu błędów w programie uruchamianym już w układzie bardzo przydatny jest port szeregowy przez który program może podawać co aktualnie robi, a my możemy wpływać na jego działanie. Przykłady wykorzystania portu szeregowego można zobaczyć m.in. w moim projekcie "Sterownik ogrzewania akwariowego".

Nut/OS

Jednym z projektów dotyczących programowania mikrokontrolerów jest dystrybuowany na zasadach licencji typu BSD system czasu rzeczywistego z stosem TCP/IP - Nut/OS. Poniżej zamieszczę krótki poradnik dotyczący wykorzystania tego systemu w wspomnianym wyżej module sieciowym Mmnet02.

  1. instalujemy na komputerze Nut/OS - opis instalacji Nut/OS dla Debian (możemy to też zrobić troszkę inaczej: 1. apt-get install doxygen graphviz liblua50-dev liblualib50-dev lua50 libwxbase2.6-dev libwxgtk2.6-dev wx2.6-headers; 2. w tools/nutconf/nutcomponent.c poprawiamy stosowne #include na lua50/lua.h i lua50/lauxlib.h; 3. nutconfigure -b _build -c conf/MMnet02.conf -l _lib -m avr-gcc create-buildtree)
  2. budujemy biblioteki oraz drzewo przykładowych programów (np. przy pomocy nutconf - do NutOSa załączone są pliki opisujące konfigurację dla Mmnet02, w przypadku problemów z ściezkami warto zajrzeć do opcji programu)
  3. w katalogu w którym utworzyliśmy drzewo z przykładowymi programami tworzymy podkatalog na nasz projekt i kopiujemy do niego plik Makefile np. z basemon i dostosowywujemy do swoich potrzeb (nazwę projektu, listę plików źródłowych, bibliotek itp.)
  4. w katalogu naszego projektu tworzymy program ... zachęcam do skorzystania na początek z stworzonego przeze mnie nut_first.c oraz do zapoznania się z przykładami w wygenerowanym drzewie (m.in. serwer http, ftp, ...).

ARM

ARM czyli Advanced RISC Machine jest zaawansowną 32-bitową architektórą procesorów (mikrokontrolerów). Procesory tego typu bardzo często wykorzystywane są w systemach wbudowanych, routerach sprzętowych, telefonach IP itp.


Copyright (c) 1999-2008, Robert Paciorek (http://www.opcode.eu.org/), BSD-type license


Redystrybucja wersji źródłowych i wynikowych, po lub bez dokonywania modyfikacji JEST DOZWOLONA, pod warunkiem zachowania niniejszej informacji o prawach autorskich. Autor NIE ponosi JAKIEJKOLWIEK odpowiedzialności za skutki użytkowania tego dokumentu/programu oraz za wykorzystanie zawartych tu informacji.

This program is free software. Redistribution and use in source and binary forms, with or without modification, ARE PERMITTED provided save this copyright notice. This document/program is distributed WITHOUT any warranty, use at YOUR own risk.

Valid XHTML 1.1 Dokument ten (URL: http://www.opcode.eu.org/mikrokontrolery) należy do serwisu OpCode. Autorem tej strony jest Robert Paciorek, wszelkie uwagi proszę kierować na adres e-mail serwisu: webmaster@opcode.eu.org.
Data ostatniej modyfikacji artykulu: 2008-01-15 19:33:12 (UTC) (data ta może być zafałszowana niemerytorycznymi modyfikacjami artykułu).