There is not enough rom space hatasi

Başlatan cihanogluts, 28 Mayıs 2018, 01:07:22

cihanogluts

Merhaba. Microc de yeniyim. There is not enough rom space hatasi alıyorum. Kullandığım mcu 16f877a . Herşey guzel gidiyordu. Yazdığım koda bir satır herhangi bir kod eklendiğinde. Bu hatayı alıyorum.istatistiklerde rom kullanimim yüzde 56 ram kullanimimda aşağı yukarı aynı rom dolmasını halde bu hatayı neden alıyorum.biraz araştırma yaptım kodu küçültmek gerekiyormuş ama rom varken neden kicultmeliyim. Bir başka yerde en fazla 2000 komut olması gerekiyor yazıyor. Eger öyleyse bu 2000 komut void main in icindemi 2000 komut olacak. Yoksa void main içerisindeki while(1) döngüsünde mi en fazla 2000 komut olmalı. Bu mcu nun romunu yüzde yüz nasıl kullanabilirim. Cevaplar için şimdiden tesekkurler

ete

Bütün derleyiciler için bu hatanın karşılığı yeterli RAM olmamasıdır. Yani program boyutu işlemcinin Ram boyutunu aşıyor demektir bu. Standart şu kadar komut olması lazım demek de yanlış Komutlar kullanım şekline bağlı olarak bir yada birden fazla yer kaplayabilirler. Bu şekilde ölçülmesi yanlış olur. Ayrıca programda kullanılan dizi değişkenleri tek satırda yazılmalarına rağmen büyük boyutlu olurlarsa bütün hafızayı da doldurabilirler. Bu nedenle çözüm ya kodu küçültmek yada daha büyük RAM a sahip bir işlemciye geçmektir.
Ete

Lithium

#2
Merhabalar, konu biraz eski ama,  bende amatör olarak elektronik ile uğraşmaktayım. 877a ile bende bir proje yapıyorum, hafıza değerlerinin neredeyse yarı yarıya ve daha çok hafıza alanının olduğunu  gözlemlememe rağmen, örneğin while(1) buradaki parantez içine while(!deger) bu şekilde yaptığım anda aynı hatayı alıyordum. Bunun için yabancı siteleri de araştırmam sonucunda şöyle bir çözüm buldum. void main içindeki çoğu fonksiyonu void main öncesine taşıdım. bu şekilde yapınca sorun çözüldü.
saygılar..

MB_77

#3
bu mesaj tarafımdan silinmiştir.

Powered by EzPortal