Keil Thumb2 kodlarini derleyebiliyormu?

Başlatan bunalmis, 16 Kasım 2010, 15:55:49

z

Keil Thumb kodlari derleyebiliyor fakat thumb2 kodlarini derleyebiliyormu?

Bazi Cortex M3 komutlarini kullanmaya kalktigimda hata aliyorum.

LDRD   R1,R2,[R0,#4]

Yukaridaki satir,

MyAsm.s( 8 ): error: A1816E: Unknown opcode 'LDRD' in CODE16, but exists in THUMB

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

z

Thumb direktifi yerine Thumbx yazinca ayni program bu kez de

MyAsm.s(5): error: A1759E: Specified processor or architecture does not support Thumb-2EE instructions

hatasi vermeye basladi.

Elimdeki cip cortex m3 sulalesinden ve dokumanlari thumb2 komutlarini icerdigini soyluyor.

Cipi ureten firmanin Cortex M3 komut setini anlatan dokumaninda LDRD komutu mevcut.

Yukaridaki hata mesaji ise kafa karistirici turden.

Acaba chipi yapanlar Thumb2 komutlarinin bir kismini mi kullandilar. Kafam karisti.

Zaten arm ve keil i de yeni kullanmaya basladim sayilir.




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

z

Bu arada isler iyice kizisti.

Thum vardi. Thumb2 cikti. Birde Thumb2ee varmis.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

SpeedyX

LDRD komutu v5TE + içinmiş. Cortex M3 ise v7-M olarak geçiyor. v5TE + adlı mimari T-2EE yi de içinde barındırıyor sanırım, ondan 2ee hatası veriyor.
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489b/CIHDGFEG.html
http://www.stanford.edu/class/ee282/project_spr10/ARM_assembler_guide.pdf

z

TI Stellaris 9000 serisinden bir kit aldim.

Bu cip Cortex M3 serisi olarak geciyor.

TI'in kendi Cortex M3 ailesinin  komut setini anlatan dokumaninda LDRD gorunuyor.

TI dokumanlarda ve ciplerde errata yapmakla unlu.

Fakat karsilastigim durum dokuman hatasindan mi yoksa bir baska nedenden mi bilmiyorum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Sorun anlasildi.

Startup kodunda zaten thumb drektifi var.

Ben projeme 2. bir asm dosyasi daha ekledim ve bunun icine deneme kodlarimi yaziyorum.

Derlendiginde hem startup hemde diger dosyam derleniyor.

Kendi kodlarimin basina nasil olsa startupda var dusuncesiyle thumb kodunu koymadim.

Fakat uyariniz uzerine kendi kodlarimin basina thumbx koydum ve olmamisti.

Simdi kendi kodlarimin da basina thumb direktifi ekledim ve sorun kalmadi.

(Bu tecrubeden sonra her bir dosya nin tepesinde thumb direktifi gerekiyor diye anladim)
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Aslinda bu karsilastigim sorunun Keil'in hatasi diye dusunuyorum.

Derleyiciye kullanilan islemcinin ne oldugunu soyledim.

Dolayisi ile derleyici yazacagim kodlarin Cortex M3 icin oldugunu biliyor.

Bundan dolayi da ARM modunu degil Thumb2 modunu kullanmasi gerektigini de biliyor.

Bana bir daha Thumb2 modunda calisip calismayacagimi direktif ile tanimlatmasi sacma geldi.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Demekki MDK 4.10 da bu durum sozkonusu ve ileri versiyonlarda farkina varip duzeltmisler.

Acemiligim nedeniyle gozumden kacmis bir durum da olabilir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com