MSP430 Programlama 2.Ders 16 Bit RISC CPU

advertisement
MSP430 Programlama
2.Ders
16 Bit RISC CPU
Muhammed Fatih İNANÇ
[email protected]
Özellikler





Stack pointer, Program counter ve Status
saklayıcılarını erişebilme
16 bit adresleme ile belleğe daha az erişim
gereksinimi
7 adet adresleme modu
Toplam 27 adet komut
16 bit olmasına rağmen byte ya da word
türünde veri adresleyebilme
Fetch

Al-getir mekanizması, belleğe erişim
Örnek : MOV AL,0x33




Komut 1 byte program belleği için, 1 byte da veri
belleğine erişim için toplam 2 byte yer kaplar
Bu komutun 16 lık tabandaki karşılığı = B433 tür
B4 = MOV AL (Opcode)
33 = 0x33
Veri Yolunun Genişliği





Veri yolu 8, 16 veya 32 bit olabilir.
Bu birimin genişliği bir seferde işlenebilecek
sayının maksimum büyüklüğünü belirler
8 bit = 255
16 bit = 65,535
32 bit = 4,294,967,295
Örnek
●
●
●
1400 ve 53 sayılarını toplayalım
1400 = 0x0578 (2 byte)
53 = 0x35 (1 byte)
8 bit;
1400 sayısı iki farklı bellek hanesine atılıp iki
farklı farklı sayı da 8 bit olarak toplanacak ve
sonra düşük değerlikli byte bölgesine 53
sayısı eklenecek...
Örnek(Devam)
Örnek(Devam)
●
●
●
●
16 bit ;
MOV.W #0x0578, R4
ADD.W #0x35, R4
Eğer büyük sayılarla uğraşıyorsak ve 8 bit
mikrodenetleyici kullanıyorsak bu bize hız
kaybettirir.
MSP430 CPU Saklayıcıları
●
●
12 adet working register
R0-R3 arası farklı amaçlar için kullanılıyor.
Program Counter – R0
●
●
●
16 Bitlik 64kB adres alanına sahip
Mikrodenetleyicinin bellekte hangi komutu
işleyeceğinin adresini tutan saklayıcıdır.
Bu adresler MSP430G2231
mikrodenetleyicisinde 2 kb lık program hafıza
alanını gösterir.
Stack Pointer – R1
●
●
●
Stack pointer, mikrodenetleyicinin herhangi
bir kesme veya altprograma dallanma anında
Program Counter(PC) ın o anki
konumunun(adres) kaydedildiği alandır.
Altprogram veya kesme sonunda buradaki
adrese dallanılarak mikrodenetleyici
çalışmasına kaldığı yerden devam eder.
Bellekte 0x280 alanından itibaren adreslenir
ve LIFO(Son giren ilk çıkar) kuralıyla çalışır.
Stack Pointer – R1(Devam)
Status Register – R2
●
●
●
●
●
●
●
●
C(Carry) : Elde bayrağı
Z(Zero) : Sıfır bayrağı
N(Negative) : Negatif bayrağı
GIE(General Interrupts Enable) : Genel kesmeleri aktif
etme biti
Düşük
OSC OFF :LFXT1 kristali devre dışı bırakılır
Güç
SCG0 : DCOCLK devre dışı
Modları için
Kullanılan
SCG1 : SMCLK devre dışı
bitler
V(Overflow) : Taşma bayrağı
Constant Generators CG1-CG2
R2 – R3
●
●
●
Bu birimin asıl amacı aritmetik işlemlerde çok
kullanılan bazı sayıları bellek erişim gereksinimi
olmadan doğrudan saklayıcı içerisinden almalarını
sağlamaktır.
Bunun için R2 ve R3 saklayıcıları kullanılır.
Bu işlem C derleyicisi içerisinde otomatik olarak
yapılmaktadır.(Optimizasyon yüksek seviyede ise)
General Purpose Registers R4 – R15
●
●
●
Genel kullanım amaçlı saklayıcılardır.
16 bit
Uzunlukları 2 byte olmasına rağmen byte ya
da word erişimler kolaylıkla yapılabilir.
Download