- Messaggi: 17
- Ringraziamenti ricevuti 0
Configurazione EUSART per MODBUS
13 Anni 5 Mesi fa #6
da cristian.perini2
Risposta da cristian.perini2 al topic Re: Configurazione EUSART per MODBUS
Ciao,
ho realizzato un tick di sistema ogni 62,5ms perché sono partito dal presupposto di realizzare lo scheduler nel modo più semplice.
La mia logica è stata questa:
Ogni task non può durare più di 62,5ms. Quindi ad ogni tick viene richiamato lo scheduler che decide quale task mandare in onda. nei Tick pari viene eseguito il fast, nei dispari lo slow o il BG o nulla.
In questo modo ogni task è atomico, cioè non viene interrotto dagli altri, riducendo cosi i cambi di contesto.
So che non è il modo classico con cui si realizzano i task, mi sembrava però il metodo più semplice. Inoltre il Task BG, sarebbe più appropriato chiamarlo Very slow in quanto è temporizzano e non va in onda quando non c'è altro da fare.
Comunque mi sembra molto chiaro rappresentare la logica in una figura.
Il rovescio della medaglia, è lo spreco di molto tempo, perché ogni task occupa comunque l'intero periodi di 62,5ms a lui assegnato.
Non so se è abbastanza chiaro.
Ciao
ho realizzato un tick di sistema ogni 62,5ms perché sono partito dal presupposto di realizzare lo scheduler nel modo più semplice.
La mia logica è stata questa:
Ogni task non può durare più di 62,5ms. Quindi ad ogni tick viene richiamato lo scheduler che decide quale task mandare in onda. nei Tick pari viene eseguito il fast, nei dispari lo slow o il BG o nulla.
In questo modo ogni task è atomico, cioè non viene interrotto dagli altri, riducendo cosi i cambi di contesto.
So che non è il modo classico con cui si realizzano i task, mi sembrava però il metodo più semplice. Inoltre il Task BG, sarebbe più appropriato chiamarlo Very slow in quanto è temporizzano e non va in onda quando non c'è altro da fare.
Comunque mi sembra molto chiaro rappresentare la logica in una figura.
Il rovescio della medaglia, è lo spreco di molto tempo, perché ogni task occupa comunque l'intero periodi di 62,5ms a lui assegnato.
Non so se è abbastanza chiaro.
Ciao
Si prega Accedi o Crea un account a partecipare alla conversazione.
- cristian.perini2
- Autore della discussione
- New Member
Riduci
Di più
13 Anni 5 Mesi fa - 13 Anni 5 Mesi fa #7
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Configurazione EUSART per MODBUS
Ciao Cristian,
ti eri spiegato bene a parole ma lo schema sicuramente e' di aiuto.
Devo dire che 62ms sono tanti, forse potresti prevedere una durata di un task piu´ breve e associare ad ogni task una variabile che contiene il numero di cluster temporali richiesti dal task.
Comunque se la soluzione a 62 ms soddisfa le specifiche non c´e´ ragione di complicarsi la vita.
Qualora tu stia sviluppando un sistema a batteria, cerca di prevedere lo stato di sleep qualora il task duri meno di 62ms.
Ripeto che la soluzione che hai usato e´ chiara e lineare per cui se puoi evitarti di complicarti la vita hai una buona ragione per non farlo!
Se poi vuoi crearti un mini sistema operativo...avrai molto pane per i denti!
Saluti,
Mauro
ti eri spiegato bene a parole ma lo schema sicuramente e' di aiuto.
Devo dire che 62ms sono tanti, forse potresti prevedere una durata di un task piu´ breve e associare ad ogni task una variabile che contiene il numero di cluster temporali richiesti dal task.
Comunque se la soluzione a 62 ms soddisfa le specifiche non c´e´ ragione di complicarsi la vita.
Qualora tu stia sviluppando un sistema a batteria, cerca di prevedere lo stato di sleep qualora il task duri meno di 62ms.
Ripeto che la soluzione che hai usato e´ chiara e lineare per cui se puoi evitarti di complicarti la vita hai una buona ragione per non farlo!
Se poi vuoi crearti un mini sistema operativo...avrai molto pane per i denti!
Saluti,
Mauro
Ultima Modifica 13 Anni 5 Mesi fa da Mauro Laurenti.
Si prega Accedi o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.