Bootloader AVR109


Programowanie
Bootloader AVR109
Bootloader AVR109,
,
czyli jeszcze raz
czyli jeszcze raz
Kurs C
Kurs C oraz AVT-3505
oraz
AVT-3505
Początek wakacji okazał się czasem inten- AVR109  co to jest i skąd to wziąć? nej wygody proponuję utworzyć z jego pozio-
sywnych pytań na mojej skrzynce mailowej, AVR109 to nota aplikacyjna firmy Atmel opisują- mu nowy projekt. Jak to zrobić, przypomina
związanych z zestawem AVT-3505. Okazuje ca przykładowy bootloader dla procesorów AVR. rysunek 1. Do projektu dodajemy wszystkie
się, że wielu Czytelników wybrało ten okres Mimo tego, że w sieci można znalezć sporo pro- potrzebne pliki zródłowe, są to:
na zamówienie urządzenia. Jest dla mnie jektów z bootloaderami pracującymi przez chyba Makefile, defines.h, flash.h, main.c, serial.
miłym zaskoczeniem, że projekt przeżywa każdy możliwy interfejs, siłą wspomnianej noty h, serial.c.
aktualnie drugą młodość. Postanowiłem też jest to, że tworzy pewien standard, obsługiwany Plik link.xcl to pozostałość po wersji IAR
sprawdzić, jak mogę jeszcze uprzyjemnić nie tylko przez oprogramowanie producenta.  GCC z niego nie korzysta.
korzystanie z płytki. Notę tę, w postaci opisu w pliku PDF oraz Narzędzia pracy mamy już ustawione.
W swoich listach Czytelnicy skarżą się kodów zródłowych dla kompilatora C firmy Możemy przejść do konfiguracji.
na utrudnienia związane z programowa- IAR oraz kompilatora GCC, można pobrać
niem przy pomocy komputera niewyposa- ze strony www.atmel.com. W dziale AVR Konfiguracja
żonego w porty LPT ani COM, przy czym 8-Bit RISC wybieramy Application Notes. W katalogu znajdziesz jeszcze dwa interesujące
okazuje się także, że przejściówki z portu Po odnalezieniu AVR109: Self Programming pliki: preprocesor.sh oraz preprocesor.xls. Każdy
USB nie umożliwiają stosowania prostych pobieramy pliki programu (ikona płyty CD). z nich ułatwia skonfigurowanie programu do
programatorów. Problemowi temu da się Mimo że nie jest to konieczne do zrozumienia wybranego typu procesora. Plik preprcesor.sh
zaradzić w prosty sposób. W tym artyku- dalszej części opisu, warto zainteresować się może być wywołany z linii komend w środowisku
le pokażę zaimplementować bootloader z dostępną na stronie, solidnie przygotowaną, uniksowym (w tym z poziomu naszego Makefile)
noty aplikacyjnej AVR109. Jego ogromną dokumentacją w pliku PDF. i przeprowadza całą konfigurację automatycznie.
zaletą jest wsparcie ze strony AVRStudio. Plik preprocesor.xls ma dokładnie takie samo
Dla wielbicieli innych programów infor- Co mamy? przeznaczenie, ale konfiguracja odbywa się za
macja także jest dobra  wspiera go także Ze strony firmy ATMEL powinniśmy pobrać pomocą rodzaju programu napisanego w formie
AVRdude oraz AVROSP. plik AVR109.zip. Proponuję teraz rozpakować arkusza kalkulacyjnego. Mimo natywnego for-
Jeśli zechcesz, po prostu skorzystać z go w dowolne miejsce. W jego wnętrzu znaj- matu Exela, sprawdziłem, że arkusz działa zna-
wygody, jaką daje bootloader, nie wgłębiając duje się katalog Source Code. Głębiej mamy komicie także w OpenOffice. Dalszy opis będzie
się na razie w jego konfigurację oraz kompi- podział na podkatalogi IAR oraz GCC  wybie- dotyczył konfiguracji za pomocą tego pliku.
lację, będziesz mógł pobrać gotowe pliki ze ramy ten drugi. Uruchom go teraz w używanym programie i
strony Elportalu. Wszystkich zapraszam do Ponieważ w ramach kursu C uczyliśmy się przejdz do pierwszej zakładki  Documentation.
lektury artykułu. korzystać z Pogrammers Notepada, dla włas- W tym miejscu znajduje się wyjaśnienie, krok
Rys. 1 Zakładanie nowego projektu i dodawanie do niego istniejących plików
Paxdziernik 2008
P
a
x
d
z
i
e
r
n
i
k
2
0
0
8
El ekt roni ka dl a Wszyst ki ch
24
Programowanie
Kod Obs ugiwany uk ad pewien problem. Aktualnie
0x10 AT90S1200rev.A
AVRProg wymaga, aby
0x11 AT90S1200rev.B
prędkość, z jaką układ poro-
0x12 AT90S1200rev.C
zumiewa się z programem
0x13 AT90S1200
wynosiła 115,2kbps. Nie da
0x20 AT90S2313
się niestety z wystarczającą
0x28 AT90S4414
dokładnością uzyskać takiej
0x30 AT90S4433
prędkości na wewnętrznym
0x34 AT90S2333
generatorze RC. Konieczne
0x38 AT90S8515
0x3A ATmega8515
będzie zastosowanie kwarcu
0x3B ATmega8515 BOOT
o jednej z podanych wartości:
0x41 ATmega103
1,8432MHz; 3,6864MHz;
0x42 ATmega603
7,3728MHz; 11,0592MHz;
0x43 ATmega128
14,7456MHz; 18,4320MHz.
0x44 ATmega128 BOOT
W czasie prac prototypo-
0x45 ATmega64
wych wybrałem wartość
0x46 ATmega64 BOOT
11,0592MHz i program dla
0x48 AT90S2323
0x4C AT90S2343 tej wartości został przeze
0x50 ATtiny11
mnie sprawdzony.
0x51 ATtiny10
Jeśli nie chcesz korzy-
0x55 ATtiny12
stać z AVRProga, a jedynie
Rys. 2 Konfiguracja dla AVT3505 0x56 ATtiny15
z AVRdude, sytuacja jest o
0x58 ATtiny19
tyle komfortowa, że można
Listing 1 Zmiany w Makefile
0x5C ATtiny28
po kroku, jak przeprowadzić konfigurację. skonfigurować program do
0x5E ATtiny26
MCU = atmega162
Poniżej przedstawiam, jakie kroki powin- pracy z prędkością 38,4kbps.
0x60 ATmega161
FORMAT = ihex
niśmy wykonać w przypadku korzystania Prędkość taka jest możliwa
0x61 ATmega161 BOOT
TARGET = bootloader
z kompilatora GCC: SRC = main.c serial.c 0x64 ATmega163 do uzyskania z wystarczającą
ASRC =
0x65 ATmega83
1. Przechodzimy na zakładkę o nazwie dokładnością na wewnętrz-
OPT = s
0x66 ATmega163 BOOT
defines_h. Komórki, które powinniśmy nym generatorze RC 8MHz.
BASEADDR = 0x3800
0x67 ATmega83 BOOT
ręcznie zmienić, są wyróżnione przez Kosztem zmniejszenia szyb-
0x68 AT90S8535
czerwony tekst na żółtym tle. pojawiającą się liczbę szes- kości transmisji programu
0x69 ATmega8535
2. W wierszu 7 zmieniamy tekst nastkową za słowem CODE, unikamy konieczności stoso-
0x6C AT90S4434
_ATMEGAXXX na odpowiadający naszemu czyli w naszym przypadku wania zewnętrznego oscyla-
0x70 AT90C8534
procesorowi (_ATMEGA162). 3800, wykorzystamy do pliku tora.
0x71 AT90C8544
3. W wierszu 8 zmieniamy tekst _Bxxxx na Makefile. Otwórz teraz ten 0x72 ATmega32
0x73 ATmega32 BOOT
wielkość odpowiadającą rozmiarowi, w sło- plik. Liczbę tę przypiszemy Udajemy ATmega169
0x74 ATmega16
wach, naszej sekcji bootloadera (_B1024). do BASEADDR, w pobliżu Zakładka Part_definitions
0x75 ATmega16 BOOT
4. W wierszach 17 19 znajduje się definicja 14 linii. Jeśli jesteśmy już w pliku preprocessor.xls
0x76 ATmega8
wyprowadzenia odpowiadającego za wejście w tym pliku, od razu usta- zawiera dane poszczegól-
0x77 ATmega8 BOOT
w tryb bootloadera. Wyprowadzenie to będzie wiamy odpowiedni procesor. nych typów procesorów. Z
0x78 ATmega169
sprawdzane podczas startu. Jeśli będzie ono Po tych zabiegach, począ- niej kopiowane są odpowied-
0x79 ATmega169 BOOT
zwarte do masy, wystartuje bootloader. Jeśli tek pliku Makefile, będzie nie dane do zakładki defi-
Tab. 1 Lista układów
chcemy aby uruchamiało go przytrzymanie w wyglądał jak na listingu 1. nes_h. Znajdziesz tutaj w
obsługiwanych przez
chwili startu przycisku S1, wpisujemy kolejno Zauważ teraz, że w wier- kolumnie F nagłówek Part
AVRProg 1.40
PORTE, PINE, PE0. szu 4 na 2 mamy napis: code (AVRProg). Tutaj nasz
5. Dwa ostatnie wiersze do ustawienia  Utwórz plik (defines.h) zawierający co następu- ATmega162 posiada kod 0x63. Okazuje się
mają numery 22 i 23. Wpisujemy tutaj warto- je: . Zaznaczamy więc wiersze od 5, do końca jednak, że aktualna wersja (1.40) nie obsługu-
ści odpowiadające częstotliwości taktowania arkusza. Kopiujemy i wklejamy do pliku defines. je tego kodu. Pełną listę obsługiwanych przez
procesora oraz używanej prędkości transmi- h. Nie zważamy na to, co w tym pliku już jest. Po ten program kodów, znalezioną na forum stro-
sji. W związku z tymi parametrami wynika prostu kasujemy całość i wklejamy nasze dane. ny www.avrfreaks.net, zebrałem w tabeli 1.
pewien problem, związany z prędkością trans- Konfiguracja została praktycznie skoń- Mimo tego, że ATmega162 zastępuje
misji wymaganą przez AVRProga. Sprawę tą czona. Jednak czekają tutaj pewne drobne wycofany już ATmega161, pojawiają się tutaj
wyjaśnimy sobie za chwilę. pułapki... znaczne różnice w bitach ustawień (fusach).
Uwaga. Nie zmieniamy tutaj nic poza oznaczo- O ile procesor ATmega169 pod względem funk-
nymi polami. Reszta pól zostanie wyliczona auto- Po skończonej konfiguracji może okazać cjonalnym różni się dość znacznie od ATmega162,
Po skończonej konfiguracji może okazać
matycznie. Fragment prawidłowo wypełnionego się, że jeśli teraz skompilujesz program, to od strony wielkości posiadanych pamięci są
się, że jeśli teraz skompilujesz program,
pliku, dla płytki AVT3505, pokazuje rysunek 2. nasza płytka nie będzie prawidłowo widzia- identyczne. Ponadto,  fusy ATmega169 róż-
nasza płytka nie będzie prawidłowo widzia-
na przez AVRProg i nie da się zaprogramo-
na przez AVRProg i nie da się zaprogramo- nią się tylko tym, że w bajcie rozszerzonym
Co zrobić z wypełnionym plikiem prepro- wać. Zwróć baczną uwagę na dwa kolejne (Extended Fuse Byte) brak bitu kompatybilności
wać. Zwróć baczną uwagę na dwa kolejne
cessor.xls podtytuły. z ATmega161. Tak naprawdę AVR109 nie wspiera
podtytuły.
Na czym polega idea utworzonej konfiguracji? możliwości programowania fusów. Umożliwia
Sprawa jest bardzo prosta. Z otrzymanego pliku Wymagana prędkość transmisji i związane jedynie ustawianie bitów zabezpieczeń, więc jeśli
skopiujemy potrzebne dane do dwóch innych pli- z tym problemy wybierzemy kod BOOT procesora ATmega169,
ków. Pierwsze, na co zwracamy uwagę, to wiersz Jeśli koniecznie chcesz korzystać z AVRProga możemy bezpiecznie przeprowadzić programo-
2. Spójrz ponownie na rysunek 2. Pierwszą, wbudowanego w AVRStudio, natkniesz się na wanie naszego ATmega162.
P
a
x
d
z
i
e
r
n
i
k
2
0
0
8
El ekt roni ka dl a Wszyst ki ch Paxdziernik 2008
25
Programowanie
Zdecydowałem się procesora przyciskiem RESET na
więc, dla AVRProga płytce głównej. Po takim zabie-
przedstawić układ jako gu przycisk S1 można zwolnić.
ATmega169. W całej Procesor teraz wykonuje program
 sztuczce chodzi o bootloadera i czeka na polecenia z
to, aby przestawić się portu szeregowego.
odpowiednio tylko dla
programu AVRProg. Korzystanie z bootloadera 
Reszta ustawień bootlo- AVRProg
Rys. 4 Brak wykrycia bootloadera
adera powinna pozostać Jeśli nasz procesor jest zaprogra-
przez AVRProg
bez zmian. Zrobimy to mowany programem bootloadera,
przez zmianę jednej linii Programowanie procesora który porozumiewa się z prędkością 115,2kbps
bezpośrednio w pliku skompilowanym kodem oraz udaje procesor ATmega169, możemy
defines.h. Odnajdz sek- W tej chwili konieczne jest posłużyć się wygodnym programatorem wbu-
cję oznaczoną komen- jeszcze posiadanie stan- dowanym w środowisko AVRStudio.
tarzem /* definitions dardowego programatora. Po uruchomieniu bootloadera przechodzi-
for device recognition Pocieszające jest jednak to, my do komputera. Uruchamiamy AVRStudio.
*/. Na samym począt- że jeśli teraz uda nam się Nie musimy otwierać żadnego projektu. Z
ku pojawia się defi- zaprogramować procesor, menu głównego wybieramy: Tools->AVR
Rys. 3 Okno główne pracującego
nicja PARTCODE. w przyszłości będzie można Prog. Jeśli wszystko przebiegło prawidło-
programu AVRProg
Zmieniamy przypisaną na nim wykonać masę eks- wo, zobaczysz okno widoczne na rysunku
tutaj liczbę na 0x79  perymentów bez koniecz- 3. Możesz teraz wybrać plik do zapisania
kod dla procesora ATmega169. Natomiast bajty ności wpinania się do złącza ISP. i zaprogramować procesor. Po naciśnięciu
sygnatury pozostawimy bez zmian. Pokazuje Na stronie Elportalu znajdą się wygodne przycisku Advanced ujrzymy okienko pokazu-
to listing 2. pliki dla PonyProga, które automatycznie prze- jące aktualną konfigurację bitów ustawień (nie
Zmiany w kodzie dla prawidłowej pracy prowadzą cały proces wraz z odpowiednim można jednak ich zmieniać) oraz uzyskamy
także z AVRdude ustawieniem bitów konfiguracyjnych. W innym możliwość konfiguracji bitów zabezpieczeń.
Wygląda na to, że w oryginalnym kodzie przypadku konieczne jest ręczne ustawienie Jeśli program się nie uruchomi, tylko
AVR109 powstał błąd, który uniemożliwia rozmiaru sekcji bootloadera na 1024 słowa, wyświetli komunikat widoczny na rysunku 4,
sprawną współpracę w AVRdude. Informacja włączenie skoku do sekcji bootloadera po zero- oznacza to albo złe połączenie, albo nieprawid-
na ten temat została przeze mnie przesłana do waniu oraz, zależnie od wybranej wersji, odpo- łowe ustawienie prędkości transmisji w pro-
odpowiedniego działu firmy ATMEL, jednak wiednie wybranie zródła taktowania procesora. cesorze  pamiętaj o konieczności stosowana
trudno powiedzieć, czy zostanie ona uwzględ- zewnętrznego kwarcu. Może oznaczać także,
niona. Problem polega na tym, że bootloader Uruchomienie bootloadera że program bootloadera nie działa  spróbuj
w czasie czyszczenia pamięci Flash odpowiada Jeśli program bootloadera został skonfiguro- ponownie uruchomić płytkę, trzymając S1.
sygnałem gotowości już w trakcie czyszczenia wany zgodnie z opisem, jego uruchomienie Zwróć uwagę, że w polu Device, na 3,
ostatniego bloku pamięci. AVRdude zaczy- następuje przez przytrzymanie przycisku S1 znajduje się nazwa wybranego procesora
na natychmiast wypełniać bufor tymczasowy w chwili startu procesora. W praktyce ozna- (ATmega169 BOOT). Jeśli jej nie ma, ozna-
pamięci Flash, ale ponieważ pamięć ta jest cza to albo trzymanie przycisku w chwili cza to, że procesor nie został prawidłowo
zajęta, pierwsze wpisane do niej bajty zostają włączania zasilania płytki, albo przytrzymanie rozpoznany i jego programowanie okaże
uszkodzone (mają wartość 0xff). A problem przycisku S1 w czasie i chwilę po zerowaniu się niemożliwe. W takim przypadku świad-
można rozwiązać naprawdę bardzo łatwo. czy to o nieprawidłowym ustawieniu stałej
/* defi nitions for device recognition */
Otwórz plik main.c bootloadera w edy- PARTCODE w pliku defines.h. Zajrzyj do
#defi ne PARTCODE 0x79
torze. W okolicy 105 linii zaczyna się frag- części o udawaniu ATmega169.
#defi ne SIGNATURE_BYTE_1 0x1E
ment odpowiedzialny za kasowanie pamięci
#defi ne SIGNATURE_BYTE_2 0x94
FLASH. Możesz znalezć go, szukając słów Bootloader z poziomu AVRdude
#defi ne SIGNATURE_BYTE_3 0x04
 Chip erase . Zmieniamy go tak, aby wyglą- Część osób zauważa zapewne, że im dłużej
dał jak na listingu 3. Dodany fragment został pracuje się na komputerze, tym bardziej lubi się
Listing 2 Udawanie ATmega169 przed AVRProg
specjalnie oznaczony. Teraz wszystko programy konsolowe. Po prostu często łatwiej i
Listing 3 Naprawa kasowania w AVR109
będzie działało prawidłowo. szybciej jest wpisać z konsoli kilka komend niż
sięgać po myszkę i wybierać odpowiednie opcje z
// Chip erase.
Kompilacja menu. Inną sprawą jest możliwość łatwego pisa-
else if(val== e )
Po opisanej konfiguracji, kompila- { nia skryptów. Wtedy, po wybraniu odpowiednie-
for(address = 0; address < APP_END;
cję przeprowadzamy standardowo, go pliku wsadowego, cały proces programowania
address += PAGESIZE)
jak do tej pory. Jeśli posiadasz zostanie przeprowadzony automatycznie. Jest to
{
Programmers Notepada skonfi- istotny powód, dla którego coraz bardziej prze-
_WAIT_FOR_SPM();
gurowanego zgodnie z kursem, konuję się do AVRdude.
#ifdef __ICCAVR__
kompilacja powinna zadziałać #pragma diag_suppress=Pe1053 AVRdude jest programem o otwartym
#endif
po wybraniu F7. Przy domyśl- kodzie, więc nie ma co się obawiać, że
_PAGE_ERASE( address );
nych ustawieniach WinAVR jest pewnego dnia straci wsparcie producenta.
#ifdef __ICCAVR__
ona także możliwa przez wydanie W moim odczuciu ma on większe możli-
#pragma diag_default=Pe1053
polecenia Tools->(WinAVR) make wości niż promowany przez firmę ATMEL
#endif
albo przez wpisanie komendy } podobny program, także z otwartym kodem
_WAIT_FOR_SPM();
make z konsoli z poziomu katalo-  AVROSP (AVR Open Source Programmer).
sendchar( \r ); // Send OK back.
gu projektu. Ponadto, obsługa AVRdude jest domyślnie
}
Paxdziernik 2008
P
a
x
d
z
i
e
r
n
i
k
2
0
0
8
El ekt roni ka dl a Wszyst ki ch
26
Programowanie
wbudowana w plik Makefile z WinAVR... do Programmers Notepada. Przypominam ostrzeżeń o możliwych problemach. Jednak w
znacznie ułatwia to pierwsze eksperymenty. skrótowo, jak to zrobić: Z menu głównego nowych komputerach na przykład port COM4
Aby nie przedłużać sprawy, skonfiguru- wybierz opcję Tools->Options. Dalej postępuj nie istnieje, można więc bezpiecznie zignorować
jemy Makefile jednego z programów kursu zgodnie z rysunkiem 5. pojawiające się okienka i kontynuować zmiany.
C w taki sposób, aby można było swo- Warto korzystać z AVRdude z poziomu Po zmianie nazwy portu emulowanego przez
bodnie korzystać z bootloadera AVR109. Makefile. Został on napisany w taki sposób, przejściówkę na jedną z zakresu COM1...COM4
Wybrałem program LCD_dynamic z części że jeśli w programie dokonaliśmy zmian i AVRProg zacznie wykrywać naszą płytkę.
9. Identycznie jednak można postąpić z każ- jeśli bez wybierania opcji kompilacji wybie- Należy zdawać sobie sprawę, że przejściówka
dym udostępnionym na Elportalu programem rzemy opcję programowania, narzędzie make USB->RS232 ma złącze takie, jakby podłączyć
 patrz też przypis na końcu artykułu. wykryje, że istnieją kody zródłowe o dacie się do komputera kablem 1:1. Konieczny jest
Otwieramy do edycji plik Makefile. W pliku nowszej niż plik wynikowy i automatycznie więc jeszcze przewód Null Modem albo prosta
tym, przed linią 200, znajduje się sekcja ozna- wywoła kompilację  nie będzie więc przy- przejściówka krosująca odpowiednie sygnały.
czona Programming Options (avrdude). Listing padku, że zapomnimy coś skompilować i
4 pokazuje konieczne zmiany. Odpowiednio załadujemy do procesora kod bez poprawek. Podsumowanie
ustawiamy typ programatora. Nazwę portu Dlatego też dobrze jest, zgodnie z rysunkiem Po wgraniu booloadera na płytkę komfort pracy
ustawiamy na port, do którego rzeczywiście 5, zaznaczyć w opcjach naszego narzędzia znacznie wzrasta. Niezależnie od posiadanej
podłączyliśmy naszą płytkę. Dodana została programowania opcję zapisu zmienionych wersji, znikają wszelkie problemy wynikające
także stała określająca prędkość transmisji. plików przed jego wywołaniem. ze współdzielenia linii interfejsu wyświetlacza
Tuż przed końcem sekcji ustawień programa- alfanumerycznego z liniami SPI. Program
tora znajdziemy ustawianie odpowiednich flag. Praca na przejściówce USB->RS232 ten znakomicie działa z przejściówką USB-
Skorzystamy tutaj z dodanej stałej AVRDUDE_ Oba programy zostały sprawdzone przy współ- >RS232, co ucieszy na pewno posiadaczy
BOUD zgodnie z listingiem 5. pracy z przejściówką USB->RS232. Radzą sobie nowoczesnych komputerów pozbawionych
Teraz jeszcze jedno: jeśli zainstalowałeś znakomicie. Jedynie wbudowany w AVRStudio portów COM oraz LPT. Zauważyłem także
WinAVR bez dodawania jego ścieżki do syste- AVRProg sprawia drobny problem. Okazuje się, wzrost szybkości programowania w stosunku
mowego PATH-a, konieczne jest też utworze- że program ten po uruchomieniu automatycznie do programatora STK200.
nie odpowiedniego pliku wsadowego. Plik, przeszukuje porty w poszukiwaniu obsługiwa- Osobiście, po przyzwyczajeniu się do tego
którego zawartość pokazuje listing 6, należy nego urządzenia. Jednak poszukiwania prowadzi programu, niechętnie wracam do poczci-
wywołać z poziomu katalogu projektu. U sie- jedynie na portach COM1...COM4. W moim wego STK200 podczas eksperymentów z
bie plik ten nazwałem program.bat i umieści- przypadku przejściówka zainstalowała się jako AVT3505.
łem w katalogu instalacyjnym WinAVR. port COM8, co uniemożliwiło prawidłową współ- Radosław Koppel
Możesz wywołać go z linii poleceń, pracę z tym programem. W systemie Windows radoslaw.koppel@elportal.pl
możesz także dodać odpowiednie narzędzie XP możemy przypisać dowolny numer portu
takiej przejściówce. Można to zrobić z pozio- Uwaga: Podany program nie jest prawidłowo
AVRDUDE_PROGRAMMER = avr109
mu menadżera urządzeń, wybierając we właści- kompilowany przez GCC w wersji 4.3. Jedną
# com1 = serial port. Use lpt1
wościach przejściówki w zakładce Ustawienia z głównych przyczyn takiego stanu rzeczy jest
# to connect to parallel port.
portu przycisk Zaawansowane... Ponieważ porty fakt, że GCC w wersji 4.3 inaczej obsługuje
AVRDUDE_PORT = com4
COM1...COM4 są domyślnie przypisane do niestatyczne funkcje typu inline. Występują
fizycznej przestrzeni adresowej urządzeń wej- jednak także inne problemy, w sprawie których
AVRDUDE_BOUD = 115200
ścia--wyjścia procesora, może pojawić się kilka pozostaję w kontakcie z twórcami WinAVR.
Listing 4 Ustawienia AVRdude w Makefile
Kody programów z kursu najlepiej kompilo-
wać w WinAVR w wersji 20071221.
Listing 5 Modyfikacja flag AVRdude w celu wybrania prędkości transmisji
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -b $(AVRDUDE_BOUD)
Rys. 5 Dodawanie narzędzia programowania do Programmers Notepad a
P
a
x
d
z
i
e
r
n
i
k
2
0
0
8
El ekt roni ka dl a Wszyst ki ch Paxdziernik 2008
27


Wyszukiwarka

Podobne podstrony:
bootloader
Bootloadery LILO, CHOS
bootloadery
Bootloader
Bootloader AVR cz 2
Bootloader dla mikrokontrolerów STM32 Aktualizacja oprogramowanie z zastosowaniem karty SD lub prz
BootloaderCDC

więcej podobnych podstron