« ソフトUARTとMMC関数移植完了 | トップページ | さらに不可解 »

2007.11.09

AVR Studioのtiny861の定義

AVR Studioのデバッグ用シミュレータのtiny861のI/Oレジスタ定義って間違ってないっすか?

ここのところ、GCCでtiny861のタイマ割り込みのテストしてるのですが、シミュレータ上でタイマのカウントすら動いてくれません。
まだ実機確認したわけではないのですが、シミュレータのI/Oレジスタのアドレスがどうもデータシートと違うように思います。

たとえば、タイマ0設定関連のTCCR0Aですが、データシートではアドレスが 0x15(0x35) となっているところ、シミュレータでは 0x2A(0x4A)となっています。

シミュレータ上の 0x15(0x35) には ピン変化割り込み関連の PCMSK0とPCMSK1 の2つが張り付いています。
(1つのアドレスに2種類のレジスタが張り付いてること自体もおかしいし。)

データシートではPCMSK0とPCMSK1はそれぞれ、0x23(0x43) , 0x22(0x42) となっています。

実際、GCC上で、

 TCCR0A=0b10000000;

としてコンパイルし、シミュレータでステップ実行すると、TCCR0Aは変化せず、

 PCMSK0=0b10000000
 PCMSK1=0b10000000

と変化します...
コンパイラは TCCR0Aは0x15(0x35)としたマシンコード吐いてるのに、シミュレータが 0x15(0x35)はPCMSK0とPCMSK1だとして処理している結果ですね。


う~ん、この辺、ネット上には転がってなさそうでしたがどなたか情報お持ちじゃないですか?

|

« ソフトUARTとMMC関数移植完了 | トップページ | さらに不可解 »

コメント

検索エンジン等から直接来た方のために一応フォロー入れときます。

このI/Oレジスタ不良の問題はウチの環境の問題のようで、AVR Studioをインストールしなおしたら直りました。

と言っても、4.13のシミュレータはそもそもtiny861のタイマ0,1のシミュレートを行わないようなので当初目的は達成できませんでしたが。

投稿: いずみかわ | 2007.11.10 21:17

コメントを書く



(ウェブ上には掲載しません)




« ソフトUARTとMMC関数移植完了 | トップページ | さらに不可解 »