<< Előző oldal Vissza a tartalomjegyzékhez Következő oldal >>
11.6.4. Összefűzés vezérlő fájlok
Az összefűzés vezérlő fájlok (linker script) az MPLINK összefűző program parancsfájljai. Az MPLINK program a fájlban elhelyezett vezérlő utasítások alapján végzi el az objektum fájlok összefűzését.
A fájlban elhelyezett vezérlő utasítások lehetséges típusai:
ˇ
általános vezérlő utasítások, amelyek az MPLINK program bemeneti fájljainak megadását segítik;
ˇ
memória elosztó utasítások, amelyek a felhasználható program- és adatmemória-helyeket adják meg;
ˇ
program szekció elosztó utasítások, amelyek az egyes forráskód szekciók programmemóriában való elhelyezkedését adják meg;
ˇ
verem definiáló utasítások, amelyek használatára a közepes teljesítményű PIC mikrovezérlők esetében nincs szükség.
Általános vezérlő utasítások
A következő táblázatban bemutatásra kerülő utasítások segítségével az összefűzésben résztvevő fájlok elérési útjai, illetve maguk a fájlok adhatók meg.
Utasítás | Hatása | Példa |
---|---|---|
LIBPATH [elérési utak] | Könyvtár és objektum fájlok keresési útvonalának megadása. Egy utasításon belül több keresési útvonal is megadható egymástól pontosvesszővel elválasztva. | LIBPATH C:\MPASM; C:\MPLAB\LIBS |
LKRPATH [elérési utak] | Összefűzés vezérlő fájlok keresési útvonalának megadása. Egy utasításon belül több keresési útvonal is megadható egymástól pontosvesszővel elválasztva. | LKRPATH C:\MPLINK\LKR; C:\LKR |
FILES [fájlnevek] | További összefűzendő könyvtár és objektum fájlok megadása. | FILES adat.o matek.lib |
INCLUDE [fájlnév] | További összefűzés vezérlő fájl megadása. Az utasításban megjelölt fájl sorai beépülnek az utasítás helyére, mintha be lennének másolva oda. | INCLUDE plusz.lkr |
Memória elosztó utasítások
A következő táblázatban bemutatásra kerülő utasítások a program- és adatmemória-helyek kiosztását és azonosítását végzik el.
Utasítás | Hatása | Példa |
---|---|---|
ACCESBANK NAME=[név] START=[kezdőcím] END=[zárócím] [védettség] |
Ez az utasítás a közepes teljesítményű, 14-bites programmemóriájú PIC mikrovezérlők esetében nem használható! | - |
CODEPAGE NAME=[név] START=[kezdőcím] END=[zárócím] [védettség] FILL=[érték] |
A programmemória felosztása. Minden részt külön utasítással kell megadni. Az egyes részekhez a PROTECTED kulcsszóval védettség rendelhető, amely lehetővé teszi a forrásprogramban adatmemóriacímhez közvetlenül hozzárendelt változók elhelyezését. A FILL paraméter segítségével a kijelölt programmemória-rész feltölthető bármely konstans értékkel. Az utasítást és a paramétereket egy sorba kell írni. | CODEPAGE NAME=program START=0x28 END=0x7FF |
DATABANK NAME=[név] START=[kezdőcím] END=[zárócím] [védettség] |
Az adatmemória-lapozást igénylő regiszterek megadása. Az egyes részekhez a PROTECTED kulcsszóval védettség rendelhető, amely lehetővé teszi a forrásprogramban adatmemóriacímhez közvetlenül hozzárendelt változók elhelyezését. Az utasítást és a paramétereket egy sorba kell írni. | DATABANK NAME=altalanos START=0x20 END=0xFF |
SHAREBANK NAME=[név] START=[kezdőcím] END=[zárócím] [védettség] |
A minden adatmemória-lapról elérhető regiszterek megadása, amelyek elérése nem igényel memória-lapozást. Egy bizonyos, minden lapról elérhető regiszterterület megadásához laponként külön utasítás szükséges, de megegyező azonosító névvel. Az egyes részekhez a PROTECTED kulcsszóval védettség rendelhető, amely lehetővé teszi a forrásprogramban adatmemóriacímhez közvetlenül hozzárendelt változók elhelyezését. Az utasítást és a paramétereket egy sorba kell írni. | SHAREBANK NAME=sfr2 START=0x02 END=0x04 PROTECTED SHAREBANK NAME=sfr2 START=0x82 END=0x84 PROTECTED |
Program szekció elosztó utasítások
A következő táblázatban bemutatásra kerülő utasítás a forráskódokban megadott szekciók memóriába helyezését irányítja.
Utasítás | Hatása | Példa |
---|---|---|
SECTION NAME=[szekció név] [RAM/ROM kiválasztás] =[memória terület azonosító] |
A megadott forráskód szekciók elhelyezésének vezérlése. Az utasítás megadja, hogy egy adott szekció, melyik, előzőleg már azonosított, memóriaterületre kerüljön. Minden szekcióhoz külön utasítás szükséges. Az utasítást és a paramétereket egy sorba kell írni. | SECTION NAME=foprogram ROM=program |
Az összefűzés vezérlő fájlokban a sorok végére megjegyzések helyezhetőek el két darab per jel (//) után. A megjegyzések a sor vége jelig tarthatnak.
Az MPLINK programhoz a gyártó minden mikrovezérlő típushoz előre elkészített összefűzés vezérlő fájlokat biztosít, amelyek segítséget (kiindulási alapot) nyújtanak a kívánt fájl elkészítéséhez.
A PIC16F84A mikrovezérlőhöz készített összefűzés vezérlő mintafájl:
// Sample linker command file for 16F84A // $Id: 16f84a.lkr,v 1.4 2002/01/29 22:10:01 sealep Exp $ LIBPATH . CODEPAGE NAME=vectors START=0x0 END=0x4 PROTECTED CODEPAGE NAME=page START=0x5 END=0x3FF CODEPAGE NAME=.idlocs START=0x2000 END=0x2003 PROTECTED CODEPAGE NAME=.config START=0x2007 END=0x2007 PROTECTED CODEPAGE NAME=eedata START=0x2100 END=0x213F PROTECTED DATABANK NAME=sfr0 START=0x0 END=0xB PROTECTED DATABANK NAME=sfr1 START=0x80 END=0x8B PROTECTED DATABANK NAME=gprs START=0xC END=0x4F SECTION NAME=STARTUP ROM=vectors // Reset and interrupt vectors SECTION NAME=PROG ROM=page // ROM code space SECTION NAME=IDLOCS ROM=.idlocs // ID locations SECTION NAME=CONFIG ROM=.config // Configuration bits location SECTION NAME=DEEPROM ROM=eedata // Data EEPROM |
Tudomány és Technika (test@t-es-t.hu)
<< Előző oldal Vissza a tartalomjegyzékhez Vissza a lap tetejére Következő oldal >>