【実践】C言語による組込みプログラミングスタートブック

[表紙]【実践】C言語による組込みプログラミングスタートブック

紙版発売

B5変形判/336ページ

定価3,718円(本体3,380円+税10%)

ISBN 4-7741-2915-1

ただいま弊社在庫はございません。

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

ソフトウェアエンジニアにとって,「組込み」の敷居が低くなってきています。本書は,ソフトウェアエンジニアのための「組込み」プログラミングの入門書です。付属のDVD-ROMにはXilinx ISE WebPACK 8.1iを,CD-ROMにはImpulse C CoDeveloperを収録。これで,C言語によるハードウェア設計を体験することができます。

Cの仕様がわかっていれば十分。ハードウェア設計の第一歩として大いに活用できる1冊です。

こんな方におすすめ

  • 組込み技術者や制御機器設計技術者等を目指す方
  • ハードウェア設計に興味を持つソフトウェアエンジニア
  • WindowsプログラマでCの知識を有する方

目次

第1章 C言語によるハードウェア設計

  • 1−1 ハードウェア設計の現状
    • 1−1−1 ハードウェア設計の現状
    • 1−1−2 FPGAとは
  • 1−2 ハードウェア設計フロー
  • 1−3 Cベース設計の現状
    • 1−3−1 Cベース設計による問題の解決
    • 1−3−2 Cベース設計の環境
  • 1−4 なぜImpulse Cなのか
  • 1−5 ソフトエンジニアへのハードウェア設計の勧め

第2章 ソフトウェアのインストールとFPGAボード

  • 2−1 ハードウェア設計の基礎
    • 2−1−1 ハードウェア設計フロー
    • 2−1−2 Impulse Cの関数
    • 2−1−3 FPGAデバイスの容量
    • 2−1−4 負論理
    • 2−1−5 FPGAのピン固定
    • 2−1−6 C言語のコーディングの違い
    • 2−1−7 作成されたハードウェアに対する評価
    • 2−1−8 HDL(ハードウェア記述言語)は必要ないのか?
  • 2−2 開発環境の準備
    • 2−2−1 CoDeveloperのインストール
    • 2−1−2 Xilinx社の開発環境(Webpack)のインストール
  • 2−3 FPGAボード
    • 2−3−1 ボードの選択
    • 2−3−2 USBドライバのインストール
    • 2−3−3 ダウンロードプログラムの設定

第3章 Impulse Cをはじめてみよう

  • 3−1 Impulse CとCoDeveloper
    • 3−1−1 Impulse CとCoDeveloperの違い
  • 3−2 Hello Worldの実行
    • 3−2−1 Hello World実行のイメージ
    • 3−2−2 Hello Worldの実行
    • 3−2−3 生成されたHDLの格納場所
  • 3−3 Hello Worldのソースコード解説
    • 3−3−1 main関数部分のソース(HelloWorld.c)
    • 3−3−2 ハードウェア部分のソース(HelloWorld_hw.c)
    • 3−3−3 ソフトウェア部分のソース(HelloWorld_sw.c)
    • 3−3−4  Monitorウィンドウ
  • 3−4 カウンタの実行
  • 3−5 カウンタのソースコード解説
    • 3−5−1 ハードウェア部分のソース(MyCounter.c)
    • 3−5−2 ソフトウェア部分のソース(MyConsumer.c)
    • CHALLENGE問題(1) Hello World

第4章 FPGAで動作させてみよう

  • 4−1 カウンタの値をLEDに出力させる
    • 4−1−1 カウンタの記述の追加とハードウェア生成
    • 4−1−2 HDLラッパー
    • 4−1−3 Webpackの起動と新規プロジェクトの作成
    • 4−1−4 Impulseライブラリの登録
    • 4−1−5 論理合成・配置配線・FPGAデータの生成の実行
    • 4−1−6 FPGAデータのダウンロード
    • CHALLENGE問題(2) カウンタ
    • Column 回路図を見てみよう
  • 4−2 カウンタの値を7セグメントLEDに出力させる
    • 4−2−1 7セグメントLEDの追加
    • 4−2−2 7セグメントLED用HDLラッパーとピン固定ファイル
    • 4−2−3 bitファイルの生成(7セグメントLED版)
    • CHALLENGE問題(3) 7セグメント付き
    • Column FPGAのピン固定
  • 4−3 Cの記述からカウンタ動作を遅らせる
    • 4−3−1 co_signalによる時間制御
    • 4−3−2 co_signal用HDLラッパー
    • 4−3−3 bitファイルの生成(co_signal版)
    • CHALLENGE問題(4) Cによる時間遅延

第5章 入力スイッチを使用してみよう

  • 5−1 7セグメントLED付きアップダウンカウンタの作成
    • 5−1−1 アップダウンカウンタへの仕様変更
    • 5−1−2 bitファイルの生成(入力スイッチ付き版)
    • Column プロジェクトのクリーンアップ
  • 5−2 ロード付きアップダウンカウンタの作成
    • 5−2−1 ロードボタン付きアップダウンカウンタへの仕様変更
    • 5−2−2 bitファイルの生成(ロード入力版)
  • 5−3 ロード付き10進アップダウンカウンタの作成
    • 5−3−1 ロード付き10進アップダウンカウンタへの仕様変更
    • 5−3−2 bitファイルの生成(10進カウンタ版)
    • CHALLENGE問題(5) 10進アップダウンカウンタ

第6章 24時間時計を動かす

  • 6−1 なぜ24時間時計の設計なのか?
    • Column 商品を意識して設計することが大切
  • 6−2 24時間時計の作成(その1)
    • 6−2−1 24時間時計のコーディング仕様と作成
    • 6−2−2 bitファイルの生成(24時間時計:その1)
  • 6−3 なぜエラーになったのか!?
    • 6−3−1 ツールのレポートと他のボードでの結果
    • 6−3−2 回路的に大きな部分はないか?
  • 6−4 24時間時計の作成(その2)
    • 6−4−1 24時間時計のコーディング仕様と作成
  • 6−5 24時間時計の作成(その3)
    • 6−5−1 ダイナミック点灯部分のCでの記述
    • 6−5−2 ハードウェアの比較
    • Column スライスの話
  • 6−6 24時間時計の作成(その4)
    • 6−6−1 ダイナミック点灯部分の変更
    • 6−6−2 ハードウェアの比較
  • 6−7 7セグメントLEDのデコード
    • 6−7−1 デコードの記述をif文に戻す
    • 6−7−2 配列によるデコードの実現方法
    • CHALLENGE問題(6) 24時間時計
  • 6−8 24時間時計の作成(すべてHDL版)
    • 6−8−1 HDLで記述
    • 6−8−2 ハードウェアの比較
    • CHALLENGE問題7 24時間時計アドバンスド問題

第7章 Impulse Cによる画像エッジ検出

  • 7−1 Impulse Cと組込みのFPGAボードによる画像エッジ検出
    • 7−1−1 開発環境
  • 7−2 操作手順とハードウェア化の流れ
    • 7−2−1 概要
    • 7−2−2 アルゴリズム検討とソース分析
    • 7−2−3 CoDeveloperによるハードウェア生成
    • 7−2−4 ISEでの既存の環境の設定
    • 7−2−5 EDKによる設定と実行
    • 7−2−6 ISEによるハードウェア生成とMCSファイルの作成
    • 7−2−7 SUZAKUによるフィルタの実行

第8章 今後のC言語設計を使われ方

  • 8−1 Cベース設計の方向性
    • 8−1−1 どんなところに使うべきか?
    • 8−1−2 アセンブラとコンパイラ?

付録

  • 付録1 その他のFPGAボード
  • 付録2 iMPACTによるダウンロード
  • 付録3 Webpackのアップデート
  • 付録4 本書で使用したImpulse Cの関数
  • 付録5 Impulse Cのデータタイプ
  • 付録6 CoBuilder Cのpragmaについて
  • 付録7 ハードウェアプリミティブ関数について
  • 付録8 新規プロジェクトの作成

著者プロフィール

鳥海佳孝(とりうみよしたか)