lynxeyedの電音鍵盤

MBDとFPGAと車載で使うデバイスの備忘録

くだらないボヤキ

最近PSoCで気づいたことがあります。
自分の手元にあるコンパイラは次の2つです

  • IMAGECRAFT C(PSoCトレーニングキット同梱のもの)
  • Hi-TECH C lite(PD5.0 SP3aまで同梱されていたフリーコンパイラ)

ご存知の通り、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:上位ニブルと下位ニブル入れ替え命令