mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			SPI: Properly aquire peripheral in constructor
Prevent mismatch between _owner and peripheral configuration. In the previous implementation, the following code would leave the peripheral in an inconsistent state: ``` SPI spi1(...); // _owner is NULL, peripheral config is 1 spi1.transfer(...); // _owner is 1, config is 1 SPI spi2(...); // _owner is 1, config is 2 spi1.transfer(...) // 1 thinks it still owns peripheral, doesn't reconfigure ```pull/2092/head
							parent
							
								
									07958da38b
								
							
						
					
					
						commit
						b09a87ffb8
					
				| 
						 | 
				
			
			@ -36,8 +36,7 @@ SPI::SPI(PinName mosi, PinName miso, PinName sclk, PinName ssel) :
 | 
			
		|||
    // No lock needed in the constructor
 | 
			
		||||
 | 
			
		||||
    spi_init(&_spi, mosi, miso, sclk, ssel);
 | 
			
		||||
    spi_format(&_spi, _bits, _mode, 0);
 | 
			
		||||
    spi_frequency(&_spi, _hz);
 | 
			
		||||
    aquire();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void SPI::format(int bits, int mode) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue