Cortex M çekirdeği ilk güç uygulandığında nasıl davranır?

Başlatan MC_Skywalker, 16 Ekim 2011, 10:02:11

MC_Skywalker

İlk güç uygulandığında CortexM çekirdeği nasıl davranır.

Yani;
Self test
PC (Program Counter)nın  kurlulduğu ilk adres vb.
x86 larda self test sonrası çekirde FFF0 gibi bir adrese gider ordan microcode ulaşır ve harici epromdaki BIOS un adresin PC yükler daha sonra bu adresi adres bu aktarır ...
ve çalışma başlar (umarı doğru hatırlıyorumdur son 1992 8080 i incelemiştim)

z

0x00000004 nolu adresden Reset vektoru okunur ve o adrese dallanilir. Self test falan yok startupda ne varsa o.

Birden fazla boot secenekli ciplerde durum biraz farkli. Mesela STM32F407 de flash kodlarda reset vektoru 0x8000004 de. Fakat hangi boot opsiyonu secili ise ona iliskin olarak adresler remap ediliyor.

Mesela, eger flashdan boot secili ise STMF407 de vektorlerimiz 0x08000000 de. Fakat Orjinal ARM vektorlerinin adresi  0x00000000. Bu sorun vektor ofset adres registerine ofset deger yazilarak asiliyor ve bu startup kodlarinda ele aliniyor. (Startupin cagirdigi SystemInit kodlarinda) Bu olaylar firmadan  firmaya, islemciden islemciye degisiyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com