Site içi Arama

Ara

Pic için Jal dosyayı derlemek

Mehmet Yılmaz - 14.11.0211

Yayınladığım çalışmalarda kullandığım programlar ile ilgili çok sayıda sorular geliyor. Bu sorulara genel olarak cevabım "Üreticisine bu konuları sormanız en doğru olanıdır" oluyor. Ücretsiz dağıtılan ve açık kaynaklı programlar için ise bildiğim kadarıyla yardımcı olmaya çalışıyorum. Artık çalışmalarımda Ücretsiz ve açık kaynak program kullanıyorum. Bu yazımda JAL ile ilgili karşılaştığım sorulardan jal derleme konusuna cevap vermeyi amaçlıyorum.

Herşeyden önce kabul etmemiz gereken bir konu var. Programlama mantığını kavramak gerekiyor. Programlamayı kavrarsanız aslında tüm programlama dilleri farklı görünen şeyleri aynı şekilde çözdüğünü ve aynı sonuca ulaştığını anlarsınız. Yani şunu ifade etmek istiyorum. Bir editörü açıp içine doğru karakterleri yazıp .hex uazntısıyla kaydedip, bu dosyayı da Pic'e atsanız devreniz çalışır. Ben Pic'ler için "Mehmet" diye bir programlama dili yapsam sonuçta elde edeceğim bir hex uzantılı dosya olmak zorundadır.

Bu yazımda JalV2 için derleme işlemini Windows ve Pardus Linux için anlatacağım. http://justanotherlanguage.org/downloads [?] adresinden uygun versiyonu indirerek bilgisayaraın uygun gördüğünüz bölümüne kaydediniz. Ben son eklenen en güncel dosyaları indirmeyi tercih ediyorum. Daha sonra bu sıkıştırılmış dosyayı açınız. Ben Windows'ta C haddisk bölümüne kaydettim, sıkıştırılmış dosyayı açtım ve klasörün adını jallib olarak değiştirdim. Derleme işlemi için bu "jallib" klasöründe bulunan "Compiler" ve "Lib" klasörlerini kullanıyoruz.

Windows'ta komut satırından, DOS ortamında derlemek:

Öncelikle DOS penceresini açmak gerekiyor. Bunun için Başlat'ı tıklıyoruz. Çalıştır'ı tıklıyoruz. Açılan pencereye "cmd" yazıp "Enter" tuşuna basıyoruz. Böylece derleme yapacağımız alana ulaşıyoruz.

Başlat > Çalıştır > Cmd > [Enter]

Açılan Dos alanına önce jalv2'nin derleme yapacak olan dosyasını yoluyla birlikte yazıyoruz. Benim yaptığım örnekte; C:jallibcompilerjalv2.exe şeklinde yazmam gerekiyor. Devamında opsiyonlardan birisini kullanmak gerekiyor. Ben şimdiye kadar sadece -s opsiyonunu kullandım, başka opsiyona gerek duymadım. (Bu opsiyonların listesi yazının sonunda) Yine devamına kullandığımız kütüphane klasörünün yolunu yazıyoruz. Benim kütüphane klasörümün yolu C:jalliblib olduğundan bu adresi yazıyorum. En sonuna ise derlenecek dosyayı yolu ile birlikte yazıyoruz. Benim jal uzantılı dosyamın yolu ve adı F:projelerdeneme16f88_blink.jal şeklindeydi. Şimdi anlattığımız bilgiyi topluca yazarsak:

C:jallibcompilerjalv2.exe -s C:jalliblib F:projelerdeneme16f88_blink.jal

Şimdi de liste şeklinde açıklayalım:

Derleyici jalv2 dosya         Opsiyon  Kütüphane       Derlenecek dosya (hazırladığımız)
----------------------------  ------  --------------   ----------------------------------
C:jallibcompilerjalv2.exe    -s    C:jalliblib   F:projelerdeneme16f88_blink.jal

Yukarıda anlattığım işlemleri yaparsak sonuç şu şekilde oluyor:

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:Documents and Settingsmehmet>C:jallibcompilerjalv2.exe -s C:jalliblib F:projelerdeneme16f88_blink.jal
jal 2.4o (compiled May  8 2011)
generating p-code
5685 tokens, 60564 chars; 1424 lines; 3 files
generating PIC code pass 1
generating PIC code pass 2
writing result
Code area: 61 of 4096 used (words)
Data area: 4 of 352 used
Software stack available: 96 bytes
Hardware stack depth 0 of 8
0 errors, 0 warnings

C:Documents and Settingsmehmet>

Başarılı sonuç resmi:

Resmin gerçek boyutu için üzerine tıklayınız.

Pardus Linux'ta Konsol'dan derleme işlemi:

Alt+F2 tuşlarına basıyor ve açılan küçük pencereye "konsole" yazıyoryz. Böylece Konsol programı açılıyor. Yapacağımız işlemleri bu konsol penceresinde gerçekleştireceğiz. GNU/Linux işletim sistemlerinde de yukarıda anlatıldığı gibi aynı şekilde, [derleyici jalv2 dosya] [opsiyon (-s)] [kütüphane yolu] [derlenecek dosya] siralamasıyla konsol'a yazıyoruz. Burada Windows'tan farklı olan tek konu klasörlerin yerleri, beşka bir farklılık yoktur. konsola /media/LINBELGE/jallib/compiler/jalv2 -s /media/LINBELGE/jallib/lib/ /media/TEKNIK/deneme/16f88_blink.jal yazıp "Enter" tuşuna bastığımızda derleme işlemi gerçekleşmiş olur. Eğer konsol yolunuz derlenecek dosya ile aynı yerde ise /media/LINBELGE/jallib/compiler/jalv2 -s /media/LINBELGE/jallib/lib/ 16f88_blink.jal seklinde derlenecek dosyamızın klasör yolunu yazmamıza gerek yoktur.

mehmet@hmd ~ $ /media/LINBELGE/jallib/compiler/jalv2 -s /media/LINBELGE/jallib/lib/ /media/TEKNIK/deneme/16f88_blink.jal
jal 2.4o (compiled May  8 2011)
generating p-code
5685 tokens, 61886 chars; 1424 lines; 3 files
generating PIC code pass 1
generating PIC code pass 2
writing result
Code area: 61 of 4096 used (words)
Data area: 4 of 352 used
Software stack available: 96 bytes
Hardware stack depth 0 of 8
0 errors, 0 warnings
mehmet@hmd ~ $ 

Başarılı sonuç resmi:

Resmin gerçek boyutu için üzerine tıklayınız.

Geany Editörü ile derleme yapmak

Ben neredeyse bütün işlerimi Geany ile yapıyorum ve memnunum. Bu sebepten dolayı bu yazıda bu editöre ait bilgileri vereceğim ama aslında diğer editörler için de mantık aynı olduğundan sizler bu anlatılan bilgilerle kullandığınız editöre ait ayarlardan gerekli bilgileri girerek jalv2 ile jal dosyalarınızı derletebilirsiniz.

(PARDUS Linux'ta kaynak koddan kurulum yapabilmek için "gtk2-devel" pisi paketini kurmak gerekmektedir)

Geany'de jal dosyasını açmış iken menüden "İnşa Et > İnşa Komutlarını Seç" tıklıyoruz. Derleyici bilgilerini gireceğimiz ayar penceresi açılıyor. Solda bulunan etiket düğmesine tıklayınca açılan kuyucuğa "JAL Derle" yazıyoruz ve "Tamam"ı tıklıyoruz. Ortada bulunan komut kutusuna ise Windows'ta [derleyici jalv2 dosya] [opsiyon (-s)] [kütüphane yolu] [derlenecek dosya] sıralamasına uygun olarak:

C:jallibcompilerjalv2.exe -s C:jalliblib %e.jal

GNU/linux'ta ise yine [derleyici jalv2 dosya] [opsiyon (-s)] [kütüphane yolu] [derlenecek dosya] sıralamasına uygun olarak:

/media/LINBELGE/jallib/compiler/jalv2 -s /media/LINBELGE/jallib/lib/ %e.jal

yazıyoruz. "Tamam"ı tıklıyoruz. Böylece ayarlar yapılmış oluyor. Burada tekrar etmekte fayda var. jal uzantılı dosya açıldıktan sonra menüden "İnşa Et > İnşa Komutlarını Seç" tıklanacak.

Windows ayar ekranı resmi:

Resmin gerçek boyutu için üzerine tıklayınız.

Ayarları yaptıktan sonra derletme işlemini yapabiliriz artık. Derleme için, menüden "İnşa Et > JAL Derle" tıklıyoruz ve derleme işlemi gerçekleşiyor. Derleme için kısayol tuşu olarak "İnşa Et" menüsünde belirtilen F8 tuşuda kullanılabilir. Editörün alt kısmında "Mesaj Penceresi" kısmında ise derlemeye ait işlemler ve sonuçları bildiriliyor.

Windows'ta derleme sonucu ekran görüntüsü:

Resmin gerçek boyutu için üzerine tıklayınız.

GNU/Linux ayar ekranı resmi:

Resmin gerçek boyutu için üzerine tıklayınız.

GNU/Linux'ta derleme sonucu ekran görüntüsü:

Resmin gerçek boyutu için üzerine tıklayınız.

Jalv2 dosya derleme opsiyonları listesi:

Default options marked with '*'

    --- File Options ---

-asm
-no-asm
    set the name of the asm file (default is basename + '.asm')

-codfile
-no-codfile
    set the name of the COD file (default is basename + '.cod')

-hex
-no-hex
    set the name of the hex file (default is basename + '.hex')

-include
    include {name} before parsing the file

-lst
-no-lst
    set the name of the lst file (default is no file created)

-log
-no-log
    set the name of the log file (default is no file created)

-s
    set the include path, elements seperated with ';'

    --- Bootloader Options ---

 -bloader
    using screamer/bloader PIC loader

*-fuse
 -no-fuse
    do not put FUSES into the assembly or hex file

 -long-start
    force the first instruction to be a long jump

 -rickpic
    using Rick Farmer's PIC loader

 -loader18
    Use the 18 series bootloader preamble

    --- Misc. Options ---

 -clear
*-no-clear
    clear data area on program entry

 -quiet
*-no-quiet
    disable/enable compile status updates

-task
    set the maximum # of concurrent tasks

    --- Warnings ---

 -Wall
*-Wno-all
    enable/disable all warnings

*-Wcodegen
 -Wno-codegen
    enable/disable code generation warnings

*-Wconversion
 -Wno-conversion
    enable/disable signed/unsigned conversion warning

 -Wdirectives
*-Wno-directives
    enable/disable warning when a compiler directive is found

*-Wmisc
 -Wno-misc
    enable/disable uncategorized warnings

*-Wrange
 -Wno-range
    enable/disable value out of range warnings

*-Wstack-overflow
 -Wno-stack-overflow
    issue a warning on hardware stack overflow instead of an error

*-Wtruncate
 -Wno-truncate
    enable/disable possible truncation in assignment warning

    --- Optimizations ---

*-cexpr-reduction
 -no-cexpr-reduction
    enable/disable constant expression reduction

 -const-detect
*-no-const-detect
    enable/disable constant detection

*-expr-reduction
 -no-expr-reduction
    enable/disable expression reduction

 -expr-simplify
*-no-expr-simplify
    enable/disable expression simplification

 -load-reduce
*-no-load-reduce
    enable/disable redundant load removal

 -temp-reduce
*-no-temp-reduce
    enable/disable temporary reduction

 -variable-frame
*-no-variable-frame
    allocate variables into a full frame

*-variable-reduce
 -no-variable-reduce
    enable/disable unused or unassigned variables removal

*-variable-reuse
 -no-variable-reuse
    enable/disable reusing variable space

    --- Compiler Debugging ---

*-codegen
 -no-codegen
    do not generate any assembly code

 -debug
*-no-debug
    show debug information

 -pcode
*-no-pcode
    show pcode in the asm file

 -emu
*-no-emu
    run the emulator

*-deadcode
 -no-deadcode
    enable dead code elimination


Adana'da dünyaya geldi. Televizyon tamirciliğınde çırak olarak erken dönemde iş hayatına başladı. Daha sonraları Adana ve Ankara'da imalat, bilgisayar ve danışmanlık sektöründe iş hayatına devam etti. Şu anda kendisine ait işyerinde çalışmalarına devam etmektedir.
Web adresi: www.teknimer.com
E-posta: mehmet@teknimer.com
İçerik Yan Blok
Konular
Tasarım: Teknimer Teknoloji
Yukarı