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