今日まで、私は単一のコアでプログラミングしていましたが、今では複数のコアでコードを実行する必要があります。私は約1週間調査しており、これについていくつか質問がありました。
ちなみに、Zynq 702、Arm DS-5、Dstream を使用しています。そして、Core0で実行されている既存のコードを使用しながら、これを達成しようとしています.
core1 には何もせず、単に接続しただけで、0xFFFFFFF0 とこのアドレスの値にジャンプすることを確認したいだけです。core1 を対象とする割り込みハンドラは設定していません。私の唯一の「観察」状況で大丈夫ですか?または、本当にいくつかの構成を設定する必要がありますか? 最も簡単な方法でこれを達成するにはどうすればよいですか?
core1 に接続し、core0 でプログラムを続行しながらその状態を観察します。ところで、core1 で実行されているアプリケーションはありません。アドレス 0x300 まで上がります。このアドレスには WFE コマンドがあり、その直後に、再び 0x300 に分岐する B(ranch) コマンドがあります。これはループのようなもので、私のコードは WFE コマンドで約 0.5 秒留まり、次の命令 B にジャンプし、再び WFE に分岐します......
Core1 は WFE コマンドを実行した後、次の B(ranch) コマンドを実行するのではなく、EVENT を送信しない限りそこにとどまるべきだと思いますよね? もしそうなら、それはcore1がどこかから定期的にイベントを取得していることを意味しますか? ボードを Dstream Debugger に接続すると EVENT が発生しますか?
アドレス 0xFFFFFFF0 の値を設定すると、core1 が 0xFFFFFFF0 のアドレスにジャンプするのはなぜですか? core1 が WFE/WFI 状態にある間、単純な SEV コマンドで十分ですか? 0xFFFFFFF0 の値が 0x00000000 の場合、どうなりますか? Core1 は呼び出し元の WFE/WFI に戻りますか? または、他の何か?