Keil kurulum ve kullanımı hakkında tartışmalar

Başlatan bunalmis, 15 Ekim 2011, 17:51:51

dombilik

Hocam sizin çalışma dosyanızda hata vermedi..
Bildiklerini kime miras bıraktın?kimseyemi? O zaman bildiklerinin ne önemi kalır. ******** /////////// ******** PROTON-ASM PROTEUS 7.4 SP3 EAGLE 5.40

MC_Skywalker

sizn dosya sorunsuz.

hızlı bir bakış attım.

Listing kısmında
Assembler listin ve Cpreprecessor listing bende işaretli değildi

Linker kısmında
birde Make RW Sections Position Independent işaretli

z

Ilginc.

Bende Linkerde sadece Use Memory Layout from Target Dialog ve Report might fail condition as error secili.

Zaten use memory layout from target dialog secili olmazsa ox8000000 u 0x0 yapin dedigim yeri 0 yapsanizda ise yaramaz cunku adresleri ordan degil Linker menuden alir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ErsinErce

16 Ekim 2011, 02:11:09 #18 Son düzenlenme: 16 Ekim 2011, 19:06:50 ErsinErce
isteyen olursa çalışan Debug.ini dosya içeriği;

LOAD %L INCREMENTAL
MAP 0x00000000
0x0000000F
MAP 0x40000000
0x400FFFFF
_WDWORD
(0x00000000,_RDWORD(0x08000000));
_WDWORD(0x00000004,_RDWORD(0x08000004));
SP _RDWORD(0x08000000);
	
	
// Setup Stack Pointer
PC _RDWORD(0x08000004);
	
	
// Setup Program Counter
xPSR 0x01000000;
	
	
	
// Set flag "T"


dombilik

@ErsinErce arkadaşımın verdiği ini ile benim eski proje hata vermedi.
Bildiklerini kime miras bıraktın?kimseyemi? O zaman bildiklerinin ne önemi kalır. ******** /////////// ******** PROTON-ASM PROTEUS 7.4 SP3 EAGLE 5.40

z

Evet ErsinErce nin ini cozumu daha iyi oldu. Boylece 0x8000000 adresini 0 yapmamiz gerekmiyor.

Yukaridaki kodu Debug.ini olarak Deneme klasorune atin.

Debug menude Use simulator bolumundeki initialize File kismina ... tiklayip Debug.ini yi secin.

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

ErsinErce

Üst soldaki reset butonuna basarsanız debug konsoluna tekrar Setup(); yazmanız gerekiyor yalnız

dombilik

Evet.Reset leyince tekrar çalışmıyor.Özür dilerim ama
debug konsolundan kastınızı anlayamadım.KEIL e biraz yabancıyımda.
Fakat Debug modundan çıkıp tekrar debug moduna geçilirsede çalışıyor.
Bildiklerini kime miras bıraktın?kimseyemi? O zaman bildiklerinin ne önemi kalır. ******** /////////// ******** PROTON-ASM PROTEUS 7.4 SP3 EAGLE 5.40

z

16 Ekim 2011, 02:38:52 #23 Son düzenlenme: 16 Ekim 2011, 02:53:14 bunalmis
Hocam debug.ini için bu bilgiyi nerden buldun.

Her resetten sonra setup(); komutu girmek hoş değil. Buna da bir çözüm bulsak.

Not: Kart ile çalışırken debug.ini ye ihtiyacımız kalmıyor.

Debug Console: Keil de debug ekranında en altta solda > yazan bir yer var. Buraya klavyeyle komut vs yazılabiliyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ErsinErce

Komutları aratınca http://forum.easyelectronics.ru/viewtopic.php?f=7&t=4800&start=0 adresinden çıktı bilgi
Setup() olayına çözüm için hâla araştırma içindeyim  :(


Debug Konsolu;

dombilik

Teşekkürler.Hallettim.Bana müsade.Sabah işe gidicemde :-[
Bildiklerini kime miras bıraktın?kimseyemi? O zaman bildiklerinin ne önemi kalır. ******** /////////// ******** PROTON-ASM PROTEUS 7.4 SP3 EAGLE 5.40

z

16 Ekim 2011, 04:52:28 #26 Son düzenlenme: 16 Ekim 2011, 18:51:58 bunalmis
ErsinErce'nin verdigi fikirler dogrultusunda Turkish bir cozum oldu fakat temel orneklerde sorun yasatmayacak gibi gorunuyor.

Debug.ini dosyasinin icine asagidaki kodlari yazin.

FUNC void Setup (void) {
SP = _RDWORD(0x08000000); // Setup Stack Pointer
PC = _RDWORD(0x08000004); // Setup Program Counter
_WDWORD(0xE000ED08, 0x08000000); // Setup Vector Table Offset Register
xPSR = 0x01000000; // Set flag "T"
}
load %L incremental
MAP 0x00000000, 0x000000FF READ WRITE;       
MAP 0x40000000, 0x400FFFFF READ WRITE;
_WDWORD(0x00000000,_RDWORD(0x08000000));
_WDWORD(0x00000004,_RDWORD(0x08000004)) READ WRITE;
Setup();
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ErsinErce

16 Ekim 2011, 06:18:55 #27 Son düzenlenme: 16 Ekim 2011, 19:09:04 ErsinErce
Ortaya çıkan son Debug.ini dosyamız;
LOAD %L INCREMENTAL
MAP 0x00000000
0x0000000F
MAP 0x40000000
0x400FFFFF
_WDWORD
(0x00000000,_RDWORD(0x08000000));
_WDWORD(0x00000004,_RDWORD(0x08000004));
SP _RDWORD(0x08000000);
	
	
// Setup Stack Pointer
PC _RDWORD(0x08000004);
	
	
// Setup Program Counter
xPSR 0x01000000;
	
	
	
// Set flag "T"


Edit: Sorunsuz kullanılabilecek en son hali

MC_Skywalker

16 Ekim 2011, 13:48:50 #28 Son düzenlenme: 16 Ekim 2011, 14:06:56 MC_Skywalker
Sanırım şu aşağıdaki not birşeyler anlatıyor. Ama Cortex çekirdeğini bilmediğim için anlamadım


Alıntı
Data and debug accesses to Code memory space, 0x00000000 to 0x1FFFFFFF, are performed over this 32-bit AHB-Lite bus. Core data accesses have a higher priority than debug accesses on this bus. This means that debug accesses are waited until core accesses have completed when there are simultaneous core and debug access to this bus.

Control logic in this interface converts unaligned data and debug accesses into two or three aligned accesses, depending on the size and alignment of the unaligned access. This stalls any subsequent data or debug access until the unaligned access has completed.


http://infocenter.arm.com/help/topic/com.arm.doc.ddi0439c/DDI0439C_cortex_m4_r0p1_trm.pdf

z

C ve Keil'le hic ugrasmamis, daha once makinesine Keil dahi yuklememis arkadaslardan https://www.picproje.org/index.php/topic,35719.0.html den yola cikarak
makinesine Keil yukleyip linkteki anlatimlari tek tek uygulayan varmi?


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

Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.