Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Current »

Introduction

In this document general notes regarding support for STM32 controllers are given.

Thanks to uGOAL (minimalistic implementation of a small subsystem of GOAL framework functionality) nearly every STM32 controller can be used with SoM as an application controller. Porting to STM32 controller derivates can be done very quickly thanks to the usage of the ST HAL Layers.

Additional information about uGOAL can be found here: 004 - uGOAL - Introduction

Requirements and supported targets

Requirements for the used controller are minimal:

  • SPI Controller

  • at least 64kByte Flash

  • at least 8 kByte RAM

Thus nearly every STM32 Target is possible. Example ports for STM32F103RB and STM32G01RB are available. Following boards are supported right away:

  • NUCLEO-F103RB

https://www.st.com/en/evaluation-tools/nucleo-f103rb.html

  • NUCLEO-G071RB

https://www.st.com/en/evaluation-tools/nucleo-g071rb.html

  • NUCLEO-F429ZI

https://www.st.com/en/evaluation-tools/nucleo-f429zi.html

Examples

Examples are available, where additional information can be found here: iRJ45 / SoM - uGOAL Examples

Building

The uGOAL software delivery already contains generated projects for several platforms for the STM32CubeIDE - please refer to “Integration into STM32CubeIDE”. Building a project is only necessary, if the project files for your desired platform are missing.

Examples are located in the project folder of the software delivery:

projects
├── 2015013_irj45
│   ├── 01_pnio_io_mirror
│   ├── 02_eip_io_data
│   ├── 04_pnio_validation
│   ├── 05_pnio_01_simple_io
│   ├── 06_eip_io_data_static_ip
│   ├── 07_pnio_dsn
│   ├── 08_pnio_01_simple_io_http
│   ├── 09_ecat_slave
│   ├── 10_pnio_process_alarm
│   ├── 11_firmware_update
│   ├── 12_ecat_validation
│   ├── 13_firmware_update_callback
│   ├── 14_ip_management
│   └── 15_tcp_proxy
├── goal_http
│   ├── 01_get
│   ├── 02_post
│   ├── 03_list_res
│   ├── 04_auth
│   ├── 05_template_cm
│   ├── 06_template_list
│   └── 07_template_table
├── goal_net
│   ├── 01_udp_receive
│   ├── 02_tcp_client
│   └── 03_tcp_server
└── ugoal
    ├── 01_ethercat
    ├── 02_profinet
    ├── 03_eip
    ├── 04_profinet_dyn_modules
    ├── 05_ccm
    ├── 06_ethercat_minimal
    ├── 07_http_ip_management
    ├── 08_pnio_io_mirror
    └── 09_pnio_io_mirror_new_api

To build an example enter its folder and execute the following build command:

cd projects/ugoal/02_profinet/gcc
make

This command will list all supported platforms

 *** Please specify platform from the list ***
    > make PLATFORM=atmega2560
    > make PLATFORM=linux
    > make PLATFORM=osx
    > make PLATFORM=rl78g14
    > make PLATFORM=stm32
    > make PLATFORM=stm32f103rb
    > make PLATFORM=stm32f429zi
    > make PLATFORM=stm32g071rb

Building for a specific platform is done with the following command:

# build for f103rb
make PLATFORM=stm32f103rb clean all
3# build for g071rb
make PLATFORM=stm32g071rb clean all

Flashing

Flashing the firmware is done with the following command. Please use the UART device for your system.

make PLATFORM=stm32f103rb UART=/dev/tty.ACM0 flash

To get serial logging an additional Makefile target “serial” is available. It will use the pyserial-miniterm tool from the pyserial package. Flashing and opening a serial console can be combined in one call:

make PLATFORM=stm32f103rb UART=/dev/tty.ACM0 flash serial

Integration into STM32CubeIDE

The uGOAL delivery already contains project files for STM32CubeIDE for several platforms.

If you want to build your own project, just use the project generator which is delivered with the uGOAL software. It requires a python3 installation.

Within the project folder trigger project creation using the following command:

make PLATFORM=stm32g071rb gen_project

Please select a template - OR - press <CTRL+c> and set the
GEN_PROJECT_TPL environment variable.

Choose IDE:
  [ 1] e2studio
  [ 2] eclipse
  [ 3] stmcubeide


Choice [1-3]:

The multiple choice menu allows selection of a template. For STM32G071RB and STM32F429ZI templates are available, which can be selected by choosing menu 3 (stmcubeide):

Choose template:
  [ 1] port/stmcubeide_som_stm32f429zi_nucleo
  [ 2] port/stmcubeide_som_stm32g071rb_nucleo

After selection of the proper template (which needs to match the platform), an STM32CubeIDE project is located in the “ide” subfolder of the project. This project can be imported into STM32CubeIDE:

Select the project folder for project import:

The imported project can be compiled and debugged:

  • No labels