コア n の 2 つの Thread (仮想コア) で 2 つの異なる OS を実行したいと考えています。しかし、Thread 0 は 0xffff_fffc からエントリを取得することはわかっています。しかし、Thread 1 の入り口を設定する方法がわかりません。この目的のためのレジスターまたは特別なアドレスはありますか?
迅速なサポート誠にありがとうございました。
これをT4240/e6500に実装したいです。ここでは特定のレジスターが見つかりません。これに関して何か提案はありますか。
こんにちは、
マルチコア/マルチスレッド プロセッサの場合、コアのThread 0 は通常、ブート時にアドレス 0xFFFF_FFFC からエントリ ポイントを取得します。ただし、Thread 1 の場合は、通常、異なるメカニズムが存在します。
スレッド 1 のプログラム エントリを設定するには:
1.プライマリThread(Thread 0)は、Thread 1のセットアップと起動を担当します。
これは通常、セカンダリThreadのリセットベクターまたはエントリポイントアドレスを制御する特定のレジスタを通じて行われます。
正確な実装は特定の NXP プロセッサによって異なりますが、一般的には次のようになります。
1. Thread 1のアプリケーションコードを適切なメモリ位置にロードする
2. Thread 1のエントリポイントレジスタをこの位置を指すように設定する
3. Thread 1をリセットから解放して実行を開始する
Arm Cortex アーキテクチャのプロセッサを使用している場合、多くの場合、次の処理が行われます。
- リセットベクターアドレスを特定のSRC(System Reset Controller)レジスタに書き込む
- 制御ビットを設定してセカンダリThreadをリセットから解放する
よろしくお願いします。