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
manual:demos:stm32f0_discovery_gcc [2016/04/29 16:55]
voorburg created
manual:demos:stm32f0_discovery_gcc [2023/12/04 22:18] (current)
voorburg [Supported firmware update interfaces]
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 ​     ^ Modbus RTU   ^ 
 +| Yes           | No             | No          | No          | No           | No           |
  
-| Yes            | No              | No           | No           | No          |+===== Development Environment =====
  
 +{{:​manual:​demos:​stm32f0_discovery.png?​200 |}}
  
-===== Development Environment ​=====+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.1461941730.txt.gz · Last modified: 2019/09/24 22:13 (external edit)