ST / ST_I2S

Dependents:   temp X_NUCLEO_CCA01M1 X_NUCLEO_CCA01M1 X_NUCLEO_CCA02M1

Platform compatibility

This driver has been designed to support a wide range of the Nucleo F4 Family of platforms and MCUs, but not all members of this family support I2S and/or some of the members might require slight modifications to the sources of this driver in order to make it work on those.

This driver has for now been tested only with the following platforms:

Revision:
16:04e1abb4cca3
Parent:
11:50562a5f8a93
Child:
17:7a4a4631672c
--- a/drivers/I2S.cpp	Fri Jan 20 11:08:01 2017 +0100
+++ b/drivers/I2S.cpp	Wed Jan 25 13:56:15 2017 +0100
@@ -6,12 +6,6 @@
 
 namespace mbed {
 
-/* betzw - WAS
-   #if TRANSACTION_QUEUE_SIZE_I2S
-   CircularBuffer<Transaction<I2S>, TRANSACTION_QUEUE_SIZE_I2S> I2S::_transaction_buffer;
-   #endif
-*/
-
 I2S* I2S::_owner = NULL;
 SingletonPtr<PlatformMutex> I2S::_mutex; // intentional class level lock!
 
@@ -36,7 +30,7 @@
 }
 
 I2S::I2S(PinName dpin, PinName clk, PinName wsel, PinName fdpin, PinName mck) :
-_i2s(),
+    _i2s(),
     _irq_tx(this), _irq_rx(this),
     _priority(MEDIUM),
     _dbits(16),
@@ -213,7 +207,6 @@
     } else {
 	_transaction_buffer.push(transaction);
 	core_util_critical_section_exit();
-	// betzw - seems to be redundant - WAS: dequeue_transaction();
 	return 0;
     }
 #else
@@ -262,7 +255,7 @@
 	if (_transaction_buffer.pop(t)) {
 	    I2S* obj = t.get_object();
 	    transaction_t* data = t.get_transaction();
-	    MBED_ASSERT(obj == this); // betzw: what if 'obj' is NOT equal to 'this'?
+	    MBED_ASSERT(obj == this);
 	    obj->start_transaction(data);
 	}
     }