Se si scavano i microcontrollori, oltre a ti piace scavare esattamente come funzionano, Elecia White desidera aiutarti a navigare nei loro trucchi più intimi con l’assistenza della mappa di memoria File. In questo keynote rinfrescante, comunque estremamente profondo talknote Dal 1921 Hackaday Remoticon, Elecia ci guida con uno dei manufatti più intimidatori della compilazione – un dato che gli elenchi dove qualsiasi cosa venga messa nella memoria del microcontrollore – oltre a spiega punti di riferimento che assistono per renderlo più navigabile.
E quando desideri esaminare il file della mappa, è probabile che tu abbia molto bisogno di esaminare il file della mappa. Quando il tuo widget incorporato smette misteriosamente il lavoro, i problemi di memoria sono alcuni dei soliti sospetti. Forse hai finito la RAM o lo spazio di archiviazione Flash, forse hai qualche strano difetto difficile e vuoi capire quale parte del programma sta attivando il problema, o forse hai bisogno di fare un po ‘di profilazione di velocità per far funzionare tutto più velocemente. In tutti questi casi, ottieni un indirizzo di memoria assoluto. Cosa vive lì? Guardalo nella mappa di memoria!
Tracciare un corso
Elecia inizia con i dati della mappa da un programma “Hello World”, tuttavia è un mondo ciao in esecuzione su un RTO, quindi c’è già carne sufficiente da scavare. Si inizia con la panoramica di alto livello: lampeggia per il codice e la RAM per il programma da utilizzare. In Flash, il codice vive in .Text e .const, così come la RAM ha sezioni che dovrebbero essere familiari a voi come .Heap così come .stack, tuttavia anche .Data e .bs. Anche i dati della mappa della memoria sono conformi a questa struttura: molto prima una panoramica, quindi i marcatori della sezione, così come i dettagli di ciò che si trova all’interno di ogni sezione.
Se si ottiene un incidente, ad esempio, oltre che tu capisca dove il valore numerico del contatore del programma quando è andato a forma di pera, la sezione .Text elenca il nome della funzione in cui è successo. La sezione con definizioni variabili in tutto il mondo, elencate in ordine alfabetico? Possiedi molto probabilmente solo percorrirsi da questo – c’è una grande quantità di ridondanza nel file della mappa, a volte ordinato per indirizzo di memoria, a volte ordinato in ordine alfabetico. Non vuoi controllare un file di mappa, vuoi solo immergere, ottenere ciò di cui hai bisogno, così come uscire. Hai una variabile che credi è essere sovrascritto? Scoprilo nella sezione elencata per indirizzo, oltre a guardare i suoi vicini – uno di loro potrebbe essere illustrato.
Ma la vera stella dello spettacolo è la splendida mappa Elecia realizzata nello stile di un gioco di ruolo. Attraverso il fiume dell’inizializzazione dalle rive statiche, scoprirai la Ramlandia, gli alti piani delle pile, i bassi heap Heap Heap, così come il porto dei registri periferici (Memory Maped). Ci sono davvero draghi nell’oceano dello spazio indirizzato inutilizzato. Cambiando indietro anche tra questo divertimento, tuttavia utile, mappa e il file della mappa di memoria del testo effettivo, Elecia legsrà una visione indimenticabile della memoria con il testo denso dei dati della mappa in quanto vive nella cartella di lavoro.
E nessun discorso sulla memoria in microcontrollori è totale senza notare i pericoli di ciò che si verifica quando il mucchio della ram, che cresce verso il basso, bacia la pila di ram, che cresce verso l’alto. Cosa succede allora? Un’altra telefonata della funzione e le funzioni iniziano a sovrascrivere i dati. “Questo va bene. come un cane seduto in un caffè in fiamme. ” Il problema è che questa è la parte dell’amministrazione della memoria che è dinamica, funzioni telefonate telefonate altre funzioni e la memoria è assegnata e cancellata. Modifiche di input individuali che parti del programma funzionano, nonché pertanto in cui i dati sono memorizzati. Proprio qui è l’unica posizione in cui la mappa di memoria non ti assisterà, tranne per scoprire ciò che è vicino, dove è successo l’incidente. Comunque la vera risposta a “quanta ram ho ora?” veramente è ineffabilmente “non so.”
Se sei nuovo nel design embedded, forse i primi venti minuti del discorsi sono per te, così come anche se sei un veterano indurito, scoprirai qualcosa dalle sezioni successive. Mi è piaciuto molto il discorso di Elecia, così come anche tu. Puoi guardarlo incorporato appena sotto. Porta anche una copia delle vetrini.
Leave a Reply