-
1. Data: 2009-02-01 18:29:42
Temat: FreeRTOS, SAM7, tryby pracy jądra ARM7.
Od: Sebastian Bialy <h...@p...onet.pl>
Witam.
Popędzam SAM7 używając FreeRTOS. FreeRTOS wymusza na mnie wejście do
głównej pętli schedulera w trybie Sypervisor.
Większość startupów do SAM7 (od groma na sieci) ustawia na koniec przed
wskoczeniem do main tryb User.
Teraz pytanie #1:
a) Czy ARM7 umożliwia wejście w tryb User, ustawienie stosu i powrót do
Supervisor? A może ->User to bilet w jedną stronę? Próba ustawienia z
powrotem trybu Supervisor będąc w User nie powiodła się (co wydaje się
logiczne).
b) Czy w ogóle we FreeRTOS powinienem przejmować się stosem w trybie
User czy może jądro FreeRTOS go prawidłowo przydzieli? Bo jeśli ustawie
ten stos to nie wrócę do Supervisor i nie mogę poprawnie uruchmić
schedulera. Z drugiej strony olanie przeze mnie stosu w trybie User nic
nie popsuło, scheduler działa, wątki się kręcą.
-
2. Data: 2009-02-02 13:06:16
Temat: Re: FreeRTOS, SAM7, tryby pracy jądra ARM7.
Od: Konop <k...@g...pl>
> a) Czy ARM7 umożliwia wejście w tryb User, ustawienie stosu i powrót do
> Supervisor? A może ->User to bilet w jedną stronę? Próba ustawienia z
> powrotem trybu Supervisor będąc w User nie powiodła się (co wydaje się
> logiczne).
Przechodzenie z trybu User do Supervisor jest niemożliwe wprost...
możliwe przez przerwania ;)... programowe ;>..
Pozdrawiam
Konop
-
3. Data: 2009-02-02 13:49:58
Temat: Re: FreeRTOS, SAM7, tryby pracy jądra ARM7.
Od: Sebastian Bialy <h...@p...onet.pl>
Konop wrote:
> Przechodzenie z trybu User do Supervisor jest niemożliwe wprost...
OK, tak myślałem. Czyli większość startupów do SAM7 nie nadaje się do
pracy z FreeRTOS ;)
> możliwe przez przerwania ;)... programowe ;>..
Nie chodzi o hackowanie, po prostu wywaliłem kod ustawiający stos w
trybie usera w startupie i wchodzę od razu jako Supervisor do main(). I
działa poprawnie choć nie mam 100% pewności że robię to poprawnie.
-
4. Data: 2009-02-02 17:36:09
Temat: Re: FreeRTOS, SAM7, tryby pracy jądra ARM7.
Od: AK <a...@g...pl>
Sebastian Bialy pisze:
> Konop wrote:
>> Przechodzenie z trybu User do Supervisor jest niemożliwe wprost...
>
> OK, tak myślałem. Czyli większość startupów do SAM7 nie nadaje się do
> pracy z FreeRTOS ;)
>
>> możliwe przez przerwania ;)... programowe ;>..
>
> Nie chodzi o hackowanie, po prostu wywaliłem kod ustawiający stos w
> trybie usera w startupie i wchodzę od razu jako Supervisor do main(). I
> działa poprawnie choć nie mam 100% pewności że robię to poprawnie.
Jest to OK, jak nie uzywasz trybu "user" to nie musisz ustawiac stosu.
Pozdr
AK
-
5. Data: 2009-02-02 17:37:31
Temat: Re: FreeRTOS, SAM7, tryby pracy jądra ARM7.
Od: AK <a...@g...pl>
Sebastian Bialy pisze:
> Konop wrote:
> OK, tak myślałem. Czyli większość startupów do SAM7 nie nadaje się do
> pracy z FreeRTOS ;)
A propos RTOS-a na ARM-y i podobne - ostatnio trafilem na cos takieg:
http://chibios.sourceforge.net/
moze sie koms przyda.
Pozdr
AK
-
6. Data: 2009-02-02 17:40:25
Temat: Re: FreeRTOS, SAM7, tryby pracy jądra ARM7.
Od: Sebastian Bialy <h...@p...onet.pl>
AK wrote:
> Jest to OK, jak nie uzywasz trybu "user" to nie musisz ustawiac stosu.
FreeRTOS używa chyba w moich wątkach. I nie wiem na ile jest w tym moja
odpowiedzialność, na razie po cichu zakładam, że odpalam go jako
Supervisor i reszta nie należy do mnie.
-
7. Data: 2009-02-02 17:42:43
Temat: Re: FreeRTOS, SAM7, tryby pracy jądra ARM7.
Od: Sebastian Bialy <h...@p...onet.pl>
AK wrote:
> A propos RTOS-a na ARM-y i podobne - ostatnio trafilem na cos takieg:
> http://chibios.sourceforge.net/
> moze sie koms przyda.
Znalazłeś już jakieś zalety nad FreeRTOS? Jestem na etapie w którym mogę
podjąć dowolne decyzje co mam mieć do obsługi wątków i może warto a
doświadczenia mam nieduże żeby to samodzielnie ocenić.
-
8. Data: 2009-02-03 01:09:56
Temat: Re: FreeRTOS, SAM7, tryby pracy jądra ARM7.
Od: Adam Dybkowski <a...@4...pl>
Sebastian Bialy pisze:
> a) Czy ARM7 umożliwia wejście w tryb User, ustawienie stosu i powrót do
> Supervisor? A może ->User to bilet w jedną stronę? Próba ustawienia z
> powrotem trybu Supervisor będąc w User nie powiodła się (co wydaje się
> logiczne).
Nie. Supervisor może wszystko a więc może też przejść w tryb User.
W drugą stronę natomiast powrót jest możliwy tylko przez reset
procesora, przerwanie lub SWI.
> b) Czy w ogóle we FreeRTOS powinienem przejmować się stosem w trybie
> User czy może jądro FreeRTOS go prawidłowo przydzieli?
BTW: Polecam przyjrzenie się systemowi Nut/OS. Ma podobne możliwości jak
FreeRTOS (semafory, kolejki komunikatów itd) ale za to naspawane od
groma gotowych sterowników - od UARTu przez SPI, Ethernet, obsługę kart
MMC aż do systemu plików FAT. Ma też stos sieciowy TCP/IP (z którego
oczywiście nie trzeba korzystać). Natomiast podobnie jak FreeRTOS cały
czas pracuje w trybie supervisor.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
-
9. Data: 2009-02-03 18:10:19
Temat: Re: FreeRTOS, SAM7, tryby pracy jądra ARM7.
Od: Sebastian Bialy <h...@p...onet.pl>
Adam Dybkowski wrote:
> BTW: Polecam przyjrzenie się systemowi Nut/OS. Ma podobne możliwości jak
> FreeRTOS (semafory, kolejki komunikatów itd) ale za to naspawane od
> groma gotowych sterowników - od UARTu przez SPI, Ethernet, obsługę kart
> MMC aż do systemu plików FAT. Ma też stos sieciowy TCP/IP (z którego
> oczywiście nie trzeba korzystać). Natomiast podobnie jak FreeRTOS cały
> czas pracuje w trybie supervisor.
Supervisor czy user w sumie żadna różnica zapewne, natomiast od Nut/OS
odrzucał mnie zawsze ten głupi konfigurator. Czy jest nadal potrzebny
czy można konfigurować całość za pomocą jakiś plików? Jestem konsolowcem
i wole mieć całość w plikach źródłowych w SVN niż wyklikaną. I czy ma
port na Linux/Win32 (w celu debugowania kodu). FreeRTOS chyba nie ma
czym mnie negatywnie zaskoczył i zastanawiam się czy jednak z niego nie
zrezygnować.
-
10. Data: 2009-02-03 18:22:56
Temat: Re: FreeRTOS, SAM7, tryby pracy jądra ARM7.
Od: Sebastian Bialy <h...@p...onet.pl>
Adam Dybkowski wrote:
> BTW: Polecam przyjrzenie się systemowi Nut/OS.
O teraz zauważyłem dopiero - NutOS jest tylko cooperative (?). A ja
potrzebuje pre-emptive (taka natura aplikacji docelowej).