[elektro] PIC kezdés
Moczik Gabor
pm_levlista at progzmaster.hu
Mon Jun 9 11:58:49 CEST 2008
Ágó István wrote:
> Azért a béna programozót úgy nézd, hogy akár egy tömbből történő
> adatkiszedés vagy tömbbe beírás is lehet 10-20 utasítás, ha valami
> alapján ki kell számolni az indexet. Ez akár egy sor is lehet a C
> kódban (amit esetleg makróval old meg a programozó). A Procedural
> Abstraction gyakorlatilag a makrókat irtja ki, csak tud keresni
> sajátmagának is "makrókat", nemcsak azokat szedi ki, amiket a
> programozó készített.
Ezek azok a dolgok, amik miatt utaljuk a microsoft-ot is: jobban akarja
tudni mint en, hogy mit akarok.
Ha egyszer valamit makroba tettem, es azt 16x "meghivtam", akkor azt azert
irtam ugy, hogy 16x forditsa bele a kodba egymas utan, mert igy lesz
hatekony. Ha most ezt kicsereli 16 call-ra, akkor ~64 gepi ciklus azzal megy
el hogy ugrik meg visszater.
Ha esetleg beallithato hogy sebessegre vagy kodmeretre akarok optimalizalni,
akkor nem szoltam. Mindenesetre tartok tole, hogy altalaban sebessegre kell
optimalizalni, kodmeret tekinteteben nem nehez tulmeretezni a dolgokat, jo
nagy flash teruletek vannak mar a 18F szerias procikban.
Kivetel ha valamit piciben kell pici uC-vel megoldani.
C-ben programozas eseten tessek kerni ASM list generalast, es ezt nezegetni.
Mindenkeppen erdemes ismerni a proci sajatossagait, hogy tudja az ember,
hogy milyen utasitasokat lehet egyaltalan egy C sorbol forditani. Egyik jo
pelda: CARRY=RD7 es az egesz PORTD bemenet. Igy leforditva van vagy 8 asm
utasitas, mikozben eleg lett volna a PORTD-t balra rotalni a carry-n
keresztul (1db RLCF utasitas). Ezt a fordito valoszinu hogy tudja, es ez nem
hekkeles.
--
((( Móczik Gábor )))--((( E~mail: "pm-01" @AT "progzmaster" .DOT "hu" )))
((( Skype: moczik )))
More information about the Elektro
mailing list