EMB 93

EMBEDDED 93 • SETTEMBRE • 2024 60 SOFTWARE | DEBUG SysTick (in rosso) si è verificato all’interno dell’elabo- razione di “child thread”. La quantità di informazioni storiche visualizzate da Tracealyzer è limitata solo dal- la dimensione del buffer di trace fornito dall’applica- zione. In linea generale, condizioni di crash rare sono il risul- tato di un’esecuzione particolare dei thread, che risulta difficile o addirittura impossibile da comprendere sen- za un tool di visualizzazione come Tracealyzer. In as- senza di tali visualizzazioni, il debug dei crash richiede tempi e cicli molto più lunghi e può ritardare notevol- mente il rilascio del firmware. A una migliore comprensione corrisponde una mag- giore ottimizzazione La mancata comprensione dell’elaborazione a livel- lo di sistema complica notevolmente l’ottimizzazione, sempre a livello di sistema. La visualizzazione, invece, permette di comprendere il comportamento a livello di sistema, che può quindi essere ottimizzato. Si riprenda l’esempio precedente ma, questa volta, il “main thre- ad” incrementa (post) il valore del semaforo tre volte invece di una sola volta. Il codice aggiornato del “main thread” è riportato nel Listato 3. Nel caso in cui il “child thread” abbia una priorità più alta rispetto al “main thread,” si verificherà una pre- emption (commutazione del contesto) dopo ciascun Fig. 2

RkJQdWJsaXNoZXIy Mzg4NjYz