インテルのみ表示可能 — GUID: iga1405558189601
Ixiasoft
インテルのみ表示可能 — GUID: iga1405558189601
Ixiasoft
5.4.1.1. alt_avalon_spi_command()
プロトタイプ | int alt_avalon_spi_command(alt_u32 base, alt_u32 slave, alt_u32 write_length, const alt_u8* wdata, alt_u32 read_length, alt_u8* read_data, alt_u32 flags) |
スレッドセーフ | いいえ |
ISRから利用可能 | いいえ |
インクルード | <altera_avalon_spi.h> |
説明 | この関数は、SPIパスで制御シーケンスを実行します。これは、データ幅が8ビット以下のSPIマスターのみをサポートします。この関数の1つの呼び出しでは、任意の長さのデータバッファーをmosiポートに書き込み、その後、任意の量のデータをmisoポートから読み戻します。この関数は次の動作を行います。 (1) 指定されているスレーブにスレーブ選択出力をアサートします。最初のスレーブ選択出力は0です。 (2) write_lengthバイトのデータをwdataからSPIインターフェイスを介して送信し、misoポートで着信データを破棄します。 (3) read_lengthバイトのデータを読み出し、そのデータをread_dataが指しているバッファーに格納します。読み出しトランザクション時に、mosiポートは0に設定されます。 (4) フラグフィールドにALT_AVALON_SPI_COMMAND_MERGEの値が含まれている場合を除き、スレーブ選択出力をデアサートします。分散しているバッファーから送信する必要がある場合は、この関数を複数回呼び出し、最後のアクセスを除くすべてのアクセスでマージフラグを指定します。 複数のスレッドからSPIバスにアクセスするには、セマフォーまたはミューテックスを使用し、常に1スレッドのみがこの関数内で実行されることを保証する必要があります。 |
戻り値 | read_dataバッファーに格納されているバイト数 |