C言語での作成方法
- 6 名前: 匿名488 投稿日:2003/12/15(月) 16:33 ID:???
- 該当する CPU/開発環境 について詳しくないのですが
inp/outp 命令があるなら、それが該当する可能性が高いです。
一般的には、I/O アドレッシングであれば専用命令で、
メモリマップド I/O であれば、メモリアクセス命令で
アクセスできます(ポインタにアドレスを直接代入するか
定数ポインタをキャスト。コンパイラの最適化による
省略等をふせぐため、volatile 修飾子をつけること)。
どちらになるのかは NAT がどのようにバスに接続されているか、
その形態によります。
該当メモリ空間へのウェイトの挿入を適切におこなってください。
最近の高速なバスにノーウェイトですると問題があるかもしれません。
これはハード設計時の注意なので、もし逆になっていたらもう遅いかもなのですが、
過去ログにもありますように、たしかこの石は
データバスの LSB-MSB のナンバリングが逆になっています。
バス幅が 16/32 bit の場合、アドレスバスのどこに接続しているか、
BigEndian か LittleEndian か、CPU バスがバイトアクセスをどのように
取り扱うか、などでアクセスすべきアドレスが変わります。
そのあたりも注意してください。
以上、一般論ですが、ご参考まで。
新着レスの表示