記事 ID: 000086331 コンテンツタイプ: トラブルシューティング 最終改訂日: 2014/09/26

DMASEV を CPU に取り付ける前に、メモリー障壁命令を挿入する必要がありますか?

環境

    インテル® Quartus® II サブスクリプション・エディション
    DMA
BUILT IN - ARTICLE INTRO SECOND COMPONENT
詳細

ARM とAlteraの推奨は、AXI 転送が完了する前に DMA コントローラーが割り込みをシグナリングしないように、DMASEV 命令を CPU に指示する前にメモリー・障壁命令を挿入することです。

解決方法

HWlibs DMA ドライバー alt_dma.c は、以下のように DMASEV 命令の前にメモリー障壁命令を追加して更新されています。


if (send_evt)
{
if (status == ALT_E_SUCCESS)
{
status = alt_dma_program_DMAWMB(program);
}
if (status == ALT_E_SUCCESS)
{
dprintf ("DMA[M->M] イベントの追加 ...\n")
status = alt_dma_program_DMASEV (プログラム、evt);
}
}

HWlibs DMA ドライバーの更新バージョンは、SoC EDS の次のリリースで利用可能になる予定です。

関連製品

本記事の適用対象: 1 製品

インテル® プログラマブル・デバイス

1

このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。この内容は参考情報および一般的な情報を提供するためものであり、情報の正確さと完全性を保証するものではありません。インテルは不正確な翻訳があった場合でもいかなる責任を負いません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。