[ Pobierz całość w formacie PDF ]
oddzielonych przez znaki ':'. Katalogi będą przeszukiwane od lewej do prawej.
Zcieżka wyznaczona w opcji includes jest przeszukiwana przed ścieżką ustawioną jako zmienna środowiska
ASEM51INC!
Maksymalna długość ścieżki jest ograniczona do 255 znaków.
Opcja define jest przydatna by wydzielić poszczególne warianty programu w linii komend, które mają być
kompilowane przy użyciu kompilacji warunkowej. Pozwala to zdefiniować symbol z wartością i typem w linii
komend. Wartość i typ są opcjonalne. Typ domyślnie jest ustawiany na NUMBER (numer, wartość liczbowa),
jeśli nie zostanie wyspecyfikowany. Wartość domyślna symbolu to 0 w przypadku pominięcia definicji. Wartość
symbolu może być dowolną stałą liczbową. Typ symbolu musi być jednym z poniższych znaków:
C = CODE
D = DATA
I = IDATA
X = XDATA
B = BIT
N = NUMBER (wartość liczbowa typ ustawiony domyślnie)
Domyślnie kompilator generuje plik wynikowy w formacie IntelHEX. Gdy używa się opcji omf51,
generowany jest plik OMF51.
Przykłady:
0.) asem
Wywołanie bez parametrów spowoduje, że kompilator wyświetli poniższe informacje:
MCS51 Family Macro Assembler ASEM51 V1.3
usage: asem [options] [
options: i includes=path1:path2:path3
d define=symbol [:value[:type]]
o omf51
c columns
v verbose
1.) asem program.a51
Powyższe wywołanie spowoduje kompilację pliku zródłowego programu napisanego w asemblerze dla
mikrokontrolera rodziny 8051 o nazwie program.a51 i wygenerowanie pliku w formacie IntelHEX program.hex
oraz pliku listingu program.lst
2.) asem tarzan.asm jane jungle.prn
Powyższe wywołanie spowoduje kompilację pliku zródłowego programu napisanego w asemblerze dla
mikrokontrolera rodziny 8051 o nazwie tarzan.asm i wygeneruje plik w formacie IntelHEX o nazwie jane oraz
plik listingu jungle.prn.
3.) asem project. eprom
Powyższe wywołanie spowoduje kompilację pliku zródłowego programu napisanego w asemblerze dla
mikrokontrolera rodziny 8051 o nazwie project oraz wygeneruje plik wyjściowy w formacie IntelHEX o nazwie
eprom.lst.
4.) asem o rover.a51
Powyższe wywołanie spowoduje kompilację pliku zródłowego programu napisanego w asemblerze dla
mikrokontrolera rodziny 8051 o nazwie rover.a51 i wygeneruje plik wynikowy w formacie OMF51 o nazwie
rover.omf oraz plik listingu rover.lst.
5.) asem sample.a51 /dev/ttyS0 /dev/null
Powyższe wywołanie spowoduje kompilację pliku zródłowego programu napisanego w asemblerze dla
mikrokontrolera rodziny 8051 o nazwie sample.a51, wysyła plik wyjściowy w formacie IntelHEX do portu
szeregowego /dev/ttyS0 oraz blokuje generowanie pliku listingu przez wysłanei jego do /dev/null.
6.) asem i /usr/local/include/asem51:~/8051/inc app.a51
Powyższe wywołanie spowoduje kompilację pliku zródłowego programu napisanego w asemblerze dla
mikrokontrolera rodziny 8051 o nazwie app.a51, podczas gdy wszystkie pliki dołączane najpierw będą
poszukiwane w bieżącym katalogu, następnie w /usr/local/include/asem51 i ostatecznie w ~/8051/inc.
7.) asem define=Eva_Board:8000H:C universal.a51
Powyższe wywołanie spowoduje kompilację pliku zródłowego programu napisanego w asemblerze dla
mikrokontrolera rodziny 8051 o nazwie universal.a51. Podczas kompilacji napotkany w kodzie programu ciÄ…g
słów EVA_BOARD zostanie zamieniony wartością 8000H.
Gdy błędy w programie zostaną wykryte, odpowiednie komunikaty zostaną wygenerowane. Może to wyglądać
w następujący sposób:
applicat.a51 (14): must be known on first pass
userbits.inc (6): attempt to divide by zero
defines.inc (37): symbol not defined
applicat.a51 (20): symbol not defined
applicat.a51 (27): no END statement found
Każdy błąd jest opisywany nazwą pliku zródłowego, w którym wystąpił, numerem lini, gdzie wystąpił oraz
komunikatem błędu.
Taki format wyjściowy błędów pozwala powiązać ASEM51 ze środowiskami IDE innych firm. Doskonałe
dopasowanie może zostać osiągnięte przy użyciu opcji columns. Gdy zostanie ona użyta, numery kolumn z
błędami są dodatkowo wyświetlane w komunikacie o błędach:
applicat.a51(14,12): must be known on first pass
userbits.inc(6,27): attempt to divide by zero
defines.inc(37,18): symbol not defined
applicat.a51(20,18): symbol not defined
applicat.a51(27,1): no END statement found
[ Pobierz całość w formacie PDF ]