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