Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

Out of ROM

Başlatan SüleymanKara, 11 Mart 2007, 21:46:25

SüleymanKara

CCS'de yazdığım uzun bir program 16f877'nin ROM'unun %51 ini Ram'inin %19'unu kullanıyor.
Fakat  
ds1307_get_time(hrs,min,sec);
printf(lcd_putc,"\f%u:\%u",hrs,min);
komutlarını eklediğimde "Out of ROM, ASegment or program is too large"
uyarısı geliyor. Yazdığım bu komutların Rom'un %49'ını kullanıyor olmaması gerektiğini düşünüyorum. CCS'nin ayarlarında mı yanlışlık var?

Not: Devre belirli girişlere göre DS1307'den saat bilgisini alıp 24c256'ya kaydediyor ve sonuçlar LCD'ye yazılıyor.

Yardımlarınız için teşekkürler

Ziya

Stack problemin yoksa bazı alt programların önüne (özellikle bir defa çağırılanların) #separate direktifini kullan. Yazdığın programda tek parça 2 k lık alana sığmadığında verir bu hatayı. #separate ile tek çağırımlık alt programların inline programa dönüştürülmesini önler.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

Analyzer

Alıntı yapılan: "SüleymanKara"ds1307_get_time(hrs,min,sec);

Selam,

877'nin Rom'u 2k'lık sayfalardan oluşuyor. Derleme esnasında bir segment 2k'yı aşarsa, CCS bu hatayı veriyor. Muhtemelen de yukarıdaki fonksiyon 2K'yı geçiyor. Ziya hocamın önerdiği gibi bu fonksiyonu #seperate derleyici direktifi ile ayırabilirsiniz. Hala hata veriyor ise bu fonksiyonu da parçalara bölmeniz gerekiyor.

Analyzer
Üşeniyorum, öyleyse yarın!

SüleymanKara

Teşekkürler

#Seperate komutunu fonksiyona eklediğimde hata vermeden çalıştı.

Kolay gelsin
İyi Çalışmalar