AnsweredAssumed Answered

Error in the STM32F0Discovery Firmware package

Question asked by halherta on May 20, 2012
Hi I recently recieved an STM32F0 discovery board and got to  doing some testing on it with the gcc toolchain  found at:
https://launchpad.net/gcc-arm-embedded/4.6/2011-q4-major

I discovered that the "startup_stm32f0xx.S" file in the directory "STM32F0-Discovery_FW_V1.0.0\Libraries\CMSIS\ST\STM32F0xx\Source\Templates\gcc_ride7" contains an invalid instruction (i think its a valid cortex-m3 instruction but not a valid cortex-m0 instruction) on line 92:

"FillZerobss:
  movs r3, #0
  str r3, [r2], #4; <= invalid cortex-m0 instruction "

I replaced it with:


"FillZerobss:
  movs r3, #0
  str r3, [r2]
  adds r2, r2, #4 ;

and that seemed it work i.e. this startup file was able to be successfully "assembled", the entire demo project was compiled and a .bin file was created
I downloaded the .bin file via the onboard STLink V/2 and the STLINK utility with no problems.

However when using the flash loader application with the on-board bootloader i had no success. The chip goes into bootloader mode (when reset with BOOT0 at VDD) and the application seems to recognize that the chip is in bootloader mode but fails to identify the chip and fails to erase/program it. I'm also using an FTDI chip so its a virtual com port. I'm pretty sure that my connections are correct.

I was wondering if the flash loader application needs to be updated and if there are other applications that can interact with the on-chip bootloader on the STM32F0.

I'm pretty happy with the chip so far and looking forwards to the STM32F052 with 128KB+ of flash, USB device and hopefully on-chip DFU USB bootloader!
 

Outcomes