Picproje Elektronik Sitesi

DERLEYİCİLER => Diğer Derleyiciler => KEIL => Konuyu başlatan: hoguz - 10 Ocak 2007, 14:47:05

Başlık: Bu hata nedir arkadaşlar
Gönderen: hoguz - 10 Ocak 2007, 14:47:05
Programı derledğimde bu hatayı verıyor bilen varmı arkadaşlar

MFRC500UC.C(2667): error C249: 'DATA': SEGMENT TOO LARGE
Başlık: Bu hata nedir arkadaşlar
Gönderen: aslan_korhan - 10 Ocak 2007, 15:34:19
Bir olayın olması gerektiğinden uzun olduğunu söylüyor. Ama hangi dilde kullandığını ve programı bilmediğimizden fazla birşey söyleyemiyorum...

Kodunu buraya koyarsan yardımcı oluruz...
Başlık: Bu hata nedir arkadaşlar
Gönderen: kurumahmut - 10 Ocak 2007, 16:56:33
Bu Keil C51 C Compiler hatasıdır. Hiç bir bilgi yazmadan soru sorman gerçekten hoş bi davranış değil. Sorununa gelince


Ramde kullandığın segmentte (yani ramin kapasitesinden) fazla değişkenin var. Bu sorunu çözmek için data memory deki değişkenleri azaltmalısın. Bak mesela

char a [] = "ssssssssssssssssssssssss";
char a1 [] = "ssssssssssssssssssssssss";
char a2 [] = "ssssssssssssssssssssssss";
char a3 [] = "ssssssssssssssssssssssss";
char a4 [] = "ssssssssssssssssssssssss";
char a5 [] = "ssssssssssssssssssssssss";
char a6 [] = "ssssssssssssssssssssssss";

tanımladım bolca senin hatanı verdi...

İkinci bir yolda

Project / Option for target menüsünden Memory Model'i large yap sorun halolacaktır. Ama bu da başka bir problem olacaktır. RAM

http://www.esacademy.com/automation/docs/c51primer/c02.htm
Başlık: Bu hata nedir arkadaşlar
Gönderen: hoguz - 11 Ocak 2007, 11:38:44
Cevabın için teşekkür ederim,aslında ben assembler yazıyorum ama elimdeki örnek c166 mikrokontroller ıcın yazılmıs kucuk bır program bunu 8051'e cevırmeye calısıyorum.
Başlık: Bu hata nedir arkadaşlar
Gönderen: hoguz - 11 Ocak 2007, 14:34:09
haklısın açıklama yazmadım sımdı sorunum su ben assembler yazıyorum aslında ama elımde bır entegrenın örnek C calısma kodları var c166 işlemci için yazılmıs 16 bit işlemci ben 8051'e adapte etmeye calısıyorum bana bu konuda yardımcı olabilirmisiniz.Saygılarımla.