Keynote-video: Elecia White oppdager skatt i minnekartet
Hvis du graver mikrokontroller, så vel som du liker å grave til nøyaktig hvordan de fungerer, ønsker Elecia White å hjelpe deg med å navigere sine innerste triks med hjelp av minnekart filer. I dette forfriskende morsomme, men ekstremt dyp keynote-snakk fra 2021 Hackaday REMOTICON, veileder Elecia oss med en av de mest skremmende gjenstander av kompilering – en data som oppføringer der det som er satt i mikrokontrollerens minne – samt forklarer landemerker som hjelper for å gjøre det mer navigert.
Og når du trenger å se på kartfilen, har du mest sannsynlig virkelig krav til å se på kartfilen. Når den innebygde widgeten mystisk slutter å fungere, er minneproblemene noen av de vanlige mistenkte. Kanskje du gikk tom for RAM eller Flash-lagringsplass, kanskje du har litt merkelig vanskelig feil, så vel som du vil forstå hvilken del av programmet som utløser trøbbel, eller kanskje du trenger å gjøre litt fartprofilering for å få alt til å løpe raskere. I alle disse tilfellene får du en absolutt minneadresse. Hva bor der? Se det opp i minnekartet!
Kartlegge et kurs
Elecia starter med kartdataene fra et “Hello World” -program, men det er en hei verden som kjører på en RTOs, så det er allerede tilstrekkelig kjøtt å grave inn i. Hun starter med oversikt over toppnivået: blits for koden, så vel som RAM for programmet som skal brukes. I Flash bor koden i .Text og Minnekartdataene overholder også denne strukturen: Svært først en oversikt, deretter delen markørene, så vel som deretter detaljene i hva som er inne i hver seksjon.
Hvis du får en krasj, for eksempel, så vel som du forstår hvor den numeriske verdien av programtelleren når den gikk alle pæreformede, oppfører de tekst-seksjonen funksjonsnavnet der det skjedde. Seksjonen med verdensomspennende variable definisjoner, oppført alfabetisk? Du kan mest sannsynlig bare rulle på det – det er en stor redundans i kartfilen, noen ganger sortert etter minnesadresse, noen ganger sortert alfabetisk. Du vil ikke sjekke ut en kartfil, du vil bare dyppe inn, få det du trenger, så vel som å komme seg ut. Fikk en variabel som du tror er å bli overskrevet? Oppdag det i delen som er oppført etter adresse, så vel som å se på naboene sine – en av dem kan overskride.
Men den ekte stjernen på showet er det nydelige kartet Elecia laget i stil med et rollespill. Over elven av initialisering fra de statiske kysten, vil du oppdage Ramlandia, de høye planene i stablene, den lave foggy høste Hallows, samt porten til (minne kartlagt) perifere registre. Det er virkelig drager i havet av ubrukt adresseplass. Ved å skifte tilbake så vel som fremover mellom dette moroa, men nyttig, kart, så vel som den faktiske tekstminnekartfilen, binder Elecia en uforglemmelig utsikt over minnet med den tette teksten til kartdataene som det lever i jobbmappen din.
Og ingen snakk om minne i mikrokontrollerne er totalt uten å merke farene ved hva som oppstår når rammens bunke, som vokser nedover, kysser RAM-stakken, som vokser oppover. Hva skjer da? En annen funksjonstelefonanrop, så vel som funksjonene begynner å overskrive dataene dine. “Dette er greit. som en hund som sitter i en kafé i brann. ” Problemet er at dette er den delen av minneadministrasjonen som er dynamisk, funksjoner telefonsamtaler andre funksjoner samt minne er tildelt så vel som ryddet. Individuelle inngangsendringer som deler av programmet, samt dermed hvor data lagres. Her er det ene stedet hvor minnekartet ikke hjelper deg, bortsett fra å oppdage hva som er i nærheten der ulykken skjedde. Men det sanne svaret på “hvor mye ram har jeg nå?” virkelig er ufattelig “jeg dunno.”
Hvis du er ny til innebygd design, er kanskje de aller første tjue minuttene av snakket for deg, så vel som selv om du er en herdet veteran, vil du oppdage noe fra de senere seksjonene. Jeg likte grundig Elecia’s Talk, så vel som det vil du. Du kan se den innebygd like nedenfor. Ta med en kopi av lysbildene sammen.