WinAVR

Andras Tantos andras_tantos at yahoo.com
Thu Feb 17 17:55:09 CET 2005


Hali!

En egy olyan honapja kezdtem el hasznalni ezt a programcsomagot. Pontosabban
csak a GCC reszet. Szimulaciora, programozasra az AVRStudio-t hasznalom,
JTAG-et az az AVR, amit en hasznalok (ATMega48) nem ismer.

Tapasztalatok: mindegyik eleg vacak (hozza tartozik, hogy par napja jelent
meg az uj WinAVR, amiben egy ujabb GCC van, szoval lehet, hogy az
eszrevetelek egy resze mar nem igaz).

- Az AvrGCC nem ismeri az -fdata-sections opciot (hala istennek legalabb 
az -ffunction-sections-t ismeri). Az elobbi megadasat egy laza elszalassal 
honoralja, a masodikra egy kikapcsolhatatlan warning-ot ad.

- A GCC linker script-bol kimaradtak a 'KEEP' utasitasok, igy ha bekapcsolod 
a -gc-section-t a linker-nek, akkor egy kover 0-byte hosszusagu binaris 
fajlt kapsz.

A fenti ketto azert kell, hogy a linker ki tudja szedni a nem hivatkozott 
fugvenyeket a binaris image-bol. Nagyon fontos a kis kodmeret eleresehez, es 
nagyon megvagyok lepve, hogy lathatolag senki nem tesztelte ezt a 
szolgaltatast Avr target-re.

- A GCC rengeteg apro pesszimalizaciot (:-)) csinal. Ezek nem kod-generalasi 
hibak, hiszen a kesz program mukodik, csak epp messze nem az optimalis 
megoldas. A kedvencem, amikor az "if((a & 0x40) == 0)" -bol egy laza 
mozdulattal egeralt egy ciklust, amiben szepen egyesevel leleptette 'a' 
bit-jeit, amig a 6. be nem kerult a C flag-be.

- Egy alkalommal a GCC ugy dontott, hogy az allapotgepem switch utasitasa 
nem kell nekem, es az *egeszet* kidobta a kodbol. Ezek utan persze a fel 
progamra nem maradt hivatkozas, igy azokat is kiszedte. Latvanyosan kicsi 
lett a binaris image. Persze, szep, szep a meretre optimalizalas, na de nem 
ilyen aron :-).

- A GCC-hez adott header-file-okban is van hiba - eddig egyet talaltam. 
Erdekes modon a hibas bit-specifikacio megegyezik az AVRStudio visszajelzo 
ertekeivel, de nem a szimulator mukodesevel, vagy a valos chip 
regiszter-kiosztasaval.

- A WinAVR-nel meg erdemes elolvasni a 'known issues and limitations' reszt 
(tudom, ez nem resze a WinAVR-nek, de ha mar itt tartunk). En persze csak 
utolag tettem ezt meg, miutan fel napot szivtam azzal, hogy a programom nem 
mukodik. Egyes periferiat egyszeruen nem szimulalnak (I2C), vagy nem jol 
(timer/PWM). Pedig velemenyem szerint pont az lenne a lenyege egy 
szimulatornak, hogy a program es a periferiak kolcsonhatasat lehet rajta 
orajel-pontosan nezni es debug-golni, hiszen ez a legjobb mod arra, hogy a 
kornyezeti hatasok hatareseteit ki tudjad tesztelni.

Uff,
Tantos Andras

----- Original Message ----- 
From: "Rancz Lajos" <csigaelektro at freemail.hu>
To: <elektro at tesla.hu>
Sent: Thursday, February 17, 2005 4:01 AM
Subject: WinAVR



Helló!

Használta már valaki a fenti cuccot? Milyen? Kifejezetten szubjektív
véleményekre vagyok kíváncsi. Könnyû hozzá passzintani a JTAGet? Nem fagy az
Insight?

Kösz,
Lajos

-----------------------------------
 Szponzorunk: http://tonerbolt.hu/




More information about the Elektro mailing list