わさびぃさんこんにちは
吉田です。
ROM のOE端子とCPUのRD端子(70番ピン)を接続されてますか?
接続すべき配線は、
データバスとアドレスバスとチップイネーブル、アウトプットイネーブルが
必要です。
モード6であれば20万番地以降にメモリアクセスする
ソフトを書けば、バスコントローラが勝手にCS,RDを出してくれます。
プログラムの方は、20万番地以降に128K分の
セグメントを定義して、そこに変数を定義する方法が
一般的かと思いますが、わさびぃさんのでもOKそうな気がします。
すいません。こんなんで参考になりますでしょうか
>
> お世話になります。
>
> わさびぃです。
>
> 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を動作させているようには、見受けられません。
>
> こうした、メモリのハードウエア操作を、
> 書き込む必要があるのか、お教えいただければ、
> 幸いです。
>
> 他、お気づきの部分あれば、お教えください。
>
> よろしく、お願いします。
>
> #初めてなので、どうしたものか、ぜんぜん、分かっていない状態です。
>
> わさびぃ
>
>
>