ARM7 mimarisi, özellikleri ve ARM/Thumb programlama

Başlatan Petek, 13 Ocak 2006, 13:23:06

mcan

Alıntı yapılan: "Petek"İlk aramada sorumun cevabını buldum.
http://www.keil.com/support/docs/3127.htm

Components, Environment and Books penceresinden, Folders/Extensions sekmesi içinde Use GNU Tools seçeneklerinde Cygnus Folder C:\Cygnus olacak (oraya kurmuş iseniz). GNU-Tool_Prefix arm-uclibc- olacak.

http://www.keil.com/support/docs/2968.htm Burada da GNU dan Keil Arm derleyicisine geçişte programda yapılacak tadilatlar anlatılıyor.

Blinky gerekli tadilatlar yapılarak gnuarm ile derlendi :)

Gnuarm ile karşılaşılan sorunlar ve cevapları burada:
http://www.keil.com/support/search.asp?Q=gnu&=Search&PG=1&PX=1&AV=
bu müthiş bişey demek başardın :D
cygnus u kurdum keilide kurdum petek hocam sendeki uvision3 v3.23 mü

neyse o ayarları yaptım ,örnek programı buraya koyarmısın

bende ki ekran görüntüsünü yoluuyorum aynı keilmi bahsetiiğimiz çünki ben lpc2100 den başka bir alet göremedim listede

benim ekran görüntüsü

Petek

Alıntı yapılan: "encryptedcode"...bu müthiş bişey demek başardın :D
cygnus u kurdum keilide kurdum petek hocam sendeki uvision3 v3.23 mü

neyse o ayarları yaptım ,örnek programı buraya koyarmısın

bende ki ekran görüntüsünü yoluuyorum aynı keilmi bahsetiiğimiz çünki ben lpc2100 den başka bir alet göremedim listede

benim ekran görüntüsü
IDE versiyonumuz aynı 3.23.
[Help->About]
IDE-Version:
µVision3 V3.23
Copyright (c) Keil Elektronik GmbH / Keil Software, Inc. 1995 - 2005

Tool Version Numbers:
Toolchain Path:    C:\Keil\ARM\BIN\
C Compiler:         ARM-ELF-GCC.Exe
Assembler:          ARM-ELF-AS.Exe
Linker/Locator:     ARM-ELF-GCC.Exe
Librarian:          ARM-ELF-LIB.Exe
Hex Converter:      ARM-ELF-OBJCOPY.Exe
CPU DLL:            SARM.DLL       V1.29
Dialog DLL:         DARMP.DLL       V1.10c
Target DLL:         BIN\UL2ARM.DLL       V1.14a
Dialog DLL:         TARMP.DLL       V1.10

Gnu versiyonumuz da aynı.

Blinky de bir sorun var, startup.s assembler dosyasını eklememişim. Ekleyince bir değişken tanımında hata verdi. Çözebilirsem ekleyeceğim. Gnuchess i derledim. Onunda linker script dosyası eksikmiş. Şimdi ona bakıyordum... Blinky Startup.s dosyasını Gnuchess inkinden aldım. Sorun ne onu bulmaya çalışıyorum.

2100 yazan yerin hemen solundaki ikona bas, devices sekmesinde Philipsi bul, işlemciler orada...
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

mcan

petek hocam bunda compile tuşunu bulamadım sadece start/stop debutg sension var onada basında key yok evalutin versiyon diyor

ayar görüntüsü

Petek

Project menüsünden open project ile uzantısı .uv2 olan projeleri açıyoruz. Yeni proje de oradan başlatılıyor (new project) Varolan bir projeji açtıktan sonra yine aynı menüde Buil target ve rebuild all target gibi seçenekler var. Derleme işini onlar hallediyor.

GNU Tools Prefix yerine yukarıda bir yerde yazdığımı yazman gerekiyor.

.elf  dosyasını açmışsın. O piclerdeki .coff eşdeğeri bir şey. ISIS te gnuchess için gnuchess.elf dosyası işlemciye tanıtılmış.

İşlemcilere göre örnek programlar. Linkimizde bulunsun.
http://www.keil.com/download/list/arm.htm
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

microcozmoz

Sevgili Petek,

İsis 6.81 versiyonu nereden indirdin acaba??? Emuleden aratıyorum sadece 1 kişide buldu...İndirmek bayağı bir zaman alacak...

Şimdiden sağol
"Bütün bu şerâitten daha elîm ve daha vahim olmak üzere, memleketin dahilinde, iktidara sahip olanlar gaflet ve dalâlet ve hattâ hıyanet içinde bulunabilirler."

Petek

Alıntı yapılan: "Petek"Blinky de bir sorun var, startup.s assembler dosyasını eklememişim. Ekleyince bir değişken tanımında hata verdi. Çözebilirsem ekleyeceğim. Gnuchess i derledim. Onunda linker script dosyası eksikmiş. Şimdi ona bakıyordum... Blinky Startup.s dosyasını Gnuchess inkinden aldım. Sorun ne onu bulmaya çalışıyorum...
Hata verdiği değişkeni tanımlayan bir linker scripti eksik olduğunu saatler sonra keşfettim 8) Bu acaba Keil klasörü altında varmıdır diye windowsa arattırıken bir sürü linker scripti çıktı. Keil\ARM\GNU\Examples kalsöründe :( Saatlerce aradığımız şeyler orada hazırmış. Gnuarm ile de çok güzel derledi ve Keil kendisi simule etti. :) Sevindirici bir haber daha, ISIS 6.81 demo versiyonundaki satranc devresi de simulasyonu yaptı 8) Tek problem ISIS ta C source kodu çıkmadı. Startup assembler kodu çıktı. Neyse onun da neden çıkmadığını anlarız inşaallah.
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

Petek

Alıntı yapılan: "microcozmoz"Sevgili Petek,

İsis 6.81 versiyonu nereden indirdin acaba??? Emuleden aratıyorum sadece 1 kişide buldu...İndirmek bayağı bir zaman alacak...

Şimdiden sağol

Hocam Sonsivri'de birisi link vermiş 6.9 diye ama 6.81 çıktı. Ben sonsivriden Bulduğum linki vereyim:

Proteus 6.9 from the vendor website (demo version) <- Bu 6.81 çıktı.
hxxp://www.labcenter-electronics.com/download/prodemo.exe
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

Petek

Alıntı yapılan: "Petek".... Gnuarm ile de çok güzel derledi ve Keil kendisi simule etti. :) Sevindirici bir haber daha, ISIS 6.81 demo versiyonundaki satranc devresi de simulasyonu yaptı 8) Tek problem ISIS ta C source kodu çıkmadı. Startup assembler kodu çıktı...

http://www.hemenpaylas.com/download/82700/Blinky.zip.html

Bu dosyadaki Blinky->Obj->Blinky.elf dosyasını Proteus 6.81 (ve üstü) ISIS örneklerindeki Gnuchess.dsn dosyasındaki LPC2124 e tanıtılan gnuchess.elf yerine yazacaksınız. Simulasyonu çalıştırdığınızda terminalin bağlı olduğu portta kara şimşek çıkıyor :)

Program LPC2106 ya göre yazılmış. LPC2124 te de çalışıyor. İsterseniz include yanındaki dosyayı LPC21xx.H yapın ve IODIR, IOSET ve IOCLR komutlarının yanına 1 yazın (IODIR1 gibi) diğer portta aynı işlemleri yapsın.
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

mcan

şimdi bi toparlayalım petek hocam senin hızına yetişemedim
1- bu adresten keil ve gcc yi indiriyoruz keil  ve gcc

kelin in görüntüsü ekran görünümü

2-
Alıntı YapComponents, Environment and Books penceresinden, Folders/Extensions sekmesi içinde Use GNU Tools seçeneklerinde Cygnus Folder C:\Cygnus olacak (oraya kurmuş iseniz). GNU-Tool_Prefix arm-uclibc- olacak.
yani GNU-Tool_Prefix  yazan yere arm-uclibc-  yazılacak

ayar görüntüsü

3-Project menüsünden open project ile uzantısı .uv2 olan projeleri açıyoruz. Yeni proje de oradan başlatılıyor (new project) Varolan bir projeji açtıktan sonra yine aynı menüde Buil target ve rebuild all target gibi seçenekler var. Derleme işini onlar hallediyor.

petek hocam bunları yapınca çalışması gerekiyor değil mi ?eklemek itediğin bir yer varmı ben şu anda çalıştıramadım hala uğraşıyorum
bu yazıyor bende f7 ye basınca
Alıntı YapBuild target 'LPC2106'
linking...
/cygdrive/c/Cygnus/Arm-Tools/Bin/../lib/gcc-lib/arm-thumb-elf/3.3.1/../../../../arm-thumb-elf/bin/ld: warning: cannot find entry symbol _start; defaulting to 00008000
startup.o(.text+0xd8):/cygdrive/c/Downloads/arm7/example/Blinky/Startup.s:162: undefined reference to `_start'
startup.o(.text+0xe4):/cygdrive/c/Downloads/arm7/example/Blinky/Startup.s:162: undefined reference to `_data'
collect2: ld returned 1 exit status
Target not created


bu arada kara şimşek muhteşem olmuş tebrikler  :D  :D

Petek

Alıntı yapılan: "encryptedcode"...
1- bu adresten keil ve gcc yi indiriyoruz keil  ve gcc
kelin in görüntüsü ekran görünümü
Ben Emule ile indirdim. Sanıyorum crack halde geldi. Yinede bir bakarım kırmak için içinde birşeyler çıkarsa göndereyim. uVision3 IDE versiyonumuz tutuyor. O nedenle ekranı göndermeme gerek yok.
Alıntı Yap
2-
Alıntı YapComponents, Environment and Books penceresinden, Folders/Extensions sekmesi içinde Use GNU Tools seçeneklerinde Cygnus Folder C:\Cygnus olacak (oraya kurmuş iseniz). GNU-Tool_Prefix arm-uclibc- olacak.
yani GNU-Tool_Prefix  yazan yere arm-uclibc-  yazılacak

ayar görüntüsü
Evet ama sizin resmini gönderdiğiniz öyle değil !
Bendeki böyle:
http://rapidshare.de/files/11045293/gnuarm_prefix.JPG.html

Gnuarmı mutlaka çalıştırmak lazım yoksa Keilin ürettiği kodları ISIS çalıştırmıyor. Gerçi Keilin kendi simulatörü de fena değil. Seri port penceresi açıyor (view->Serial#1), pinleri gösteriyor,...

Alıntı Yap
3-Project menüsünden open project ile uzantısı .uv2 olan projeleri açıyoruz. Yeni proje de oradan başlatılıyor (new project) Varolan bir projeji açtıktan sonra yine aynı menüde Buil target ve rebuild all target gibi seçenekler var. Derleme işini onlar hallediyor.

petek hocam bunları yapınca çalışması gerekiyor değil mi ?eklemek itediğin bir yer varmı ben şu anda çalıştıramadım hala uğraşıyorum
bu yazıyor bende f7 ye basınca
Alıntı YapBuild target 'LPC2106'
linking...
/cygdrive/c/Cygnus/Arm-Tools/Bin/../lib/gcc-lib/arm-thumb-elf/3.3.1/../../../../arm-thumb-elf/bin/ld: warning: cannot find entry symbol _start; defaulting to 00008000
startup.o(.text+0xd8):/cygdrive/c/Downloads/arm7/example/Blinky/Startup.s:162: undefined reference to `_start'
startup.o(.text+0xe4):/cygdrive/c/Downloads/arm7/example/Blinky/Startup.s:162: undefined reference to `_data'
collect2: ld returned 1 exit status
Target not created

bu arada kara şimşek muhteşem olmuş tebrikler  :D  :D

Eklemek istediğim pek bir şey yok. Hata mesajın linker scriptinin olmamasından kaynaklanabilir. Gerçi gönderdiğim şekilde çalışması lazım. Yinede Target.ld dosyasına bak. Blinky klasörü altında olması lazım. Target özelliklerine geç (LPC2106 yazan yerin solundaki ikona tıklayınca da geliyor) linker sekmesinde Linker Script File yazılı yerde .\Target.ld yazıyor olması lazım. Bu şekilde derliyor.

Karaşimşeğin oynayan kırmızı gözünü 3 e çıkardım :)
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

CaFFeiNe

hiç keil kullanmamış olmama rağmen sayenizde bir giriş yaptım ve karaşimşeği çalıştırdım :) teşekkürler
ilk bakıştada simülasyon özelliği hoşuma gitti diyebilirim



elimde ADuC7026 olduğu için verdiğiniz keil örnekleri linkinden DAC örneğini indirip onuda simüle ediverdim çok hoş oldu :)



buda ADuC7026 nın özellikleri LPC21XX e göre özellik bakımından az ama Analog Devices'ın sample göndermesi sayesinde elimde beleşten 2 adet var :) umarım birgün deneme kartınıda yapabilirim :)



neyse nihayetinde bir ucundan ARM ada giriş yaptık hepinize teşekkürler

(resimler biraz fazla yer kapladı belki link versem daha iyi olurdu kusura bakmayın artık heyecanıma verin)

Petek

Bendeki 2.42 Versiyonu içerisinde şöyle küçük bir exe dosyası var. Bir bakın belki bir işe yarıyordur.

http://rapidshare.de/files/11046307/Keil_ARM_v2.42.zip.html
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

Petek

CaFFeiNe  Hocam, ben de acaba kendi kendimize mi konuşup duruyoruz diye tereddüte düşüyordum. Arada katkı sağlayan arkadaşları görünce hoşuma gitti açıkçası. ADu7026 dan ben de 2 tane numune istemiştim onları bir şekilde değerlendirmeyi düşünüyorum. O simulasyona baktım ama grafiğin nasıl çıktığını göremedim. Bir tarif alabilirmiyiz. En azından Keil simulatörü hakkında bilgi sahibi oluruz. Ben kabaca çalıştırma, adımadım çalıştırma breakpoint koyma ve kaldırmadan başka bir şeyini kullanmadım Keil simulatörünün :)
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

CaFFeiNe

@petek

dediğim gibi bugüne kadar hiç keil kullanmamıştım ADuC örneğini indirip build target ile derleyip debugger ı çalıştırıp Run dedim karşıma çıkıverdi :)

kullandığım keil, uVision, ARM derleyici versiyonu



debugger ı açarken verdiği uyarı



gördüğünüz gibi lisanslı gibi gözüküyor ama değil keilden cd istemiştim gelen cd den kurdum
ben bunu nasıl kırabilirim? teşekkürler

Petek

Bununla uğraşma, daha yeni versiyonu var. Emuleden birkaç saatte indirmiştim.

Keil ARM kelimelerini aratırsan "Keil ARM v2.42.rar"  isimli 20.903 MB lık bir dosya çıkacak (çok çıkacak ta bir tane de böyle çıkacak :) Ben bunu kullanıyorum.

IDE-Version:
µVision3 V3.23
Copyright (c) Keil Elektronik GmbH / Keil Software, Inc. 1995 - 2005

Tool Version Numbers:
Toolchain Path:    C:\Keil\ARM\BIN\
C Compiler:         CA.Exe       V2.42
Assembler:          AA.Exe       V2.40b
Linker/Locator:     LA.Exe       V2.42
Librarian:          LIBA.Exe       V4.26
Hex Converter:      OHA.Exe       V2.10
CPU DLL:            SARM.DLL       V1.29
Dialog DLL:         DARMP.DLL       V1.10c
Target DLL:         BIN\UL2ARM.DLL       V1.14a
Dialog DLL:         TARMP.DLL       V1.10

Sizin büyük resimli mesajınızdan sonra gönderdiğim mesajdaki dosyaya bakabildiniz mi? Emuleden indirdiğim dosyada iki tane exe dosyası vardı, bu ikincisi idi.
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein