組み込みLinuxの移植とUboot():ブートローダの導入、Uboot紹介(機能、ディレクトリ構造)

ブートローダが何であるかを第一に、

組み込みオペレーティングシステムでは、ブートローダーは実行するために、オペレーティング・システム・カーネルの前に実行されますすることができ、ハードウェア・デバイス、メモリ空間マップの設立初期化する適切な環境の準備ができて、オペレーティングシステムのカーネルへの最後の呼び出しために、適切な状態をもたらす、システムのハードウェアおよびソフトウェア環境を。システム全体が完全にブートローダが行われたタスクを開始するためにロードされているので、組み込みシステムでは、通常はBIOSファームウェアのようなもののように、(ノート、いくつかの組み込みCPUは短い起動プログラムのために構築されます)しません。

ブートローダは、異なるプロセッサアーキテクチャが異なるブートローダを持っていますブートローダは、CPUアーキテクチャ上および構成埋め込みボード・レベルのデバイスに依存しないだけ依存します二つの異なる組み込みボードのために、彼らは同じプロセッサを使用している場合でも、一般的にソースブートローダの変更を必要とし、別のボード上で実行することができますボード上で動作するブートローダープログラムを取得します。

ターンでは、大多数は、まだ非常にブートローダを持っているより一般的なよりも、いくつかのブートローダも、組み込みシステム・アーキテクチャの様々なサポートすることができます。例えば、U-Bootが両方のアーキテクチャのPowerPC、ARM、MIPSおよびX86をサポートし、何百もあるボードをサポートします。一般的に、彼らは記憶媒体から自動的に起動することができ、我々は、オペレーティングシステムの起動を起動することができ、ほとんどのシリアルサポートし、イーサネットインターフェイスをすることができます。

ブートローダの場合は、次の4点にまとめることができます。

  1. ハードウェアのスタートアップは、オペレーティングシステムが前提に実行されている場合、ブートローダ、ブートプログラムが実行されます。
  2. コードのブートローダ部分は、オペレーティングシステムのカーネルやユーザ・アプリケーションが実行される前に実行されます。
  3. 組み込みシステムでは、システム全体の初期化および負荷は、一般的にブートローダによって行われます。
  4. ハードウェアの初期化と設定を対応して、オペレーティングシステムは、最終的な環境の準備ができています。

二、ブートローダの機能

ブートローダは、オペレーティング・システムの一部ではない、一般的にアセンブリ言語やC言語の発達を使用します。特定のハードウェアプラットフォームのために記述する必要があります。ときに移植プロセス、移植ブートローダの開発のための最初のボード。ブートローダだけでなく、CPUアーキテクチャに依存し、構成埋め込みボード・レベルのデバイスに依存します。それは次の3点に要約することができます。

  1. ブートローダの実行は、通常、2つの段階に分けられます。
  2. オペレーティングシステムのブートローダーの独立しました。
  3. ブートローダは、CPUアーキテクチャ上および構成埋め込みボード・レベルのデバイスに依存しないだけ依存します。

三、実行のブートローダモード

自己起動モード:このモードでは、ターゲットオペレーティングシステム上でソリッドステートストレージデバイスからブートローダは、このモードでは、実行するためにRAMにロードされ、ブートローダコマンドユーザの介入なしに自動的に実行するために、全体のプロセス・セットを事前に応じこのモデルは、ブートローダである通常動作モードなので、製品のリリースを埋め込まれたとき、ブートローダは、このモードで動作する必要があります

対話モード:このモードでは、ブートローダーは、ターゲットマシン上で、開発ボード(ホスト)からネットワークまたはシリアル通信手段などによって、待機中のカーネルのルート・ファイル・システム・イメージ・マッピングRAMをダウンロードします。ブートローダは、ターゲットマシン上、または直接誘導システムにソリッドステート大容量記憶媒体に書き込むことができます。また、シリアルポートを介してユーザの指示を受けることができます。このモードでは、ブートローダとシリアル通信、受信者のコマンドを使用してPCでブートローダモードは、一般的にされて第1の書き込み後のシステムまたはソリッドステート記憶媒体へのカーネルとルートファイルシステムを更新する際に使用するために使用、初期の開発中に、開発者のためのマルチモードのダウンロード、このモードブートローダでの作業通常はそのエンドユーザーのためのシンプルなコマンドラインインターフェース。

第四に、いくつかのブートローダの導入

ここに画像を挿入説明

レッドブートローダ

RedBootのは、など、ARM、MIPS、MN10300、PowerPCの、ルネサスSHX、V850、x86のを、持っている、それは完全な組込みシステムのブートローダーであるプロセッサアーキテクチャをサポートしていました。

RedBootのは、ECOSに基づいて取り除かれ、ECOSはシンプル、軽量、柔軟な構成、安定性と信頼性の高い品質の利点を継承しています。これは、(フラッシュのアップデートとダウンロードを一般的にサポートのデバッグに使用する画像ファイルプログラム、およびシステムの初期化をダウンロードするにはBOOTP / DHCPサービス、利用TFTP経由でイーサネットポートIPパラメータを介して取得することができるシリアル・ダウンロードを経由してX-モデムまたはY-モデムのプロトコルを使用することができますネットワークブート)。シリアルポートとEthernetポートのアプリケーションを通じてRedBootのは、GDBデバッグアプリケーションと通信するためにGDBを実行している、とさえ破ることができます。自動的に開始された後、RedBootのは、TFTPサーバからスクリプトファイルを、直接またはフラッシュファイルシステムから画像をダウンロードするために使用される、イーサネットポートは、対話型のコマンドラインインターフェイスを提供し、FLASHイメージ、画像のダウンロード、設定や、シリアルポートなど他のRedBootのを管理するためのRedBootのフラッシュに保存されています。現在のバージョンのサポートのSBC移植特性は以下のとおりです。

  • サポートECOS、Linuxオペレーティングシステムのブート
  • オンライン読み出しおよび書き込みフラッシュ
  • シリアルポートカーミット、Sレコードコードのダウンロード
  • コマンド(MINITORにより)モニタリング:I / O、メモリ、レジスタ、メモリ、およびその他の周辺機能テストを読み書き

レッドブートローダ関連サイト:http://sourceware.org/redboot/

ARMブートローダ

eCosのでRedBootの会社はRedHatのそれは、オープンソースプロジェクトで、BOOTスキームを発表しています。ARM720、ARM920、ARM926、CortexA8、SA1100、のXScaleをサポートしています。

ARMbootの目標は、汎用性の高い新しいプラットフォームに適用することは非常に軽量な番組ガイドや携帯を使用して簡単になることです。ARMbootは、ファームウェアのみ、フラッシュメモリ、BOOTP、DHCP、TFTPネットワークのダウンロード、PCMCLAハント機や誘導システムの他のタイプのサポートGPLの下でARMプロジェクトです。特徴:

  • FLASHの複数のタイプをサポートしています。
  • ネットワークから送信されたBOOTP、DHCP、TFTPを介して画像ファイルを可能にします。
  • シリアルポートまたはS-レコードがバイナリファイルをダウンロードしました。
  • メモリの表示と変更ができます。
  • JFFS2ファイルシステムのサポート

(1)U-Bootが標準のARMのブートローダである
U-ブートppcbootを形成するために添加(2)armboot

ARMブートローダ関連サイト:http://armboot.sourceforge.net/

ブロブ

LARTブートローダブロブは、複数のARMプラットフォームに移植されたプロジェクトで使用されています

ブロブはまた、通常モードのブートローダーで、2つの動作モードを提供しますが、エンドユーザーのために待ってブロブを切り替えダウンロードモードに任意のキーを押すようにしながら、それが10秒を遅延されます。ユーザーが10秒以内にボタンを押していない場合は、ブロブは、Linuxカーネルをブートし続けています。基本的な機能:
ハードウェアを初期化(CPU速度、メモリ、割り込み、RS232シリアルポート)

  • ブートのLinuxカーネルとRAMディスクを提供します。
  • LARTは、カーネルやRAMディスクをダウンロードします。
  • FLASHは、シートまたはRAMディスクにカーネルを更新します。
  • ストレージの構成と通知カーネルの決意。
  • カーネルにコマンドライン[5]を提供します。

ブロブ関連ウェブサイト:http://www.lart.tudelft.nl/lartware/blob

U-ブート紹介

U-ブーツ(ユニバーサルブートローダー)は、ドイツでDENXの組み込みCPUのさまざまなブートローダプログラムを開発したチーム。GPLの条項。8xxROM、PPCBOOT、Armbootは徐々に発展し進化しました。
ここに画像を挿入説明

U-ブートプロジェクトの説明

U-Bootが2つの動作モードを提供しています:ブートローダー(ブートロード)モードと、ダウンロード(ダウンロード)モード、および大規模なブートローダーのすべての機能を備えています。主な機能は次のとおりです。

  • SCC / FECイーサネットをサポート。
  • BOOTP / TFTPガイド。
  • IP、MACプリセット機能。
  • オンライン読書やFLASH、DOC、IDE、IIC、EEROM、RTCを書きます。
  • シリアルポートカーミット、Sレコードコードのダウンロード。
  • バイナリの識別、ELF32、画像のpImageフォーマットは、Linuxサポートのための特別なガイドを持っています。
  • コマンド(MINITORにより)モニタリング:読み取り及びI / O、メモリ、レジスタ、メモリ、周辺機器および他のテスト機能を書き込みます。
  • スクリプト言語のサポート(同様のbashスクリプト);
  • サポートウォッチドッグ、LCDロゴ、状態表示機能。
    今、U-ブーツのPowerPC、ARM、X86をサポートすることができました、ボードのMIPSアーキテクチャの何百も最も汎用性の高い、最も柔軟で最も活発に開発されたオープンソースのブートローダーとなっています。それはまだのヴォルフガング・デンクDENXによって維持されています。

U-bootソースパッケージはSourceForgeのサイトからダウンロードすることができ、あなたはまた、U-ブートユーザーのメーリングリストの活性部位を購読することができ、U-ブーツの開発と利用のための電子メールのフォーラムは非常に有用です。

U-ブートパッケージのダウンロードサイト:http://sourceforge.net/project/u-boot
U-bootメーリングリストのウェブサイト:http://lists.sourceforge.net/lists/listinfo/u-boot-users/
DENX関連ウェブサイト:http://www.denx.de/re/DPLG.html

U-ブート機能

  • 移植に簡単にクリアコードの構造、(プログラムの構造を参照してください)
  • これは、(プログラム構造のCPUのディレクトリを参照してください)プロセッサアーキテクチャの様々なサポートしています
  • サポート数多くのリファレンスボード、豊富なコマンドモニタリング(現在200以上の公式パッケージには、プログラムの構造体基板のディレクトリを参照してください)
  • サポートされているネットワークプロトコル、USB、SDおよび他のプロトコルおよび機器
  • ファイルシステムのサポート
  • この問題を解決するためのより積極的な、マルチユーザー、ヘルプを更新

U-bootディレクトリ構造

  1. プラットフォームのディレクトリ構造に関連付けられています
    board, cpu, lib_arm, include…

  2. プラットフォームに依存しないディレクトリ構造
    common, net, fs, drivers…

  3. ツールとドキュメント
    tools, doc

次のディレクトリ構造は、一つ一つを紹介しました:
ここに画像を挿入説明
ここに画像を挿入説明

U-bootコマンドの紹介

接続されて、後で注意を払ってください。

公開された23元の記事 ウォン称賛37 ビュー4526

おすすめ

転載: blog.csdn.net/ywsydwsbn/article/details/105156057
おすすめ