User Tools

Site Tools


manual:demos:stm32f0_discovery_gcc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revision Both sides next revision
manual:demos:stm32f0_discovery_gcc [2016/04/29 16:55]
voorburg created
manual:demos:stm32f0_discovery_gcc [2020/02/06 16:19]
voorburg
Line 3: Line 3:
 ===== Supported firmware update interfaces ===== ===== Supported firmware update interfaces =====
  
-UART           ^ CAN             ^ USB          ^ TCP/​IP ​      ^ SD-card ​     ^ +RS232          ​^ CAN             ^ USB          ^ TCP/​IP ​      ^ SD-card ​     ^
 | Yes            | No              | No           | No           | No          | | Yes            | No              | No           | No           | No          |
- 
  
 ===== Development Environment ===== ===== Development Environment =====
 +
 +{{:​manual:​demos:​stm32f0_discovery.png?​200 |}}
 +
 +This demo is targeted towards the [[http://​www.st.com/​stm32f0discovery|STM32F0-Discovery]] board, with 64 kB internal Flash EEPROM and 8 kB internal RAM.
 +
 +To program the bootloader into the internal flash on the STM32F051 microcontroller,​ the on-board ST-Link Debugger Interface was used. However, this is not required if you have another means of programming the internal flash.
 +
 +To build the demo programs you can use the [[https://​developer.arm.com/​open-source/​gnu-toolchain/​gnu-rm|GNU ARM Embedded]] toolchain.
 +
 +The [[https://​www.olimex.com/​Products/​Components/​Cables/​USB-Serial-Cable/​USB-Serial-Cable-F/​|Olimex USB-Serial-Cable-F]] was used to create a connection between the STM32F051 USART2 serial peripheral and the PC's COM-port. The pin connections are as follows:
 +
 +  * Blue cable to GND (ground pin)
 +  * Green cable to PA2 (USART2 receive)
 +  * Red cable to PA3 (USART2 transmit)
 +
 +===== Toolchain configuration =====
 +
 +The demo programs are configured for building with a Makefile. Before attempting to perform a build, update the location of the toolchain binaries (i.e. //​arm-none-eabi-gcc//​) in the Makefile. It is set in variable **TOOL_PATH**. If the toolchain binaries are available on the path, then the **TOOL_PATH** variable can be left empty.
 +
 +{{:​manual:​demos:​makefile_toolpath.png?​nolink&​|}}
 +
 +It is assumed that tools such as GNU //make// and //rm// are installed and available on the path. For (Ubuntu) Linux users this can be achieved by running command: //sudo apt-get install build-essential//​. Windows users can install the [[https://​gnu-mcu-eclipse.github.io/​windows-build-tools/​|GNU MCU Eclipse Windows Build Tools]].
 +
 +===== Building and programming the Bootloader =====
 +
 +Before the bootloader can be used, it needs to be built and programmed into the STM32F051'​s internal flash memory. The steps in this section only need to be done once.
 +
 +To build the bootloader, open a command prompt in directory **\Target\Demo\ARMCM0_STM32F0_Discovery_STM32F051_GCC\Boot\** and run the command:
 +
 +<​code>​
 +make clean all
 +</​code>​
 + 
 +The expected output is:
 +
 +<​code>​
 ++++ Cleaning build environment
 ++++ Clean complete
 ++++ Assembling [startup_stm32f0xx.S]
 ++++ Compiling [main.c]
 ++++ Compiling [hooks.c]
 +...
 ++++ Linking [openblt_stm32f051.elf]
 +...
 ++++ Build complete [openblt_stm32f051.srec]
 +</​code>​
 +
 +The bootloader program is now ready to be programmed into the internal flash memory of the STM32F051. Using your favorite programmer (i.e. OpenOCD or STM32 ST-Link utility), flash the bootloader using one of the following files, depending on what file type your programmer supports:
 +
 +  * \Target\Demo\ARMCM0_STM32F0_Discovery_STM32F051_GCC\**Boot**\bin\**openblt_stm32f051.elf**
 +  * \Target\Demo\ARMCM0_STM32F0_Discovery_STM32F051_GCC\**Boot**\bin\**openblt_stm32f051.srec**
 +
 +===== Building the Demo Program =====
 +
 +To build the user program, open a command prompt in directory **\Target\Demo\ARMCM0_STM32F0_Discovery_STM32F051_GCC\Prog\** and run the command:
 +
 +<​code>​
 +make clean all
 +</​code>​
 + 
 +The expected output is:
 +
 +<​code>​
 ++++ Cleaning build environment
 ++++ Clean complete
 ++++ Assembling [startup_stm32f0xx.S]
 ++++ Compiling [boot.c]
 ++++ Compiling [main.c]
 +...
 ++++ Linking [demoprog_stm32f051.elf]
 +...
 ++++ Build complete [demoprog_stm32f051.srec]
 +</​code>​
 +
 +The output file is
 +
 +  * \Target\Demo\ARMCM0_STM32F0_Discovery_STM32F051_GCC\**Prog**\bin\**demoprog_stm32f051.srec**
 +
 +
 +===== Firmware update procedure =====
 +
 +To download the demo program \Target\Demo\ARMCM0_STM32F0_Discovery_STM32F051_GCC\**Prog**\bin\**demoprog_stm32f051.srec** using the bootloader, follow the instructions in the following links, depending on the communication interface you intend to use:
 +
 +  * [[manual:​rs232_demo|Firmware updates using the RS232 communication interface]]
  
  
manual/demos/stm32f0_discovery_gcc.txt · Last modified: 2023/12/04 22:18 by voorburg