くだらないボヤキ
最近PSoCで気づいたことがあります。
自分の手元にあるコンパイラは次の2つです
ご存知の通り、Hi-TECH C Liteの方がコードの圧縮は優秀です。
だいたい自分が公開しているコードだとROM使用率は
- IMAGECRAFT: 68%ROM
- Hi-TECH C Lite: 58%ROM
- Hi-TECH C PRO: 40%ROM(すげぇ)
となります。
ですが、実行速度はIMAGECRAFTがHi-Tech C Liteより早いです。(PROはさらに早いけど)
この原因として考えられるのが
- Hi-Tech C Liteは使用頻度が高い変数にもかかわらずページングRAMに配置しているのではないか
ということです。
…明示的にページングしないRAMに変数を配置するにはどうしたら良いのだろう?
というか、CでRAMの絶対的アドレス指定できるの?などなど疑問はいっぱい。
この点、新コンパイラには頑張って欲しいですね。
あと、*.lstファイルを見てて思ったこと。
PICでいう「SWAPF命令*1」ないの!?
4ビットシフト命令とか1bitづつやっていますけどww
あちゃー。PSoCのアセンブラ勉強しないと。
*1:上位ニブルと下位ニブル入れ替え命令