will be resolved if the definition is already included in the image, but will not affect whether or not that definition is included.
An unresolved weak function call will be replaced either with a NOP (no-operation instruction), or a BL (Branch with link instruction) to the following instruction - effectively the function call just does not happen.
Но вот смотрю в сгенеренный код hal.c и hal_msp.c . где в
hal.c: __weak HAL_I2C_MspInit(){ }
а в hal_msp.c: HAL_I2C_MspInit(){ мой код уже}
но вызывает он hal_init в hal.c. Как минимум вижу это в дебагере ну и в asm вижу вызов этого гадства.
0x800'9944: 0xf000 0xfb36 BL HAL_I2C_MspInit ; 0x800'9fb4
hal_msp.c компилиться точно, проверял.
В чём трабл может быть, может кто подскажет?
вызывает не тот HAL_I2C_MspInit ? откуда такая уверенность?
Обсуждают сегодня