dポイントプレゼントキャンペーン実施中!

16f877のpicマイコンでプログラミング作業を行っています
もともとPC上でのソフト開発がメインだったので
マイコンプログラムはいろいろ制約があり大変です

現在C言語によってプログラムを書いているんですが
ccscでコンパイルすると容量不足でエラーがでます
not enough ram for valiaホニャララ

等がよく出ます。

マニュアルを読むと変数を減らせとかいろいろ書いてありますが
減らしても改善できません。
知人に聞くとアセンブラで書くといいよと言われましたが
アセンブラはわからないのでCじゃないとだめです

なにか容量をあまり取らないコーディングやその他のテクニックをご存知の方
教えてください、お願いします。

また、参考になる書籍やURL等がありましたら教えてください

A 回答 (1件)

PICでRAM利用領域を減らそうとするなら、


1.グローバル変数をできるだけ利用しない
2.ローカル変数も最小限に
3.不必要な関数コールをやめる
4.ネストの多いループは極力減らす。
5.変数である必要のない内容はCONST定義を行ってフラッシュ内に移動する
6.正否判定のためのintはshortを利用して圧縮する

という感じでしょうか。
他のマイコンと異なり、汎用レジスタが1つしかなくスタックも7段が最大という特徴をうまくごまかすために
CCSでは究極の最適化を行っています。
ただ、このため不必要なバンクの切り替えやRAM利用も増えるわけで、思った以上に消費されているのが実情です。
    • good
    • 0
この回答へのお礼

ありがとうございます、参考にします

お礼日時:2006/01/13 13:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!