Move most of the code from the constructor of the objects statically initialized in main() into Start()/Init() functions to avoid Static Initialization Order Fiasco (https://en.cppreference.com/w/cpp/language/siof). See https://github.com/JF002/InfiniTime/pull/415#issuecomment-859004238.
This commit is contained in:
@@ -7,11 +7,14 @@
|
||||
using namespace Pinetime::Drivers;
|
||||
|
||||
SpiMaster::SpiMaster(const SpiMaster::SpiModule spi, const SpiMaster::Parameters& params) : spi {spi}, params {params} {
|
||||
mutex = xSemaphoreCreateBinary();
|
||||
ASSERT(mutex != NULL);
|
||||
}
|
||||
|
||||
bool SpiMaster::Init() {
|
||||
if(mutex == nullptr) {
|
||||
mutex = xSemaphoreCreateBinary();
|
||||
ASSERT(mutex != nullptr);
|
||||
}
|
||||
|
||||
/* Configure GPIO pins used for pselsck, pselmosi, pselmiso and pselss for SPI0 */
|
||||
nrf_gpio_pin_set(params.pinSCK);
|
||||
nrf_gpio_cfg_output(params.pinSCK);
|
||||
|
||||
Reference in New Issue
Block a user