mirror of
https://github.com/0xFEEDC0DE64/arduino-esp32.git
synced 2025-07-30 18:57:14 +02:00
Add Kconfig for IDF and option to disable HAL mutexes
IDF Options: - Autostart Arduino (implements app_main) - Disable HAL locks - Set HAL debug level - Auto-connect STA if configured (else will connect after WiFi.begin())
This commit is contained in:
@ -30,7 +30,9 @@
|
||||
|
||||
struct i2c_struct_t {
|
||||
i2c_dev_t * dev;
|
||||
#if !CONFIG_DISABLE_HAL_LOCKS
|
||||
xSemaphoreHandle lock;
|
||||
#endif
|
||||
uint8_t num;
|
||||
};
|
||||
|
||||
@ -42,6 +44,15 @@ enum {
|
||||
I2C_CMD_END
|
||||
};
|
||||
|
||||
#if CONFIG_DISABLE_HAL_LOCKS
|
||||
#define I2C_MUTEX_LOCK()
|
||||
#define I2C_MUTEX_UNLOCK()
|
||||
|
||||
static i2c_t _i2c_bus_array[2] = {
|
||||
{(volatile i2c_dev_t *)(DR_REG_I2C_EXT_BASE), 0},
|
||||
{(volatile i2c_dev_t *)(DR_REG_I2C1_EXT_BASE), 1}
|
||||
};
|
||||
#else
|
||||
#define I2C_MUTEX_LOCK() do {} while (xSemaphoreTake(i2c->lock, portMAX_DELAY) != pdPASS)
|
||||
#define I2C_MUTEX_UNLOCK() xSemaphoreGive(i2c->lock)
|
||||
|
||||
@ -49,6 +60,7 @@ static i2c_t _i2c_bus_array[2] = {
|
||||
{(volatile i2c_dev_t *)(DR_REG_I2C_EXT_BASE), NULL, 0},
|
||||
{(volatile i2c_dev_t *)(DR_REG_I2C1_EXT_BASE), NULL, 1}
|
||||
};
|
||||
#endif
|
||||
|
||||
i2c_err_t i2cAttachSCL(i2c_t * i2c, int8_t scl)
|
||||
{
|
||||
@ -353,12 +365,14 @@ i2c_t * i2cInit(uint8_t i2c_num, uint16_t slave_addr, bool addr_10bit_en)
|
||||
|
||||
i2c_t * i2c = &_i2c_bus_array[i2c_num];
|
||||
|
||||
#if !CONFIG_DISABLE_HAL_LOCKS
|
||||
if(i2c->lock == NULL){
|
||||
i2c->lock = xSemaphoreCreateMutex();
|
||||
if(i2c->lock == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if(i2c_num == 0) {
|
||||
SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG,DPORT_I2C_EXT0_CLK_EN);
|
||||
|
Reference in New Issue
Block a user