Last Update 2021/06/29

徹底図解 マイコンの機能を100%引き出すプログラム作成のための
TRSP No.106 Cプログラミング はじめの一歩

トランジスタ技術SPECIAL編集部 編
B5判 144ページ
定価1,980円(税込)
JAN9784789849067
2009年4月1日発行
好評発売中!
TRSP No.106 Cプログラミング はじめの一歩

  今日,たくさんのマイコン・プログラムがC言語で書かれています.それらのプログラムは,パソコン上で動かすプログラムとは違います.C言語で組んだプログラムをマイコン上で動かすには,マイコンゆえにしなければならないことがたくさんあります.本書は,マイコン上で動かすプログラムを作るための「はじめの一歩」となるように,C言語の解説を基礎編で行ったあと,実践編で応用例をもとにデバッグの実際に触れていきます.
 基礎編でのC言語の解説は,パソコン・プログラムでは必須のファイル入出力関数の使いかたには触れず,ハードウェアとの関連を重視して構成しました.実践編では,基礎編で得たC言語の知識が生かせるよう,簡単なハードウェア(H8/3664Fマイコン・ボードと液晶表示モジュール)のためのCプログラムを,統合開発環境HEWで作成して動作確認することから始めます.

◆基礎編

 C言語とコンパイラとターゲットと…
第1章 マイコン・プログラム作成のための基礎知識
 1-1 「hello, world」を表示するプログラム
  パソコン用のプログラムはOSとのインターフェースをもっている
 1-2 マイコン用のプログラムの生成
  パソコン上でクロス・コンパイルを行う
 1-3 マイコン装置とプログラムのデバッグ方法
  ハードウェアの不具合なのかソフトウェアの不具合なのか
 1-4 「デバッグ力」が完成度を左右する
  トレースやモニタを利用する
 Appendix A 「LSI C-86試食版」のインストールと実行例
  Windowsの「コマンド プロンプト」でhello, worldを試してみる
 コラム
  ・コンパイラとCISC/RISC
  ・ソフトウェア・ブレークとハードウェア・ブレーク
  ・データの表示と修正機能をプログラムに忍ばせておく

 複数のファイルを使ってプログラム作成の効率を上げる
第2章 C言語プログラムの概要
 2-1 #includeと#define
  ファイル構成や文字列定義を制御するディレクティブ
 2-2 コンパイルのためのファイル管理
  複数のソース・ファイルなどからプログラムを生成する
 2-3 条件付きコンパイル
  コンパイル動作を条件によって制御する
 2-4 C言語のキーワードとコメント
  変数名や関数名には使えない
 コラム
  ・列挙子
  ・JISコードとASCIIコード

 C言語でプログラムを作成する際の約束事
第3章 変数と演算
 3-1 C言語は関数の集まり
  文とブロックとサブルーチンと関数
 3-2 変数の型
  データの長さや種類を型で分けて扱う
 3-3 定数
  数値や文字の扱いかた
 3-4 演算子
  一般的な加減乗除から条件式まで多様に使える
 3-5 プログラムにおける変数の宣言と型変換
  変数の型との扱いによって処理の結果に違いが出ることの注意
 3-6 関数の宣言
  関数の引き数と戻り値にも型がある
 3-7 内部変数と外部変数
  使える場所がかぎられている変数がある
 3-8 静的変数
  プログラムの終了まで使える変数がある
 コラム
  ・暗黙のうちに行われる型変換
  ・命令処理中の信号変化
  ・ビッグ・エンディアンとリトル・エンディアン

 処理の内容を変更したり繰り返したりするしくみ
第4章 Cプログラムの制御構造
 4-1 if文とelse,else if文
  条件が成立するかどうかで処理の流れを分ける
 4-2 switch文
  条件を表す変数の値によって分岐する
 4-3 繰り返し文
  同じ処理を回数や条件が成立するまで続ける
 4-4 goto文
  無条件でラベルに分岐する
 コラム
  ・最適化とその落とし穴
  ・注意! ミス多発文
  ・ミニ用語解説(1)
  ・switch文を使って肥大しきったプログラム

 配列とポインタと構造体と…
第5章 Cプログラムのデータ構造
 5-1 配列の使いかた
  同じ型のデータを並べて扱う
 5-2 ポインタの使いかた
  データや関数のアドレスを扱う
 5-3 構造体の使いかた
  いろいろな型のデータをまとめて扱う
 5-4 共用体の使いかた
  記憶領域を共用するデータ構造
 5-5 構造体の応用
  ビット操作からオブジェクト指向プログラミングまで
 5-6 オブジェクト指向プログラミング
  C++への橋渡しとして
 コラム
  ・大きな配列を扱うプロクラム
  ・共用体を使って2バイト・データの上下を入れ替える
  ・ミニ用語解説(2)
  ・間接アドレッシング
  ・DOSウィンドウでのポインタのポインタ

 大きなプログラムを効率的に作成するために
第6章 ファイルの分割とライブラリの利用
 6-1 複数のソース・ファイルにまたがる宣言
  extern宣言と型をそろえることが必要
 6-2 ファイル分割の例
  プログラムを階層化して処理を分ける
 6-3 ライブラリ化
  何度も使う汎用的な関数を作成しておく
 6-4 ターゲットに合わせたライブラリを構成する
  ソース・コードをカスタマイズして利用する
 コラム
  ・アセンブリ言語における変数/関数の外部参照
  ・ドキュメント作成に役立つツール
 Appendix B おもなライブラリ関数
  マイコン応用で使えるものを中心に

 割り込み処理やアセンブリ言語プログラムとのリンク
第7章 C言語だけでは手が届かない部分
 7-1 絶対番地でデータを配置する領域
  マイコンのメモリ・マップで制限されるデータ
 7-2 割り込み関数
  変数の扱いかたに注意して記述する
 7-3 アセンブリ言語プログラムとのリンク
  C言語だけでは記述できない処理に対応する
 コラム
  ・ソースとデスティネーション
  ・鏡の中の鏡…再帰呼び出し


◆実践編

 H8/3664FとHEWを使って液晶表示器にhello, worldを表示する
第8章 マイコンにCプログラムを書き込んで実行する
 8-1 使用するマイコンはH8/3664F
  フラッシュROM内蔵でプログラムの実験に便利
 8-2 書き込み器の製作
  パソコンのシリアル・ポートとマイコン・ボードをつなぐ
 8-3 液晶モジュールの接続
  マイコンから制御して文字や図形を表示する
 8-4 H8/3664Fの初期設定
  マイコンの端子の機能を設定する
 8-5 液晶モジュールの初期設定
  文字表示のまえにコマンドを送る
 8-6 統合開発環境HEWを使ってコンパイルする
  使用するマイコンに合わせた設定を行ってソース・プログラムを作成する
 8-7 マイコンにプログラムを転送する
  フラッシュ・ファミリ用開発ツール・キットFDTを使って書き込む
 8-8 ハードウェアと初期化のチェック
  hello, world…そのまえに
 8-9 ライブラリ関数を書き換えて画面制御を行う
  より本格的なディスプレイ・ライブラリへ
 コラム
  ・ミニ用語解説(3)
  ・ミニ用語解説(4)
  ・ミニ用語解説(5)
  ・H8/3664のメモリ構成
  ・H8/3664のスリープ時の動作

 HEWから書き込みとデバッグを操作する
第9章 H8/3664FボードにE8aエミュレータを接続する
 9-1 E8aエミュレータの概要
  統合開発環境から操作する
 9-2 E8aエミュレータとキーボードを接続する
  液晶モジュール基板に回路を追加して製作する
 9-3 HEWからデバッグを行うための準備
  エミュレータを接続して実行プログラムをダウンロードする
 9-4 プログラムをステップ実行で追う
  ソフトウェア・ブレーク・ポイントの利用
 9-5 キーボード入力の処理を行うプログラム
  タイマ割り込みの設定と割り込み処理関数
 9-6 動作確認とデバッグ
  ハードウェアの不具合を取り除いてから
 コラム
  ・キー入力を取り込む仕組み
 Appendix C マイコン・トレーニング・ボードMT-R300
  USBインターフェースでパソコンと接続する