- 1 名前:名前は開発中のものです。 mailto:sage [2007/04/06(金) 07:28:10 ID:0HAbZjic]
- NDSで何やら作ってみようという人の為のスレ。ライセンス不要。
初心者歓迎。質問歓迎。英語苦手な人歓迎。冷やかし歓迎。ネカマ歓迎。 資料、リンク等 nocash.emubase.de/gbatek.htm www.bottledlight.com/ds/index.php/Main/HomePage www.helloworld.jp/~duke/nintendo_ds/ 開発環境 www.devkitpro.org/ sourceforge.net/project/showfiles.php?group_id=114505 関連スレ ゲームボーイアドバンス(GBA)開発@ゲ製板(避難所) bbs.gamdev.org/test/read.cgi/gamedev/1055111303/ ゲームボーイアドバンス(GBA)非公式開発 Part2 pc5.2ch.net/test/read.cgi/gamedev/1099119005/ 前スレ pc11.2ch.net/test/read.cgi/gamedev/1113780562/
- 385 名前:Moonlight mailto:sage [2007/11/19(月) 04:04:16 ID:m1125lP2]
- >>379
長文失礼します。 単にある区切りの時間を調べるだけなら、次のような感じでどうでしょうか。 __attribute__((noinline)) static void PrfStart(void) { TIMER0_CR=0; TIMER0_DATA=0; TIMER0_CR=TIMER_ENABLE | TIMER_DIV_1; TIMER1_CR=0; TIMER1_DATA=0; TIMER1_CR=TIMER_ENABLE | TIMER_CASCADE; } __attribute__((noinline)) static u32 PrfEnd(void) { vu32 t0d=TIMER0_DATA; vu32 t1d=TIMER1_DATA; u32 clk=(t1d<<16) | t0d; double dus=clk/((double)33513982/1000/1000); _consolePrintf("prf %6dus %dclk.\n",(u32)dus,clk); return(clk); } (改行多すぎで怒られたのでもう一つ追加します)
- 386 名前:Moonlight mailto:sage [2007/11/19(月) 04:05:11 ID:m1125lP2]
- >>379
TIMER_DIV_1で長時間だと16bitオーバーフローするのでカスケードで使いました。最長約128秒まで計測できるはずです。 時間表示はマイクロ秒(1/1000000秒)単位で、ベースクロックは約33MHz単位です。 たぶん50クロック分くらいオーバーヘッドがあると思いますので、BIASは+2マイクロ秒くらいになると思います。 全ての関数の出入りをトラップして入れ子OKなプロファイラも作ってみたのですが、それなりな規模でギリギリまで最適化しなきゃいけないプロジェクトがないので使いませんでした。 様子見だけなら次のURLを流し読みしてみて下さい。使い道がありそうならソース公開します。 mdxonline.dyndns.org/archives/2007/10/post_1964.shtml
|

|