[elektro] stack, struct copy
Fuzesi Arnold
arnold.fuzesi.lista at gmail.com
Thu Apr 29 11:08:11 CEST 2010
On 2010. 04. 28. 15:50, hg12345 wrote:
> Hi!
>
> Kifelejtetted milyen fordító és milyen kontroller.
Ez igaz. De alapvetően mind1...a logika volt fura elegge, es meg most sem ertem
miert jobb igy... igyis ugyis byte-onkent olvassa az eepromot es tolti fel a ram
struct-ot.
(IAR + AVR amugy)
> Az EEPROM kezelés teljesen implementáció függő elképzelhető amit írsz.
> Elvileg kozvetlenúl nem turja beolvasni, akkor meg átmenetileg valhol tárolni kell.
>
> Próbáltad pointerrel?
> *cfg=*ee_cfg;
Ez értelmetlen, nem? cfg nem pointer hanem egy valtozo.
> vagy sring copy függvénnyel?
String copy nem tudja mivel az eeprom valtozo mas kategorias pointer mint egy
sima valtozo az strcpy meg const char* -ot var a pointereknek.
FLASH-bol van strcpy_P erre. De eepromra nincs.
Ezt fapadosan kezzel tudnam megirni egy strcpy_EE fuggveny formajaban.
De olyan kenyelmes ez a struktura ertekadasosdi. :)
Most kitoltam vele, kihelyeztem egy külön függvénybe a kritikus reszeket, igy
csak addig foglalja a stack-en a helyet amig tenyleg zajlik a masolas. Korabban
printf stb volt meghívva mellette egy fuggvenyben ami szinten zabalja a
stack-et...igy stack owerflow volt pikkpakk.
Egyelőre itt elmegy. De mashol ahol nem lesz ennyi RAM ott nem fog menni.
-
mas: stack overflow-ra nincs ugye a mini kontrollerek joreszeben semmi tamogatas.
Vannak technikak watermark stb ami a stack kihasznaltsagot jelzi.
Puritan modon a stack vegere teszek egy footprint-et,(HEAP utana van a
stack-nek, az elejere toltom be a footprintet), ha tulirt detektalni tudom.
De kihasznaltsagot ez nem mutat.
Watermark kicsit kinlodosabb lenne, de lehet raszanom magam.
Ti hogy csinaljatok?
Fura h semmilyen tamogatas nincs a fordito reszerol erre.
A.
More information about the Elektro
mailing list