CM3 Thumb/Arm modu

Başlatan z, 22 Ağustos 2016, 03:44:06

z

CM3 işlemciler sadece Thumb modda çalışıyor.

Keil'de debug modda xPSR registerinde T bitini 0 yaparsak işlemci ARM moda geçtiği için derhal "Hard Fault"a düşüyor.

EPSR bitleri 0 olarak okunurken ve bu registere yazma işlemi işlemci tarafından iptal edilirken Keil'de debug modunda nasıl oluyor da XPSR'deki T bitini elle 0 yapabiliyoruz.

Kail, T bitini xPSR registerinden değil de daha dolambaçlı yollardan mı sıfırlıyor?

Edit:

Buldum buldum.

Keil XPSR değerini MRS ile değil stacktan okuyor.  Zaten XPSR'de EPSR bitlerine MSR ile de müdahale edilemiyor.

Debug modunda Breakpoint ile durdurulduğunda zaten PSR stacka atılmış oluyor. Keil XPSR'de klavyeden elle yapılan değişiklikleri MSR ile değil stactaki PSR değerini değiştirerek yapıyor.

Gerçektende int rutininde durduğum işlemcide stacktaki PSR de T bitini 0 yaparsam işlemci interrupttan çıkarken faulta düşüyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Erhan YILMAZ

Hangi interruptan çıkarken?

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Erhan YILMAZ

Anladım hocam. Aslında bayada zaman oldu armdan yeni bir çekirdek bekliyorum ben.

yamak

Hocam M7 daha yeni çıktı sayılır

z

Yalnız bu EPSR registerinden kullanıcılara bahsedilmesinin sebebini anlamadım.

Okuduğum zaman sıfır okuyorsam, yazmaya kalktığımda işlemci yazmıyorsa ne işime yarayacak bu register.

Tamam MCU kullanıyor fakat bu registere erişemiyorsam neden bize bu registerden bahsediyorsunuz ki?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Erhan YILMAZ

@yamak Şöyle iot low power tabanlı bişeylerden bahsediyorum. Bi kerameti olacağından değil, piyasayı pompalamak için. Cortex M4+, iot edition gibi falan.

@z hocam bahsetmemesi doğal bi durum bence. Bir sürü örneği var, bu çiplerin içindeki shadow registerlar falan, hatta mcularda ki usart birimlerinde falan shift registerlar var bildiğiniz gibi. Blok şemada gösteriliyor ama kullanıcı erişimi, adresi falan yok. Ben çok yadırgamadım açıkcası.

z

Bahsetmese daha iyi olurdu. Ben de bunu söylüyorum işte. Bahsetmiş.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Erhan YILMAZ

Bence en iyisi olanı olduğu gibi nakletmek hocam. Koymasan bu seferde eminim birileri çıkar niye niye koymamışlar diye söylenirdi.