mirror of
https://git.intern.spaceteamaachen.de/ALPAKA/sta-core.git
synced 2025-06-10 16:55:58 +00:00
Fixed compiler errors, untested due to lack of hardware
This commit is contained in:
parent
92723fe164
commit
dcd613ddf0
@ -84,7 +84,7 @@ namespace sta
|
||||
* @param value 8-bit value to repeat
|
||||
* @param count Number of repetitions
|
||||
*/
|
||||
void fill(uint8_t value, size_t count, uint32_t timeout = STA_MAX_TIMEOUT);
|
||||
bool fill(uint8_t value, size_t count, uint32_t timeout = STA_MAX_TIMEOUT);
|
||||
|
||||
protected:
|
||||
/**
|
||||
|
@ -51,7 +51,7 @@ namespace sta
|
||||
* @param buffer The buffer of data to write to the address
|
||||
* @param size The number of bytes to write to the peripheral.
|
||||
*/
|
||||
virtual bool writeMemory(uint8_t regAddr, const uint8_t * buffer, size_t size, uint32_t timeout = STA_MAX_TIMEOUT) = 0;
|
||||
virtual bool writeMemory(uint8_t regAddr, const uint8_t * buffer, size_t size, uint32_t timeout = STA_MAX_TIMEOUT);
|
||||
|
||||
/**
|
||||
* @brief Read incoming data to buffer.
|
||||
@ -68,7 +68,7 @@ namespace sta
|
||||
* @param buffer The buffer of data to write the received data to.
|
||||
* @param size The number of bytes to receive from the peripheral.
|
||||
*/
|
||||
virtual bool readMemory(uint8_t regAddr, uint8_t * buffer, size_t size, uint32_t timeout = STA_MAX_TIMEOUT) = 0;
|
||||
virtual bool readMemory(uint8_t regAddr, uint8_t * buffer, size_t size, uint32_t timeout = STA_MAX_TIMEOUT);
|
||||
|
||||
/**
|
||||
* @brief Send byte value repeatedly.
|
||||
|
@ -40,24 +40,6 @@ namespace sta
|
||||
*/
|
||||
virtual bool transfer(const uint8_t * txBuffer, uint8_t * rxBuffer, size_t size, uint32_t timeout = STA_MAX_TIMEOUT) = 0;
|
||||
|
||||
/**
|
||||
* @brief Write data to a specific memory address of the peripheral.
|
||||
*
|
||||
* @param regAddr The memory address.
|
||||
* @param buffer The buffer of data to write to the address
|
||||
* @param size The number of bytes to write to the peripheral.
|
||||
*/
|
||||
bool writeMemory(uint8_t regAddr, const uint8_t * buffer, size_t size, uint32_t timeout = STA_MAX_TIMEOUT) override;
|
||||
|
||||
/**
|
||||
* @brief Read data from a specific memory address of the peripheral.
|
||||
*
|
||||
* @param regAddr The memory address.
|
||||
* @param buffer The buffer of data to write the received data to.
|
||||
* @param size The number of bytes to receive from the peripheral.
|
||||
*/
|
||||
bool readMemory(uint8_t regAddr, uint8_t * buffer, size_t size, uint32_t timeout = STA_MAX_TIMEOUT) override;
|
||||
|
||||
/**
|
||||
* @brief Get %SPI interface settings.
|
||||
*
|
||||
|
@ -10,13 +10,35 @@ namespace sta
|
||||
STA_ASSERT(mutex != nullptr);
|
||||
}
|
||||
|
||||
void Interface::acquire()
|
||||
bool Interface::writeMemory(uint8_t regAddr, const uint8_t * buffer, size_t size, uint32_t timeout /* = STA_MAX_TIMEOUT */)
|
||||
{
|
||||
if (!transfer(regAddr, timeout))
|
||||
return false;
|
||||
|
||||
if (!transfer(buffer, size, timeout))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Interface::readMemory(uint8_t regAddr, uint8_t * buffer, size_t size, uint32_t timeout /* = STA_MAX_TIMEOUT */)
|
||||
{
|
||||
if (!transfer(regAddr, timeout))
|
||||
return false;
|
||||
|
||||
if (!receive(buffer, size, timeout))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void Interface::acquire(uint32_t timeout /* = STA_MAX_TIMEOUT */)
|
||||
{
|
||||
mutex_->acquire();
|
||||
acquired_ = true;
|
||||
}
|
||||
|
||||
void Interface::release()
|
||||
void Interface::release(uint32_t timeout /* = STA_MAX_TIMEOUT */)
|
||||
{
|
||||
acquired_ = false;
|
||||
mutex_->release();
|
||||
|
@ -10,28 +10,6 @@ namespace sta
|
||||
|
||||
}
|
||||
|
||||
bool SPI::writeMemory(uint8_t regAddr, const uint8_t * buffer, size_t size, uint32_t timeout /* = STA_MAX_TIMEOUT */)
|
||||
{
|
||||
if (!transfer(regAddr, timeout))
|
||||
return false;
|
||||
|
||||
if (!transfer(buffer, size, timeout))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SPI::readMemory(uint8_t regAddr, uint8_t * buffer, size_t size, uint32_t timeout /* = STA_MAX_TIMEOUT */)
|
||||
{
|
||||
if (!transfer(regAddr, timeout))
|
||||
return false;
|
||||
|
||||
if (!receive(buffer, size, timeout))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
const SPISettings & SPI::settings()
|
||||
{
|
||||
return settings_;
|
||||
|
@ -77,10 +77,17 @@ namespace sta
|
||||
|
||||
bool STM32I2C::writeMemory(uint8_t regAddr, const uint8_t * buffer, size_t size, uint32_t timeout /* = STA_MAX_TIMEOUT */)
|
||||
{
|
||||
/*
|
||||
* It's undecided if we want to change the parameter for this function. Since the transmission
|
||||
* doesn't take a const buffer as an argument, we are using this fix by creating a temporary buffer.
|
||||
*/
|
||||
uint8_t * temp_buffer = new uint8_t[size];
|
||||
memcpy(temp_buffer, buffer, size);
|
||||
|
||||
if (blocking_) {
|
||||
return HAL_I2C_Mem_Write(handle_, address_, regAddr, 1, buffer, size, timeout) == HAL_OK;
|
||||
return HAL_I2C_Mem_Write(handle_, address_, regAddr, 1, temp_buffer, size, timeout) == HAL_OK;
|
||||
} else {
|
||||
return HAL_I2C_Mem_Write_IT(handle_, address_, regAddr, 1, buffer, size) == HAL_OK;
|
||||
return HAL_I2C_Mem_Write_IT(handle_, address_, regAddr, 1, temp_buffer, size) == HAL_OK;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user