2012年2月17日金曜日

C18

C18の最適化ってどれくらいなのかなぁと
おもって Standardを試してみたいんですが

確かインストール時にStandardかLiteか選べるようになってたはずなんだけど
選べない
でも ダウンロードリンクのアドレスが StandardとLite 同じ行き先なので
多分どっかで選択できるはずなんだけどなぁ…
(落ちてくるファイルの名前が微妙に違うんだけど 容量は同じ)


んで 実験環境がVirtualPCなんですけど
なんか変わった気がするなぁと思ったら
バージョン上がってるのね
8.83だそうです
Win7でいつも使ってるのは8.70
微妙にメニューが増えてる気がするから
バグ抜きとかだけじゃなくて機能追加もされてるんだろうな

そーいや MPLAB Xとかどうなったんだろう
PICKIT3に対応したら とか思ってたけど
べつにWinでも苦労してないのよねぇ
だって外出先でプログラムの変更とかしないし
(昨年2日連続で呼び出されてやったりしたけど その2回だけだし その時はBoot Campで対応)


で Standard版
どうやったら使えるんだろう



今作りたい関数の変数値は
動作中に変わることは無いので
コンパイル時に渡して計算してくれればいいな と
思ってるわけですよ

例えば
i = sum(50 + 100, 20 + 50);
みたいに呼び出したら
50+100と20+50は
150と70に置き換えられるわけじゃなく
プログラムの実行時に計算されるわけですが
中で多少複雑な計算をしているので
それだけで40usくらいの時間がかかります
(18F2550@48MHz動作)
だけど その処理はしたくないわけですよ
で 計算する値はコンパイル時には決まっているので
コンパイラが書き換えてくれるとありがたいわけです
(言い換えると 最悪の場合コンパイル毎に変化するので式は必須)

HI-TECHだと
for (i = 0; i < 10; i++) {
    __delay_ms(i);
}
みたいなコードはエラーになってしまうので
強制的にコンパイル時に計算 ってことは可能なのかもしれませんが
方法がわからない

HI-TECH独自の機能なのか
そうでなければC18でも可能なのか


まぁプログラミングは初心者とたいして変わらないくらいのレベルなので
僕が知らないだけという説が最有力なわけですが

インライン展開とか 興味あるんだけど
詳しく解説してるところが無いんだよなぁ


ま,いろいろ 探してみます

1個頼まれごと(?)があるんだけど
デバッグ環境がないとか 夏までは使う予定ないとか
色々な理由を作って放置してるんだよなぁ…
バグ修正でデバッグ環境が無い+原因不明 となるとやる気でないよなぁ…
せめてソフトウェアかハードウェアかだけでも切り分けられればいいんだけど
デバッグ環境が手元にないからそれもできないわけで...

0 件のコメント:

コメントを投稿