最新アーキテクチャの理解からソフトウェア開発までを詳解
ARM Cortex-M3システム開発ガイド
Joseph Yiu 著
宇賀神 孝/長尾 和則 訳
B5変型判 360ページ
定価3,520円(税込)
JAN9784789836494
2009年6月15日発行
好評発売中!
本書は,ARM Cortex-M3の入門とこれを応用したシステム開発の基本を容易に理解できるように意図して著され,プログラム例や開発環境の実際を含めた,コンパクトですがとてもパワフルな解説書です.
Cortex-M3は,ARM社の最新アーキテクチャv7-Mに基づく32ビットRISCプロセッサ・コアであり,MはMicro-controller用途であることを示します.
このCortex-M3は,組み込みマイクロコントローラ市場の主流が8ビット〜16ビットであるというこれまでの常識を覆しました.Cortex-M3には,小型・低消費電力かつローコストなマイクロプロセッサ・コアとしてのARMアーキテクチャの大幅な進展が見られます.この革新の内容は,システムとしての堅牢さと使いやすさの両方を備えており,本書の第1章(イントロダクション)に簡潔にまとめられています.
また本書は,ARMのCortex-M3プロセッサに関心のあるハードウェア・エンジニアおよびソフトウェア・エンジニアの方を対象にしています.この新しいアーキテクチャへの入門,命令セットの概要,いくつかの命令の使用例,ハードウェアの特徴についての知識,および,このプロセッサの先進的なデバッグ・システムについての記述を含んでいます.さらに,GNUツール・チェーンだけでなく,ARM純正ツールを使用してCortex-M3プロセッサのソフトウェア開発を行う場合の基本的なステップを含む応用例についても述べています.
プロセッサ間の相違やARM7TDMIからCortex-M3へのアプリケーション・ソフトの移植についてもカバーしており,ARM7TDMIに精通しCoretex-M3プロセッサへ移行しようとしている技術者の方も対象にしています.
目次
第1章 イントロダクション
1.1 ARM Cortex-M3プロセッサとは何か
1.2 ARMとARMアーキテクチャの背景
1.3 命令セットの開発
1.4 Thumb-2命令セットアーキテクチャ(ISA)
1.5 Cortex-M3プロセッサのアプリケーション
1.6 本書の構成
1.7 さらに知るには
第2章 Cortex-M3の概要
2.1 Cortex-M3の基礎
2.2 レジスタ
2.3 動作モード
2.4 内蔵のネスト型ベクタ割り込みコントローラ
2.5 メモリ・マップ
2.6 バス・インターフェース
2.7 メモリ保護ユニット
2.8 命令セット
2.9 割り込みと例外
2.10 特徴のまとめ
第3章 Cortex-M3の基本
3.1 レジスタ
3.2 特殊レジスタ
3.3 動作モード
3.4 例外と割り込み
3.5 ベクタ・テーブル
3.6 スタック・メモリ操作
3.7 リセット・シーケンス
第4章 命令セット
4.1 アセンブリの基本
4.2 命令リスト
4.3 命令の解説
4.4 Cortex-M3にあるいくつかの便利な命令
第5章 メモリ・システム
5.1 メモリ・システムの機能概要
5.2 メモリ・マップ
5.3 メモリ・アクセス属性
5.4 デフォルトのメモリ・アクセス許可
5.5 ビット-バンド操作
5.6 アンアラインド転送
5.7 排他アクセス
5.8 エンディアン・モード
第6章 Cortex-M3の実装概要
6.1 パイプライン
6.2 詳細なブロック図
6.3 Cortex-M3のバス・インターフェース
6.4 Cortex-M3のほかのインターフェース
6.5 外部専用ペリフェラル・バス
6.6 典型的な接続
6.7 リセット信号
第7章 例外処理
7.1 例外タイプ
7.2 優先度の定義
7.3 ベクタ・テーブル
7.4 割り込み入力と保留動作
7.5 フォールト例外
7.6 SVCとPendSV
第8章 NVICと割り込み制御
8.1 NVICの概要
8.2 基礎的な割り込み構成
8.3 割り込み許可と許可のクリア(イネーブル・セット・レジスタとイネーブル・クリア・レジスタ)
8.4 割り込み保留と保留のクリア
8.5 割り込み設定の手順例
8.6 ソフトウェア割り込み
8.7 SysTickタイマ
第9章 割り込み動作
9.1 割り込み/例外シーケンス
9.2 例外復帰
9.3 ネストした割り込み
9.4 テール・チェイン割り込み
9.5 後着
9.6 例外の戻り値の詳しい情報
9.7 割り込みレイテンシ
9.8 割り込みに関連したフォールト
第10章 Cortex-M3のプログラミング
10.1 概要
10.2 アセンブリとC言語間のインターフェース
10.3 典型的な開発フロー
10.4 最初のステップ
10.5 出力の生成
10.6 データ・メモリの使用
10.7 セマフォへの排他アクセスの使用
10.8 セマフォへのビット-バンドの使用
10.9 ビット・フィールド抽出とテーブル分岐を使う
第11章 例外プログラミング
11.1 割り込みを使う
11.2 例外/割り込みハンドラ
11.3 ソフトウェア割り込み
11.4 例外ハンドラを備えた例
11.5 SVCを使う
11.6 SVCの例:出力関数としての使用
11.7 C言語でSVCを使う
第12章 高度なプログラミング機能とシステムの挙動
12.1 二つの独立したスタックをもつシステムの起動
12.2 ダブル・ワード・スタック・アライメント
12.3 非ベース・レベルからのスレッド許可
12.4 性能の検討
12.5 ロックアップ状況
第13章 メモリ保護ユニット
13.1 概要
13.2 MPUレジスタ
13.3 MPUの設定
13.4 典型的なセットアップ
第14章 そのほかのCortex-M3の機能
14.1 SysTickタイマ
14.2 電力管理
14.3 マルチプロセッサ・コミュニケーション
14.4 セルフ・リセット制御
第15章 デバッグ・アーキテクチャ
15.1 デバッグ機能の概要
15.2 CoreSightの概要
15.3 デバッグ・モード
15.4 デバッグ・イベント
15.5 Cortex-M3のブレークポイント
15.6 デバッグでのレジスタ内容へのアクセス
15.7 コア・デバッグのそのほかの機能
第16章 デバッグ・コンポーネント
16.1 イントロダクション
16.2 トレース・コンポーネント:データ・ウォッチポイントおよびトレース
16.3 トレース・コンポーネント:計装トレース・マクロセル
16.4 トレース・コンポーネント:エンベデッド・トレース・マクロセル
16.5 トレース・コンポーネント:トレース・ポート・インターフェース・ユニット
16.6 フラッシュ・パッチとブレークポイント・ユニット
16.7 AHBアクセス・ポート
16.8 ROMテーブル
第17章 Cortex-M3で開発を始める
17.1 Cortex-M3製品を選ぶ
17.2 Cortex-M3リビジョン0とリビジョン1の違い
17.3 Cortex-M3リビジョン1とリビジョン2の違い
17.4 リビジョン2の利点と効果
17.5 開発ツール
第18章 ARM7からCortex-M3へのアプリケーションの移植
18.1 概要
18.2 システムの特性
18.3 アセンブリ言語ファイル
18.4 Cプログラム・ファイル
18.5 プリコンパイルされたオブジェクト・ファイル
18.6 最適化
第19章 GNUツール・チェーンを使用してCortex-M3開発を始める
19.1 背景
19.2 GUNツール・チェーンの入手
19.3 開発フロー
19.4 例題
19.5 特殊レジスタへのアクセス
19.6 サポートされない命令の使用
19.7 GNU Cコンパイラでのインライン・アセンブラ
第20章 KEIL RealViewマイクロコントローラ開発キットで開発を始める
20.1 概要
20.2 μVisionを使ってみる
20.3 UART経由で“Hello World”メッセージを出力する
20.4 ソフトウェアのテスト
20.5 デバッガを使う
20.6 命令セット・シミュレータ
20.7 ベクタ・テーブルの修正
20.8 割り込みを使ったストップウォッチの例
付録A Cortex-M3命令セット要約
A.1 対応している16ビットThumb命令セット
A.2 対応している32ビットThumb-2命令セット
付録B 16ビットThumb命令セットとアーキテクチャのバージョン
付録C Cortex-M3の例外 クイック・リファレンス
C.1 例外の種類と許可
C.2 例外によりスタックに保存される内容
付録D NVICレジスタ・クイック・リファレンス
付録E Cortex-M3トラブル・シューティング・ガイド
E.1 概要
E.2 フォールト・ハンドラの開発
E.3 C言語によるスタックされたレジスタの値およびフォールト・ステータス・レジスタの報告
E.4 フォールトの原因を理解する
E.5 ほかに起こりえる問題