[elektro] gyakorló ATMEL-sekhez kérdés
hg12345
hg12345 at freemail.hu
Mon Apr 14 14:27:46 CEST 2014
Igen, igen, de nem ugyan az.
A stack folyamatosan frissül, ha nincs túl terhelve uC, akkor visszatér alaphelyzetre.
A stack védelemre ott a SafetyRTOS, ha nagyon muszáj. (Persze az RTOS-ok is így működnek...)
De ezek az egyszer inicializált változók, meg csak elvannak mint a befőtt.
pl: van 1K stack-ed aminek a nagyobb része nem használd és frissül, és van 10K-nyi ilyen-olyan egyszer inicializált nem ellenőrzött pointer halmaz. A kettő statisztikailag nem ugyan az.
Abban igazad van teljesen mindegy,hogy hol akad ki a program.
Nézd ha megoldható másképp, akkor inkább az egyszerűbb tömörebb kivitelt választom.
Lajos Rancz <lajos.rancz at gmail.com> írta:
>Helló!
>
>Ilyen környezetben ez már nem oszt nem szoroz: a stack is a a memóriában
>van és ha a visszatérési cím felülíródik akkor úgyis annyi.
>
>Üdv
>
>
>2014. április 14. 11:52 hg12345 írta, <hg12345 at freemail.hu>:
>
>> A megbízhatatlant úgy értem, hogy elektromos zajjal erősen terhelt
>> környezetben (ami túl mutat az EMI/EMC ajánlásokon) ( pl.: kis hazánkban a
>> készülékeink 95% ilyen környezetben müködik :-(
>> Nem biztos, hogy a main() függvény elején felinicializált függvény
>> pointerek 365nap folyamatos üzem után is oda mutatnak. De még egy nap
>> múlva se.
>> Persze vannak megoldások erre is, HW támogatott hibajelzéssel védett RAM
>> területes eszközök is kaphatóak.
>> Amúgy minden megoldható, de még egy programozott újra indulás se
>> szerencsés mert erősen látszik a szabályozott, vezérelt folyamaton.....
>>
>> Szerintem sokkal egyszerűbb, ha egy ilyen eszközben a program úgy van
>> megírva, hogy minimális a RAM-ban elhelyezett nem vagy nehezen
>> ellenőrizhető kódja, vagyis ilyen függvény pointereket én kihagynám.
>> Egyébként se ad tömör kódot, szóval 40K program+adat 4 sor C programért
>> elég sok, ez normál programozással, kb. 3-4K lenne.
>>
>> üdv
>>
>>
>> Lajos Rancz <lajos.rancz at gmail.com> írta:
>> >Helló!
>> >
>> >A megbízhatatlant nem értem! A C++ virtual függvények is így működnek
>> (igaz
>> >ott a compiler intézi). Nagyon sok helyen használják ezt.
>> >
>> >Üdv
>> >
>> >
>> >2014. április 13. 9:51 hg12345 írta, <hg12345 at freemail.hu>:
>> >
>> >> Köszönöm ez bevált.
>> >>
>> >> Még egy kérdés, ez teljesen normális ATMEL körökben, hogy mindent a
>> >> indirekt RAM-ban elhelyezett függvény pointereken keresztül csinálnak
>> meg?
>> >> Azért ez nem növeli az üzembiztonságot és kód tömörséget!
>> >>
>> >> Persze nagyon flexibilis lesz tőle a program (és megbízhatatlan), de nem
>> >> ingyen adják 4 sor program C-ben 40K FLASH területet foglal!? Na kicsit
>> >> ferdítettem optimalizálva csak 35K. :-)
>> >>
>> >> Mégegyszer köszönöm a segítséget
>> >>
>> >> üdv
>> >> G
>> >>
>> >> r3flow <nzoltan at freemail.hu> írta:
>> >> >
>> >> >
>> >> >On 2014-04-12 19:38, hg12345 wrote:
>> >> >> Próbálom használom az ASF-t, pont eddig jutottam
>> >> >
>> >> >
>> >> >ASF-ben meg van írva a _write() és a _read(), a a "Standard serial I/O
>> >> >(stdio)" modulban. Ha a projektedhez hozzáadtad ezt a modult akkor ne
>> >> >írt meg a _write()-ot, ez esetben az stdio_serial_init() függvénnyel
>> >> >tudsz adott USART-ot inicializálni úgy, hogy az egyúttal az stdio
>> >> >kimenete is lesz.
>> >> >
>> >> >Üdv,
>> >> >Z.
>> >> >
>> >> >-----------------------------------------
>> >> > elektro[-flame|-etc]
>> >>
>> >> -----------------------------------------
>> >> elektro[-flame|-etc]
>> >-----------------------------------------
>> > elektro[-flame|-etc]
>> >
>>
>> -----------------------------------------
>> elektro[-flame|-etc]
>>
>-----------------------------------------
> elektro[-flame|-etc]
More information about the Elektro
mailing list