KEIL de ARM için Hex kod Oluşturamama SORUNU

Başlatan BenC, 24 Aralık 2009, 10:10:26

BenC

Arkadaşlar Elimde LPC2148 Header Board kiti var.
Derleyici olarak Keil mdk3.22 kullanıyorum HEX kodu üretmesine rağmen kod çalışmıyor.  Aşağıdaki kodu  derleyip gönderebilecek bir arkadaş var mı ?



*****************************************************************************/

// Aykut ULUSAN, Elektronik Mühendisi, IZMIR

/*****************************************************************************/

#include "lpc214x.h" // Nxp LPC2148 için header file

// Fast I/O'yu kullanacağım ve

// Programda kolaylık için bazı atamalar yapıyorum

// Portu low'a çekelerek

#define LED1_ON FIO0CLR = 0x00200000 // led1 port 0.21 on
#define LED1_OFF FIO0SET = 0x00200000 // led1 port 0.21 off
#define LED2_ON FIO0CLR = 0x00400000 // led2 port 0.22 on
#define LED2_OFF FIO0SET = 0x00400000 // led2 port 0.22 off

void
DLY_MS(long ms){ // CCLK=60MHz iken 1ms
long i; int j;
for (i = 0; i < ms; i++ )
for (j = 0; j < 7500; j++ );
}

//program buradan başlar

int
main(void){
// öncelikle sistem ve bus(port) hızını ayarlayacağım
PLL0CFG=0x24; // Processor clock=5*12Mhz=60Hz (sistemde 12mHz xtal var) PLL çarpanını 5 yaptık
// PLLCON ve PLLCFG registerleri içerigi degistirildiginde , asagidaki
// proses uygulanir, 1) PLL0FEED=0xAA ve 2)PLL0FEED=0x55
PLL0FEED=0xAA; // Feed process
PLL0FEED=0x55;

PLL0CON=0x1; // PLL'i enable et
PLL0FEED=0xAA; // Feed process
PLL0FEED=0x55;
while(!(PLL0STAT&0x400)) ; // PLL kitleninceye kadar bekle (5*12Mhz=60Mhz'e kitlenir)

PLL0CON=0x3; // PLL'i clock kaynagi olarak ayarla
PLL0FEED=0xAA; // Feed process
PLL0FEED=0x55;

MAMCR=0x2; // MAM Enable
MAMTIM=0x4; // fetch 4CCLK
// bus clock 30Mhz
VPBDIV=0x02; // PCLK = 30 MHz

SCS = 0x03; // I/O portlar fast mode'da olsun
FIO0DIR |= 0x00600000; // pin P0.21 ve P0.22 çikis

while (1){ // sonsuz loop
LED1_ON; // P0.21 ON
LED2_OFF; // P0.22 OFF
DLY_MS(500); // Delay 500 ms
LED2_ON; // P0.22 ON
LED1_OFF; // P0.21 OFF
DLY_MS(500); // Delay 500 ms
}
}
/*****************************************************************************/
ŞEHİT KANIYLA ALINMIŞ BU GÜZELİM VATANIN TOPRAKLARI KARIŞ KARIŞ SATILIYOR!!  VATAN HAİNİ OLMA!!

BenC

Arkadaşlar Keil in oluşturduğu HEX i gömünce çalışmıyor.  Ama oluşturduğu *.afx dosyasını h-jtag convertor ile hex e dönüştürüp gömdüğüm zaman bu kod çalışıyor. Burdan şunu anlıyorum keil in oluşturduğu hex ya crakten dolayı sağlıklı olmuyor yada hex oluşturma da ayar hatası yapıyorum. Keil de buna benzer hata ile karşılaşan bir arkadaş bu sorunu çözmüş ise yardımcı olursa sevinirim.
ŞEHİT KANIYLA ALINMIŞ BU GÜZELİM VATANIN TOPRAKLARI KARIŞ KARIŞ SATILIYOR!!  VATAN HAİNİ OLMA!!

controller

Project->Options for Target->Output tabında "Create HEX File" seçeneği işaretli mi? Keil de yeni bir proje oluşturduğunuzda "Create HEX File" seçeneği aktif değildir. Belki daha önce var olan başka bir hex yüklüyor olabilirsiniz.
Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

CLR

Merhaba ,

Sanırım ben sana yardımcı olabilirim çünkü kodları benim sitemden almışsın.
Keil'in derlediği hex'ler çalışıyor ama benim kullandığım versiyon 3.22 değil. Senin keil'de problem olabilir. Ayrıca da keil'i kırmaya gerek yok çünkü 32kB program yazmaya izin veriyor. Hemen hemen bütün projeleriniz 32KB'ın altında kalır. Şuan işyerindeyim akşama,  hex kodu eklerim.

KUTAY
Knowledge and Experience are Power

BenC

Evet sizin sitenizden aldım Kutay bey. Hatta  o sayfada da size mesaj atmıştım ama sanırım görmediniz. Bugün sabah işyerimde tekrar tekrar uğraşırken sonunda Keil in derlediği HEX te çalıştı. nasıl oldu bende anlamadım ama oldu. Yardımlarınız için teşekkür ederim. Şimdilik bir sorun gözükmüyor ARM ye devam bakalım.
ŞEHİT KANIYLA ALINMIŞ BU GÜZELİM VATANIN TOPRAKLARI KARIŞ KARIŞ SATILIYOR!!  VATAN HAİNİ OLMA!!

BenC

Alıntı yapılan: "controller"Project->Options for Target->Output tabında "Create HEX File" seçeneği işaretli mi? Keil de yeni bir proje oluşturduğunuzda "Create HEX File" seçeneği aktif değildir. Belki daha önce var olan başka bir hex yüklüyor olabilirsiniz.

Evet o seçenek seçili durumda.
ŞEHİT KANIYLA ALINMIŞ BU GÜZELİM VATANIN TOPRAKLARI KARIŞ KARIŞ SATILIYOR!!  VATAN HAİNİ OLMA!!

muhittin_kaplan

target in optionunda Output sekmesinde oluşturulan HEX in çeşidi var orayı kontrol ediniz.

BenC

Alıntı yapılan: "muhittin_kaplan"target in optionunda Output sekmesinde oluşturulan HEX in çeşidi var orayı kontrol ediniz.

Üstad hex kod sağlıklı çalışıyor artık. Herhangibir sorun kalmadı artık. Teşekkür ederim bilgileriniz için.
ŞEHİT KANIYLA ALINMIŞ BU GÜZELİM VATANIN TOPRAKLARI KARIŞ KARIŞ SATILIYOR!!  VATAN HAİNİ OLMA!!

ise

hex seçeneği işaretli ve hala hex kodu çalışmıyor ise kendi yazdığınız programdaki pointer yada dizi sorunundan kaynaklanıyor olabilir.

char harfler[10],*p;

p=&harfler[10];  
sprintf(p,"yazi"); // hatalı  bir kod