Podstawy_AVRGCC.pdf
(
638 KB
)
Pobierz
Microsoft Word - Podstawy AVR-GCC.doc
Podstawy AVR-GCC
Zawartość
AVR-GCC - wst
ħ
p ..................................................................................................................... 4
AVR-GCC - dystrybucja WinAVR............................................................................................ 4
Praca z kompilatorem......................................................................................................... 5
AVR-GCC - kompilator ............................................................................................................. 5
AVR-GCC - kompilacja prostych programów........................................................................... 6
AVR-GCC - program
make
........................................................................................................ 7
Plik steruj
Ģ
cy (makefile) .................................................................................................... 8
AVR-GCC - programowanie układu........................................................................................ 13
Programator AVRprog (AVR910) ................................................................................... 13
Programator STK200 ....................................................................................................... 14
Oprogramowanie .............................................................................................................. 15
AVR-GCC - dost
ħ
p do zasobów mikrokontrolera ................................................................... 16
Rejestry specjalne............................................................................................................. 16
Najwa
Ň
niejsze funkcje zawarte w pliku "avr/io.h" .......................................................... 16
AVR-GCC - wej
Ļ
cie i wyj
Ļ
cie binarne .................................................................................... 18
Rejestry............................................................................................................................. 19
Praktyczny sposób dost
ħ
pu do wyprowadze
ı
układu ...................................................... 20
Podci
Ģ
ganie wej
Ļ
cia do logicznej jedynki........................................................................ 20
Programy przykładowe .................................................................................................... 21
AVR-GCC - port szeregowy .................................................................................................... 23
Inicjalizacja ...................................................................................................................... 24
Wysyłanie znaku .............................................................................................................. 25
Odbiór znaku .................................................................................................................... 25
Program przykładowy ...................................................................................................... 26
AVR-GCC - pami
ħę
SRAM..................................................................................................... 28
Operacje na zmiennych .................................................................................................... 29
Program przykładowy ...................................................................................................... 30
AVR-GCC - pami
ħę
programu (FLASH) ................................................................................ 32
Najwa
Ň
niejsze funkcje zawarte w pliku
avr/pgmspace.h
................................................. 33
Tworzenie stałych w pami
ħ
ci programu .......................................................................... 33
Czytanie stałych z pami
ħ
ci programu .............................................................................. 33
Tworzenie tablic w pami
ħ
ci programu............................................................................. 33
Czytanie warto
Ļ
ci z tablic w pami
ħ
ci programu .............................................................. 33
Tworzenie ła
ı
cucha znaków ............................................................................................ 33
Czytanie ła
ı
cucha znaków ............................................................................................... 34
Program przykładowy ...................................................................................................... 34
AVR-GCC - pami
ħę
EEPROM................................................................................................ 36
Najwa
Ň
niejsze funkcje zawarte w pliku
avr/eeprom.h
..................................................... 36
1
Program przykładowy ...................................................................................................... 36
AVR-GCC - obsługa przerwa
ı
................................................................................................ 38
Program przykładowy ...................................................................................................... 39
AVR-GCC - licznik/czasomierz TIMER 0 .............................................................................. 40
Tryb licznika .................................................................................................................... 41
Tryb czasomierza ............................................................................................................. 43
AVR-GCC - licznik/czasomierz TIMER 1 .............................................................................. 45
Tryb licznika .................................................................................................................... 45
Tryb czasomierza ............................................................................................................. 46
Tryb porównywania ......................................................................................................... 47
Tryb przechwytywania ..................................................................................................... 49
Tryb PWM - modulowana szeroko
Ļę
impulsu ................................................................. 50
AVR-GCC - licznik/czasomierz TIMER 2 .............................................................................. 52
Tryb czasomierza ................................................................................................................. 53
Program przykładowy ...................................................................................................... 53
Tryb porównywania ............................................................................................................. 56
Program przykładowy ...................................................................................................... 56
Program przykładowy ...................................................................................................... 58
AVR-GCC - komparator analogowy........................................................................................ 58
Programy przykładowe .................................................................................................... 59
AVR-GCC - przetwornik analogowo/cyfrowy ........................................................................ 61
Programy przykładowe .................................................................................................... 63
AVR-GCC - układ Watchdog .................................................................................................. 65
Najwa
Ň
niejsze funkcje zawarte w pliku
avr/wdt.h
........................................................... 66
Program przykładowy ...................................................................................................... 66
AVR-GCC - tryby zmniejszonego poboru mocy ..................................................................... 68
Najwa
Ň
niejsze funkcje zawarte w pliku
avr/sleep.h
........................................................ 68
Program przykładowy ...................................................................................................... 68
AVR-GCC - opcje wywoływania narz
ħ
dzi .............................................................................. 71
AVR-GCC - opis funkcji biblioteki avr-libc............................................................................ 76
Lista plików nagłówkowych ................................................................................................ 76
avr/crc16.h............................................................................................................................ 77
avr/delay.h ............................................................................................................................ 77
avr/eeprom.h......................................................................................................................... 77
avr/ina90.h............................................................................................................................ 78
avr/interrupt.h ....................................................................................................................... 78
avr/io.h.................................................................................................................................. 79
avr/io[MCU].h...................................................................................................................... 79
avr/parity.h ........................................................................................................................... 79
avr/pgmspace.h..................................................................................................................... 79
avr/sfr_defs.h........................................................................................................................ 81
avr/signal.h ........................................................................................................................... 81
avr/sleep.h ............................................................................................................................ 83
2
avr/timer.h ............................................................................................................................ 84
avr/twi.h................................................................................................................................ 84
avr/wdt.h............................................................................................................................... 84
ctype.h .................................................................................................................................. 85
errno.h .................................................................................................................................. 86
inttypes.h .............................................................................................................................. 86
math.h ................................................................................................................................... 87
setjmp.h ................................................................................................................................ 88
stdlib.h .................................................................................................................................. 89
string.h.................................................................................................................................. 90
AVR-GCC - kompilacja
Ļ
rodowiska ze
Ņ
ródeł ........................................................................ 91
Pakiet binutils ................................................................................................................... 92
Pakiet gcc-core ................................................................................................................. 92
Pakiet avr-libc .................................................................................................................. 93
3
AVR-GCC - wst
ħ
p
Kilka lat temu firma Atmel wprowadziła now
Ģ
rodzin
ħ
8 bitowych mikrokontrolerów
zbudowanych w architekturze RISC (o zredukowanej li
Ļ
cie rozkazów), z których
wi
ħ
kszo
Ļę
wykonuje si
ħ
w pojedynczym takcie zegara, posiadaj
Ģ
ce bardzo rozbudowane
peryferia i łatwo programowalne w systemie docelowym (pi
ħę
przewodów ł
Ģ
cznie z
zasilaniem). Wydawa
ę
by si
ħ
mogło,
Ň
e nowa rodzina mikrokontrolerów z zupełnie now
Ģ
niekompatybiln
Ģ
z innymi rodzinami list
Ģ
rozkazów nie zostanie dobrze przyj
ħ
ta na rynku.
Jednak stało si
ħ
inaczej - dzi
ħ
ki m
Ģ
drej polityce firmy Atmel, która udost
ħ
pnia za darmo
narz
ħ
dzia uruchomieniowe (np. AVR Studio), wielu entuzjastów mikrokontrolerów z
łatwo
Ļ
ci
Ģ
mo
Ň
e testowa
ę
swoje własne konstrukcje z tymi układami. Jednak w
Ļ
ród tych
narz
ħ
dzi brakowało czego
Ļ
w dzisiejszych czasach wa
Ň
nego a mianowicie kompilatora
j
ħ
zyka wysokiego poziomu - nie zawsze mamy tyle czasu i ch
ħ
ci,
Ň
eby pisa
ę
ka
Ň
dy
program w asemblerze (ucz
Ģ
c si
ħ
nowej listy rozkazów i technik programowania) i pó
Ņ
niej
długo go testowa
ę
. W tym momencie przychodzi na my
Ļ
l zastosowanie j
ħ
zyka, który byłby
blisko zwi
Ģ
zany ze sprz
ħ
tem (dost
ħ
p do rejestrów, peryferii, pami
ħ
ci itp.) i jednocze
Ļ
nie
mo
Ň
na byłoby w nim pisa
ę
programy na dosy
ę
wysokim poziomie abstrakcji (bez
ukierunkowywania si
ħ
na konkretny sprz
ħ
t). Tutaj na my
Ļ
l przychodzi j
ħ
zyk C. Jest to
najbardziej rozpowszechniony j
ħ
zyk programowania komputerów. Spotyka si
ħ
jego
implementacje na najró
Ň
niejsze maszyny: od prostych mikroprocesorów po pot
ħŇ
ne
superkomputery. Jednak je
Ň
eli posiadamy ju
Ň
darmowe oprogramowanie do uruchamiania
na pewno pomy
Ļ
limy sobie: czy nie ma równie
Ň
jakiego
Ļ
darmowego kompilatora j
ħ
zyka
C na mikrokontrolery AVR? Okazuje si
ħ
,
Ň
e jest i to bardzo dobry. Wywodzi si
ħ
z rodziny
GCC (GNU Compiler Collection), nazywa si
ħ
AVR-GCC. Pierwotnie pracował pod
systemami unixowymi jak FreeBSD czy Linux (zreszt
Ģ
na takich systemach ci
Ģ
gle s
Ģ
rozwijane jego nowe wersje), ale posiadaj
Ģ
c wersje
Ņ
ródłowe (bez problemu dost
ħ
pne w
internecie na zasadzie "otwartego
Ņ
ródła") ka
Ň
dy ch
ħ
tny mo
Ň
e "przenie
Ļę
" go pod swój
ulubiony system operacyjny. Jednak przeci
ħ
tnego u
Ň
ytkownika najbardziej interesuje
szybki efekt i tu z pomoc
Ģ
przychodz
Ģ
tzw. "dystrybucje" zawieraj
Ģ
ce kompilator z całym
szeregiem narz
ħ
dzi i bibliotek.
AVR-GCC - dystrybucja WinAVR
Od ko
ı
ca 2002 roku w internecie dost
ħ
pna jest "dystrybucja"
WinAVR
, któr
Ģ
stworzył
Eric Weddington. Najnowsz
Ģ
wersj
ħ
mo
Ň
na pobra
ę
ze strony
http://sourceforge.net/project/showfiles.php?group_id=68108
. Jest ona przeznaczona do
pracy pod systemami MS Windows. Instalacja kompilatora odbywa si
ħ
poprzez
uruchomienie programu instalacyjnego. Program instalacyjny wprowadza niezb
ħ
dne
modyfikacje do systemu (np. aktualizuje domy
Ļ
lne
Ļ
cie
Ň
ki poszukiwa
ı
programów).
Wła
Ļ
nie ta dystrybucja została u
Ň
yta do przetestowania wszystkich programów tutaj
zawartych.
4
Praca z kompilatorem
Poniewa
Ň
programy wchodz
Ģ
ce w skład pakietu s
Ģ
uruchamiane i przyjmuj
Ģ
argumenty z
linii polece
ı
, dobrym pomysłem - przynajmniej na pocz
Ģ
tek b
ħ
dzie wi
ħ
c praca z tzw.
"wiersza polece
ı
". Uruchamiamy wiersz polece
ı
systemu operacyjnego. W systemach
Windows mo
Ň
na to zrobi
ę
z menu "Start -> Programy -> Wiersz polece
ı
".
Uwaga:
w systemach bazuj
Ģ
cych na MS-DOS takich jak Windows 9x "wiersz polece
ı
"
nazywany jest "Tryb MS-DOS".
Wydajemy polecenie:
avr-gcc -v
W rezultacie powinien si
ħ
nam wy
Ļ
wietli
ę
tekst zawieraj
Ģ
cy m.in wersj
ħ
kompilatora:
Reading specs from C:/WinAVR/bin/../lib/gcc/avr/3.4.1/specs
Configured with: ../gcc-3.4.1/configure --prefix=e:/avrdev/install --
build=mingw
32 --host=mingw32 --target=avr --enable-languages=c,c++
Thread model: single
gcc version 3.4.1
Je
Ļ
li otrzymali
Ļ
my tekst identyczny lub podobny do powy
Ň
szego to wyszystko przebiegło
zgodnie z oczekiwaniami i mo
Ň
emy rozpocz
Ģę
normaln
Ģ
prac
ħ
.
AVR-GCC - kompilator
Na kompilator AVR-GCC składa si
ħ
wiele programów, s
Ģ
to:
•
avr-addr2line
- tłumaczy adresy w plikach wynikowych na numery linii w plikach
Ņ
ródłowych
•
avr-ar
- tworzy, modyfikuje i wyci
Ģ
ga dane z archiwów
•
avr-as
- asembler
•
avr-cpp
- preprocessor C
•
avr-gcc
- kompilator
•
avr-ld
- linker (konsolidator)
•
avr-nm
- wy
Ļ
wietla nazwy symboliczne z plików wynikowych
•
avr-objcopy
- kopiuje i tłumaczy pliki objektowe (mo
Ň
e "pi
ħ
knie" deasemblowa
ę
)
•
avr-objdump
- wy
Ļ
wietla ró
Ň
ne informacje z plików objektowych
•
avr-ranlib
- generuje indeks do archiwum
•
avr-size
- wy
Ļ
wietla list
ħ
rozmiarów sekcji
•
avr-strings
- wy
Ļ
wietla ła
ı
cuchy ("drukowalne" znaki) z pliku
•
avr-strip
- usuwa symbole z plików wynikowych
•
avr-libc
- standardowa biblioteka funkcji dla kompilatora.
Ogólne okre
Ļ
lenie kompilator obejmuje cały zestaw narz
ħ
dzi, bibliotek, plików
nagłówkowych, które ł
Ģ
cznie pozwalaj
Ģ
przetworzy
ę
kod programu stworzony w C i
assemblerze do wynikowej postaci binarnego kodu maszynowego ładowanego do pami
ħ
ci
flash mikrokontrolera. Przetwarzanie takie obejmuje nast
ħ
puj
Ģ
ce etapy:
•
wykonanie na tek
Ļ
cie programu dyrektyw preprocesora (np. wstawienie plików
(dyrektywy
#include
), zast
Ģ
pienie fragmentów odpowiednimi definicjami (dyrektywy
#define
));
•
kompilacja modułów C do postaci plików assemblerowych;
5
Plik z chomika:
codman46
Inne pliki z tego folderu:
CalcGEN_2009_crk.rar
(8266 KB)
audio10cd.bin
(0 KB)
MERCEDES BENZ AUDIO 10 CD MF2910.exe
(1038 KB)
R-Studio 7.8 Build 160654 Network Edition [ENG] (Cracked).rar
(60234 KB)
Philips carradio EEprom Code Reader 1.10.exe
(189 KB)
Inne foldery tego chomika:
Pliki dostępne do 21.01.2024
• Wzmacniacze stacjonarne - schematy
►Elektronika
100 Projektow elektronika Uklady i Rozwiazania espagnol
angielski dla leniwych 1
Zgłoś jeśli
naruszono regulamin