Last Update 2023/04/17

記述例で学ぶ組み込み機器設計のためのシステム開発
ARM組み込みソフトウェア入門

Andrew N. Sloss/Dominic Symes/Chris Wright 著
アーム(株) 監訳
B5変型判 592ページ
定価4,840円(税込)
JAN9784789836180
2007年8月15日発行
[品切れ重版未定2021.2.2] ARM組み込みソフトウェア入門
大変恐縮ですが,こちらの商品は品切れ重版未定となりました.
 本書は,ARMベースの組み込み機器設計をする人のための,システム開発とソフトウェア開発に直接対応した解説書です.この本の目標は,ARMコアの動作を製品開発者の視点から解説することです.読者ができるだけ早くARMでの実際の開発作業を行えるように,ソフトウェア記述例を多く紹介しています.これらの例は,ARMベースの組み込みシステムをより効率的に開発したいと考えている技術者にとっても役に立つものです.

目次

第1章 ARM組み込みシステム
 1.1 RISCの設計理念
 1.2 ARMの設計理念
 1.3 組み込みシステムのハードウェア
 1.4 組み込みシステムのソフトウェア
 1.5 まとめ

第2章 ARMプロセッサの基礎知識
 2.1 レジスタ
 2.2 カレント・プログラム・ステータス・レジスタ
 2.3 パイプライン
 2.4 例外,割り込み,ベクタ・テーブル
 2.5 コア拡張
 2.6 アーキテクチャの更新
 2.7 ARMプロセッサ・ファミリ
 2.8 まとめ

第3章 ARM命令セットの概要
 3.1 データ処理命令
 3.2 分岐命令
 3.3 ロード命令/ストア命令
 3.4 ソフトウェア割り込み命令
 3.5 プログラム・ステータス・レジスタ命令
 3.6 定数のロード
 3.7 ARMv5E拡張
 3.8 条件実行
 3.9 まとめ

第4章 Thumb命令セットの概要
 4.1 Thumbレジスタの用途
 4.2 ARM-Thumbインタワーキング
 4.3 その他の分岐命令
 4.4 データ処理命令
 4.5  一つのレジスタを使用するロード命令/ストア命令
 4.6 複数のレジスタを使用するロード命令/ストア命令
 4.7 スタック命令
 4.8 ソフトウェア割り込み命令
 4.9 まとめ

第5章 効率的なC言語のプログラミング
 5.1 Cコンパイラと最適化の概要
 5.2 C言語の基本データ・タイプ
 5.3 C言語のループ構造体
 5.4 レジスタの割り当て
 5.5 関数呼び出し
 5.6 ポインタのエイリアス
 5.7 構造体の配置
 5.8 ビット・フィールド
 5.9 アンアラインド・データとエンディアン
 5.10 除算
 5.11 浮動小数点
 5.12 インライン関数とインライン・アセンブリ
 5.13 移植に関する問題
 5.14 まとめ

第6章 ARMアセンブリ・コードの記述と最適化
 6.1 アセンブリ・コードの記述
 6.2 プロファイリングとサイクル・カウント
 6.3 命令のスケジューリング
 6.4 レジスタの割り当て
 6.5 条件付き実行
 6.6 ループの構成要素
 6.7 ビットの操作
 6.8 効率的なスイッチ
 6.9 アンアラインド・データの処理
 6.10 まとめ

第7章 最適化したプリミティブ演算
 7.1 倍精度の整数乗算
 7.2 整数の正規化と先行ゼロ・カウント
 7.3 除算
 7.4 平方根
 7.5 超越関数:log,exp,sin,cos
 7.6 エンディアン反転とビット演算
 7.7 飽和/丸め算術演算
 7.8 乱数生成
 7.9 まとめ

第8章 ディジタル信号処理
 8.1 ディジタル信号の表記法
 8.2 ARMにおけるDSPの概要
 8.3 FIRフィルタ
 8.4 IIRフィルタ
 8.5 離散フーリエ変換
 8.6 まとめ

第9章 例外と割り込みの処理
 9.1 例外処理
 9.2 割り込み
 9.3 割り込み処理方式
 9.4 まとめ

第10章 ファームウェア
 10.1 ファームウェアとブートローダ
 10.2 例:Sandstone
 10.3 まとめ

第11章 組み込みオペレーティング・システム
 11.1 基本的なコンポーネント
 11.2 例:単純で小さなオペレーティング・システム
 11.3 まとめ

第12章 キャッシュ
 12.1 メモリ階層とキャッシュ・メモリ
 12.2 キャッシュ・アーキテクチャ
 12.3 キャッシュ・ポリシー
 12.4 コプロセッサ15とキャッシュ
 12.5 キャッシュ・メモリのフラッシュとクリーニング
 12.6 キャッシュのロックダウン
 12.7 キャッシュとソフトウェアのパフォーマンス
 12.8 まとめ

第13章 メモリ保護ユニット
 13.1 保護領域
 13.2 MPU,キャッシュ,ライト・バッファの初期化
 13.3 MPUシステムのデモンストレーション
 13.4 まとめ

第14章 メモリ管理ユニット
 14.1 MPUからMMUへの移行
 14.2 仮想メモリの動作
 14.3 ARM MMUの詳細
 14.4 ページ・テーブル
 14.5 変換ルックアサイド・バッファ
 14.6 ドメインとメモリ・アクセス許可
 14.7 キャッシュとライト・バッファ
 14.8 コプロセッサ15とMMUの構成
 14.9 高速コンテキスト・スイッチ拡張機能
 14.10 デモンストレーション:小規模の仮想メモリ・システム
 14.11 mmuSLOSとしてのデモンストレーション
 14.12 まとめ

第15章 将来のアーキテクチャ John Rayfield
 15.1 ARMv6の拡張DSPとSIMDサポート
 15.2 ARMv6で追加されたシステムとマルチプロセッサのサポート
 15.3 ARMv6の実装
 15.4 ARMv6以降のテクノロジ
 15.5 まとめ

付録A ARMおよびThumbのアセンブラ命令
 A.1 付録Aの使用法
 A.2 構文
 A.3 ARMおよびThumb命令のアルファベット順一覧
 A.4 ARMアセンブラのクイック・リファレンス
 A.5 GNUアセンブラのクイック・リファレンス

付録B ARMおよびThumb命令のエンコード
 B.1 ARM命令セットのエンコード
 B.2 Thumb命令セットのエンコード
 B.3 プログラム・ステータス・レジスタ

付録C プロセッサとアーキテクチャ
 C.1 ARM名前付け規則
 C.2 コアとアーキテクチャ

付録D 命令のサイクル・タイミング
 D.1 命令のサイクル・タイミング表の使用法
 D.2 ARM7TDMI命令のサイクル・タイミング
 D.3 ARM9TDMI命令のサイクル・タイミング
 D.4 StrogARM1命令のサイクル・タイミング
 D.5 ARM9E命令のサイクル・タイミング
 D.6 ARM10E命令のサイクル・タイミング
 D.7 Intel XScale命令のサイクル・タイミング
 D.8 ARM11のサイクル・タイミング

付録E 関連資料
 E.1 ARMの関連資料
 E.2 アルゴリズムの関連資料
 E.3 メモリ管理とキャッシュ・アーキテクチャ(ハードウェアの概要と関連資料)
 E.4 オペレーティング・システムの関連資料