PIC vs ATMEL #2

VF vf at elte.hu
Thu Feb 12 11:19:50 CET 2004


Thus spake Nagy Endre <gumo at lucifer.kgt.bme.hu>:

>> A hordozhatosagrol annyit hogy egy kollega is itt szenved a listan
>> vele, pedig ugyanaz a proci, csak ket kulonbozo fordito.
> 
> Ezert is jo a gcc, van egy nagyon nagy rakas platformra.

Az AVRLIB-ben talaltam egy nagyon erdekes dolgot. Van ugye DDR es PIN
fuggveny, ami a porthoz tartozo tobbi regisztert jelenti. Ugy csinalja,
hogy #define PIN(port) = ((port)-1) stb...
Az A,B,C,D portokra jo, az E-re nem.
Talaljatok ki, nekem melyik portra kellett volna...
Tehat meg hibas is, csak az a szerencse, hogy abban a forrasban
speciel eppen nem hasznaltak...
Mondanom sem kell, ilyet asm-ben nem csinal az ember.

> Aprobb modositasokkal (portkezelo makrok, megszakitas tipusa) menni fog,

At kellett irnom az egeszet. Szerencse hogy csak nehany k.
#define helyett fuggvennyel ki lehetett volna javitani, de nem sok
ertelme lett volna futasidoben eldonteni hogy melyik port, es annak
hol is van a DDR regisztere, felesleges idopocsekolas...

> ha korrektul van megirva. Ja, volt olyan kerdes is, hogy megszakithato
> megszakitas van-e: avr-gcc-ben igen, egy sei();...cli(); koze kell irni a
> megszakithato reszt, akarcsak asm-ben.

Ez jo, az IAR doksi azt irja hogy ez nem megy...
(Persze hackelessel biztos meg lehet csinalni, de akkor mennyivel lenne
jobb mint a tiszta asm?)

>> Ha a forditok eleg okosak lennenek, hogy maguktol rajojjenek hogy
>> merrefele szamoljanak, pointert vagy tombot hasznaljanak stb... akkor
> 
> Ezekre speciel rajonnek. Az optimalizacio pl. megfordithat, megritkithat,
> kibonthat (unroll), vagy teljesen el is hagyhat egy ciklust, ha az
> aritmetikai vegeredmeny ettol nem valtozik. (Az IO-t pedig volatile
> makrok vedik, tehat az is rendben lesz.)

Vagy rajon, vagy nem. Mondom, konkret peldam van amikor ket kulonbozo
procira masik C forrast vag be a make, mert 30%-os gyorsit.
Nem jon ra a fordito, meg -o123 opcioval sem. Az emberi agy siman.

> Gumo

-- 
Valenta Ferenc <vf at elte.hu>   Visit me at http://ludens.elte.h u/~vf/
Az en kisebbrendusegi komplexusom nem olyan jo, mint a tied.



More information about the Elektro mailing list