Visible to Intel only — GUID: iga1405558189601
Ixiasoft
Visible to Intel only — GUID: iga1405558189601
Ixiasoft
5.4.1.1. alt_avalon_spi_command()
Prototype: | 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) |
Thread-safe: | No. |
Available from ISR: | No. |
Include: | <altera_avalon_spi.h> |
Description: | This function performs a control sequence on the SPI bus. It supports only SPI hosts with data width less than or equal to 8 bits. A single call to this function writes a data buffer of arbitrary length to the mosi port, and then reads back an arbitrary amount of data from the miso port. The function performs the following actions: (1) Asserts the agent select output for the specified agent. The first agent select output is 0. (2) Transmits write_length bytes of data from wdata through the SPI interface, discarding the incoming data on the miso port. (3) Reads read_length bytes of data and stores the data into the buffer pointed to by read_data. The mosi port is set to zero during the read transaction. (4) De-asserts the agent select output, unless the flags field contains the value ALT_AVALON_SPI_COMMAND_MERGE. If you want to transmit from scattered buffers, call the function multiple times and specify the merge flag on all the accesses except the last. To access the SPI bus from more than one thread, you must use a semaphore or mutex to ensure that only one thread is executing within this function at any time. |
Returns: | The number of bytes stored in the read_data buffer. |