KEYNOTE VIDEO: ELECIA WHITE ontdekt SCHAT IN HET GEHEUGEN MAP

Als u microcontrollers graven, zo goed als u wilt om te graven in precies hoe ze werken, Elecia White wil helpen hun diepste trucs navigeren met de hulp van het geheugen kaart bestanden. In deze verfrissende grappig, maar zeer diep keynote gesprek uit de 2021 hackaday Remoticon, Elecia leidt ons met één van de meest intimiderende artefacten van compilatie – een data die aanbiedingen waar wat er wordt gezet in het geheugen van de microcontroller – evenals legt oriëntatiepunten die helpen om het meer bevaarbaar te maken.

En als je eis om te kijken naar de kaart-bestand, u waarschijnlijk echt eis te kijken naar de kaart bestand. Wanneer je ingesloten widget op mysterieuze wijze niet meer werkt, geheugenproblemen zijn een paar van de gebruikelijke verdachten. misschien je liep uit de RAM of flash-opslag ruimte, misschien heb je een aantal vreemde moeilijk fout zo goed als u wilt begrijpen welk deel van het programma is het activeren van de problemen, of misschien heeft u eis om wat snelheid te profileren om alles sneller te maken te doen. In al deze gevallen, krijg je een absolute geheugen adres. Wat leeft er? zoek het op in het geheugen kaart!

In kaart brengen van een cursus

Elecia begint met de kaartgegevens van een programma “Hello World”, maar het is een hello wereld draait op een RTOS, dus al is er voldoende vlees om te graven in. Ze begint met de top-level overzicht: flash voor de code als RAM-geheugen om het programma te gebruiken. In flits, de code woont in .text evenals .const, evenals RAM secties die bekend moet zijn om je .heap evenals .stack echter eveneens .data evenals .bss. De geheugenkaart gegevens voldoen eveneens aan deze structuur: eerste overzicht, dan het gedeelte markers, alsmede vervolgens de details van wat er in elke sectie.

Als u een crash, bijvoorbeeld, krijgen zo goed als u begrijpen waar de numerieke waarde van het programma teller toen het ging allemaal peervormige, de .text sectie listings de functienaam, waar dat is gebeurd. Het gedeelte met wereldwijde variabele definities, in alfabetische volgorde? U kan het meest waarschijnlijk gewoon bladeren door dat – er is een grote mate van redundantie in de map bestand, soms naargelang hun geheugen adres, soms alfabetisch gesorteerd. Je wilt niet uitgecheckt een map bestand, wil je gewoon dip in, krijgen wat je nodig hebt, maar ook naar buiten. kreeg een variabele die u gelooft krijgt overschreven? ontdekken in de aangegeven op adres sectie, evenals kijken naar zijn buren – een van hen kan worden overschrijding.

Maar de echte ster van de show is de prachtige kaart Elecia gemaakt in de stijl van een role-playing game. overkant van de rivier van initialisatie van de statische Shores, zult u RAMlandia, de grote vlakken van de Stacks, de lage drassige Heap Hallows, evenals de haven van (geheugen toegewezen) Perifere Registers ontdekken. Er zijn echt draken in de oceaan van Ongebruikte Address Space. Door het veranderen van rug en weer tussen deze leuke, hoe nuttig, kaart evenals de eigenlijke tekst geheugen kaart bestand, Elecia stropdassen een onvergetelijk uitzicht van het geheugen met de dichte tekst van de kaartgegevens zoals het leeft in de map job.

En niemand praten over het geheugen in microcontrollers is totaal zonder wijzend op de gevaren van wat er gebeurt wanneer het RAM-geheugen van de hoop, die naar beneden groeit, kust stack het RAM-geheugen, die omhoog groeit. Wat gebeurt er dan? Nog een functie telefoontje evenals de functies beginnen met het overschrijven van uw gegevens. “Dit is goed. als een hond zitten in een cafe in brand.” Het probleem is, dit is het deel van het beheer van het geheugen dat is dynamisch, functies telefoontje andere functies, evenals het geheugen en wordt toegewezen als gewist. ingangsselector modificaties welke delen van de programma-uitvoering, en derhalve waarin gegevens worden opgeslagen. hier is het een plaats waar het geheugen kaart die u niet zal helpen, behalve om te ontdekken wat er in de buurt-by, waar het ongeval gebeurde. maar de echte antwoord op “Hoeveel RAM heb ik nu?” echt onuitsprekelijk “Ik weet het niet.”

Als je nieuw bent om embedded-ontwerp, misschien wel de eerste twintig minuten van het gesprek is voor u, evenals zelfs als je een geharde veteraan bent, dan heb je iets van de latere secties te ontdekken. Ik heb genoten van praten Elecia’s, evenals dus ook. U kunt kijken net onder ingebed. Breng een kopie van de dia’s ook mee.

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post