mplab C30 printf
Jozo
svk421@zoznam.sk
Středa Duben 2 09:38:45 CEST 2008
> Ak mas podozrenie na pretecenie stacku, pozri si nejakou utilitkou, ktora ti
> skontroluje kolko RAM ti zaberie. Nezabudni pritom na vsetky, ale uplne
>
Uz mi to chodi. Problem nakoniec nebol zo stackom, ale s registrom. V
tej rutine na konverziu bitmapy som kvoli rychlosti urobil shiftovanie v
asm. Pozrel som si vtedy disasembly listing povodneho zapisu v C, pouzil
ten isty register ako tam mal kompilator a nahradil par riadkov asm
zapisom. Ako vravim, chodilo to cca rok bez problemov. Teraz v inom
projekte som tam flakol printf a kompilator zrejme pouzil iny register -
tym padom ten moj neodzalohoval do stacku a kedze ja hnup som to
neurobil sam, tentokrat som zrusil nejaku premennu printf-u. Takze
stacilo pridat na zaciatok a koniec funkcie
asm("\tMOV W13, _tmpW13");
asm("\tMOV _tmpW13, W13");
... a je to ok.
Inak printf pouzivam tiez len tam, kde je toho na vypisovanie viac a
hlavne ak sa jedna o vypis premennych. V tomto pripade zabera caa 6kB,
ale pri 256kB flashke procesora a 40mips je mi to ukradnute :-)
j.
Další informace o konferenci Hw-list