Pages: [1] 2 3 4   Go Down
Author Topic: RTOS  (Read 2527 times)
0 Members and 1 Guest are viewing this topic.
Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se volessi iniziare a studiarmi un RTOS da utilizzare su un Arduio Mega o meglio ancora su un Arduino Due, quale mi consigliereste? FreeRTOS? ChibiOS?
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22907
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se volessi iniziare a studiarmi un RTOS da utilizzare su un Arduio Mega o meglio ancora su un Arduino Due, quale mi consigliereste? FreeRTOS? ChibiOS?
Questi RTOS non funzionano con l'IDE di Arduino.
Ne devi usare il loro porting, fatti da un utente del forum internazionale. Qua trovi i port di FreeRTOS, ChibioOS/RT e NilRTOS:
http://arduino.cc/forum/index.php/topic,145716.0.html
Quello che lui consiglia è ChibiOS/RT, per il minor impiego di risorse e per le caratteristiche che ha in più rispetto al FreeRTOS. Quest'ultimo, però, è quello più diffuso tra gli RTOS liberi.

Poi mi fermo perché non li ho mai usati.
Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 134
Posts: 9619
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mio parere personale, usare un RTOS su piccole mcu 8 bit con limitate risorse è volersi fare male da soli smiley
Si fa molto prima, ed è molto più efficiente, a scriversi un personale quasiRTOS sfruttando un timer come clock di sistema nella cui ISR vengono aggiornati i flag degli eventi da gestire.
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22907
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Si fa molto prima, ed è molto più efficiente, a scriversi un personale quasiRTOS sfruttando un timer come clock di sistema nella cui ISR vengono aggiornati i flag degli eventi da gestire.
Ma qui si sta descrivendo il leOS  smiley-grin
Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 134
Posts: 9619
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma qui si sta descrivendo il leOS  smiley-grin

Ovvio che si smiley
Logged

Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley smiley smiley smiley
La mia idea effettivamente era di utilizzarlo con l'Arduino Due...  smiley-wink

Vedrò di orientarmi sul ChibiOS, anche perché la dcumentazione è gratuita...  smiley-wink Avete qualche pdf o simili da consigliarmi per iniziare a studiarmelo?
« Last Edit: March 20, 2013, 02:53:28 am by Janos » Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22907
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

smiley smiley smiley smiley
La mia idea effettivamente era di utilizzarlo con l'Arduino Due...  smiley-wink
Per la DUE è stato implementato a livello di core uno scheduler di tipo cooperativo.
http://arduino.cc/en/Reference/Scheduler

Usa il timer SystemTick contenuto nel chip SAM come generatore di clock per contare i tick dei task.

Quote
Vedrò di orientarmi sul ChibiOS, anche perché la dcumentazione è gratuita...  smiley-wink Avete qualche pdf o simili da consigliarmi per iniziare a studiarmelo?
Il porting del ChibiOS/RT è ovviamente basato sul ChibiOS/RT:
http://www.chibios.org/dokuwiki/doku.php
Logged


Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Che vantaggi potrei avere nell'usare un RTOS invece che l'IDE di arduino con relativo scheduler?
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22907
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Che vantaggi potrei avere nell'usare un RTOS invece che l'IDE di arduino con relativo scheduler?
E' un discorso complesso.
Lo scheduler della DUE è uno scheduler di tipo cooperativo. E' compito di un task passare il controllo a quello successivo, per far ciò è stata implementata una nuova funzione delay che, invece di bloccare il micro, passa al task successivo.
Però la gestione delle periferiche non esiste. Un RTOS invece, permette di usare anche i semafori per bloccare un task che vuole accedere ad una risorsa impegnata da un altro task. Inoltre gli RTOS di tipo senza prelazione (preemptive) possono sospendere un task se la sua elaborazione dura più del numero di tick messi a disposizione dal SO, salvando lo stack ed i registri nella memoria e avviando un altro task congelato.
Logged


Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ottimo, quindi un RTOS è molto più complesso/potente di un semplice scheduler. Avevo nozioni di sistemi operativi (studiate all'università) ma francamente sono un po arrugginito in merito... =)
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22907
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ottimo, quindi un RTOS è molto più complesso/potente di un semplice scheduler.
Sì ma si torna al discorso fatto da astrobeed, che cioè poi si arriva al paradosso che il sistema per gestire un certo compito diventa più complesso del codice per eseguirlo, quel compito  smiley-wink
Hai mai dato un'occhiata al codice di un semplice Blink scritto usando un RTOS?  smiley-twist

Quote
Avevo nozioni di sistemi operativi (studiate all'università) ma francamente sono un po arrugginito in merito... =)
Io queste nozioni di base manco ce l'ho...  smiley-yell
Logged


Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se iniziassi ad usarlo sarebbe non per applicazioni banali ma per creare il software di una macchina nell'ambito dell'automazione industriale. Al momento stiamo usando lo Z80 ma se riuscissi a fargli cambiare micro non sarebbe male... =)
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22907
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se iniziassi ad usarlo sarebbe non per applicazioni banali ma per creare il software di una macchina nell'ambito dell'automazione industriale. Al momento stiamo usando lo Z80 ma se riuscissi a fargli cambiare micro non sarebbe male... =)
Uhm... e vorresti usare la Due? Ma per realizzare qualcosa di commerciabile?
Logged


Ivrea
Offline Offline
God Member
*****
Karma: 5
Posts: 680
"La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché." Albert Einstein
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Forse. Almeno all'inizio vedremo di usarla (con la ethernet shield) per una comunicazione ModbusTCP (dopo gli opportuni test di stabilità...  smiley-wink). Poi se il tutto funziona bene...
Perché siete tutti scettici nell'usare l'Arduino per qualcosa di commerciale? Perché io dovrei essere in grado di fare qualcosa i meglio rispetto a quello che è stato fatto dall'Arduino? E poi, se per gli AVR, andando a 16MHz, non bisogna stare particolarmente attenti alle piste, per gli ARM devono essere rispettate determinate regole perché hanno clock molto più spinti. Se apri lo schematico con eagle della Due vedrai delle piste fatte a onda.....  smiley-eek
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 134
Posts: 9619
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se iniziassi ad usarlo sarebbe non per applicazioni banali ma per creare il software di una macchina nell'ambito dell'automazione industriale. Al momento stiamo usando lo Z80 ma se riuscissi a fargli cambiare micro non sarebbe male... =)

Allora accetta il consiglio di chi ci lavora in quell'ambiente smiley
Lascia perdere Arduino, non importa se UNO, DUE o TRE, buttati sugli STM32 di ST, oltre ad avere ottimi compilatori C ANSI, anche free però per lavoro ti consiglio di usare MDK ARM di Keyl (ha un suo RTOS molto performante), hai processori che si mangiano a colazione tutti i concorrenti di pari livello, non ultimo l'enorme vantaggio di poter disporre di schede adatte per lo sviluppo a costo bassissimo, meno di 15 Euro, con la serie STM32x Discovery, tutte disponibili su RS.
Giusto per citare una caratteristica importante degli STM32 se devi interfacciarli con vecchi sistemi, il 95% dei pin sono 5V tolerant.
Logged

Pages: [1] 2 3 4   Go Up
Jump to: