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 value 8-bit value to repeat
|
||||||
* @param count Number of repetitions
|
* @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:
|
protected:
|
||||||
/**
|
/**
|
||||||
|
@ -51,7 +51,7 @@ namespace sta
|
|||||||
* @param buffer The buffer of data to write to the address
|
* @param buffer The buffer of data to write to the address
|
||||||
* @param size The number of bytes to write to the peripheral.
|
* @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.
|
* @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 buffer The buffer of data to write the received data to.
|
||||||
* @param size The number of bytes to receive from the peripheral.
|
* @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.
|
* @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;
|
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.
|
* @brief Get %SPI interface settings.
|
||||||
*
|
*
|
||||||
|
@ -10,13 +10,35 @@ namespace sta
|
|||||||
STA_ASSERT(mutex != nullptr);
|
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();
|
mutex_->acquire();
|
||||||
acquired_ = true;
|
acquired_ = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Interface::release()
|
void Interface::release(uint32_t timeout /* = STA_MAX_TIMEOUT */)
|
||||||
{
|
{
|
||||||
acquired_ = false;
|
acquired_ = false;
|
||||||
mutex_->release();
|
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()
|
const SPISettings & SPI::settings()
|
||||||
{
|
{
|
||||||
return 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 */)
|
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_) {
|
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 {
|
} 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