![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_13.png?e8efa67)
16f877のpicマイコンでプログラミング作業を行っています
もともとPC上でのソフト開発がメインだったので
マイコンプログラムはいろいろ制約があり大変です
現在C言語によってプログラムを書いているんですが
ccscでコンパイルすると容量不足でエラーがでます
not enough ram for valiaホニャララ
等がよく出ます。
マニュアルを読むと変数を減らせとかいろいろ書いてありますが
減らしても改善できません。
知人に聞くとアセンブラで書くといいよと言われましたが
アセンブラはわからないのでCじゃないとだめです
なにか容量をあまり取らないコーディングやその他のテクニックをご存知の方
教えてください、お願いします。
また、参考になる書籍やURL等がありましたら教えてください
No.1ベストアンサー
- 回答日時:
PICでRAM利用領域を減らそうとするなら、
1.グローバル変数をできるだけ利用しない
2.ローカル変数も最小限に
3.不必要な関数コールをやめる
4.ネストの多いループは極力減らす。
5.変数である必要のない内容はCONST定義を行ってフラッシュ内に移動する
6.正否判定のためのintはshortを利用して圧縮する
という感じでしょうか。
他のマイコンと異なり、汎用レジスタが1つしかなくスタックも7段が最大という特徴をうまくごまかすために
CCSでは究極の最適化を行っています。
ただ、このため不必要なバンクの切り替えやRAM利用も増えるわけで、思った以上に消費されているのが実情です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アセンブラエディタ
-
制御系ってSTL必要なんですか?
-
SHの命令の意味について
-
このアセンブラの意味を教えて...
-
アセンブラからC言語に変換する...
-
実行ファイルからソースはみれる?
-
7セグメントLEDの点灯について
-
インラインアセンブラの関数に...
-
MPLAB IDE v8.92アセンブラにつ...
-
PC-9801でマシン語を学習するに...
-
ライン数とステップ数の違いは?
-
0xffffとは?
-
エクセルVBAのIf,Then 構...
-
8ビットのデータの、先頭ビット...
-
文系のSE志望です。プログラミ...
-
C言語のビット演算子に関して
-
上位ビットと下位ビットの入れかえ
-
PLC 命令について
-
シーケンサのデータレジスタD...
-
レジストってなんですか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ライン数とステップ数の違いは?
-
アセンブラからC言語に変換する...
-
アセンブラ言語がわかりません。
-
PC-9801でマシン語を学習するに...
-
バイナリの実行ファイルをgccを...
-
ニーモニックコードを使って割...
-
[C言語→アセンブリ言語]はどう...
-
アセンブラで割り算
-
実行ファイルからソースはみれる?
-
PDP-11のアセンブラ課題
-
PICはアセンブラとC言語のどち...
-
void __cdeclなど_
-
アセンブラのLA
-
MASMの擬似命令「ASSUME」について
-
アセンブラの数値比較
-
パソコンについて。
-
アセンブリ言語について。
-
PICに書き込むプログラムや変数...
-
アセンブラエディタ
-
SHの命令の意味について
おすすめ情報