Optimalizace kodu
Michal HW
michalgregor@centrum.cz
Úterý Leden 9 14:26:28 CET 2007
HT-Soft vzdy pointery kopiruje do HW registru pro neprime adresovani. Tedy
hromada cyklu navic. Jeste nevim, ale kolik to udela.
PIC18F8722, 14MHz. Presouvam 74 byte z vnitrni do vnejsi pameti. Soucasne
menim komunikacni protokol, ale nic sloziteho. Presun zabere 86mS.
MEMCPY to je paskvil. Nejefektivnejsi je presun structury nebo vlastni asm.
Michal Gregor
> Jsou 4 ne 3. Hlavni cast pro kopirovani structury skutecne tvori 4
> instrukce. Ten kod vypada asi takto:
>
> Prenos:
> movff POSTINC0,TABLAT
> tblwt *+
> decfsz Pocet,F
> bra Prenos
No tak to zkuste napsat podobne:
pe = data_externi;
pi = data_interni;
do {
*pi++ = *pe;
*pe++;
} while (--Pocet);
Problem bude ale asi v tom, jak mu vysvetlit, ze dany pointer ukazuje
jen do te ci one pameti - jinak se muze snadno stat, ze bude pri kazde
dereferenci testovat, do ktere pameti pristupuje (stejne to btw dela
memcpy).
Lukas Grepl
Další informace o konferenci Hw-list