• But what gives me pause is that B0 is listed as a "USB" pin in the reference...

    That one's fine - I'll try and change the docs for it.


    I just tried this, and they seem to 'just work' without any extra code.

    The reason GPIO_PinRemapConfig is needed for the STM32F1 in the original Espruino board is that the F1 has a totally crazy way of deciding what function each pin has (there's a global set of bits). The F4 is way more sane, and has 'pin function' bits per pin. The second you use digitalRead/Write/pinMode/etc, Espruino sets those bits and automatically disables JTAG.


    That's a little more tricky - at bootup, Espruino tries to start a crystal oscillating using it. If it fails it disables it, so you can then use it for whatever you want (as long as whatever you want doesn't get upset by being prodded a bit at bootup).

    If you actually need to use it without the prodding, you'd have to make your own build. I believe the code that attempts to start the crystal is at the start of jshInit in jshardware.c. It's a bit convoluted because the crystal can take a few seconds to start, so it enables it and then checks what's happening a few seconds later in the SysTick timer.


Avatar for Gordon @Gordon started