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