著者:yabusame2001
ページ数:240

¥99¥0

C言語で0から作るOSを開発について説明していきます。このシリーズではカーネルの開発について説明しています。
今回はディスクを読み書きするときのデータ転送をCPUの代わり行ってくれるDMAについてそのコントローラとレジスター制御について説明していきます。

[第2版 改定]
DMAコントローラーに読み込み転送モードを設定関数が正しく表示できていない問題を修正しました。

[目次] 前回までの内容
DMA(Direct Memory Access)の概要
  ポーリングによるデータ転送
  割り込みを受けてからのデータ転送
  DMA(Direct Memory Access)による転送
  DMAの特徴
  ISA(Industry Standard Architecture)とDMA
DMA(Direct Memory Access)の動作
  DMA転送を行っていないときのバス制御
  DMA転送を行っているときのバス制御
  DMA転送するまでの手順
  PCIについて
DMAコントローラー8237A
  8237A
    DMAコントローラーICの特徴
    DMAコントローラーとフロッピーディスクコントローラー
  DMA転送とアドレス
  ISA DMAとシステムバス
x86のDMAコントローラー
  x86のDMAコントローラーの特徴
DMAコントローラー8237Aのレジスター制御
  制御レジスター
  制御レジスターの定義
  チャンネル制御レジスター
  ベースアドレスレジスターとベースワードカウントレジスター
    マスター(16ビット動作)の転送アドレス操作
  ベースアドレスレジスターとベースワードカウントレジスターの実装
    カレントアドレスレジスターとカレントカウントレジスター
  拡張ページアドレスレジスター
    拡張ページアドレスレジスター詳細
  拡張ページアドレスレジスターの実装
制御レジスター詳細
  コマンドレジスター
  モードレジスター
    DMA転送モードについて
      シングル転送モード
      ブロック転送モード
      DMA転送要求時にDMA転送するモード
      カスケードモード
    モードレジスターのビット定義
    モードレジスターを制御する関数の実装
  リクエストレジスター
  シングルチャンネルマスクレジスター
  オールマスクレジスター
    オールマスクレジスターの実装
  ステータスレジスター
ISA DMAコマンドレジスター
  クリアーバイトポインタレジスター(フリップフロップリセットレジスター)
  クリアーバイトポインタレジスター(フリップフロップリセットレジスター)の実装
  マスクリセットレジスター
  マスタークリアーレジスター
DMAドライバーの実装例
  フロッピーディスクコントローラーのセクター読み込み関数例の復習
  initDMAforReadFDD関数

シリーズ一覧

 

  Kindle Unlimitedは、現在30日間無料体験キャンペーンを行っています!

この期間中は料金が980円→0円となるため、この記事で紹介している電子書籍は、すべてこのKindle Unlimited無料体験で読むことが可能です。

Kindle Unlimited 無料体験に登録する