RTOS

Rancz Lajos csiga at fosch.com
Mon Sep 10 08:59:29 CEST 2007


Helló!

Fuzesi Arnold wrote:
> Hm...
> Ez a letiltom a megszakítást és mahinálsz-ot részletezed egy kicsit?
> Nehezen tudok most olyat elkepzelni ami fagyast okoz...kivancsi vagyok mi
> volt amibe belefutottál.
> Kommunikácó alatt mit értesz? Global valtozót, vagy mit?
>   
Konkrétan az én problémám az volt, hogy egy termelő és egy fogyasztó 
taszk között nem a "gyári" queue-t használtam, hanem csináltam sajátot. 
A queue eléréshez le kellett tiltani a megszakításokat, vmint 
újraütemezést kérni. Szóval nem sikerült korrektül megoldani inkább 
használtam a gyárit.
> Mondjuk azt még épp nem néztem hogy tud-e dinamikusan taszkot létrehozni, 
> vagy
> előre drótozni kell a taszkokat, de nyilvan, gondolom ezert a heap neki meg 
> minden.
>   
Hát, ugye alapszabály beágyazott mikrokontrolleres rendszerekben, hogy 
dinamikus memóriát a lehető legkevesebbet szabad használni. A freeRTOS 
tud dinamikusan taszkokat létrehozni/futtatni, de nem biztos, hogy 
megéri. Van neki egy SIL3-at teljesíő testvére a safeRTOS (ez már 
pénzes), abban pont a memóriaturkálást nyúlták meg.
> Portolaskol mibe kellett belenyulni (azt vágom hogy a port.c-be vagymibe)?
> Nezegettem (IAR-ra kell), es eleg specko IAR dolgokat hasznal.
> Stack pointerbe turkal amit az IAR annak hasznal meg ilyenek.  Kicsit
> neccesnek erzem hogy nem ismerem teljesen az IAR mukodeset, és úgy nyúljak
> bele.
>   
Nem vészes :-) ATmega32-n semmit nem kellett csinálni, kapásból ment. A 
2560-nál kicsibb bonyolultabb volt a dolog, mert az nyilván 3 bájton 
tárolja a címeket, ott bele kellett nyúlni kicsit a stack kezelésbe.
> Vagy doksit olvasok gyorsan rakasra, vagy megkerdezlek. Bocs ha sok
> vagyok...
>   
csak nyugodtan, majd legfeljebb nem válaszolok :-)
> Gyorsan el kene dontenem akarok-e vele vacakolni, megéri-e, vagy nem, és
> ehhez kellene kis segítség.
>   
Sztem abszolút megéri, ha rászánsz két napot már sokkal beljebb vagy :-) 
A folyamatok egyszerűbbek és áttekinthetőbbek lesznek.
> Stack kezelése hogy is megy?
> Van egy munka stack, és taszkvaltaskor a watermark-ig azt masolja ki a 
> heap-re mentés célzattal?
>   
Nem, semmi ilyesmit nem csinál :-) Minden szál saját memóraterületen 
megy saját önálló stackkel, vmint egy területtel, ahova a regisztereket 
kirakja.
> Mivan ha betelik a heap, hogy kezeli le?
>   
Akkor szopó van :-) Ésszel kell kezelni, JTAG emulátor mindenképpen 
ajánlott, én be szoktam tenni a main() első sorára fixen egy 
breakpointot, hogyha újraindul akkor lássam :-)

Üdv,
Lajos
> Nem világos még a működése.
>
> Kösz,
> A.
> ----- Original Message -----
> From: "Rancz Lajos" <csiga at fosch.com>
> To: <elektro at tesla.hu>
> Sent: Sunday, September 09, 2007 7:44 PM
> Subject: Re: RTOS
>
>
> Helló!
>
> Fuzesi Arnold wrote:
>   
>> Úgyérted stack/buffer túlírás, vmi pointer elcseszés stb.
>> Szóval olyan esetben amikor RTOS hijján is fagyna cudarul?
>>
>>     
> Nem, olyan esetben amikor nem korrektül van megírva RTOS szempontból a
> szoftver, pl. letiltom a megszakításokat és vmit machinálok, vagy két
> taskk nem queue-n keresztül kommunikál hanem egyéb módon, akkor lehet
> probléma.
>
> Üdv,
> Lajos
>   
>> A.
>> ----- Original Message ----- 
>> From: "Rancz Lajos" <csiga at fosch.com>
>> To: <elektro at tesla.hu>
>> Sent: Saturday, September 08, 2007 8:24 AM
>> Subject: Re: RTOS
>>
>> A freeRTOS nem fagyott csak olyan
>> esetben ha a szálban futó program volt elcseszve.
>>
>> -----------------------------------------
>>           elektro[-flame|-etc]
>>
>>     
>
> -----------------------------------------
>           elektro[-flame|-etc]
>
> -----------------------------------------
>           elektro[-flame|-etc]
>   



More information about the Elektro mailing list