Mikrokontroller C-ASM
Fuzesi Arnold
arno at externet.hu
Sun Dec 11 20:08:29 CET 2005
----- Original Message -----
From: "hoyuka hoya" <hoyuka at c2.hu>
To: <elektro at tesla.hu>
Sent: Sunday, December 11, 2005 6:42 PM
Subject: Re: Mikrokontroller C-ASM
> Haliho,
>
> Igy elso ranezesre egyik sem bug :)
>
>> Az elmult 9 ev alatt 2db fordito bugot talaltam.
>> Nevezetesen legutobb mikor ay IAR a full-optimalizacional kioptimalizalta
>> a
>> kod egy reszet.
>> De az eeprom valtozo volatile-á tétele megoldotta.
>
> Ez szerintem igy van jol. A fordito nem volatile valtozokkal azt csinal,
> amit akar, ha logikailag a fuggveny outputja ugyanaz marad. Ha pl. a
Persze, azt csinal...de az durva mikor kiszed 10 sort kompletten szo nelkul.
Amiben vannak fuggvenyek stb. :) Amit baromira nem kellett volna
kiszednie...
Ez bizony bug volt.
A volatile oldotta meg. Merthogy ilyenkor már meg van kötve a keze, és
minden alkalommal mikor a valtozora hivatkozok bizony ujra kell olvasnia.
Igyaztan nem tehette meg, hogy kioptimalizalja.
>> Masik a Hi-tech PICC forditoban volt. Fuggvenyhivas fuggvenyargumentumban
>> levo int valtozo-t varo argumentum hibas volt ha a fuggveny char tip.
>> visszateressel tert vissza. Rosszul bovítette ki a char-t int-é.
>> A felso byte-ot nem nullazta.
>
> Na ezt nem tudom. Ha arrol van szo, hogy a kapott char ertek felso bitje
> egyes volt, es erre a felso baj bitjeit feltoltotte egyesekkel a fordito,
Errol volt szo:
void fuggveny1(uint );
uchar fuggveny2();
fuggveny1(fuggveny2());
Hibasan mukodott.
Ez megoldotta:
uint temp=fuggveny2();
fuggveny1(temp);
Arnold
More information about the Elektro
mailing list