[elektro] ARM Cortex-M4, align
hg12345
hg12345 at freemail.hu
Fri Jul 4 08:56:52 CEST 2014
Hi,
a CORTEX mag tud byte (int8_t), word (int16_t) és dword(int32_t)-t beolvasni és kiírni, függetlenül attól hogy 32 bites belül az eszköz, minden ezt elemi utasítás szinten. Az olvasás illeszkedéséről a fordító gondoskodik, neked csak a változót kell meghatározni. A dolog ennél is többet mutat, mert a CORTEX M3/4 tartalmaz olyan utasítás ami lehetővé teszi 4x32 bitnyi adat egyszeri beolvasását, folyamatosan növekvő regiszterebe.
Az ALIGN csak fordítónak mondod meg, hogy milyen memória kiosztásra illessze a változók kezdeteit.
A CORTEX M3/M4 a fentiek miatt ALIGN 1 is lehetne..... :-),
Ha kevés a memóriád és nem kell sebességre kiélezned a program futását (a igen akkor ALIGN 4) akkor használhatod a PACKED módosítót ez minden változó foglalásnál egyedileg meghatározható, még struct belül is... ennek hatására a változók memória foglalása teljesen folyamatosan lesz.
A légcélszerűbb a gyári alkalmazása, CMSIS kiegészítésben elvileg minden benne van, még a periféria kezelő programok is.
A uC/uP számára a leggyorsabb elérési mód a regiszter vagy memória illesztőhőz "illeszkededő" memória hozzáférés. A CORTEX magos eszközök mind tartalmaznak FLASH buffer cache-t, (minden FLASH memória olvasás 64...256 bit méretű és ebből is több van, hogy a 25...30MHz flash sebesség nem lassítsa a 70..200MHz eszközt. Egyes ilyen eszközökben még a RAM-ra is van hasonló gyorsító.
Info <info at kiralyelektronika.hu> írta:
>> Hogy is van ez az "align" történet. Vagy 10 eve 32 biteztem utoljara akkor is
>
>1, a proci csak aligned méretet tud felszívni
> 1-re végződő címről nem tud wördöt, 3-ra végződőről déwördöt
> és így tovább
> 2, az align-al megmondod, hogy a cuccot milyen címtől kezdődően
> pakolja le, az üres helyeket semmivel nem tölti ki, "elvesznek"
>
Bocs ez csak ARM7 -volt így!
>Tehát ha alingezel csak típusos mutatót használj, mert nem tudhatod
>hova teszi le. Megszokásból a ptr + 4 nem biztos, hogy oda mutat ahova
>gondolja a zember. Persze megoldható, de nem ez volt a kérdés.
>
>-----------------------------------------
> elektro[-flame|-etc]
More information about the Elektro
mailing list