プロセッサロジックは一般的に固定されており、ハードウェアという用語が使われています。ソフトウェアとは、変更、成形などが可能なものであり、ソフトウェアという用語です。
ハードウェアは、2つの基本的な方法、いくつかの方法で開始する必要があります。
1)プロセッサのメモリ空間でロジックにハードコードされたアドレスが読み取られ、その値がコードの実行を開始するアドレスになります。
2)ロジックにハードコードされたアドレスは、プロセッサがコードの実行を開始する場所です。
プロセッサ自体が他のハードウェアと統合されている場合、あらゆるものを任意のアドレス空間にマッピングできます。RAMは、アドレス0x1000または0x40000000、あるいはその両方に配置できます。周辺機器を0x1000、0x4000、0xF0000000、または上記のすべてにマッピングできます。それは、システム設計者の選択、または物事が進むエンジニアのチームの組み合わせです。重要な要素の1つは、リセットが解除された後のシステムの起動方法です。プロセッサの起動は、そのアーキテクチャのためによく知られています。設計者は多くの場合、次の2つのパスを選択します。
1)プロセッサの起動方法に応じてリセットベクトルまたはエントリポイントを含むメモリスペースにROMを配置します(どのアーキテクチャに関係なく、読み取られる最初のアドレスまたはアドレスの最初のブロックがあり、それらの内容が起動を駆動します)プロセッサの)。ソフトウェアは、プロセッサが起動して実行されるように、コードまたはベクトルテーブル、あるいはその両方をこのROMに配置します。
2)一部のホストがプログラムをそのRAMにダウンロードし、プロセッサのリセットを解放できるように、RAMをメモリスペースに配置します。次に、プロセッサはハードコードされたブート手順に従い、ソフトウェアが実行されます。
1つ目は最も一般的で、2つ目は一部の周辺機器、マウス、ネットワークカードなどに見られます(たとえば、/ usr / lib / Firmware /のファームウェアの一部がこれに使用されます)。
ただし、最終的には、プロセッサは通常、1つの起動方法、つまり固定方法で設計されているため、そのプロセッサ用に作成されたすべてのソフトウェアはその1つの方法に準拠でき、変更を続ける必要はありません。また、設計時のプロセッサはターゲットアプリケーションを認識していないため、一般的なソリューションが必要です。ターゲットアプリケーションは、多くの場合、メモリマップ、プロセッサのメモリスペースのどこにあるかを定義し、その割り当てのタスクの1つは、その製品の起動方法です。そこから、ソフトウェアは、プロセッサの規則と製品のハードウェアの規則に準拠するようにコンパイルおよび配置されます。