IAR ile KEIL arasındaki fark nedir?

Başlatan powerelectronic, 21 Temmuz 2014, 04:17:36

powerelectronic

IAR da boş bir main dosyasını STM32F100 içersine yükleyerek debug edebiliyorum. Sol taraf yani dosyalarımın gözüktüğü tarafta sadece main dosyam var. Ama keilde bunu yapamıyorum sürekli start_up dosyalarını ve cmsis dosyalarını yüklemem gerekiyor. IAR bunu arka planda yapıyor ben mi görmüyorum yoksa bu iki program birbirinden farklı işler için mi? :-\
Çalışan kazanır.

powerelectronic

Çalışan kazanır.

X-Fi

Keil proje ağacı dışında biyerde *.c dosyası aramaz. EWARM da ise proje ağacına ekli olmasa bile C/C++ altında Processor directiores kısmında $PROJ_DIR$ ile gösterilmiş olduğunuz header adreslerin içerisinde c dosya varmı diye bakar varsa fonksiyonları bulur derler.

Aradığınız fark bu ise evet farklı ama sorunuzdan tam olarak ne sorduğunuz anlaşılmıyor. Keil bu konuda yetersiz olduğu için bizi fazladan uğraştırmıyor ikisininde kendine göre bir proje çağırma şekli var.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

powerelectronic

Alıntı yapılan: X-Fi - 23 Temmuz 2014, 16:48:20
Keil proje ağacı dışında biyerde *.c dosyası aramaz. EWARM da ise proje ağacına ekli olmasa bile C/C++ altında Processor directiores kısmında $PROJ_DIR$ ile gösterilmiş olduğunuz header adreslerin içerisinde c dosya varmı diye bakar varsa fonksiyonları bulur derler.

Aradığınız fark bu ise evet farklı ama sorunuzdan tam olarak ne sorduğunuz anlaşılmıyor. Keil bu konuda yetersiz olduğu için bizi fazladan uğraştırmıyor ikisininde kendine göre bir proje çağırma şekli var.
Cevap için teşekkür ederim. Keilin proje oluştumasındaki adımları anlamadım sanırım. Fotoğraflar ile konuyu detaylı anlatmaya çalışayım.


Şimdi IAR programında ben yukarıdaki resimde bulunan programı sadece chip seçip debug atabiliyorum ve stm32f100 içerisindeki çalışmasını izleyebiliyorum. Ayrıca sizin dediğiniz gibi hiç bir header dosyası göstermedim. Sadece linker kısmını program otomatik yapıyor.


Keilde bir projenin çalışması için gerekli dosyalar ise aşağıdaki resimdeki gibi.


Keil benden CMSIS kütüphanesini kullanmamı istiyor anladığım kadarı ile ve C/C++ kısmında STM32F10X_LD_VL  böyle bir tanım yapmamı istiyor. Şimdi bu ben iarda hiç bir header dosyası çekmeden sadece şu altta bulunan linker ile kodumu yükleyebiliyorken neden Keil de bunu yapamıyorum?
linker
/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
/*-Specials-*/
define symbol __ICFEDIT_intvec_start__ = 0x08000000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000;
define symbol __ICFEDIT_region_ROM_end__   = 0x0801FFFF;
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
define symbol __ICFEDIT_region_RAM_end__   = 0x20001FFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x800;
define symbol __ICFEDIT_size_heap__   = 0x800;
/**** End of ICF editor section. ###ICF###*/

define memory mem with size = 4G;
define region ROM_region   = mem:[from __ICFEDIT_region_ROM_start__   to __ICFEDIT_region_ROM_end__];
define region RAM_region   = mem:[from __ICFEDIT_region_RAM_start__   to __ICFEDIT_region_RAM_end__];

define block CSTACK    with alignment = 8, size = __ICFEDIT_size_cstack__   { };
define block HEAP      with alignment = 8, size = __ICFEDIT_size_heap__     { };

initialize by copy { readwrite };
do not initialize  { section .noinit };

place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };

place in ROM_region   { readonly };
place in RAM_region   { readwrite,
                        block CSTACK, block HEAP };


Bu linkera benzeyen bir linkerda Keilde var.

Benim merak ettiğim onu budur. IARda ben STM32F100x.H diye bir header bile bulamadım. Iar daha detaylı keil ise biraz daha hazırcı bir sistem  ile mi çalışıyor yoksa tam tersi mi?
Çalışan kazanır.