PIC PCLATH, Stack, Heap, Stack Pointer?

Başlatan baran123, 15 Ekim 2016, 00:17:55

baran123

İyi akşamlar,
Son zamanlarda ilgimi çeken konulardan biri olan mikroişlemci mimarilerini araştırıyorum.
Basit olarak mantığı kavramak için PIC üzerinden gidiyorum.
Kullandığım MCU PIC12F1822
Datasheet burada : http://ww1.microchip.com/downloads/en/DeviceDoc/41413C.pdf
İlk olarak sormak istediğim PCLATH tam olarak nedir ? Ne işe yarar ?
Stack alanı ve Heap alanı Memory içinde nasıl konumlanır ? Bunlar sanal mıdır ? yoksa ayrı birer fiziksek bölge olarak mı bulunurlar ?
Stack alanı ve Stack pointer'a erişim mümkün müdür ?
Başlangıç için bu sorular yeterli sanırım :)

E_Kk

Mikrodenetleyici mimarisini öğrenmek istiyorsan önce saf 8051 mimarisini öğrenmeni tavsiye ederim. 8051 temel ve basit bir mimari, kavramları genel geçer kavramlar (picde herzaman öyle olmayabiliyor). Bir simülatörde veya keilde de assembly yazarak registerları takip edersin. Birde mimariyi öğrenirken elle yazarak çizerek öğren hatta ele kağıda asm kod bile yazabilirsin. Bir kere temel mimariyi öğrendikten sonra bütün mimarilere kolaylıkla uyum sağlarsın.
"Meselâ: Hendese bir fendir. Onun hakikatı ve nokta-i müntehası, Cenab-ı Hakk'ın İsm-i Adl ve Mukaddir'ine yetişip, hendese âyinesinde o ismin hakîmane cilvelerini haşmetiyle müşahede etmektir."Sözler

RaMu

Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

FxDev

Mimari olarak Risc mimariyi ele al. Von Nouman ve Harvard olarak da arat.
Forumda bazı bağnaz kişiler tarafından engellenip, atıldım. Tüm bu bağnaz kişilere rağmen Atatürkçülüğü sonuna kadar savunacağım; onlar da bağnazlıklarında boğulacaklar. Haberleşme için: info[at]firatdeveci.com / ©firatdeveci.com - ße Different Everytime!

baran123

@RaMu eline koluna sağlık o kadar güzel yazmışsın ki şimdi aydınlandım. :)
@E_Kk, FxDev bu yapılarıda derste görüyoruz. Ekstradan araştırıyorum.
Hatta bir tane Z80 yolda. Bir gelsin de onunla da bir şeyler yaparız.

RaMu

Stack da basit aslında,
program CALL ile bir yere gideceği zaman
geri dönebilmek için şuan olduğu yeri aklında tutması lazım,
işte Stack bu geri dönüş adres-adreslerini tutuyor.

Senin mcu da stack regısterlarının sayısı ve yeri sabit 16 tane,
buda demek oluyorki iç içe 16 dan fazla Call kullanılamaz, stack taşar.

STKPTR stack pointer, TOSH TOSL regısterlarının değerini değiştirip
programın akışını değiştirebilirsin,
misal kesmeden çıkarken programın başına dönebilirsin, vb. ...

Microchip in DsPic gibi mcu larında stack alanı
kullanıcı RAM inden ne kadar kaldıysa orası ve o kadar oluyor ;)
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

baran123

Tamamdır şimdi anladım.
Bunları uygulama ile pekiştireyim ;)
Çok teşekkürler.