STM32MP157C-DK2 board

Support for the STM32MP157C-DK2 board. More...

Detailed Description

Support for the STM32MP157C-DK2 board.

Overview

The STM32MP157C-DK2 is a board from ST featuring a double architecture based on a dual Cortex-A7 and a Cortex-M4 STM32MP157C microcontroller with 384KB of SRAM and no ROM Flash.

Hardware

STM32MP157C-DK2

MCU

MCU STM32MP157CAC
Family ARM Dual Cortex-A7 & Cortex-M4
Vendor ST Microelectronics
RAM 384Kb for Cortex-M4
Flash None but 64KB of RETRAM
Frequency up to 209MHz
FPU yes
Timers 32 (3x watchdog, 2x 4 Cortex-A7 system timers, 1x SysTick, 5x 16-bit Low-Power, 12x 16-bit, 2x 32-bit, 1 RTC)
ADCs 2x 12-bit (16 channels), 2x 16-bit (16 channels)
UARTs 4x UART + 4x USART
SPIs 6
I2Cs 6
RTC 1
CAN 2
USB 3
Vcc 1.8V - 3.6V
Datasheet Datasheet
Reference Manual Reference Manual
Programming Manual Programming Manual
Board Manual Board Manual

Implementation Status

Device ID Supported Comments
MCU STM32MP157CAC partly
Low-level driver GPIO yes
UART 1 UART USART3 on PB12(RX)/PB10(TX)
Timer one 32 bit timer TIM2

Flashing the device

Note that the STM32MP157C-DK2 board has no ROM Flash, thus the firmware needs to be reflashed each time the board is rebooted.

Boot selection jumper:

BOOT mode BOOT0 BOOT2
Engineering 1 1
SD Card (Linux) 0 1

Engineering mode

The STM32MP157C-DK2 board includes an on-board ST-LINK V2 programmer. The easiest way to program the board is to use OpenOCD. Once you have installed OpenOCD (look here for installation instructions), you can flash the board simply by typing inside your application directory:

USEMODULE='stm32mp1_eng_mode' make BOARD=stm32mp157c-dk2 flash

and debug via GDB by simply typing

USEMODULE='stm32mp1_eng_mode' make BOARD=stm32mp157c-dk2 debug

SD Card (Linux) mode

This assumes that Linux is booted and that your Linux kernel supports STM32 remoteproc framework.

Build the firmware inside your application directory:

make BOARD=stm32mp157c-dk2

Copy your firmware firmware.elf in /lib/firmwares on the Linux system. (replace firmware.elf by your firmware filename)

Then simply launch this commands on the Linux system as root user:

echo firmware.elf > /sys/class/remoteproc/remoteproc0/firmware
echo start > /sys/class/remoteproc/remoteproc0/state

You can stop RIOT from Linux command line:

echo stop > /sys/class/remoteproc/remoteproc0/state

Supported Toolchains

For using the STM32MP157C-DK2 board we strongly recommend the usage of the GNU Tools for ARM Embedded Processors toolchain.

Files

file  board.h
 Board specific definitions for the STM32MP157C-DK2 board.
 
file  periph_conf.h
 Board specific implementations for the STM32MP157C-DK2 board.