Go Down

Topic: leOS - un semplice OS per schedulare piccoli task (Read 42 times) previous topic - next topic

leo72

In tanti anni che programmo ho imparato una cosa, che cioè il risultato ottimale è quello che ha il miglior rapporto prezzo/prestazioni.
Fare un codice semplicistico comporta un costo in termini di impegno di progettazione veramente minimo ma, per contro, hai prestazioni anch'esse minime. L'altra faccia della medaglia è un codice esageratamente ricercato, con un costo di progettazione molto elevato e prestazioni anch'esse al top. Alla fine, il risultato finale è identico: ognuno dei due programmi eseguirà il compito assegnato.

Vale la pena usare freeRTOS o FemtoOS per modificare un paio di porte in background? Non credo proprio. Vale la pena usare il leOS per gestire un multitasking preemptivo? Non credo proprio. Come dici giustamente tu, ognuno deve scegliere gli strumenti pensando al miglior rapporto per il proprio progetto.

dasty

ragazzi scusate la mia assenza, dopo diversi test ecco i primi risultati:

ho utilizzato le librerie:
1. leos
2. asincI2Ctest2_asinc (non bloccante)

devo dire che questa accoppiata funziona egregiamente.

La semplicità della realizzazzione dei task di leo, e l'utilizzo asincrono della wire di lesto
possono dare nuovi spunti a chi vuole realizzare sitemi anche complessi.

In questi giorni ho avuto modo di studiare e testare anche i sistemi RTOS (chibios e freertos), questi ultimi nonostante le loro caratteristiche importanti che si basano sui sistemi operativi real time, non risultano essere semplici nell'utilizzo, inoltre come accennato anche da leo ad esempio per scrivere un banale blick_led bisogna scrivere ben 4 volte il numero di righi di codice rispetto all'esempio di leos.

Certo ancora manca da implementare semafori, code ed altre logiche... ecc ecc
A mio avviso già questo è un passo avanti
ed il lavoro di leos non ha nulla da invidiare ai sistemi RTOS

questo è il mio umile giudizio

leo72


Certo ancora manca da implementare semafori, code ed altre logiche... ecc ecc
A mio avviso già questo è un passo avanti
ed il lavoro di leos non ha nulla da invidiare ai sistemi RTOS

questo è il mio umile giudizio

:* Grasssie

PS:
sto usando il leOS su un Attiny85, è un progettino a cui sto lavorando da 2 giorni a questa parte (ecco perché sono un po' latitante, oltre agli impegni di lavoro): 3 task che fermo e riavvio, con intervalli differenti, abbinati alla gestione di un segnale PWM, a 2 letture analogiche e sleep/risveglio. E funziona tutto perfettamente. Siccome i 3 task dovevano girare "intrecciati" tra di loro e con il resto del codice, l'uso del leOS mi ha semplificato non poco la stesura del codice.

tuxduino

Quote
Certo ancora manca da implementare semafori, code ed altre logiche... ecc ecc


Leo, correggimi se sbaglio ma penso che leOS difficilmente otterrà questo tipo di servizi, perché lo porterebbero alla fine ad essere molto simile ad un "vero" rtos, togliendogli la semplicità e la "snellezza" che lo contraddistinguono ora.

Per essere un po' più costruttivo, dico che la comunicazione inter-thread è facilmente ottenibile con l'uso di variabili globali e la keyword "volatile". Non che ciò sostituisca mutex, code e quant'altro, ma credo che sia sufficiente per l'ambito di utilizzo cui leOS si riferisce.

(disclaimer: finora ho fatto pochi test per confermare la mia precedente affermazione, anche se sono stati tutti positivi).

m_ri

i semafori non sarebbero molto complessi da fare: quando voglio testarlo o cambiare il valore,disabilito temporaneamente gli interrupt(ovviamente da ripristinare dopo)..al posto di usare il wait che blocca la funzione corrente,fare un wait a cui passare la funzione contenente la sezione critica..

Go Up