Diagrame schematice

INSTALAREA SI CONFIGURAREA WINAVR

Pachetul de instalare WinAVR este un fișier exe care trebuie executat pentru a instala WinAVR. Inițial, vi se va cere să revizuiți licența GNU GPL, apoi selectați locația de instalare pentru WinAVR și faceți clic pe "install". După instalare, vi se va solicita să vizualizați fișierul README.txt. Vă sfătuiesc să o citiți, sunt multe informații utile.

După cum se pare, compilatorul avr-gcc este foarte incomod, deoarece este lansat din linia de comandă fără o interfață grafică (GUI). Cu toate acestea, acest compilator poate funcționa cu diferite programe care au un GUI și este ușor de configurat pentru acest caz.

Acest lucru este facilitat de faptul că avr-gcc folosește makefile pentru munca sa. Makefile îi spune compilatorului ce comenzi trebuie să ruleze, care fișiere să compileze și să lege, ce cod de ieșire să genereze, etc. Makefile-ul este manipulat de către marcă. Ca una dintre modalitățile de a rula compilatorul pe linia de comandă, tastați următoarele:

Se presupune că fișierul makefile și fișierul compilat (de exemplu, proj1.c) se află în directorul d: # 92; mydir # 92; myproj1.

Următorul lucru important este să cunoașteți faptul că makefile are mai multe comenzi diferite, execuția cărora depinde de conținutul fișierului make. Pentru a utiliza o anumită comandă, linia de comandă ar trebui să arate astfel:

După instalarea WinAVR în eșantionul de director (WinAVR) # 92, puteți găsi șablonul makefile, care poate fi copiat în directorul proiectului și editat deja acolo. În acest makefile la început, o descriere a tuturor comenzilor este dată sub forma unui comentariu. Iată câteva: toate, curat, coff. Comanda totală compilează sursa și, în absența erorilor, generează un fișier care poate fi cusut în AVR. Această comandă se execută și implicit (când linia de comandă conține numai marca). Comanda curată șterge toate fișierele generate de comanda anterioară.

Dacă proiectul va consta din mai multe fișiere, iar unul dintre ele va schimba ceva, atunci numai fișierul modificat va fi compilat când se recompila. Pentru o recompilare completă (de exemplu, dacă trebuie să modificați nivelul de optimizare și codul sursă nu a fost editat), trebuie să executați mai întâi curat, apoi să faceți totul.

Comanda coff convertește proj1.elf (este generată prin compilare) la proj1.cof, care poate fi încărcat în AvrStudio pentru depanare pas cu pas. De fapt, comanda coff este considerată depășită, deoarece generează un fișier cof, care este perceput de AvrStudio cu o versiune nu mai mare de 3.x. Pentru versiunile 4.07 și mai noi, cof-fișierul este generat de comanda extcoff. Dar este o chestiune de gust.

Acum despre ceea ce puteți și chiar trebuie să editați în makefile. În primul rând, trebuie să specificați ce tip de controler vrem să obținem codul de ieșire pentru. Liniile în care se editează arată astfel:

Prima linie - comentariu, iar al doilea în loc să scrie atmege128 tipul care ne interesează (de exemplu, AT90S2313, at90s8535, attiny22).

Numele proiectului și, în consecință, numele sursei cu funcția principală și fișierele de ieșire cu extensii hex și cof sunt definite în următoarele rânduri:

# Nume de fișier țintă (fără extensie).

Aici, în loc de principal, scrieți numele proiectului dorit.

Dacă proiectul include mai multe fișiere, atunci toate acestea trebuie să fie listate în fișierul makefile. Se poate face în moduri diferite, de exemplu:

# Listați fișierele sursă C aici. (Dependențele C sunt generate generate.)

SRC = $ (TARGET) .c # 92;

Aici foo.c și bar.c sunt două fișiere suplimentare cu codul, iar fișierul principal este main.c.

Dacă proiectul conține fișiere scrise în asamblare, atunci acestea trebuie să fie scrise în linia 'ASRC ='. Extensia fișierelor de asamblare trebuie să fie s sau S.

Pentru compilator, puteți selecta nivelul de optimizare. Nivelurile disponibile sunt 0 (fără optimizare), 1, 2, 3 și s. Toate nivelurile sunt diferite și nu puteți spune că nivelul 3 este cel mai bun. Optimizat în ceea ce privește dimensiunea codului de ieșire, și în funcție de viteza de program. De exemplu, atunci când nivelul obținut cu S. nivel de optimizare a codului 3 va mai rapid, dar dimensiunea de cod este puțin mai mare decât codul lent obținut atunci când nivelul mediu 1. Unele optimizare (viteză și mărime)

În unele versiuni, makefile acceptă programarea unui cristal cu propriile setări. Dar, din moment ce acest lucru nu se întâmplă în toate versiunile WinAVR, nu merită analizat aici.

Acum, cum să conectați directoare suplimentare la proiect. Acest lucru este destul de ușor de făcut în cazul în care makefile are deja o linie care începe cu EXTRAINCDIRS. Dacă nu există o astfel de linie, atunci mai întâi trebuie să găsiți liniile cu steagurile compilatorului:

CFLAGS = -g-O $ (OPT) # 92;

-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums # 92;

-Wall -Wstrict-prototipuri # 92;

-Wa, -ahlms = $ (Opțiuni și faceți clic pe cuvântul Instrumente în fereastra deschisă din stânga.

Diagrame schematice

Faceți clic pe butonul "Adăugați" și completați câmpurile din fereastra care se deschide

Diagrame schematice

Așa că am adăugat comanda "Faceți tot". Aici "Nume" este numele comenzii pe care dorim să o vedem în meniul PN. „Comanda“ - o echipa care ar putea fi realizat din linia de comandă (am putea scrie make.exe) cu „Parameters“ parametru. Un semn de selectare de lângă „Capture ieșire?“ Înseamnă că progresul compilării poate fi văzut imediat în PN prin fereastra cu programul de editat, în cazul în care capusa nu este, procesul de compilare poate fi observată într-o fereastră DOS, care se închide la sfârșitul compilării, care nu este foarte convenabil.

În acest fel, puteți configura compilatorul să funcționeze cu diferite opțiuni.


Diagrame schematice

Acum PN este gata de utilizare.

Primul proiect din mediul WINAVR

Rămâne să arătăm cum să folosim WinAVR pentru a scrie un program pentru AVR în limba C.

Porniți PN și creați un nou fișier C (File-> New-> C / C ++). În fereastra care se va deschide, scrieți următorul cod (erorile au fost introduse în mod specific):

caractere nesemnate;

// setați PORTB pentru ieșire

// setați PORTB.2 ridicat

PORTB | = 1 SaveAs numit makefile fără extensie în același director unde test1.c a fost stocat anterior. Acum trebuie să editați fișierul makefile pentru a lucra cu test1.c. Cum să procedați corect, priviți mai sus.

Acum, încercați să ne compilați programul (Tools-> Make_All). Dacă nu remediați erorile din textul programului, compilarea va eșua. Iată erorile pe care editorul meu le-a emis:

test1.c: 5: avertisment: tipul de returnare a `main 'nu este' int '

test1.c: În funcția `main ':

test1.c: 8: eroare: "DRB" nedeclarat (prima utilizare în această funcție)

test1.c: 8: eroare: (Fiecare identificator nedeclarat este raportat o singură dată

test1.c: 8: eroare: pentru fiecare funcție apare în.)

test1.c: 20: eroare: eroare de analiză înainte de '>' token

test1.c: 30: eroare: eroare de analiză înainte de '>' token

face: *** [test1.o] Eroare 1

Trebuie să corectați erorile, chiar dacă acestea sunt desemnate ca avertizare. Remediem erorile: tipul funcției principale este schimbat în int, DRB este schimbat în DDRB, iar în ambele linii unde se întâlnește contra ++, adăugăm punct și virgulă. Dacă erorile sunt corecte corect, compilația va produce următoarele:

text de date bss dec hex nume fișier

0 140 0 140 8c test1.hex

Articole similare