MPLABX ve Assembly

Başlatan Mucit23, 05 Şubat 2016, 11:29:36

Mucit23

Daha önce assembly de yazılmış bir programı düzenlemem gerekiyor. Bu iş için Bilgisayarıma MPLABX'in güncel sürümünü(v3.20) indirip kurdum. Eski bilgilerimle derlenebilen bir program yazayım dedim. 16F877 için basitçe bir program parçası hazırladım. fakat derlerken birçok hata alıyorum.



16f877a nın .inc dosyasını HeaderFiles altına ekledim. Assembly kodumuna Source Files altına ekledim. Mplab 8.85'de böyle yapıyordum.

Mplabx'de neyi eksik yapıyorum?

seyityildirim

source file dan bir main.c dosyası açın daha sonra c dili içinde assembly çağırın. ben assembly yazacağım zaman böyle yapıyorum. c içinde şu şekilde kullanabilirsin

#asm
_asm

// asm kodları

_endasm
#endasm

şeklinde yazınca pic in header dosyasını eklemeden de kabul ediyor.

Mucit23

Hocam onu diğer C derleyicilerinde de yapabilirim. Zaten MPLABX veya XC8 pek kullanmıyorum. Sadece bu iş için yükledim. Ama madem yükledim sorunun sebebinide öğrenmeyi isterim.

MPLABX kullanan arkadaşlardan ricam, MPLABX ile resimdeki gibi herhangi bir pic için assemby de derlenebilen bir proje nasıl olur? Anlatırlarsa sevinirim.

metaltrrocker

#3
Ben de yeni sayılırım bu konuda. Biraz dökümanları karıştırdım bu haliyle derleniyor.
Proje ağacında "Header" kısmına, C:\Program Files (x86)\Microchip\MPLABX\v3.15\mpasmx dosya yolundaki p16f877a.inc'i eklememiz gerekiyor.
Bir de senin kodlardaki _CF_OFF konfigürasyon biti, kod koruma için mi. INC dosyasında böyle bir tanımlama göremediğim için yazım hatası olabilir diyerekten _CP_OFF ile değiştirdim Kodlarla çok boğuşunca okuduğumu bazen göremeyebiliyorum :)
Uyarılar çıkıyor 3-4 adet ancak onları tam anlayamadığım için olduğu gibi kaldı.

Referans aldığım döküman;
http://ww1.microchip.com/downloads/en/DeviceDoc/31027a.pdf


LIST P=16F877A
#include p16f877a.inc
__config _XT_OSC & _WDT_OFF & _LVP_OFF & _CP_OFF

ORG 0x00
    
    BASLA
      GOTO BASLA
    END

Mucit23

Sanırım ORG 0x00 komutunu eklemek gerekiyor. Bu olmasa hata veriyor.