組込み・ファームウェア

マイコンでADコンバータの変換結果を一定の間隔で大量に取り込むとき、DMAを使う利点として正しいものはどれか。

  1. AADコンバータの分解能が自動で上がる
  2. B入力の電圧が自動で大きくなる
  3. C変換が終わるたびにCPUが割り込みで読む必要がなく、DMAがメモリに並べてくれるので、CPUの負担が減る
答えと解説を見る

正解:C. 変換が終わるたびにCPUが割り込みで読む必要がなく、DMAがメモリに並べてくれるので、CPUの負担が減る

変換のたびに割り込みでCPUが結果を読むと、1秒に数万回の取り込みでは割り込みの手間だけでCPUの多くの時間が使われます。DMAを使えば、変換が終わるたびにDMAが結果をメモリの配列に順に書き込み、配列がいっぱいになったときだけCPUに知らせます。タイマで変換を始める設定と組み合わせれば、正確な間隔での取り込みをCPUなしで続けられます。

  • A. 分解能は変わりません。
  • B. 電圧は変わりません。
  • C. 正しい。CPUはまとまったデータを後で処理できます。
この分野を解く 分野ページへ

組込み・ファームウェアのほかの問題

  1. C言語のビットフィールドを使った構造体で周辺回路のレジスタを表すとき、注意が必要な点として正しいものはどれか。
  2. 多くのマイコンで、変更しない大きな表(フォントのデータなど)をconstを付けて宣言する利点として正しいものはどれか。
  3. JTAGやSWDといったデバッグ用のインターフェースでできることとして正しいものはどれか。
  4. 1 msごとに一定の制御の計算を行いたい。OSを使わないマイコンでの実装として最も適切なものはどれか。
  5. マイコンのブラウンアウト検出(BOD、ブラウンアウトリセット)の役割として正しいものはどれか。