Pages: 1 ... 16 17 [18] 19 20 ... 31   Go Down
Author Topic: leOS - un semplice OS per schedulare piccoli task  (Read 30484 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Edison Member
*
Karma: 26
Posts: 1339
You do some programming to solve a problem, and some to solve it in a particular language. (CC2)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ops... "Ready", come scordarsi di te ?     smiley-roll-sweat
Logged

Offline Offline
God Member
*****
Karma: 8
Posts: 550
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-wink
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 103
Posts: 6580
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Leo, hai visto questa discussione?  --> http://arduino.cc/pipermail/developers_arduino.cc/2012-October/007211.html
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

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

No, non l'avevo vista. Non sono iscritto alle mailing-list.
Se hai modo di rispondere, fagli presente che esiste già uno schedulatore  smiley-wink smiley-lol
Logged


Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 103
Posts: 6580
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ne vogliono mettere uno nella futura release dell'IDE, modificando il delay e delaymicrosecond in modo che, mentre si aspetta gli altri task proseguano.

Esempio --> https://github.com/cmaglie/Arduino/commit/107c1929bd96be90d62e3892f8175ca8d89e9e96
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

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

Lo sai che in questi giorni stavo pensando proprio a modificare il timer che sugli Atmega ed Attiny gestisce millis per integrare il leOS lì, in modo da non consumare timer extra né interferire con altre librerie?  smiley-wink
Logged


0
Offline Offline
Full Member
***
Karma: 0
Posts: 111
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

È una buona idea far fare tutto il lavoro a delle funzioni richiamate con leOS e lasciare il loop() vuoto se non serve eseguire in continuazione il codice o è meglio lasciare la parte principale in loop() e mettere un delay alla fine?
Logged

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5608
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

il famoso Delay2, di cui rivendico la paternita' dell'idea, sara' la funzione piu' importante di Arduino
cioe' se ti serve un delay bloccante userai delay() se ti serve uno non bloccante useray delay2()
senza dover mettere in campo millis ed i suoi giri contorti (per un non programmatore)

a proposito Leo, complimenti per il lavoro pubblicato sull'overflow di millis,
potresti chiedere di modificare il blinkwithoutdelay aggiungendo la tua idea per superare i famosi 50giorni
sarebbe comunque molto bello avere il tuo nome in uno sketch che viene inserito ufficialmente negli esempi dell'IDE

p.s. ma oltre all'articlo sul tuo blog c'e' hai aperto anche una discussione sul forum ?
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

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

È una buona idea far fare tutto il lavoro a delle funzioni richiamate con leOS e lasciare il loop() vuoto se non serve eseguire in continuazione il codice o è meglio lasciare la parte principale in loop() e mettere un delay alla fine?
I task dovrebbero essere compiti semplici, che occupano poco tempo CPU, in modo da non rallentare l'esecuzione delle altre funzioni basate su interrupt. Se il tuo caso ricade in questo esempio, puoi anche inserire tutto in task e lasciare il loop vuoto. Se hai un compito che invece è molto gravoso, conviene inserirlo nel loop (e qui puoi rallentarne l'esecuzione con un delay).
Logged


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

a proposito Leo, complimenti per il lavoro pubblicato sull'overflow di millis,
Grazie  smiley-wink

Quote
potresti chiedere di modificare il blinkwithoutdelay aggiungendo la tua idea per superare i famosi 50giorni
sarebbe comunque molto bello avere il tuo nome in uno sketch che viene inserito ufficialmente negli esempi dell'IDE
Non credo che lo faranno mai  smiley-yell

Quote
p.s. ma oltre all'articlo sul tuo blog c'e' hai aperto anche una discussione sul forum ?
No.
Logged


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

Oggi ho studiato un po' la cosa, ed è una funzione molto più complessa della mia. Essa sfrutta un modulo presente nel SAM3X, il SysTick, un contatore indipendente dai timer del micro a cui hanno agganciato un gestore di task. Ogni task ha un suo tempo computazionale, ed il tutto è gestito dallo scheduler proprio tramite i tick, anche il delay segue lo stesso principio: usano un task che genera i millis, che poi leggono per i ritardi. Insomma, una cosina più raffinata che ovviamente non è replicabile sui Mega perché appunto utilizzano dell'HW dedicato.

PS:
in teoria si potrebbe agganciare il leOS ad un INT esterno o ad un PCINT, ma in questo modo si perderebbe un pin.
Logged


Offline Offline
Edison Member
*
Karma: 26
Posts: 1339
You do some programming to solve a problem, and some to solve it in a particular language. (CC2)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi sa che tra un po' per il DUE uscirà una sorta di ArduinOS ex-novo... smiley-wink
Logged

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

Mi sa che tra un po' per il DUE uscirà una sorta di ArduinOS ex-novo... smiley-wink
Non credo, penso che non sia questo il desiderio del team di Arduino. Loro sono per le cose semplici, ed un RTOS nel vero senso della parola non è una cosa tanto facile da gestire per un utente di medio livello. E poi non penso che passerà molto tempo prima che progetti quali FreeRTOS o ChibiOS siano resi compatibili con il SAM3X della DUE.
Logged


Offline Offline
Edison Member
*
Karma: 26
Posts: 1339
You do some programming to solve a problem, and some to solve it in a particular language. (CC2)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In effetti la mia era più che altro una battuta. Penso che tu abbia ragione.

Quote
non penso che passerà molto tempo prima che progetti quali FreeRTOS o ChibiOS siano resi compatibili con il SAM3X della DUE[/quote

Il Chibi l'avevo provato sulla 2009, mi è sembrato interessante anche se non ho approfondito. Credo che la DUE diventerà una piattaforma molto interessante per lo studio dei sistemi operativi grazie alla maggiore potenza della cpu.
Logged

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

Il Chibi l'avevo provato sulla 2009, mi è sembrato interessante anche se non ho approfondito. Credo che la DUE diventerà una piattaforma molto interessante per lo studio dei sistemi operativi grazie alla maggiore potenza della cpu.
Il problema della DUE è che non è abbastanza potente per poter farci girare un vero SO, e gli RTOS embedded girano tranquillamente anche su chippini insignificanti come i Tiny con 2 kB di Flash, vedi il FemtoOS. Insomma, nulla di nuovo.
Logged


Pages: 1 ... 16 17 [18] 19 20 ... 31   Go Up
Jump to: