mynewt-core icon indicating copy to clipboard operation
mynewt-core copied to clipboard

nRF52 syscfg.restrictions bug

Open Uks2 opened this issue 8 months ago • 2 comments

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!

Uks2 avatar Jun 28 '24 19:06 Uks2