Home › Forum › Controllori SlimLine e Netsyst (LogicLab) › Modificare il tempo di loop di una task
- Questo topic ha 3 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 3 anni, 5 mesi fa da Sergio Bertana.
-
AutorePost
-
Marzo 16, 2020 alle 8:44 am #53917marco.foschiPartecipante
Vorrei fare qualche prova per testare le prestazioni della CPU SlimLine Cortex M7. Ho creato alcuni programmi, e sto verificando i tempi di esecuzione e l’intervallo di loop nelle varie task.
Non riesco però a modificare il period time: qualsiasi valore imposto, compilo, invio, e verifico dopo anche un riavvio, sembra sempre non variare, o meglio: il period time effettivamente cambia, ma sembra che il sistema non applichi le modifiche ed utilizzi sempre il valore di default (Screenshot).
Sto sbagliando procedura?
Marzo 16, 2020 alle 8:48 am #53944Sergio BertanaAmministratore del forumSui sistemi ARM e Cortex la funzione di configurazione tempi di esecuzione tasks di LogicLab non è operativa. Il tempo di esecuzione delle tasks Slow e Fast è impostabile solo attraverso la funzione SysSetTaskLpTime, set task loop time.
Novembre 20, 2020 alle 3:42 pm #58266m.foschi2PartecipanteHo visto che, con il controller Cortex M7 (MPS54) posso impostare tempi di loop della task FAST fino a 100us, al di sotto di questo la funzione SysSetTaskLpTime restituisce un errore.
La domanda è: cosa succede se il tempo di esecuzione della task (ExecutionTimeFastTask) diventa superiore al tempo di loop impostato al boot?
Viene generato un errore? La task si interrompe con effetti non prevedibili, al fine ri rispettare il tempo di loop, oppure prosegue ugualmente? C’è modo di sapere se questo evento è successo?
Novembre 20, 2020 alle 4:07 pm #58268Sergio BertanaAmministratore del forumAnche sui sistemi ARM è possibile impostare il tempo di loop della task Fast a 100uS, naturalmente devi controllare che ad eseguire il codice non venga impiegato un tempo molto vicino (Se non addirittura superiore) al tempo di loop, variabile SysTFastExTm.
Se è molto vicino non viene lasciato al processore molto tempo per eseguire la task Slow e la Back i cui tempi di esecuzione si allungheranno di conseguenza. Se è superiore si perderanno esecuzioni della task ma comunque il programma continuerà ad essere eseguito.
Nota, Siccome l’accesso ai moduli su bus di estensione richiede tempi dell’ordine dei 200uS nel caso siano eseguiti FB di accesso alle schede periferiche, se il tempo di loop della task Fast è inferiore ai 500uS questi FB sono automaticamente disabilitati, continuano a funzionare solo se agiscono sul modulo CPU, indirizzo di modulo 255.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.