User Tools

Site Tools


manual:demos:olimexino_stm32_truestudio

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
manual:demos:olimexino_stm32_truestudio [2018/06/07 12:06]
voorburg [ARM-CM3 STM32 Olimexino-STM32 GCC]
manual:demos:olimexino_stm32_truestudio [2020/02/06 16:26] (current)
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 ​     ^
 | No             | Yes             | Yes          | No           | Yes          | | No             | Yes             | Yes          | No           | Yes          |
  
Line 12: Line 12:
 This demo is targeted towards the [[https://​www.olimex.com/​Products/​Duino/​STM32/​OLIMEXINO-STM32/​open-source-hardware|Olimexino-STM32]] board, with 128 kB internal Flash EEPROM and 20 kB internal RAM. This demo is targeted towards the [[https://​www.olimex.com/​Products/​Duino/​STM32/​OLIMEXINO-STM32/​open-source-hardware|Olimexino-STM32]] board, with 128 kB internal Flash EEPROM and 20 kB internal RAM.
  
-To program the bootloader into the internal flash on the STM32F103 microcontroller,​ the [[http://​www.segger.com/​development-tools.html|Segger J-Link]] JTAG interface was used. However, this is not required if you have another means of programming the internal flash. To connect the 20-pin cable of the Segger J-Link to the 10-pin SWD connector ​in the board, the [[https://​www.olimex.com/​Products/​ARM/​JTAG/​ARM-JTAG-20-10/​|ARM-JTAG-20-10 adapter]] was used.+To program the bootloader into the internal flash on the STM32F103 microcontroller,​ the [[http://​www.st.com/en/​development-tools/st-link-v2.html|ST-LINK/V2]] debugger ​interface was used. However, this is not required if you have another means of programming the internal flash. To connect the 20-pin cable of the ST-LINK/​V2 ​to the 10-pin SWD connector ​on the board, the [[https://​www.olimex.com/​Products/​ARM/​JTAG/​ARM-JTAG-20-10/​|ARM-JTAG-20-10 adapter]] was used.
  
-To build the demo programs you can use the [[https://developer.arm.com/open-source/gnu-toolchain/​gnu-rm|GNU ARM Embedded]] toolchain.+To compile ​the demo programs you can use the [[https://atollic.com/truestudio/|Atollic TrueStudio]] development environment. Note the Atollic TrueStudio is cross-platform. The information outlined on this page applies to both Microsoft Windows and Linux users.
  
-===== Toolchain configuration ​=====+===== Workspace creation in TrueStudio ​=====
  
-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 paththen the **TOOL_PATH** variable can be left empty.+Two demo projects ​are included in the OpenBLT bootloader package. One for the bootloader itself and one for the demo user programThis user program ​is configured such that it can be programmed, into the internal flash memory of the microcontrollerduring a firmware update with the bootloader.
  
-{{:​manual:​demos:makefile_toolpath.png?​nolink&​|}}+The first step in getting the the bootloader up-and-running,​ is the creation of the Eclipse workspace in TrueStudio. After starting TrueStudio, you are prompted to open a workspace. It is easiest to create a new one in the following directory: .\Target\Demo\ARMCM3_STM32F1_Olimexino_STM32_TrueStudio\
  
 +{{:​manual:​demos:​olimexino_stm32_truestudio_workspace_creation.png?​600|}}
  
-It is assumed that tools such as GNU //make// and //rm// are installed and available on the pathFor (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]].+To import the demo programs into the workspace, select ​//File -> Import// from the program menuThen select ​//General ​-> Existing Projects into Workspace//. On the next screen you select the following directory as the root directory: .\Target\Demo\ARMCM3_STM32F1_Olimexino_STM32_TrueStudio\. Eclipse ​will automatically find the **Boot** and **Prog** projects and select them:
  
-===== Building and programming the Bootloader =====+{{:​manual:​demos:​olimexino_stm32_truestudio_project_import.png?​600|}}
  
-Before ​the bootloader can be used, it needs to be built and programmed into the STM32F103'​s internal flash memory. The steps in this section only need to be done once.+Click the //Finish// button ​to complete ​the project import operation.
  
-To build the bootloader, open a command prompt in directory **\Target\Demo\ARMCM3_STM32F1_Olimexino_STM32_GCC\Boot\** ​and run the command:+===== Building ​and programming ​the Bootloader =====
  
-<​code>​ +Before the bootloader can be used, it needs to be built and programmed into the STM32F103RB'​s internal flash memory. ​The steps in this section only need to be done once.
-make clean all +
-</​code>​ +
-  +
-The expected output is:+
  
-<​code>​ +Set the project as the active project in EclipseThis is achieved by clicking the **Boot** project in the //Project Explorer// to select itNext, select //Project -Rebuild Project// from the menu to compile all the bootloader sources and link them together into the final executable.
-+++ Cleaning build environment +
-+++ Clean complete +
-+++ Assembling [startup_stm32f10x_md.S] +
-+++ Compiling [usb_desc.c] +
-+++ Compiling [usb_endp.c] +
-... +
-+++ Linking [openblt_olimexino_stm32.elf] +
-... +
-+++ Build complete [openblt_olimexino_stm32.srec] +
-</code>+
  
-The bootloader program is now ready to be programmed into the internal flash memory of the STM32F103. Make sure the Segger J-Link debugger interface it connected to the JTAG connector on the Olimexino-STM32 board and the other side to your PC via a USB cable. Next, select //Debug -> Start Debug Session (F8)// from EmBitz'​s program ​menu to flash the bootloader program. Once done, you can start the bootloader program by selecting //Debug -> Run (F5)// from the program'​s ​menu.+The bootloader program is now ready to be programmed into the internal flash memory of the STM32F103RB microcontroller. Make sure the Olimexino-STM32 board is connected ​to your PC via a ST-LINK/V2 debugger interface. Next, select //Run -> Debug// from the menu to flash the bootloader program. This will launch the Debug perspective in Eclipse. Once done, you can start the bootloader program by selecting //Run -> Resume// from the menu.
  
 Alternatively,​ you can use your favorite programmer to flash the bootloader using one of the following files, depending on what file type your programmer supports: Alternatively,​ you can use your favorite programmer to flash the bootloader using one of the following files, depending on what file type your programmer supports:
  
-  * \Target\Demo\ARMCM3_STM32F1_Olimexino_STM32_GCC\**Boot**\bin\**openblt_olimexino_stm32.elf** +  * \Target\Demo\ARMCM3_STM32F1_Olimexino_STM32_TrueStudio\**Boot**\Debug\**openblt_olimexino_stm32.elf** 
-  * \Target\Demo\ARMCM3_STM32F1_Olimexino_STM32_GCC\**Boot**\bin\**openblt_olimexino_stm32.srec** +  * \Target\Demo\ARMCM3_STM32F1_Olimexino_STM32_TrueStudio\**Boot**\Debug\**openblt_olimexino_stm32.srec**
  
 ===== Building the Demo Program ===== ===== Building the Demo Program =====
  
-To build the user program, open a command prompt ​in directory ​**\Target\Demo\ARMCM3_STM32F1_Olimexino_STM32_GCC\Prog\** and run the command: +Set the project as the active project ​in Eclipse. This is achieved by clicking the **Prog** ​project in the //Project Explorer// to select itNext, select ​//Project -Rebuild Project// from the menu to compile all the user program sources and link them together into the final executable.
- +
-<​code>​ +
-make clean all +
-</code> +
-  +
-The expected output is: +
- +
-<​code>​ +
-+++ Cleaning build environment +
-+++ Clean complete +
-+++ Assembling [startup_stm32f10x_md.S] +
-+++ Compiling [boot.c] +
-+++ Compiling [main.c] +
-... +
-+++ Linking [demoprog_olimexino_stm32.elf] +
-... +
-+++ Build complete [demoprog_olimexino_stm32.srec] +
-</code>+
  
 The output file is The output file is
  
-  * \Target\Demo\ARMCM3_STM32F1_Olimexino_STM32_GCC\**Prog**\bin\**demoprog_olimexino_stm32.srec** +  * \Target\Demo\ARMCM3_STM32F1_Olimexino_STM32_TrueStudio\**Prog**\Debug\**demoprog_olimexino_stm32.srec**
  
 ===== Firmware update procedure ===== ===== Firmware update procedure =====
  
-To download the demo program \Target\Demo\ARMCM3_STM32F1_Olimexino_STM32_GCC\**Prog**\bin\**demoprog_olimexino_stm32.srec** using the bootloader, follow the instructions in the following links, depending on the communication interface you intend to use:+To download the demo program \Target\Demo\ARMCM3_STM32F1_Olimexino_STM32_TrueStudio\**Prog**\Debug\**demoprog_olimexino_stm32.srec** using the bootloader, follow the instructions in the following links, depending on the communication interface you intend to use:
  
   * [[manual:​can_demo|Firmware updates using the CAN communication interface]]   * [[manual:​can_demo|Firmware updates using the CAN communication interface]]
manual/demos/olimexino_stm32_truestudio.1528366019.txt.gz · Last modified: 2019/09/24 22:13 (external edit)