Picproje Elektronik Sitesi

DERLEYİCİLER => Diğer Derleyiciler => KEIL => Konuyu başlatan: BenC - 24 Aralık 2009, 10:10:26

Başlık: KEIL de ARM için Hex kod Oluşturamama SORUNU
Gönderen: BenC - 24 Aralık 2009, 10:10:26
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
}
}
/*****************************************************************************/


Başlık: KEIL de ARM için Hex kod Oluşturamama SORUNU
Gönderen: BenC - 24 Aralık 2009, 10:37:38
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.
Başlık: KEIL de ARM için Hex kod Oluşturamama SORUNU
Gönderen: controller - 24 Aralık 2009, 12:12:49
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.
Başlık: KEIL de ARM için Hex kod Oluşturamama SORUNU
Gönderen: CLR - 24 Aralık 2009, 12:15:01
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
Başlık: KEIL de ARM için Hex kod Oluşturamama SORUNU
Gönderen: BenC - 24 Aralık 2009, 16:17:42
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.
Başlık: KEIL de ARM için Hex kod Oluşturamama SORUNU
Gönderen: BenC - 24 Aralık 2009, 16:18:34
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.
Başlık: KEIL de ARM için Hex kod Oluşturamama SORUNU
Gönderen: muhittin_kaplan - 24 Aralık 2009, 20:00:29
target in optionunda Output sekmesinde oluşturulan HEX in çeşidi var orayı kontrol ediniz.
Başlık: KEIL de ARM için Hex kod Oluşturamama SORUNU
Gönderen: BenC - 24 Aralık 2009, 21:29:15
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.
Başlık: KEIL de ARM için Hex kod Oluşturamama SORUNU
Gönderen: ise - 02 Ocak 2010, 03:13:05
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