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