mynewt-core
mynewt-core copied to clipboard
nRF52 syscfg.restrictions bug
The nRF52 syscfg (mcu/nordic/nrf52xxx/syscfg.yml) has a load of restrictions on it serial peripherals, e.g. "!I2C_0 || (I2C_0_PIN_SCL && I2C_0_PIN_SDA)"
, aiming, presumably, the make sure that any enabled peripheral has it required pins configured.
It seems though that the settings are being evaluated numerically, i.e. the default empty string is true, but a value of 0 is false. This means that this setting passes through fine:
syscfg.vals:
I2C_0: 1
# I2C_0_PIN_SCL: "" (default)
# I2C_0_PIN_SDA: "" (default)
but this will generate an error:
syscfg.vals:
I2C_0: 1
I2C_0_PIN_SCL: 0
I2C_0_PIN_SDA: 1
I've tried changing the conditions to "... I2C_0_PIN_SCL != \"\" ..."
with various different quote characters / methods of escaping, but couldn't find anything that tested the condition properly. So someone who knows a bit more about newt internals might have to take a look at it.
Thanks!