driver: Add notes to SPI driver docs about thread safety
This commit is contained in:
parent
5a080ee37a
commit
b90ad81f22
2 changed files with 14 additions and 5 deletions
|
@ -226,11 +226,13 @@ esp_err_t spi_device_get_trans_result(spi_device_handle_t handle, spi_transactio
|
|||
|
||||
|
||||
/**
|
||||
* @brief Do a SPI transaction
|
||||
* @brief Send a SPI transaction, wait for it to complete, and return the result
|
||||
*
|
||||
* Essentially does the same as spi_device_queue_trans followed by spi_device_get_trans_result. Do
|
||||
* not use this when there is still a transaction queued that hasn't been finalized
|
||||
* using spi_device_get_trans_result.
|
||||
* This function is the equivalent of calling spi_device_queue_trans() followed by spi_device_get_trans_result().
|
||||
* Do not use this when there is still a transaction separately queued from spi_device_queue_trans() that hasn't been finalized
|
||||
* using spi_device_get_trans_result().
|
||||
*
|
||||
* @note This function is not thread safe when multiple tasks access the same SPI device.
|
||||
*
|
||||
* @param handle Device handle obtained using spi_host_add_dev
|
||||
* @param trans_desc Description of transaction to execute
|
||||
|
|
|
@ -264,6 +264,13 @@ And if the host only writes, the *dummy bit workaround* is not used and the freq
|
|||
| 40 | 80 |
|
||||
+-------------+----------------------+
|
||||
|
||||
Thread Safety
|
||||
-------------
|
||||
|
||||
The SPI driver API is thread safe when multiple SPI devices on the same bus are accessed from different tasks. However, the driver is not thread safe if the same SPI device is accessed from multiple tasks.
|
||||
|
||||
In this case, it is recommended to either refactor your application so only a single task accesses each SPI device, or to add mutex locking around access of the shared device.
|
||||
|
||||
.. _spi_known_issues:
|
||||
|
||||
Known Issues
|
||||
|
|
Loading…
Reference in a new issue