ベアメタルマルチコアの例を書きました。
コード、回路図はこちら-https://github.com/jeffreyantony/multipi/tree/master/Example_01
私の例では、3つのLEDがラズベリーPiのGPIOピンに接続されています。Raspberry Pi 2には合計4つのコアがあります。各コアは、対応するLEDを点滅させるために割り当てられています。
各コアが実行するコードのアドレスを以下のアドレスに書きました。コア1の場合は0x4000009Cコア2の場合は0x400000ACコア3の場合は0x400000BC
コードをコンパイルすると、コア1に割り当てられたLEDのみが点滅します(この例では、黄色のLED)。他はそうではありません。
これは、コア2および3のコードが実行されていないことを意味します(他のLEDが点滅していないため)。また、すべてのコアを起動した後にコードが実行されていないこともわかりました。つまり、core0_submain()-この関数は、Raspberry PiのACT LEDを点滅させる必要があります
誰も私に問題が何であるかを知らせてもらえますか?4つのコアすべてが同じGPIOレジスタに書き込みを試み、コア1のみが書き込みで勝っているからですか?
「属性((裸));」を追加してみました core0_submain()では使用されませんでした。
https://launchpad.net/gcc-arm-embeddedのツールチェーンを使用しています
もう一度コード-https://github.com/jeffreyantony/multipi/blob/master/Example_01/main.c
makefile- https://github.com/jeffreyantony/multipi/blob/master/Example_01/Makefile
2015年10月20日更新:JTAGのサポートを追加しました。しかし、デバッグインターフェイスを取得できませんでした。
2015年10月25日更新:問題は修正されました。答えを見てください。