正直日記



2005/10/05

_ Aterm「らくらく無線スタート」の採用について
http://121ware.com/product/atermstation/info/2005/info1005.html
<利用可能なAtermシリーズアクセスポイント>
○ 	AtermWR7850S
○ 	AtermWR6650S
○ 	AtermWR7800H (※)
○ 	AtermWR6600H (※)

あの、Aterm WR7600H を使ってるのですが……だめですか?分かりません!(><)
_ 割り込みハンドラがthumbで動かない訳
IRQ例外が発生すると現在の状態に関わらずARMステートに移行した後、BIOS
の0x00000018に飛ぶわけですよ。

ARM7TDMI Programmer's Model : 9.1. 例外発生時の動作
ARM7TDMI Programmer's Model : 9.9. 例外ベクタ

んで、BIOSから割り込みハンドラへと飛ぶのですが、そのときにbx(ARM←→
THUMBステートの移行が出来る)ではなく ldr(ARM←→THUMBステートの移行
が出来ない)で飛んでいるんです。

実際はTHUMBコードで書かれているのに、CPUはARMステートのままなのでARM
コードとして解釈されるわけです。だから割り込みハンドラを-mthumbでコン
パイルするとうまく動かないわけ。

なんとなく書いてみたい気分だった。

SaTa. > わりと重要ですねこのへん。NDSも同じです。安易に-mthumbをつけるべきではありません。  (2005/10/05 20:25:21)
>
GBAの場合は、ROM上のコードは-mthumbでいいかなという気もします。
割り込みハンドラだけ気をつければ、あとはどちらでも動いてしまう
ので、速度とサイズと気分に応じた使い分けですね。

NDSは、メモリ多いし、コードは全てオンメモリだと思っていたんで
すけど、ひょっとしてROM上でも動いてるんですか? ……てメモリ
ウェイトが多いのかぁ(;´Д`)ROMと変わんないんですね
http://neimod.com/dstek/dstek2.xml#System%20Control
 (2005/10/05 22:46:52)
SaTa. > 基本はDSカードから読み込んでMAIN RAM(0x02000000)で実行ですが、ARM9の内蔵メモリITCM/DTCMもあります。もちろんGBA ROM(0x08000000)も実行領域として使えますがクソ遅いでしょうねぇ。  (2005/10/06 08:19:07)
> なるほど。命令TCMがGBAで言うIWRAMの代わりになるわけですか。確かに考え方的にはNDSもGBAとあまり変わらないようですね。  (2005/10/07 00:08:21)

最新
2010 | 01 04
2009 | 01 02 03 04 05 06 07 09 10 11 12
2008 | 01 02 03 04 05 06 07 08 09 10 11 12
2007 | 02 03 04 05 06 07 08 10 11 12
2006 | 01 02 03 04 05 06 07 08 09 10 11 12
2005 | 01 02 03 04 05 06 07 08 09 10 11 12