AVR-GCC + tablica

Witam, niedawno przesiadlem sie z asm na c ... i jak to bywa napotykam na male problemy. Kod pisze na mega8515. Program ma za zadanie odebranie roznej dlugosci dancyh (16-254 B) interfejsem szeregowym, obrobka i odeslanie .. W programie zdefiniowalem tablice unsigned char packet[255];

Po odebraniu ramiki zaczynam liczyc sume kontrolna pakietu i odsylam go. Suma jednak sie nie zgadza , poniewaz ramka w czasie liczenia sumy jest modyfikowana(nie przeze mnie) - mam wrazenie ze kompilator w mojej ramce umiescil stos.

Czy jest to mozliwe ? Czy powinienem uzyc innego sposobu zarezerwowania tych 255 bajtow w RAM'ie dla mojej ramki ?

Dodam ze wszystkie przerwania wylaczone, dziala tylko funkcja liczaca sume.

Dzieki za poswiecenie czasu :)

Mariusz

Reply to
Mariusz
Loading thread data ...

Możliwe, ale jednak mało prawdopodobne ramu jest prawie dwa razy więcej niż potrzeba. Zobacz zresztą ile go naprawdę idzie.

Reply to
Jurek Szczesiul

Jezeli to jest zmienna globalna (albo statyczna funkcji) to wszystko powinno byc ok. Ale jezeli to jest zmienna lokalna jakiejs funkcji ( umieszczana na stosie)- to po wyjsciu z tej funkcji bedzie tam nie wiadomo co czyli smieci !

jfk

Reply to
jfk

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.