Tanju Taşçılar, 6 Mayıs 2002
doc mpl003-060502
MPLab'da yazdığımız .asm programlarını programlayıcıların anlayacağı formata çevirmek için
assambly-derleme işini yapmamız gerekmektedir. Bu işlem sırasında yalnızca format değişimi olmaz
aynı zamanda yazılım hataları da ayıklanır.
Bu konuya spi.asm ile oluşturulan proje üzerinde devam edeceğiz. Bu projenin oluşturulmasını
ve program ile ilgili açıklamaları Elektronist Okul konularında bulabilirsiniz. Eğer projenin
oluşturulmasını anlatılan biçimde yaptı iseniz anlatılacakları daha kolay izleyebilirsiniz.
Projeyi derlemek için -Project-Make Project menüsünü veya daha kısa yoldan
F10 veya
Make the Current Project
butonunu kullanırız. Compile işlemi bittikten sonra 'Build Results' penceresi ile sonuçlar
gösterilir. Eğer spi.asm dosyasını kullanarak ve ayarları anlatıldığı gibi yaptı iseniz
Şekil-2'deki sonuçları elde edersiniz.
Görünüşe göre burada işlem başarıyla tamamlanmıştır. Ancak bazı uyarı mesajları vardır.
Warning[215] yazan satır ile komut satırından girilen işlemci ile projede tanımlı işlemcinin farklı olduğu ve
bu durumda komut satırının geçerli sayıldığı ve derlemenin bu şekilde yapıldığı belirtilmektedir.
Gerçekten de biz projemizde işlemciyi 12C508A olarak tanımlamış fakat spi.asm'de Processor 12C506
tanımını kullanmıştık. Aslında kullandığımız programda bu iki işlemci arasında fark olmayacaktır.
Ama eğer gerçekte kullanacağımız işlemci 12C508 olursa ve program bu işlemcinin 512'lik program
hafızasını aşacak olursa program çalışmayacaktır. Eğer 12C508 kullanacak isek Processor 12C508
tanımını yaparak hafıza alanının dışına çıktığımızda hata oluştuğunun iletilmesini sağlarız.
Bu satırın altında Warning[217] ile başlayan iki satır bulunmaktadır. Bu iki satırda da
uyarı aynı şey içindir. 12C508, 12bit core kullanan bir işlemcidir. Bu işlemcide RETURN komutu
yoktur, onun yerine RETLW 0 (0 yerine 00..FF kullanılabilir) kullanılır. Burada assembler
RETURN yerine RETLW 0 komutunu kullandığını belirtmektedir. Bu durum 14bit'lik core kullanımının
getirdiği alışkanlıktan gelmektedir. Programımızda bunun oluşturacağı bir hata bulunmamasına
rağmen RETLW komutunun kullanılması doğru olur. Aksi halde 12bit core kullanan işlemcilerde
alt rutinlerden dönüşte eğer w yazmacına bir değer yazarak döneceğimizi düşünürsek program
doğru çalışmayacaktır. Çünkü bizim istediğimiz değer RETURN komutunda w yazmacı değişmediği
varsayıldığı ancak onun yerine RETLW 0 komutu kullanıldığı için 0 ile değiştirilmiş olacaktır.
Build Results penceresinde listelenen hata veya uyarıların bulunduğu satıra gelip çift tıklarsak
kaynak kodda hata veya uyarının bulunduğu satıra gideriz. Bu değişiklik yapmamızı kolaylaştırır.
Ancak burada dikkat edilmesi gereken bir durum vardır. Daha önceki hata-uyarıları değiştirdiğimiz
sırada satır silmiş veya satır eklemiş isek daha sonraki hata veya uyarıların bulunduğu yeri
bulamayabiliriz. Build Results penceresi son yapılan derlemeden sonra eklenen veya silinen
kaynak kodu satırlarını hesaplamaz.
Unutmayın... Programınızın hatasız olarak derlenmesi programınızın doğru çalışacağı anlamına
gelmez.