[SOLVED] STM32F429IDISCOVERY doesn't build

Posted on
  • I'm having problems when trying to build Espruino for the STMF429 discovery board with:


    Other builds, for example, for the Pico, work correctly.

    The compilation fails because of #define STM32F429_F439xx not being found in STM32f4xx.h. I've tried forcing the #define STM32F429xx (for the STM32F429ZI) myself but it still won't build, as it still fails when compiling the adc and flash lib code (again probably due to incorrect #defines or a combination of #defines it doesn't like?).

    I don't understand why these errors occur now and it apparently worked previously, unless recent builds have changed STM32 headers and something got broken in the process. I suspect various STM32 build headers have not been kept up to date or at least 'in sync' with each other.

    I know it's not officially supported and there won't be any 'out of the box' USB or LCD features, but I'd at least like to play around with Espruino on the F429 over a terminal.

    Maybe the LCD is too hard-wired on the discovery board, but it might be possible to get it to work (just maybe....) But first I'd need a working Espruino build!

    Does anyone know how to fix the problem? Or which Espruino release I can use to get at least a successful build for the F429 (or even where there is a pre-built bin available for download)?

  • Ahh, looks like this probably broke when the new USB libraries went in for 1v80. If you grab the RELEASE_1V79 tag it might work ok - but I've just pushed some changes that will at least make it compile again.

    Basically ST released a tidier USB implementation that promised to work across all their families of chips. However it needed a new peripheral library that was completely different and hideously inefficient for the things I'm using it for (STM32 Cube).

    To get something working I had to use their new header files but with their old peripheral library. Generally it's been ok with just a few extra ifdefs in the library, but the one sticking point is that they changed the definitions they use for chip types.

  • Thanks for that Gordon. I can confirm it now, at least, builds! :))

    Now to try that ILI9341 LCD on the F429 Discovery board... But maybe it's hard-wired 'incorrectly' for Espruino. For example, the display reset pin doesn't seem to be available through the F429 pins.

  • IIRC the display wanted to be driven with 18 bit parallel data.

    You could definitely keep a paletted 'arraybuffer' graphics in memory though, and add your own 'flip' function that bit-banged it out. Should be fast enough (if done in native code), and pretty simple.

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview

[SOLVED] STM32F429IDISCOVERY doesn't build

Posted by Avatar for veryalien @veryalien