Last Update 2023/08/29

プログラミングからデバッグまでを一通りマスタしよう
インターフェースZERO No.01
やさしい組み込みCプログラミング

Interface編集部 編
B5判 208ページ
定価1,980円(税込)
JAN9784789849395
2012年3月1日発行
[品切れ重版未定2020.1.6] インターフェースZERO No.01
大変恐縮ですが,こちらの商品は品切れ重版未定となりました.

 新シリーズは“新人や若手エレクトロニクス技術者がソフトウェアやマイコン開発をゼロから学ぶための入門書”を目的としています.実際の開発現場への架け橋的な役割を果たすことを第一としています.
その第1弾は,プログラム開発の基本中の基本である“C言語”を取り上げます.組み込み開発で使われるC言語について,プログラムが実行される仕組みから,C言語の文法,プログラミングのお作法までを解説します.
目次


CPUの仕組みとプログラムの役割を理解する
第1章 プログラムはなぜ動く
 1.1 コンピュータという道具はスゴイ!
 1.2 「プログラム」はすごろくだ
 1.3 CPUはコンピュータの頭脳
 1.4 コンピュータはどうやって起動するのか
 1.5 モニタ・プログラムはシステムの窓口
 1.6 コンピュータと外界のコミュニケーション方法
 1.7 電卓プログラムを作ってみよう

プログラム開発に必要な基礎知識を身に付ける
第2章 プログラミング言語とは何か
 2.1 コンピュータと会話するには
 2.2 プログラムを実行するには
 2.3 システム開発の形態とその特徴
 2.4 C言語で動作する組み込みプログラムの例
 2.5 さまざまな開発環境とその特徴
 コラム2.1 C言語の始まり

ハードウェアを制御できるC言語の特徴とその使い方
第3章 なぜC言語を使用するのか
 3.1 マイコン上で動作するプログラム
 3.2 C言語でプログラミングするメリット
 3.3 C言語が「高級言語」と呼ばれる理由
 3.4 C言語のプログラムが機械語になるまで
 3.5 C言語でI/Oにアクセスするには
 3.6 関数を上手に分離するとプログラムを整理できる
 3.7 よく使う関数の集合 ―標準ライブラリ―
 3.8 よく使う関数はライブラリにする
 コラム3.1 C言語で書かれていも移植できない場合がある

制御文やデータの型,演算子などの基本文法を理解する
第4章 C言語の文法 ―基礎の基礎―
 4.1 C言語におけるデータの取り扱い
 4.2 C言語の処理の要 ―演算子―
 4.3 制御構造を覚えよう
 4.4 プログラムを構成する単位 ―関数―
 4.5 大規模開発を支えるプリプロセス
 4.6 意図通りのプログラムを書く
 コラム4.1 メモリに値を格納する向き「エンディアン」の違い

開発環境を構築し,実際にプログラムを実行しよう
第5章 はじめてのC言語プログラミング
 5.1 C言語の開発環境を作ってみよう
 5.2 C言語の神様にごあいさつ ―Hello World―
 5.3 プログラムの「つくり」を理解する ―Hit and Blow プログラム―
 5.4 スタックの動きを確認しよう ―括カッコ弧いいスタック電卓―
 コラム5.1 コーディング・ガイドライン

関数呼び出しに伴うプロセッサの内部動作を理解する
第6章 C言語における関数定義と呼び出し方
 6.1 関数の基本的な記述方法
 6.2 関数の呼び出しとフレーム
 6.3 CPU の中で行われている処理
 6.4 関数呼び出し方法にルールがある
 6.5 いろいろな関数呼び出しの例

プログラム実行に必要なプロセッサ内部の機能
第7章 スタックと割り込みを理解する
 7.1 プログラムが実行される流れを知ろう
 7.2 スタックとは何か
 7.3 割り込みとは何か
 コラム7.1 スタック・ポインタとデータ格納先の正しい関係

ポインタを制する者はC言語を制す
第8章 便利で効率の良いポインタと仲良くなる
 8.1 C 言語とメモリの関係を知る
 8.2 ポインタの正体
 8.3 ポインタを使いこなす
 8.4 ポインタのポイントをまとめる
 コラム8.1 ポインタと配列の関係
 コラム8.2 ポインタの配列と配列のポインタ

ポインタを使うプログラム例から,その挙動を理解する
第9章 いろいろなポインタとその使い方
 9.1 C言語の変数とメモリの関係
 9.2 ポインタの基本動作
 9.3 ポインタ変数とその使い方
 9.4 ポインタの使いどころ

動く&読めるプログラムを作るテクニックを学ぶ
第10章 バグの入り込みにくいプログラムの書き方
 10.1 バグとは何か?
 10.2 「動く」プログラムの作り方
 10.3 トラブルを起こすコードと起こさないコード
 10.4 「読める」プログラムの書き方
 10.5 達人を目指す人へ
 コラム10.1 集中できる環境を作ろう
 コラム10.2 Joelのチェック・リスト(ジュエル・テスト)
 コラム10.3 読書の薦め

実行ファイル生成の流れを理解し,トラブル解決に役立てる
第11章 ツール・チェーンとプリプロセッサを理解する
 11.1 組み込みプログラミングとパソコン・プログラミング
 11.2 ビルドの流れ
 11.3 アドレス・マップとセクション
 11.4 リンカとロケータの動作
 11.5 ロードの方法
 11.6 プリプロセッサの動き
 コラム11.1 コンパイル・エラーの原因はどこにある?

知ってて得する修飾子から,誰もがつまずく落とし穴まで
第12章 Cプログラムに役立つノウハウ
 12.1 volatileを知っておこう
 12.2 constを活用しよう
 12.3 初期化のタイミングを「見える化」する
 12.4 「関数ポインタ」でスマートに呼び出す
 12.5 乗除算と小数点演算を工夫で解決する
 12.6 ビット操作に注意!
 12.7 C言語で2進数を表現するには
 12.8 Cコンパイラをアセンブリ言語の先生にする
 12.9 便利なint,危険なint
 12.10 マジック・ナンバも時には有効
 12.11 三項演算子は使いよう
 12.12 ポインタと配列の問題
 12.13 メモリ・イメージを考えて失敗する
 12.14 生成コードを知っておく必要がある
 12.15 高水準言語として安心するのは禁物
 12.16 組み込み用途の要求がさらに事態を複雑化する
 コラム12.1 そもそもプログラミングは難しい
 コラム12.2 想定外の動作
 コラム12.3 ポインタは本当に難しい?

安全なプログラムを作るために
第13章 C言語のお作法とMISRA-C
 13.1 プログラミングにおける「お作法」
 13.2 ファイルの構造パターンを決める
 13.3 記述スタイルを決める
 13.4 MISRA-Cは記述ルール
 13.5 実際にMISRA-Cチェックをしてみよう
 コラム13.1 みんな悩んで大きくなった