User Tools

Site Tools


manual:demos:nucleo_l476rg_gcc

Differences

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

Link to this comparison view

manual:demos:nucleo_l476rg_gcc [2019/09/24 22:12] (current)
Line 1: Line 1:
 +====== ARM-CM4 STM32 Nucleo-L476RG GCC ======
 +
 +===== Supported firmware update interfaces =====
 +
 +^ UART           ^ CAN             ^ USB          ^ TCP/​IP ​      ^ SD-card ​     ^
 +| Yes            | Yes             | No           | No           | No           |
 +
 +===== Development Environment =====
 +
 +{{:​manual:​demos:​stm32_nucleo_l476rg.png?​ |}}
 +
 +This demo is targeted towards the [[http://​www.st.com/​en/​evaluation-tools/​nucleo-l476rg.html|Nucleo-L476RG]] board, with 1 MB internal Flash EEPROM and 128 kB internal RAM.
 +
 +To build the demo programs you can use the [[https://​developer.arm.com/​open-source/​gnu-toolchain/​gnu-rm|GNU ARM Embedded]] toolchain.
 +
 +To program the bootloader into the internal flash, the on-board ST-Link debugger interface was used. Firmware updates via the serial communication port are preconfigured to use the virtual COM-port offered by the ST-Link. This means that no additional hardware is needed, besides a standard micro-USB cable.
 +
 +===== 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 STM32L476'​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\ARMCM4_STM32L4_Nucleo_L476RG_GCC\Boot\** and run the command:
 +
 +<​code>​
 +make clean all
 +</​code>​
 + 
 +The expected output is:
 +
 +<​code>​
 ++++ Cleaning build environment
 ++++ Clean complete
 ++++ Assembling [startup_stm32l476xx.s]
 ++++ Compiling [main.c]
 ++++ Compiling [hooks.c]
 +...
 ++++ Linking [openblt_stm32l476.elf] ​                                                                                   ​
 +...
 ++++ Build complete [openblt_stm32l476.srec]
 +</​code>​
 +
 +The bootloader program is now ready to be programmed into the internal flash memory of the STM32L476. 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\ARMCM4_STM32L4_Nucleo_L476RG_GCC\**Boot**\bin\**openblt_stm32l476.elf**
 +  * \Target\Demo\ARMCM4_STM32L4_Nucleo_L476RG_GCC\**Boot**\bin\**openblt_stm32l476.srec**
 +
 +===== Building the Demo Program =====
 +
 +To build the user program, open a command prompt in directory **\Target\Demo\ARMCM4_STM32L4_Nucleo_L476RG_GCC\Prog\** and run the command:
 +
 +<​code>​
 +make clean all
 +</​code>​
 + 
 +The expected output is:
 +
 +<​code>​
 ++++ Cleaning build environment ​                                                                                        
 ++++ Clean complete ​                                                                                                    
 ++++ Assembling [startup_stm32l476xx.s] ​                                                                                  
 ++++ Compiling [boot.c] ​                                                                                                
 ++++ Compiling [main.c] ​                                                                                                
 +...
 ++++ Linking [demoprog_stm32l476.elf]
 +...
 ++++ Build complete [demoprog_stm32l476.srec]
 +</​code>​
 +
 +The output file is:
 +
 +  * \Target\Demo\ARMCM4_STM32L4_Nucleo_L476RG_GCC\**Prog**\bin\**demoprog_stm32l476.srec**
 +
 +===== Firmware update procedure =====
 +
 +To download the demo program \Target\Demo\ARMCM4_STM32L4_Nucleo_L476RG_GCC\**Prog**\bin\**demoprog_stm32l476.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]]
 +  * [[manual:​can_demo|Firmware updates using the CAN communication interface]]
 +
  
manual/demos/nucleo_l476rg_gcc.txt ยท Last modified: 2019/09/24 22:12 (external edit)