WinAVR
Csobolyó János
janchika at uze.net
Thu Feb 17 18:05:46 CET 2005
Andras Tantos <andras_tantos at yahoo.com> 2005.02.17. 08:55:09 -8h-kor írta:
> 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.
>
Mennyit veszít a progirás hatékonysága ha mindig nézned kell vajon most mit is
fordit?
--
More information about the Elektro
mailing list