Pic Laboratuarı
Linux ile Pic Mikroişlemci Geliştirme Ortamı


Pic Laboratuarı - 040830
Tanju Taşçılar - tanju@elektronist.com
Registered Linux User #283274

Linux ile Pic© Microişlemci Projesi Geliştirmek

Microchip firmasının Pic mikroişlemcileri en yaygın kullanılan işlemcilerdendir. Gerek Microchip firmasının verdiği ve rakibi durumunda olan diğer firmaların çok ötesindeki destek gerekse işlemcilerin özellikleri nedeniyle kontrolcu alanında en önde yer almaktadır.

Pic için proje geliştirmek devre tasarımı, pcb çizimi, program geliştirme ve işlemciye yazma aşamalarını içerir.

Linux'ta devre tasarımı ve şeması için gschem programı ve pcb çizimi için de pcb programı kullanılabilir.

Pic mikroişlemcileri için MPLab adlı programlama ortamı Windows kullanıcıları için mükemmel bir ortamdır ve ücretsizdir. MPLab editör, assembler ve simulatör programlarını tek bir ortamda birleştirerek kullanıcıya büyük kolaylık sağlar.

Linux ortamında Pic programları geliştirmek için MPLab içeriğinin karşılıkları mevcuttur. Assembler olarak gpasm ve simulatör olarak gpsim kullanılmaktadır. Editör için ise Linux'takinden daha bol seçenek yoktur.

Geliştirilen programları işlemciye kaydetmek için Linux'ta çalışan çok basitinden oldukça gelişmişine birçok programlayıcı bulunmaktadır.

Editör.

Linux'ta çok sayıda editör arasından en uygunlarından biri kate'dir. Bunun bir nedeni penceresi içinde gpasm kullanımı için bir terminal açılabilmesidir.

Standart bir editörün ötesinde gpasm ve gplink programlarının entegre olarak kullanılabileceği ve kate kodları kullanılarak yazılmış olan PiKdev programı, include dosyaları kullanan standart assembler programları yerine linker (gplink) kullanan, 'linkable modul'lerle yazılmış programlarda proje oluşturarak kolay kullanımı sağlıyor. Programın butonları ile terminal kullanımına gerek kalmadan işlem yapılıyor. Hata veya uyarı mesajları kate'nin terminali benzeri bir alanda görüntüleniyor. Güzel bir özellik olarak bunlar üzerine tıklandığında editörde ilgili satıra gidiliyor. PiKdev kullanımı için gputils paketinin kurulmuş olması gerekiyor. Ne yazık ki bu programın gpsim ile ortak çalışması yok.

PiKdev ile link edilebilir programlar için proje oluşturulurken, klasik programların kullanımı için proje oluşturmak yerine dosyanın basitçe açılması gerekiyor. Aksi halde aslında tam bir program olan dosyanız bir linkable module olarak işleniyor. Sonuçta normal olarak kullanılamıyor.

Program ilk çalıştırıldığında assembler seçeneklerini aşağıdaki gibi uygun değerlere getirmek gerekiyor.

PiKdev'in bir özelliği de Internet'ten bulunan paralel veya seri porttan çalışan birçok basit programlayıcı için bir arabiriminin bulunması.

Derleyici Programları.

Linux ortamında Pic mikroişlemciler için gputils paketinin kurulması gerekiyor. gputils paketinde gpasm, gplink, gplib ve gpal programları yer alıyor. Bunlardan gpal MPLab veya diğer geliştirme ortamlarında karşılığı bulunmayan Pic programları geliştirmek için Pascal kullanan bir üst seviyeli programlama aracı.

gputils paketinin kurulumu Linux'ta standart kaynak kodundan program kurulumu. Programın tar.gz dosyası uygun bir yere açıldıktan sonra bir terminalden standart kurulum kodları verilerek program kuruluyor. Burada yalnızca son komutta root hakları gerekiyor.

./configure
make
make install

gputils paketi için oldukça detaylı ve yeterli bir döküman kurulumdan sonra doc dizininde yer alıyor. Daha önceden Pic için program yazmış olanlar için ek olarak bir şey yapmaya gerek yok. Klasik bir .asm programının derlenmesi için gereken komut çok basit.

gpasm programadı.asm

Bu işlem sonucunda standart Intel hex formatında .hex dosyası oluşuyor. Bu dosya da programlayıcılarda kullanılıyor.

PiKdev kullanılırsa (link edilebilir programlar için tavsiye edilir) gpasm ve gplink kullanımı otomatik olarak yapılıyor.

Simülatör.

Linux için Pic simulatörü gpsim projesi ile geliştiriliyor. Projenin geliştiricisi Scott Dattalo ve projenin ana sayfasında geniş bilgi bulabilirsiniz.

gpsim kurulumu için normal olarak Linux dağıtımlarında bulunmayan bir paket olan gtk+extra-0.99.17.tar.gz paketinin kurulması gerekiyor. Her iki paket de gputils benzeri standart kurulum yöntemi ile kuruluyor.

gpsim bir terminal programı ve buna bağlı çalışan gui'den oluşuyor. Programı bir terminalden .asm ve .cod dosyalarının bulunduğu dizinden çalıştırmak ve kullanılacak Pic programının önceden derlenmiş olması gerekiyor. Gui'nin kendi penceresi oldukça küçük ve birkaç komutun karşılığı olan butonları içeriyor. Bunun dışında kaynak kodlarının görüntülendiği ve simülasyon satırının izlendiği Source penceresi veya Watch, Symbols pencereleri gibi diğer pencereler Windows menüsünden açılabiliyor.

Gui üzerindeki run bulunulan yerden itibaren programı çalıştırır. Program bir breakpoint rastlayıncaya kadar veya stop butonuna basılıncaya kadar çalışmaya devam eder. Step butonu ile tek bir komut işlenir. Over butonu CALL ile çağrılan alt programların çalıştırılarak atlanmasını ve dönülen yerden programa devam etmenizi sağlar. Finish ise oldukça yararlı bir özellik. Bir alt programın içinde iken bu buton kullanıldığında RETURN, RETLW veya RETFIE komutlarının sonuna kadar gider. Adım adım ilerlerken yanlışlıkla girilen alt programların sonuna gidilmesi için güzel bir olanak.

MPLab karşısında biraz 'değişik' olsa da Linux ortamında kullanım için yeterli özeliklere sahip olan gpsim'in kullanımı için kurulumdan sonra doc bölümünde .lyx belgeleri bulunuyor. Program bir terminalden gpsim komutu ile çalıştırılıyor. Gui'de File-Open menü girişi ile açılan pencereden programınızın .cod uzantılı (.hex değil) dosyası yükleniyor. Bundan sonra gui üzerindeki butonlar veya terminalden komutlar ile çalışabilirsiniz. Normal bir gui çalışması için Windows-Source penceresinin açılması gerekir. Burada programın bulunduğu konumu izleyebilirsiniz.

Windows-Ram ile açılan Register Viewer(RAM) penceresinden register değerleri incelenebilir. Değiştirme işlemi ise MPLab'tan daha kolay. Üzerine tıkladığınız registerin değerini üst bölümdeki editörden değişirebilirsiniz. Değişiklik anında geçerli oluyor.

İstediğiniz registerleri izlemek için Watch Viewer kullanılabilir. Watch girdisi için önce değişken veya register Source penceresinden üzerine tıklanarak seçilir. Sağ tıklama ile açılan menüden Select Symbol seçimi kullanıldığında eğer açık değil ise Symbol Viewer açılır. Bu işlem için yalnızca Symbol Viewer de kullanılabilir. Burada seçilen değer üzerinde sağ tıklama ile açılan menüden Add to Watch Window seçeneği kullanılarak değerin Watch Window'da sürekli izlenmesi sağlanabilir.

Breakpoint oluşturmak için ilgili satırın solunda kalan bölümün üzerinde çift tıklandığında kırmızı bir daire belirir. Aynı işlem breakpoint'i kaldırır. Satır üzerinde sağ tıklama ile açılan menüden de yararlanılabilir.

Stopwatch penceresi ile simulasyon sırasında geçen zaman izlenebilir.

Pic Programlayıcılar.

Linux ortamında birçok Pic programlayıcı bulunuyor. Oldukça geniş bilgi gnupic sitesinden elde edilebilir.

Bunların bir kısmı kolaylıkla yapılabilecek ve paralel portu veya seri portu doğrudan kullanan basit yapılı programlayıcılar. Çok ucuza imal edilebilecek türden basit devreler. Birçoğu kullanıldığı portun kendi sinyallerini enerji kaynağı olarak da kullanıyor. Bir kısmında da harici besleme kullanılıyor. Bu tür programlayıcılar ucuz olmaları açısından tercih edilebilir olsalar da, beklenmedik bir zamanda ücretli olanlardan daha pahalıya mal olabilirler. Bilgisayarın portu doğrudan kullanıldığı için herhangi bir hatada eğer şansınız varsa yalnızca port yoksa bilgisayarınızın ana kartı kullanılmaz hale gelebilir. Hele bir dizüstü bilgisayar kullanıyorsanız zararınız kat kat fazla olacaktır. Ayrıca bu tür programlayıcıların büyük çoğunluğu yalnızca belli Pic türlerini programlamak için kullanılabiliyor.

Bu tür 'ilkel' programlayıcılardan başka değişik fiyatlarda gelişmiş programlayıcılar da Linux'ta kullanılıyor. Bunlardan biri de yeni geliştirilen picprg2.


Elektronist - Linux
Pic Laboratuarı


Bu ve ilişkilendirilmiş yazılar GPL lisansına göre yayınlanmaktadır. Bütün hakları yazarına aittir. Yazarının ismi belirtilerek serbestçe dağıtılabilir ve kullanılabilir. Ancak bunların hiçbiri, hiçbir şekilde ve şartta GPL lisansı haricinde kullanılamaz. Burada yer alanları bulundurmaktan, kullanmaktan veya alıntı yapmaktan dolayı hiçbir sunucu, servis veya protokol, yazı veya içeriği üzerinde hak iddia edemez. info@elektronist.com