At the moment, we totally don't handle things like configuration (or re-configuration!) for things like I2C speed, etc.
We can probably assume that we can get by with "fixed pin mapping" for a while, especially for boards like the blackpill where there are a limited set of remappable functions.
However for protocols like UART or SPI, interface speed is pretty needed in most cases.
We should figure out how to achieve this in the protocol, as well as how to make this generic and supported by the "Machine" struct (e.g. how it can tell the platform-specific code to reconfigure itself).
At the moment, we totally don't handle things like configuration (or re-configuration!) for things like I2C speed, etc.
We can probably assume that we can get by with "fixed pin mapping" for a while, especially for boards like the blackpill where there are a limited set of remappable functions.
However for protocols like UART or SPI, interface speed is pretty needed in most cases.
We should figure out how to achieve this in the protocol, as well as how to make this generic and supported by the "Machine" struct (e.g. how it can tell the platform-specific code to reconfigure itself).