しばらく前に開始したプロジェクトの一部を完成させているので、適切なコアが必要です。 1usを超える遅延は生成された信号の品質に影響を与える可能性があるため、一部のコードは常に実行する必要があります。
私のハードウェアはARM Cortex A-53、4x1.2GHz、1GB RAMである可能性が高い(Pine64ボードでテスト済み)。簡単に言えば、コードはループで実行され、メモリ内のデータの変更を確認し、信号を計算して転送します。したがって、コンソールに出力印刷、ファイルを開く、malloc / freeなどのGPIOピン操作以外のシステムコールはありません。これらのタスクはすべて他のコアで実行されます。
GUIレンダリング、OpenGLを使ったレンダリングマシンの簡単なエミュレーション、コマンド受信など他の3つのコアで使いたい機能が多いので、Linuxを使いたいと思います。このような小さなチップを要求することが多いことを知っていますが、これを達成する方法はありますか?
私はisolcpus=3
Linuxカーネルに引数を渡し、そのCPUでirqを無効にしようとしました。その後、次のようにtaskset
単純なプロセスを作成しましたが、5usのジッタがあり、期待どおりに動作しませんでした。
答え1
質問を完全に理解したかどうかはわかりませんが、この以前の質問似たような領域を扱っていると思いますか?