H8/3069FCPU基板にモニタを書込み、ROMライタ側のI/O動作を確かめているのですがどうも動きが変です
モニタで8255のアドレスを指定して直接出力ポートを叩くと正常に出力されますが、同様の動作をする単純なテストプロをつくってDLLして実行させると何故か期待する出力が得られません
#define ROMW_CNTR (*(volatile unsigned char *)0x200008)
void main(void)
{
void main(void)
{
init_PPI();
while(1){
ROMW_CNTR = 0x55;
ROMW_CNTR = 0x55;
ROMW_CNTR = 0xAA;
}
}
}
}
初めは8255のデータホールド時間などの問題かと思いCPUクロックの分周比をいじってみましたがそれでもダメ
いろいろやっているうちにプログラムを0x400000~のDRAM上にロードして実行させるとこの問題が出てCPU内蔵RAMの0xFFC000~にロードした場合はOKであることが判明しました
どうもDRAMと外部拡張バスのアクセスが競合しているようです
チップセレクト、/RD、/HWR辺りをプローブしてみます