お世話になります。
わさびぃです。
3048F-Oneをモード6で動作させています。
128KbyteのEEPROMを使って、外部メモリを
増設しました。
マニュアルを読み、バス関係のレジスタは、
初期値のままにしておきました。
(8ビット3ステートアクセス、ウェイト3ステート)
データは、D8〜D15を、メモリの0から7のビットに
接続して、バスは、128Kbyteなので、
A0からA16まで接続しました。
エリア0だと、128kbyteのROMにかぶって指定できない(?)
と思い、エリア1を使うため、CS1の端子を、
メモリのCEに接続しました。
次に、C言語での指定方法がわからなかったので、
次のように書いてみました。
グローバル変数として、
BYTE *ptr;
if(data == 0x31){
ptr = (long*)0x200000;
*ptr = 0xAB;
}else{
ptr = (long*)0x200000;
data = *ptr;
sendData();//<-dataを通信で返送しています。
}
このようにすれば、
*ptrは、エリア1の先頭アドレスの1バイトをさすと思います。
#違うでしょうか?
(3048Fone マニュアル6−9、図6.2より)
HEW2(H8用)でコンパイルしたファイルをロードして、
ICEで覗き込んでいるのですが、混合モードでアセンブラコードを見ても、
CS,WE,REを動作させているようには、見受けられません。
こうした、メモリのハードウエア操作を、
書き込む必要があるのか、お教えいただければ、
幸いです。
他、お気づきの部分あれば、お教えください。
よろしく、お願いします。
#初めてなので、どうしたものか、ぜんぜん、分かっていない状態です。
わさびぃ