Usare un timer del cane da guardia in un'RTApp

MT3620 supporta un timer da guardia per ognuno dei core in tempo reale. Questi timer di cane da guardia sono disponibili per le applicazioni in tempo reale (RTApps).

Se gli scenari di applicazione in tempo reale richiedono l'uso di timer di cane da guardia, tieni presente quanto segue:

  • Non esiste alcun supporto specifico per il sistema operativo Azure Sphere o l'SDK per i timer di cane da guardia core in tempo reale.

  • I timer del cane da guardia possono essere programmati direttamente tramite i registri che ne controllano il funzionamento o tramite driver MediaTek. Vedi l'applicazione di esempio per il timer del cane da guardia.

Per gli indirizzi di base del registro, i numeri di interrupt, la frequenza di clock, la frequenza di campionamento e altri dettagli sull'MT3620, vedi il foglio dati MT3620 e il manuale dell'utente di MT3620 M4; se le domande rimangono, è possibile richiedere dettagli a Avnet inviando un messaggio di posta elettronica.Azure.Sphere@avnet.com

Effetti del ripristino del cane da guardia

Quando il timer del cane da guardia genera un evento di reimpostazione, il core in tempo reale viene vettoriato verso il punto di ingresso dell'app. La RTApp è responsabile della re-inizializzazione della memoria, dello stack e di tutte le periferiche necessarie per riprendere correttamente il funzionamento. Il sistema operativo Azure Sphere non influisce sul contenuto della memoria, né inizializza nuovamente le periferiche sul core in tempo reale durante l'operazione di reimpostazione.

La reimpostazione del cane da guardia non attiva notifiche, eventi o avvisi ad altri core in tempo reale, al sistema operativo Azure Sphere o ad applicazioni di alto livello attualmente in esecuzione. L'effetto del ripristino del cane da guardia è strettamente locale sul processore core in tempo reale che viene reimpostato.

Applicazione di esempio per il timer del cane da guardia

MediaTek fornisce driver e codice di esempio per le applicazioni in tempo reale MT3620 in GitHub.