Last Update 2019/06/21

起動プログラム ブート・ローダ入門
クロックの初期化や外部メモリの設定からOSの起動まで

Interface編集部 編
B5判 208ページ
定価2,420円(税込)
JAN9784789849913
2009年9月1日発行
[品切れ重版未定2017.6.20] 起動プログラム ブート・ローダ入門
大変恐縮ですが,こちらの商品は品切れ重版未定となりました.

 昨今では組み込みシステムにOSとしてLinuxなどの大規模OSが採用されることも多くなりました.これらのOSは電源投入と同時にいきなり起動するものではありません.大規模OSが起動するまえに,システムを初期化するプログラムが『ブート・ローダ』と呼ばれるプログラムです.Linuxなどの大規模OSは一般的に大容量メモリを必要とするので,CPUに外付けしたフラッシュROMやDDR-SDRAMなどのDRAMを搭載するシステムが一般的です.これらの外部メモリは,CPUの起動(リセット)直後の状態ではすぐにはアクセスできない場合があります.とくにSDRAM系の外部メモリは,必ず初期化処理が必要です.
 またCPUの外付け発振子の周波数を低く抑え,CPU内部でてい倍処理して高速なクロック周波数を得るシステムもよく見受けられます.これらも,CPU起動直後は低速なクロックで動作しているので,システム・パフォーマンスを上げるにはクロック設定を初期して,システム・クロックを高速化します. 本書は,さまざまなCPUの初期化事例から,フリーでオープン・ソースの各種ブート・ローダの移植事例や使い方について解説します.

目次

 リセット解除後,一番最初に実行されるプログラム
プロローグ ブート・ローダ事始め
 1.ブート・ローダって何だ?
 2.ブート・ローダが生まれた背景


第1部 基礎知識編


 ブート・ローダの理解に欠かせない
第1章 CPU 14のコモンセンス

 OSを動かすまでの技術を総覧する
第2章 ブート・ローダの役割と開発の流れ
 1.ブート・ローダを理解するための各種用語
 2.ブート・ローダの種類と現状
 3.ブート・ローダの役割と動作
 4.ブート・ローダ開発のガイドライン
  コラム1 BIOSとは
  コラム2 以前はROM,最近はフラッシュ・メモリに搭載
  コラム3 eCos,Newlib,uClibc,OSKit

 内部ハードウェアの初期設定プログラムを考察
第3章 ワンチップ・マイコンの起動時の振る舞い
 1.BIOSとは
 2.R8CマイコンのCPUとメモリ空間
 3.R8Cマイコンの周辺機能
 4.R8Cの開発環境と機械語
 5.ソフトウェアの基本設計
 6.スタートアップ・ルーチンとBIOS

 メモリ使用量の小さいOSと68000系CPUを例に起動原理を考察
第4章 TOPPERSで学ぶμITRONのブート・シーケンス
 1.TOPPERS/JSPカーネルとは
 2.実際のブート・プロセスを考察
 3.ブート・ローダ/BIOSの影響
  コラム1 VMA/LMAの概念とその落とし穴

 クロックてい倍や外部バス・コントローラの初期化いろいろ
第5章 SH,V850,ARMマイコンのCPU初期化サンプル集
 1.SH-2シリーズの初期化例
 2.SH-4シリーズの外部バス初期化例
 3.SH-4Aシリーズの外部バス初期化例
 4.V850シリーズの初期化例
 5.ARMマイコンLPC23xxシリーズの初期化例
 6.ARMマイコンADuC702xシリーズの初期化例
 7.ARMマイコンAT91SAM7Xシリーズの初期化例
 8.ARMマイコンAT91SAM9XEシリーズの初期化例


第2部 RedBoot編


 GDBスタブ機能内蔵でフリーの高機能ブート・ローダ
第6章 ブート・ローダRedBootの実装(SH-4編)
 1.開発のための準備作業
 2.コンフィグレーション・ツールの使用方法
 3.RedBootの移植
 4.コンフィグレーションとビルド
 5.ターゲット・ボードへの実装

 GDBスタブ機能内蔵でフリーの高機能ブート・ローダ
第7章 ブート・ローダRedBootの実装(XScale編)
 1.eCos RedBootの移植
 2.RedBootの基本的な使い方
 3.GDBスタブとしてのRedBoot
 4.GDBを使う
 5.フラッシュ・メモリを使ったアプリケーション
  コラム1 eCosってITRONですか?


第3部 Das U-Boot編


 μClinux対応学習用ボードにブート・ローダを移植する
第8章 ブート・ローダDas U-Bootの実装(Blackfin編)
 1.開発環境の準備
 2.CPUの動作と初期化
 3.U-Bootのコンパイルと動作確認
 4.U-Bootのコマンドライン使用例
  コラム1 JTAGとJTAG Tools

 ネットワーク・ストレージ「玄箱」でLinuxを起動させるために
第9章 ブート・ローダDas U-Bootの実装(PowerPC編)
 1.U-Bootの移植準備と玄箱の起動シーケンス
 2.玄箱固有の設定ファイルの作成
 3.SDRAMおよびフラッシュROMの設定
 4.PCIデバイスの設定
 5.ネットワーク・ドライバの設定
 6.IDEコントローラの設定
 7.シリアル・ポートの設定
 8.スイッチとウォッチドッグ・タイマの設定
 9.U-Bootのコンパイル


第4部 ipl+g編


 SH-Linuxを題材にしてLinuxの起動までを学ぶ
第10章 SH-3/4シリーズ向けブート・ローダipl+gのしくみと動作
 1.IPLの仕事
 2.SH-3/4用の起動プログラムとソース・コードの入手
 3.SH-3 CPUのメモリ領域
 4.起動からコマンド・プロンプト処理まで
 5.カーネルはどこから来るのか
  コラム1 CompactFlashからの起動


第5部 YAMON編


 MIPS系AlchemyプロセッサAu1100搭載評価ボードを使った
第11章 MIPSプロセッサ向けブート・ローダYAMONの実装事例
 1.開発環境の準備
 2.YAMONの実装
 3.YAMONのデバッグ
 4.YAMONの使い方
 5.YAMONのアップデート
  コラム1 MIPSはリトル・エンディアンとビッグ・エンディアンの両方に対応


第6部 オリジナル・ブート・ローダ編


 自作することでブート・ローダのしくみを理解する
第12章 MIPS系プロセッサ対応オリジナル・ブート・ローダの作成
 1.ブート・ローダの自作の勧め
 2.macoboot-tinyのコンセプト
 3.使用するボードとOS
 4.macoboot-tinyのブート・シーケンス
 5.各OSのブート・シーケンス
 6.開発環境はターゲット用Linuxを構築する環境
 7.ビルドとデバッグ
 8.macoboot-tinyやOSイメージのフラッシュ・メモリへの書き込み
 9.機能拡張やほかのボード/CPUへの移植
  コラム1 なんでこんなコードになってるんだ!ってこと多いですよね

 FPGA評価キットとオプションCPUカードを組み合わせて試す
第13章 MicroBlaze & SH-4A用オリジナル・ブート・ローダの作成
 1.オリジナル・ブート・ローダの仕様
 2.評価キットのハードウェア構成
 3.ネットワーク対応TFTPブート・ローダの作成
 4.FATファイル・システムからのブート・ローダの作成
 5.ATAPI CD-ROM/DVD-ROMからのブート・ローダの作成