Professional Documents
Culture Documents
Presentation
Speaker
Time
Microprocessors
Microcontrollers
Cortex-M7 @ 400MHz (856 DMIPS)
Cortex-M4 @ 200MHz (250 DMIPS)
STM32MP1
3DES, AES256, GCM, CCM 2x 16-bit motor control PWM synchronized AC timer 2x 16/14bit ADC 7.2MSPS 22 channels
SHA-1, SHA-256, MD5, HMAC 10x 16-bit timer 5x 16-bit LP timer 2x 12-bit DAC
DK2
EV1
DK1
Full feature STM32MP1 evaluation Flexible prototyping & demo 3rd Parties Boards for prototyping
• STM32MP157A-EV1 2 • STM32MP157A-DK1 2 and production
• STM32MP157C-EV1 Versions • STM32MP157C-DK2 Versions • Board Specification from Linaro
+ MIPI DSI WVGA display (96boards.org)
+ Wi-Fi/BT combo module • Commercial SoM w/ different forms
*System on Module
A Fully Integrated Design Suite 7
Leveraging the STM32Cube Environment
Cortex-A7 Cortex-M4
Hundreds of Examples
Production-ready Quality
Fully compliant
with Pre-integrated
open-source Secure OS
standards
One distribution, three packages 10
• Starter Package
• To quickly and easily start with any
STM32MP microprocessor device
• Developer Package
• To add your own developments on top of
the STM32MPU Embedded Software
distribution
• Distribution Package
• To create your own Linux® distribution,
your own Starter Package and your own
Developer Package
STM32MP1 Software Tools 11
IDEs
STM32CubeMX STM32 Programming Tool
Compile and Debug
STM32CubeMX enhanced for MPU Multi-Core Solutions STM32CubeProgrammer
• Configure and generate Code • Partners IDE • Flash, DRAM and/or system memory
• DRAM interface tuning tool • Free IDE based on Eclipse • OTP programming
• Device Tree generation • Multi-core debugging • Signing tool & Keys generation
STM32MP1 boot architecture
A trusted boot chain 13
Loads
3rd Party
Legend
(Loads &) Calls
(Loads &) Calls options
ST Community
: Configured via STM32CubeMX
Community + ST adds-on : Authentication (optional)
Note : a Basic boot chain is also available, fully relying on U-Boot (instead of TF-A + U-Boot)
Cortex-A7 / Cortex-M4
Relationship
A7 / M4 IP Sharing 15
Cortex-A7 Coprocessor
Cortex-A7
(master) Cortex-M4
(master) IPCC (co-processor)
Cortex M
Core Security
Interrupts Watchdog DMA
TIM (x15) LPTIM (x5) GPIOA-K GPIOZ HDP STM DCMI CEC
RCC PWR TEMP USART1 USART (x3) UART (x4) SPI6 VREFBUF DAC (x2)
Networking I2C6 I2C4 I2C (x4) SPI (x5) DFSDM ADC (x2)
Ethernet FDCAN
Legend
Assigned to A7 Assigned to M4
Assigned IP to A7 or M4
Shared IP Shared by
A7 & M4
Configuration easy thanks to ST
ecosystem example
Goals 17
• Use the USART3 from the GPIO expander of the discovery board to
communicate with a laptop.
• Steps :
• Get board information from ST wiki
• Flash the starter package on the boards thanks to the STM32Programmer
• Generate the Linux device tree thanks to CubeMx
• Rebuild the device tree thanks to the developer package
• Update the device tree (DTB).
• Test the UART
Wiki 18
• https://wiki.st.com/stm32mpu/wiki
/STM32MP157X-DKX_-
_hardware_description#GPIO_e
xpansion_connector
Starter package 19
• The starter package is the full system image containing all the binaries
and all the file systems.
Public community
Gits Community
Community Tarballs
Source
Source YoctoST STM32 Release package User Guide &
Starter package STM32 STM32
code Script Cube M4 Note SDK Ref Doc
images Tools Cube M4
Starter kit
packages of image
zip
git
Starter package Flow 21
Public community
Gits Community
Community Tarballs
Source
Source YoctoST STM32 Release package User Guide &
Starter package STM32 STM32
code Script Cube M4 Note SDK Ref Doc
images Tools Cube M4
zip
git
Starter package Flow 22
Public community
Gits Community
Community Tarballs
Source
Source YoctoST STM32 Release package User Guide &
Starter package STM32 STM32
code Script Cube M4 Note SDK Ref Doc
images Tools Cube M4
Starter package
User
zip
git
STM32Programmer 23
• To flash the starter package in the discovery board through the USB
port you have to enter this command :
• STM32_Programmer_CLI -c port=usb1 -w ./flashlayout_st-image-
weston/FlashLayout_sdcard_stm32mp157c-dk2-trusted.tsv
• SD card Tip : you can also copy the image directly on the SDcard if
you plug the SD card in your laptop and you can use the DD
command on Linux laptop.
Boot the starter package 24
• As soon as the starter package has been flashed you can boot the
board and enjoy Linux world.
• With the developer package you can rebuild each binary of each
software layer (file system partition can be generated only by
distribution kit).
Public community
Gits Community
Community Tarballs
Source
Source YoctoST STM32 Release package User Guide &
Starter package STM32 STM32
code Script Cube M4 Note SDK Ref Doc
images Tools Cube M4
Developer package
User
SDK environment
zip
git
Developer package Flow 41
Public community
Gits Community
Community Tarballs
Source
Source YoctoST STM32 Release package User Guide &
Starter package STM32 STM32
code Script Cube M4 Note SDK Ref Doc
images Tools Cube M4
Developer package
User
SDK environment
Source
package
zip
git
Developer package Flow 42
Public community
Gits Community
Community Tarballs
Source
Source YoctoST STM32 Release package User Guide &
Starter package STM32 STM32
code Script Cube M4 Note SDK Ref Doc
images Tools Cube M4
Developer package
User
SDK environment
Source
package
zip
git
Developer package Flow 43
Public community
Gits Community
Community Tarballs
Source
Source YoctoST STM32 Release package User Guide &
Starter package STM32 STM32
code Script Cube M4 Note SDK Ref Doc
images Tools Cube M4
Source
package
zip
git
Developer package Flow 44
Public community
Gits Community
Community Tarballs
Source
Source YoctoST STM32 Release package User Guide &
Starter package STM32 STM32
code Script Cube M4 Note SDK Ref Doc
images Tools Cube M4
Developer package
User User install his own code
SDK environment and build binaries
Source User
package + Source
User patch code
User Binaries
zip
git
Developer package Flow 45
Public community
Gits Community
Community Tarballs
Source
Source YoctoST STM32 Release package User Guide &
Starter package STM32 STM32
code Script Cube M4 Note SDK Ref Doc
images Tools Cube M4
Source User
package + Source STM32
User patch code Tools
User Binaries
zip
git
Developer package Flow 46
Public community
Gits Community
Community Tarballs
Source
Source YoctoST STM32 Release package User Guide &
Starter package STM32 STM32
code Script Cube M4 Note SDK Ref Doc
images Tools Cube M4
Developer package
User
SDK environment Flash the board with the generated
binaries
Source User Board needs to
package + Source STM32
User patch code Tools have the starter
package inside first
User Binaries
zip
git
Update the firmware and test the UART3 47
• To update the Linux device tree you can simply copy it on the bootfs
file system.(through Ethernet, via an usb key, putting the sdcard on
you laptop…)
Releasing Your Creativity 48
www.st.com/STM32MP1