[H8-ML(2621)] Re: 大きな配列をタイマー割り込みで参照
From: "Hirashita" <iced@xxxxxxxxxxxxxxx>
Date: 2002年12月27日(金)11時59分38秒
ひやしたです。

>>     register unsigned a= (count&(divNum-1));/*=count%divNum 高速化*/
>>     DA.DR0=*(adrR+a);/*右足,=adrR[count%divNum];*/
>>     DA.DR1=*(adrL+a);/*左足*/
>>     count++;
>かなり最適化されてると思います、1バイトx2個のデータなら
>ワードデータにし1回のアドレス演算で済む様にしては、それにし
>てもこれだけの処理なのに重すきる様な、やはりhamayanさんが
>言われてる様に逆アセンブルして原因を追求してみるしか無いと
>思います。
>adrRやadrLの定義のしかたにより型変換などでムダな事やってそう
>な気もしますが。

同感。これ以上の「劇的な最適化は」は出来ないように見えますね。
で、ワタシ、最近こればっかりなのですが、どこで時間が掛かっているのか
オシロとIOポート作戦で調べるとか。(^^;

具体的な事がわからないので全くハズしているかもしれませんが、
システム全体のアルゴリズムを再考してDMAのIOモードを使うとか、
そういうソリューションは検討してみるのも手かもしれませんね。

最もシンプルなコードで現象を再現して頂ければ
イエローソフトのコンパイラ(で良ければ)で
コンパイルしたアセンブラリストを提示できますけど。

スレッド概略
[2610(R)](起点)
 └[2619(U)]
   └[表示中]
     └[2622(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]