This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
manual:demos:stm32f0_discovery_gcc [2016/04/29 17:22] voorburg [Development Environment] |
manual:demos:stm32f0_discovery_gcc [2019/09/24 22:12] 127.0.0.1 external edit |
||
---|---|---|---|
Line 14: | Line 14: | ||
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 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 compile the demo programs you can use the [[http://www.emblocks.org/|Em::Blocks]] development environment. The version that was used to create these demo programs was {{:manual:embitz_0_42.zip?linkonly|EmBitz version 0.42}}. | + | 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: | 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: | ||
Line 22: | Line 22: | ||
* Red cable to PA3 (USART2 transmit) | * 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:uart_demo|Firmware updates using the UART communication interface]] | ||