RAM üzerinden komut işletme

Başlatan emrahmrcn, 29 Temmuz 2012, 15:09:41

emrahmrcn

Cortex M serisi üzerinde RAM e yüklediğim bir komut dizisini nasıl calistirabilirim , flash daki kodu ram e kopyalayıp daha sonra nasıl oradan işleteceğim ?
Benim yaradılışımda bir ayrıcalık varsa o da TÜRK olmamdır. M.K ATATÜRK

fatih6761

Function Pointerları araştırabilirsin.Komutlarını .RAMda byte dizisi şeklinde sakla.Vikipedide güzel örnekler var...
http://en.wikipedia.org/wiki/Function_pointer

emrahmrcn

Cevaplar için teşekkürler,

Ben yapmak istedğimi biraz daha açayım. Flash hafızamda veya SDCard üzerinde ki istedğim kodları alıp RAM de istediğim bir adrese yükleyeceğim , daha sonra işlemciye o noktanın adresini verip (PC) kodu işletmeye çalışacağım.
Benim yaradılışımda bir ayrıcalık varsa o da TÜRK olmamdır. M.K ATATÜRK

kokopelli

Ozellikle ARM icin bir farkı var mıdır bilmiyorum ama normalde bunu Fatih Bey'in de dediği gibi function pointerler ile sorunsuz yapabiliyor olmanız lazım. Küçük MCUlarda PC'yi o kopyalanmis alanın başına almak yeterli olur. Tabi dönülecek yer önemliyse bir de link register'e dönülecek adresi koymak gerekir. Function pointerlerin yaptıgı da aynı mekanizmanın otomatik hali.

fatih6761

@gerbay dediğiniz gibi kodların normal şartlarda abstract adresler içermemesi gerekiyor.Ama metod adresleri önceden konumlandırılmış ise kullanılabilir.Adreslerin relative olmasında fayda var.En azından tanımlanmış adrese yönlenmeli.