Table of Contents
Tehokas muistinhallinta on olennaista sulautetuissa järjestelmissä suorituskyvyn optimoimiseksi ja luotettavuuden varmistamiseksi. Tämä opas tarjoaa käytännön oivalluksia ja esimerkkilaskelmia, joiden avulla voidaan ymmärtää muistin jakoa ja käyttöä tällaisissa järjestelmissä.
Upotettujen järjestelmien muistityyppien ymmärtäminen
Upotetut järjestelmät käyttävät tyypillisesti erilaisia muistityyppejä, kuten RAM-muistia, ROM-muistia ja flash-muistia. RAM-muistia käytetään tilapäiseen tietojen tallentamiseen toiminnan aikana, kun taas ROM- ja flash-muistien firmware-ohjelmistoja ja pysyviä tietoja. Näiden muistityyppien asianmukainen hallinta on ratkaisevan tärkeää järjestelmän vakauden kannalta.
Muistivaatimusten laskeminen
Tarvittavan muistin määrittämiseksi on otettava huomioon järjestelmän komponentit ja niiden datakoot. Jos mikro-ohjain esimerkiksi käsittelee kolmea sensoria, joista kukin tuottaa 256 tavua dataa, sensoridataan tarvittava kokonaismuisti on:
3 sensoria x 256 tavua = 768 tavua[
Puskurien, muuttujien ja pinon tilaa voidaan vastaavasti arvioida. Esimerkiksi 1 KB:n kohdentaminen puskureille ja 512 tavua pinolle johtaa seuraaviin tuloksiin:
Kokonaismäärä RAM = 768 tavua + 1 KB + 512 tavua = noin 2,3 KB
Muistinjakoesimerkki
Oletetaan, että sulautetussa laitteella on 8 KB RAM. Järjestelmän täytyy jakaa muistia antureille, puskureille ja pinolle.
Anturitiedot: 768 tavua
Puskurit: 1 KB
Pino: 512 tavua
Muille prosesseille jäljelle jäävä muisti on:
]8 KB - (768 tavua + 1 KB + 512 tavua) = noin 5,2 KB
Muistinhallintaan liittyvät parhaat käytännöt
- Allocate muisti perustuu pahimman tapauksen skenaarioihin.
- Jos mahdollista, käytetään staattista muistinjakoa pirstoutumisen estämiseksi.
- Seuraa säännöllisesti muistin käyttöä kehityksen aikana.
- Optimoi datarakenteet muistijalanjäljen minimoimiseksi.