1.1.5.2.1 DRV_I2S_Open Function
DRV_HANDLE DRV_I2S_Open ( const SYS_MODULE_INDEX index, const DRV_IO_INTENT ioIntent )
Summary
Opens the specified I2S driver instance and returns a handle to it.
Description
This routine opens the specified I2S driver instance and provides a handle that must be provided to all other client-level operations to identify the caller and the instance of the driver. The ioIntent parameter defines how the client interacts with this driver instance.
Specifying a DRV_IO_INTENT_EXCLUSIVE will cause the driver to provide exclusive access to this client. The driver cannot be opened by any other client.
Preconditions
Function DRV_I2S_Initialize must have been called before calling this function.
Parameters
Parameters | Description |
---|---|
index | Identifier for the object instance to be opened |
intent | Zero or more of the values from the enumeration DRV_IO_INTENT "ORed" together to indicate the intended useof the driver. See function description for details. |
Returns
If successful, the routine returns a valid open-instance handle (a number identifying both the caller and the module instance).
If an error occurs, the return value is DRV_HANDLE_INVALID. Error can occur
- if the number of client objects allocated via DRV_I2S_CLIENTS_NUMBER is insufficient.
- if the client is trying to open the driver but driver has been opened exclusively by another client.
- if the driver peripheral instance being opened is not initialized or is invalid.
- if the client is trying to open the driver exclusively, but has already been opened in a non exclusive mode by another client.
- if the driver is not ready to be opened, typically when the initialize routine has not completed execution.
Remarks
The handle returned is valid until the DRV_I2S_Close routine is called. This routine will NEVER block waiting for hardware. If the requested intent flags are not supported, the routine will return DRV_HANDLE_INVALID. This function is thread safe in a RTOS application.
Example
DRV_HANDLE handle; handle = DRV_I2S_Open(DRV_I2S_INDEX_0, DRV_IO_INTENT_EXCLUSIVE); if (DRV_HANDLE_INVALID == handle) {
_// Unable to open the driver_
_// May be the driver is not initialized or the initialization_ _// is not complete._
}
C
DRV_HANDLE DRV_I2S_Open(const SYS_MODULE_INDEX index, const DRV_IO_INTENT ioIntent);