I'm trying to use Espruino on an STM32F4DISCOVERY board.
I searched for binaries but the newest I was able to find is 1v96.5. Although I'm using this exact binary and it's working fine, I'd like to keep up with newer versions. I understand the binaries for this board are no longer being supplied after 1v96.5, but apparently it can still be built from source. This is what I'm trying to do.
My build environment is a Mac, and the compiler has the following version string:
arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 8-2018-q4-major) 8.2.1 20181213 (release) [gcc-8-branch revision 267074]
I cloned the Espruino sources from GitHub, currently at commit
bca2a9c6. I tried building with the following command:
RELEASE=1 BOARD=STM32F4DISCOVERY make
This produced the file
espruino_2v01.49_stm32f4discovery.bin, which I tried to flash using the
st-flash utility as follows:
st-flash write espruino_2v01.49_stm32f4discovery.bin 0x08000000
I then tried to connect using the Espruino Web IDE, but the board wasn't being detected. The System Information app for the Mac confirms no COM port was detected on the board's microUSB connector.
I flashed back the binary I had downloaded from the internet,
espruino_1v96.5_stm32f4discovery.bin (linked above), and it was working fine. System Information shows the "STM32 Virtual ComPort" USB device and Espruino Web IDE connects. This rules out any issues with my Mac, drivers, USB cable, board, etc.
Given the warning here in the "Finally..." section ("after flashing the latest version of Espruino to the device, it may stop booting"), I also decided to do a mass flash erase prior to each programming attempt, by running
st-flash erase. That didn't seem to make a difference. Yet any time I flash back the downloaded binary corresponding to version 1v96.5, it works just fine.
I repeated the process with the commit tagged
RELEASE_1V97, and the one which I believe would correspond to 1v96.5 (commit
c7239c7d). None of these worked. In fact I have no idea if the board is even booting; externally, all I can see is that the VCP is not detected by the computer.
Given that the downloaded binary is working, and that I tried many different versions, I'm pretty sure this boils down to something stupid such as a missing argument to
make, or possibly a compiler issue.
I'm looking for any pointers to get this build to work. Alternatively, if someone could point me to the exact flags used to build the linked binary above, I'm sure it'd start me in the right direction.