ARM例外とベアメタル開発

2019年12月15日

キーワード:組み込み開発、例外処理、ベアメタル組み込み開発


 

1、ARM例外

 

異常事象が組込み開発では非常に共通している、それはまた、非常に重要なイベントです。簡単に言えば、それは異常なイベントの種類は、通常のプログラム実行を中断しますです。異常は、多くの場合、「ブレーク」と呼ば

 

エラーの種類は、次のカテゴリに分けることができます。

1、割り込み

外部ハードウェアトリガによってIRQ / FIQ割り込み。

2、ソフト割り込み

システムによって呼び出さソフト割り込み割り込みイベントは、割り込みイベントは、ソフトウェアによって生成されます。

3、リセット

リセット 

4、未定義命令

5、データ異常

例えば、データが境界を越えます。

 

割り込み:

; 2、IRQ 1、FIQ:ARMは、外部割り込み、2つのレベルを有しています。

 

しかし、ほとんどの組み込みシステムは、より多くの2つの外部割り込み要因よりも、すべての外部割り込みイベントに適切に対応するために、あなたは「割り込みコントローラ」を必要としています

 

下に示すように実質的アーキテクチャ割り込み組み込みシステム。

短い時間での割り込み事象の場合には、多量、CPUは、すべての割り込みイベントへのタイムリーな応答を保証することはできません。発生失われた割り込みの問題を回避するために、各イベントは、私たちの共通の設定で「録画」、作る中断「割り込みフラグを。」CPU割り込みフラグの値が有効であることが分かった場合は、割り込みイベントを開始します。もちろん、割り込みイベント我々は、一般的に、我々は通常、クリーンアップ操作のためのハンドラに対応する割り込みフラグを中断したいので、1を扱うだけです。

 

ARMシステムが応答機構割り込み具体アドレスストレージに「割り込みベクタテーブル」機能であろう。

 

2、ベアメタル開発

 

ベアメタル展開とは何ですか?

 

これは、ハードウェアデバイスを開発するためにベアメタルプレート組込み開発の開発、直接書き込みモードプログラム制御を指します。いいえ開発ボードのオペレーティングシステムは、周りに様々なボードの中に、プログラムが必要な周辺ハードウェアリソースは、その完全な操作に使用します。

 

ベアメタル・ソフトウェア・プログラミング機能の開発に加えて、非常に重要なことは、ハードウェア回路とチップマニュアルのさまざまなを読むことができるようにすることですがあります。

 

埋め込み技術の概略的な設計では、多くの場合、特定のCPUピンデバイスが直接接続されていないと見られるが、間接的に制御された「三極」貫通することができます。この設計の理由は、周辺機器の多様性を制御することは総電流の周辺機器を燃やしたCPUのリスクを軽減することです。通常3.3Vの電圧を供給し、LEDランプ用LEDランプ制御回路を取り、そして1Kの抵抗へのアクセス。このように、LEDを約3.3ミリアンペアの現在の作業時に点灯します。CPU端子が直接比較的大きくなり、CPUの熱が成長する基板は同時にLEDライトアップの数が多い場合、CPUに入力される電流を加算し、LEDライト消灯を制御する場合、より大きなリスクが燃え。間接LEDランプ制御トランジスタを介して、作業を直接CPUに適用されないリスク、LED電流が存在するであろう。

 

プルダウン抵抗:概略的な設計では、非常に一般的な概念があります。彼らは、外部回路又は抵抗素子のグループに対応する構成要素を指します。プル抵抗素子が電源に接続されていることをいい、それはグランドに接続され、プルダウン抵抗素子を指します。

 

ARMチップは、多くの場合、GPIOピンのいくつかのグループがあるだろうそのうち、ピンがたくさんあります。GPIOの略:汎用入力/出力実現する自由は、当社のソフトウェアロジック機能に専用されているとして、これらのピンは、単純に理解することができます。ハードウェアリソースと開発コストを節約するために、通常は同じチップのピンは、複数の機能的な目的を持つことができます。私たちは、最初のプログラムでは、ピン、ピンの値を設定するために行く前に良い機能的な使用方法を決定する必要があります。従って、制御ピンARMチップは、典型的に登録するために2つの操作が必要です。

図1に示すように、機能制御レジスタ。

2、レジスタ値。

ソフトウェア開発プロセスでは、最初のレジスタは、我々が機能制御、通常GPIOモード又は他の機能の使用を介して使用する端子の機能を設定し、方向入力または出力方向です。そしてだけにして、対応するレベル値がレジスタ値に書き込まれます。

 

プログラム終了後、ビルドに必要ARMチップ上で実行するための実行可能ファイルを生成します。

 

コンパイルプロセスは、一般的に完了するために、Linuxオペレーティングシステムを使用しています。プログラムを実行するには、プラットフォームは、GCCツールと一致するとコンパイルも、ある特殊な「コンパイル・チェーン」を、使用する必要があります。そのコンパイラ実行可能なプログラムだけでx86アーキテクチャのチップ上で実行することができて、LinuxシステムのPC側は、x86のチップアーキテクチャ用のデフォルトのgccです。GCCツールやプラットフォームをダウンロードして自分でインストールするか、チップメーカーを求めるように依頼する必要性を一致させます。

 

ARMベアメタル開発モデルとしても知られている「クロス開発環境を提供します。」これは、開発を参照し、プログラムの動作が別々に行われています。我々は通常、書き込みにPCを使用してプログラムをコンパイルして、コンパイルされた実行可能プログラムを実行するには、開発ボードにダウンロード。この開発環境は、「クロス開発環境」と呼ばれています。

 

一部の開発者は、開発ボードメモリにプログラムをダウンロードして、その後、私たちの「ベアメタルプログラム」は、このコマンドで+メモリアドレスを行くを実行するために、直接のloadbコマンドによって、工場出荷時のプリセットプログラムubootでモードでubootに搭乗します。もちろん、このモデルでは、この機能を提供している特定のベンダーに依存しているか否か、すべてのARM開発ボードがサポートされていません。

 


 

おすすめ

転載: www.cnblogs.com/chorm590/p/12032156.html