My application has multiple tasks reading and writing to SPI or I2C sensors. Each task is somewhat dedicated to dealing just with 1 sensor. Are the SPI & I2C drivers capable of handling multiple tasks wanting to access them synchronously? I.e. do the drivers handle the blocking, etc? Or do i have to setup my own Semaphore to make sure only one task accesses SPI at once?