【概要】面接関連の知識ポイントを埋め込む

テールドッキングの中断

同時に複数の割り込みが発生した場合、優先度の高い割り込み割り込みの応答を動作環境に戻す必要はありませんが、次に優先度の高い割り込みを直接実行し、すべての割り込み実行後に動作環境に復帰します。割り込みテールドッキング機能により、2つのスタック操作を節約できます。

SWDデバッグインターフェイス

SWDは、チップの2つのピン(SWDIO SWCLK)を使用するだけで、コアチップのオンラインシミュレーションとデバッグを実現できます。SWDを使用すると、プログラムをチップフラッシュメモリに修正でき、命令追跡実行の機能があります。
いくつかの利点があります。

  1. SWDは高速モードでより信頼性が高くなります。大量のデータの場合、JTAGダウンロードプログラムは失敗する可能性がありますが、SWDの発生確率ははるかに小さくなります。基本的に、JTAGエミュレーションモードを使用する場合は、SWDモードを直接使用できます。
  2. 1つのGPIOポートが欠落している場合、より少ないピンをサポートするSWDエミュレーションを使用できます。
  3. ボードを計画および設計するときは、必要なピンが少なく、PCBスペースが少ないSWDモードを使用することをお勧めします。

JTAGデバッグインターフェイス

JTAG(ジョイントテストアクショングループ、ジョイントテストアクショングループ)は、主に内部チップテストに使用される国際標準テストプロトコル(IEEE 1149.1互換)です。現在、ARM、DSP、FPGAデバイスなどのほとんどの高度なデバイスがJTAGプロトコルをサポートしています。標準のJTAGインターフェイスは4本のワイヤです。TMS、TCK、TDI、TDOで、それぞれモード選択、クロック、データ入力、およびデータ出力ラインです。関連するJTAGピンの定義は次のとおりです。

  • TMS:テストモードの選択。TMSは、JTAGインターフェイスを特定のテストモードに設定するために使用されます。
  • TCK:テストクロック入力。
  • TDI:テストデータ入力。データはTDIピンを介してJTAGインターフェイスに入力されます。
  • TDO:テストデータ出力。データはTDOピンを介してJTAGインターフェイスから出力されます。

ハーバード構造とフォンノイマン構造

Harvard構造は、命令とデータ(別々に格納されている)を同時に読み取ることができるため、高速データ処理に使用されます。データのスループット率を大幅に改善しますが、構造が複雑になるという欠点があります。汎用マイクロコンピュータの命令とデータは、混合ストレージであり、構造がシンプルで低コストです。それがハーバード構造であると仮定します。コンピュータに2つのハードディスクをインストールする必要があります。1つはプログラム用、1つはデータ用、2つはメモリ用、1つは命令用、もう1つはデータ用です...
構造はバス構造によって異なります。51シングルチップマイコンのデータ命令格納領域は分離していますが、バスは時分割多重化されているため、せいぜい改良されたハーバード構造とみなすことができます。ARM7 ARM9はハーバード構造ですが、以前のバージョンもフォンノイマン構造です。初期のX86はすぐに市場を占有できますが、非常に重要な理由は、フォンノイマンのシンプルで低コストのバス構造に正確に依存しているためです。プロセッサは外部バスにNeumann構造を持っているように見えますが、内部CACHEが存在するため、内部的には改良されたハーバード構造です。

フォンノイマン構造:演算ユニット、コントローラ、メモリ、入力デバイス、出力デバイス
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

RAM書き戻しモード(書き戻し)

RAMライトバックモードのある領域は、高速RAM領域とも呼ばれます。カーネルがRAMにデータを書き込む場合、RAMに直接データを書き込むのではなく、高速なキャッシュに書き込みます。キャッシュがいっぱいであるか、バスが空いている場合、キャッシュ内のデータは自動的にRAM領域に書き込まれます。そのため、ライトバック機能のRAMのデータとキャッシュのデータが異なる場合があり、データが小さい場合はRAMに書き込まれるのではなく、キャッシュに保存されます。

オンチップRAM(SRAM)は、通常、ライトバック特性を持つキャッシュメカニズムです。

RAMライトスルーモード(ライトスルー)

カーネルは、RAM領域にデータを書き込むときに、キャッシュを介してRAM領域に直接データを書き込みます。ライトスルー機能では、RAMのデータとキャッシュのデータは同じです。

ワードアドレスハーフワードアドレス

ワードアドレス:アドレスの最下位2ビットは0、たとえば0x0000 0000、0x0000 0004、0x0000 0008、
ハーフワードアドレス:アドレスの最下位ビットは0、たとえば0x0000 0000、0x0000 0002、0x0000 0004、
ワードアドレスはすべてハーフワードアドレス

ビッグエンディアンモードリトルエンディアンモード

リトルエンディアンモードでは、データワードの上位バイトはワードアドレスの上位に格納され、データワードの下位バイトはワードアドレスの下位に格納されます。
ビッグエンディアンモード:データワードの上位バイトはワードアドレスの下位に格納されます。データワードの下位バイトは、ワードアドレスの上位に格納されます。
ビッグエンディアンモードは順序を保持し、各バイトのビットの順序は上位から下位に変更されません。
サーバーは通常、ビッグエンディアンです。

プロセスモードとハンドルモード

ARM命令セットとThumb命令セット

一部の特殊なケースでは、Thumb命令の方がARM命令より効果的である場合があるため、Thumb命令は多くの面で広く使用されています。ただし、ThumbはARM命令セットのサブセットであり、独立してアプリケーションシステムを形成することはできないため、多くの場合、アプリケーションでは2つのプログラミングを混在させる必要があり、ARM状態とThumb状態の間の関数呼び出しの問題が避けられません。

ARM / Thumb間の状態切り替えは、特別な転送交換命令BXによって実現されます。BX命令は、汎用レジスタビットオペランドを使用して、RnをPCにコピーすることにより、4GB空間内での絶対ジャンプを実現します。BXは、Rnレジスタの宛先アドレス値の最後のビットを使用して、ジャンプ後の状態を判断します。最後のビットが0の場合はARM状態への遷移を意味し、最後のビットが1の場合はThumb状態への遷移を意味します。

おすすめ

転載: blog.csdn.net/qq_20515461/article/details/97818558