diaryこの広告は、90日以上更新していないブログに表示しています。uartxv6プロセッサ側とポートを合わせなきゃいけないものと、kernel(ソフト側)で好き勝手に決めればいいものの境界線を探っている。0xb4000000;これはなぜこのアドレスなのかわからない。(kseg1の先頭)となる。i/OCPUで、「一体どのハードウェアからinterruptがきたのか」をどうやって判別するのか調べている。I/Oの理解もきちんと出来ていないので。「こっからここまではデバイス用I/Oメモリ!」って決めるのは誰?CPUなのかkernelなのか、はたまたデバイスなのか。decoderという回路)で制御しているっぽい。CPUが出力する物理アドレスを見て、それが特定のアドレス(I/Oにマップされている)の場合、向き先をデバイスに向ける。CPUに内蔵されているデバイスであれば、ボードが違っても同じアドレスに見えるはずだよね。デバイスを外付けした場合は、ボードの設計によるんだ。この場合は、ボードの仕様書にメモリマップが書かれているはずだよ。I/Oポートベース(qemuだとPhys0x1400_0000)もハードウェアで好きに設定してよい(xv6-mipsだと)ベースアドレスからのオフセットで、各周辺デバイスへのメモリマップを行う。しているのもPC/AT互換機のボード設定であり、MIPSおれおれボードで必ずしもこのアドレスに設定する必要はない。addressを決め打ちする(0x8000_0180)。例外ベクタは使用しない。いうのが読み出したいbyte分繰り返されることになり、その間CPUは他の仕事をできない。Controller)⇔RAM間で直接データ転送できるようにするのがDMAである。Controllerは回路であり、いわゆるマザボ等のハードウェア側で対応しなければ使用できない。WriteData[32]に分かれていたりする。GAIAで使ってる基盤は4MB(222)のSRAMを積んでる。コードリーディングQEMUで実行できる形に最適化されているので、実機(FPGA)で動...2017-11-03TODOJTAG-UARTってDE10-Lite+MIPS+xv6で使えるのか。(1)はてなブログをはじめよう!varmilさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。