web-dev-qa-db-ja.com

Linuxのコンパイル時にカーネルベースアドレスを変更するにはどうすればよいですか?

RedPitaya FPGAボードに取り組んでおり、非対称マルチプロセッシングを使用したいと考えています。 CPU0はLinuxを実行し、CPU1はBaremetalまたはfreeRTOSを実行します。

そのためには、CPU1で実行されているアプリケーション/ FreeRTOSがメモリにアクセスできるように、カーネルロードアドレスを変更する必要があります。カーネルロードアドレスを変更する方法を知っている人はいますか?

一部の構成ファイル、デバイスツリー、およびu-bootがカーネルをロードするアドレスを変更する必要があると思います(これについてはよくわかりません)。残りは理解できると思いますが、カーネル構成またはソースで何を変更するかを理解するのに苦労しています。

追伸:PetaLinux SDKを使用すると、 OpenAMP Framework for Zynq Devices 17ページで説明されているように実行されます。PetaLinuxを使用せずに実行する方法を理解する必要があります。

乾杯。ワカルラシッド

2
Waqar Rashid

私が使用していたボードのredpitayaの場合、解決策は簡単でした。あなたがする必要があるのは、カーネルをコンパイルするために使用されるコマンドを作成するためのカーネルベースアドレスを提供することです。 redpitayaの場合、これはMakefile.x86 uImage tragetにあります(私のWordを使用しないでください)。

RedPitayaで非対称マルチプロセッシングを実行するためのビデオチュートリアルを作成しました。このステップは、this time にあります。

1
Waqar Rashid