Fórum témák

» Több friss téma
Cikkek » PicKit3 Debug Express - Tananyag kezdőknek I.rész
PicKit3 Debug Express - Tananyag kezdőknek I.rész
Szerző: zimpee, idő: Szept 11, 2011, Olvasva: 32211, Oldal olvasási idő: kb. 2 perc
Lapozás: OK   2 / 4

Lássuk, eszik-e, vagy isszák, avagy kivel-mivel foglalkozunk itt, hogyan épül fel a PIC18F család!

Memóriaszervezés:

A PIC18FXXXX mikrovezérlők Harvard architektúrájú mikroprocesszorok, tehát a program és adatmemória elkülönül. Ez gyorsabb futást tesz lehetővé, mivel a program és adatbuszok kizárólagosak és külön vannak választva, tehát egy busz nem használható mindkét memóriatípusra. A Return Address Stack (Címvisszatérő halom, hehe - a ford.) szintén saját memóriát kapott.

Programmemória:

A programmemória címzését egy 21 bites Program Counter (PC) látja el, 2 Mb memóriaterületet engedve. Tipikusan a PIC18F beépített memórája 4K és 128 Kbyte között van, de néhány eszközhöz kapcsolhatunk külső programmemóriát is.
Reset-nél a PC (utasítás számláló) nullázódik, az első utasításra ugrunk. A megszakításvektorok a 0x000008 és 0x000018 címen érhetőek el, így általában egy GOTO utasítást teszünk a nullás címre, hogy a megszakításokra lépjünk.

A legtöbb utasítás 16 bites, de némelyik 32bites Double word (Duplaszó elég bugyután hangzik...) típusú.
Az architektúra további fontos jellemzőit megtalálod az "MPLAB C18 C Compiler User's Guide" (DS51288) pdf-ben.

- Az utasítások tipikusan a programmemóriában foglalnak helyet, a code attribútummal ellátott szekcióban.
- A programmemóriában tárolható adat, a romdata attribútumú szekcióban, rom kulcsszó használatával.
- Az MPLAB C Compiler két memóriamodellt képes kezelni (Kicsi és Nagy). Kis memória modellnél a programmemóriánál használt mutatók 16 bitesek, a nagynál 24 bitet használhatunk.

Némely PIC18F eszköznél a programmemória, vagy annak egyes részei elláthatók védelemmel. A kód rendesen lefut, de nem lehet kiolvasni, vagy másolni.

Adatmemória:

Az adatmemóriát Fájl regisztereknek hívjuk a PIC18F családban, és nem más, mint egy 4096 byteból álló 8 bites RAM. Bekapcsoláskor az adatmemória tartalma véletlenszerű. Az adat Bankokra (inkább lapokra - a ford.) van osztva, egy Bank (lap) 256 byte méretű, kiválasztásuk A Bank Select Register-rel történik. Vannak speciális területek Bank 0-n és Bank 15-ön, amelyek Bankválasztás nélkül elérhetőek. Ezeket Access RAM-nak hívjuk. A legtöbb Special Function Register (SFR - tkp. a beállításaink) itt található.
Az MPLAB C18 fordító használatánál nincs szükségünk ezek kezelésére, de a #pragma varlocate direktívával megmondhatjuk a fordítónak, hogy hol tárolunk bizonyos változókat, ezzel sokkal hatékonyabb kódot létrehozva.
Nem inicializált változókat, tömböket és struktúrákat a "udata" szekcióban helyezhetünk el. Inicializált adatokat Fordításidőben adhatunk meg, ilyenkor ezeket a programmemóriából írja át a Picünk. Ha túl sok ilyen adattal dolgozunk, akkor számolni kell a programmemória ilyencélú túlzott használatával, és a típusosság fontosságával. Mivel a fájlregiszterek 8 bitesek, mindig a megfelelő adattípust válaszzuk ki az inicializált adatunknak.
Például, ha egy változónk értéke reményeink szerint nem haladja meg a 255-öt, akkor 'char' típust adjunk neki 'int' helyett, így kisebb, gyorsabb kódot kapunk.

Special Function Register-ek:
Ezek a CPU mag regiszterei (mint a Stack pointer, a status regiszter és a PC), és vezérlő perifériáit állíthatjuk be velük (pl. be és kimenetek, időzítők, USART beállítások, EEDATA olvasás és írás beállítások). Az MPLAB C fordító ezeket név szerint éri el, és ugyanúgy írhatjuk, olvashatjuk őket, mint más változókat. Figyeljünk azonban, néhány SFR más tulajdonságokkal rendelkezik, van köztük olyan, amelynek csak néhány bitje elérhető, van read-only SFR, némelyik megváltoztat más regisztereket, ha hozzáférünk. Ezen regiszterek a 15-ös Bank-en találhatók az adatmemóriában.

Return Address Stack:
A CALL és RETURN utasítások push-pop módszerrel tárolják a PC-t ebben a halomban. Ez a terület el van választva az adatmemóriától, és 31 szintig enged meg szubrutin hívásokat.

 


A cikk még nem ért véget, lapozz!
Következő: »»   2 / 4
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem