4 5 gün oldu başlayalı pic assembly öğrenmeye çalışıyorum.Microchip in sitesinden MPLAB x IDE v3.10 idesini indirdim.Fakat program derlerken hep aşağıdaki gibi hata veriyor. 5 6 7 8 9 10 11 satırlarda kodların yeri yanlış gibi birşey diyor.Aynı programı mplab 8.92 ide de denedim hata vermedi.Hata neden kaynaklı olabilir.Bu MPLAB x 3.10 un arayüzü hoşuma gittiği için bırakmakta istemiyorum.Nasıl halledebilirim.Yardımlarınızı bekliyorum şimdiden teşekkür ederim.asm dosyası linker files içinde gibi görünsede source files içindedir.
(http://i.hizliresim.com/n22nON.png)
Hata mesajını kopyalayıp olduğu gibi ekler misiniz?
BASLA dan sonra : koymamışsınız sanırım ondan. etiket olarak görmüyor gibi.
BASLA nın sonuna ":" koydum yine düzelmedi.
GELEN HATA ŞU make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory 'C:/Users/Murat/MPLABXProjects/m.X'
make -f nbproject/Makefile-default.mk dist/default/production/m.X.production.hex
make[2]: Entering directory 'C:/Users/Murat/MPLABXProjects/m.X'
make[2]: *** [build/default/production/d.o] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
"D:\Program Files (x86)\Microchip\MPLABX\v3.10\mpasmx\mpasmx.exe" -q -p16f84 -l"build/default/production/d.lst" -e"build/default/production/d.err" -o"build/default/production/d.o" "d.asm"
Error[150] C:\USERS\MURAT\MPLABXPROJECTS\M.X\D.ASM 5 : Labels must be defined in a code or data section when making an object file
Error[152] C:\USERS\MURAT\MPLABXPROJECTS\M.X\D.ASM 6 : Executable code and data must be defined in an appropriate section
Error[152] C:\USERS\MURAT\MPLABXPROJECTS\M.X\D.ASM 7 : Executable code and data must be defined in an appropriate section
Error[152] C:\USERS\MURAT\MPLABXPROJECTS\M.X\D.ASM 8 : Executable code and data must be defined in an appropriate section
Message[302] C:\USERS\MURAT\MPLABXPROJECTS\M.X\D.ASM 9 : Register in operand not in bank 0. Ensure that bank bits are correct.
Error[152] C:\USERS\MURAT\MPLABXPROJECTS\M.X\D.ASM 9 : Executable code and data must be defined in an appropriate section
Error[152] C:\USERS\MURAT\MPLABXPROJECTS\M.X\D.ASM 10 : Executable code and data must be defined in an appropriate section
Error[152] C:\USERS\MURAT\MPLABXPROJECTS\M.X\D.ASM 11 : Executable code and data must be defined in an appropriate section
Error[152] C:\USERS\MURAT\MPLABXPROJECTS\M.X\D.ASM 12 : Executable code and data must be defined in an appropriate section
nbproject/Makefile-default.mk:95: recipe for target 'build/default/production/d.o' failed
make[2]: Leaving directory 'C:/Users/Murat/MPLABXProjects/m.X'
Yok mudur bir çözüm ?
Merhaba,
Sakıncası yok ise asm dosyanızı özelden de olsa verirseniz bakıp çözmeye çalışayım.Muhtemelen eksik veya yanlış işaret kullanmaktasınız.
Not:asm yazılımlarında ":" ben hiç kullanmadım ne kadar doğrudur bilemem ama örneğin yazılımızda size hatırlatıcı bilgi içermek için ; noktalı virgülü kullanabilirsiniz.
BASLA;--------------OPTO 1 BURADAN BAŞLAR
MPLAB X'in kurulum klasöründe yer alan template dosyasını denemeni tavsiye ederim. Yolu benim bilgisayarda mpasmx/templates/Code şeklinde, muhtemelen sende de buna benzerdir.
Bir diğer nokta kodun absolute olup olmaması. Anladığım kadarıyla sen kodu absolute yazacaksın ama MPLAB X asm'nin varsayılan ayarı absolute değil. Bunu proje ayarlarından değiştirmen gerekebilir. Ama ilginçtir ki, yukarıda bahsettiğim template kodu iki türlü de hatasız derlendi.
Alıntı yapılan: kudretuzuner - 19 Ekim 2015, 13:38:37
Merhaba,
Sakıncası yok ise asm dosyanızı özelden de olsa verirseniz bakıp çözmeye çalışayım.Muhtemelen eksik veya yanlış işaret kullanmaktasınız.
Not:asm yazılımlarında ":" ben hiç kullanmadım ne kadar doğrudur bilemem ama örneğin yazılımızda size hatırlatıcı bilgi içermek için ; noktalı virgülü kullanabilirsiniz.
BASLA;--------------OPTO 1 BURADAN BAŞLAR
kudretuzuner hocam öylesine bir deneme kodu öğrenmek için başlamıştım bir gizliliği yok yani .Bilmiyorum sütunları mı denk getiremiyorum ondan mı olmuyor.Asm dosyası : http://dosya.co/jmfje2qwbusw/d.asm.html (http://dosya.co/jmfje2qwbusw/d.asm.html)
Alıntı yapılan: Tagli - 19 Ekim 2015, 14:59:38
MPLAB X'in kurulum klasöründe yer alan template dosyasını denemeni tavsiye ederim. Yolu benim bilgisayarda mpasmx/templates/Code şeklinde, muhtemelen sende de buna benzerdir.
Bir diğer nokta kodun absolute olup olmaması. Anladığım kadarıyla sen kodu absolute yazacaksın ama MPLAB X asm'nin varsayılan ayarı absolute değil. Bunu proje ayarlarından değiştirmen gerekebilir. Ama ilginçtir ki, yukarıda bahsettiğim template kodu iki türlü de hatasız derlendi.
Tagli hocam absulute olayını pek anlayamadım.Ama dediğiniz gibi temp dosyası içindeki 16F84 lü örneği başarıyla derledi.Nerde sıkıntı var anlayamadım
(http://i.hizliresim.com/0LmL9W.png)
sonunda çözebildim sorunu sıkıntısı org 0x00 koymamamdan kaynaklanıyormuş yardımlarınız ve ilgileriniz için teşekkür ederim.Ama org 0x00 neden kullandık Ben şöyle düşündüm kullanılan komutlar(movlw,bsf gibi) tek tek eepromdaki adreslere sırasıyla kaydediliyor hangi adresten başlatmak istiyorsak o adresle başlatıyoruz org yardımıyla doğru mu acaba?.birde dediğiniz asmdeki absulute ayarı nedir ne işe yarıyor bunları açıklarsanız çok sevinirim.
Doğru Kod
LIST P = 16F84
PORTB equ 0x06
STATUS equ 0x03
TRISB equ 0x86
org 0x00
BASLA
clrf PORTB
bsf STATUS,5
movlw 0xFA
movwf TRISB
bcf STATUS,5
movlw 0x05
movwf PORTB
end
Absolute kodda, komutların bellekte nereye yerleşeceğini programcı ORG ifadeleri ile belirler. Değişkenlerin yerleşmesi de benzer mantıkla kullanıcı tarafından yapılır. Küçük projeler için kolaylık sağlayabilir ama içinde birçok yazılım modülü bulunan büyük projeler için uygun değildir. Diğer seçenek olan relocatable kodda ise kullanıcı bu bilgileri vermez ve bellek yerleşimini büyük oranda linker'a bırakır. Ama bu durumda yazılım tarafında bazı önlemler almak ve daha dikkatli kod yazmak gerekir. Örneğin hangi değişkenin hangi bank'a yerleşeceğini bilemediğiniz için banksel gibi özel ifadeler önem kazanır. Program yerleşiminde de özellikle PCLATH ile ilgili işlemlerde program parçacıklarının page sınırlarından geçip geçmediği gibi ayrıntılara dikkat etmek gerekir.
Alıntı yapılan: Tagli - 20 Ekim 2015, 00:21:26
Absolute kodda, komutların bellekte nereye yerleşeceğini programcı ORG ifadeleri ile belirler. Değişkenlerin yerleşmesi de benzer mantıkla kullanıcı tarafından yapılır. Küçük projeler için kolaylık sağlayabilir ama içinde birçok yazılım modülü bulunan büyük projeler için uygun değildir. Diğer seçenek olan relocatable kodda ise kullanıcı bu bilgileri vermez ve bellek yerleşimini büyük oranda linker'a bırakır. Ama bu durumda yazılım tarafında bazı önlemler almak ve daha dikkatli kod yazmak gerekir. Örneğin hangi değişkenin hangi bank'a yerleşeceğini bilemediğiniz için banksel gibi özel ifadeler önem kazanır. Program yerleşiminde de özellikle PCLATH ile ilgili işlemlerde program parçacıklarının page sınırlarından geçip geçmediği gibi ayrıntılara dikkat etmek gerekir.
Tagli hocam çok teşekkür ederim...