STR23STM32MP2 Implementation
This course describe the STM32MP2 Implementation and practical examples
Objectives
|
- Theoretical course
- PDF material in English (printed for face-to-face); online over Teams.
- Trainer assistance throughout.
- Practical activities (40-50% of duration)
- Code examples, exercises and solutions.
- Remote: one online Linux PC per trainee, with emulated or physical board as needed.
- Face-to-face / on-site: one PC (one per two beyond six trainees), target board and install manual as needed.
- Downloadable preconfigured VM to redo the labs afterwards.
- Each session starts with a trainee check-in.
- Any embedded systems engineer or technician with the above prerequisites.
- Prerequisites are checked before the training.
- Progress is assessed by the trainer through the practical exercises, and by quizzes for sections without exercises.
- Each trainee receives a completion certificate.
- If a prerequisite gap appears, alternative or additional training is offered.
Course Outline
- Dual A35 cluster; M33 real-time core.
- AXI/AHB fabric; memory regions.
- GPU / VPU / NPU blocks (high-level).
- Display (RGB/LVDS/DSI), CSI-2 camera.
- High-speed I/O: PCIe, TSN GbE, USB
| Exercise: | SoC map quick tour | |
- ROM → TF-A (FSBL) → OP-TEE (S-EL1) → U-Boot (SSBL) → Linux.
- Boot media: eMMC/SD/USB-DFU/NAND (board-dep).
- Device trees passed by U-Boot.
- Secure boot hooks & fuses (overview).
- Recovery & UART/USB consoles.
| Exercise: | Hello boot | |
- DDR type (LPDDR4/DDR4/DDR3L) basics.
- TF-A DDR init vs board tuning.
- RCC & PLL trees; kernel/Peripheral clocks.
- DVFS/cpufreq overview.
- MCO/clock probes for validation
| Exercise: | Clock sanity | |
- Linux pinctrl: groups/functions.
- DTS vs DT overlay structure.
- Regulators/GPIO/IRQ nodes.
- Clocks/resets in DT.
- Common mistakes & dmesg hints.
| Exercise: | DTS tweak | |
- Partitioning (boot/rootfs/data).
- eMMC vs SD vs NAND trade-offs.
- WIC/SD-card images vs dfu-util.
- U-Boot mmc/fatload/env tips.
- Filesystem choices (ext4/squashfs).
| Exercise: | Flash flow | |
- Layers: meta-st-openstlinux, machine configs.
- repo init, bitbake targets.
- SDK/cross-toolchain export.
- Image types (core/weston/minimal).
- Incremental rebuilds & sstate.
| Exercise: | Build & boot | |
- Kconfig vs DTS responsibilities.
- Out-of-tree driver basics.
- Debug: dmesg, trace-cmd, devlink.
- UIO/GPIO-chardev access.
- Packaging modules in Yocto.
| Exercise: | LED/GPIO driver | |
- PHY setup; TSN capabilities (high-level).
- ip link, ethtool, iperf3 checks.
- USB gadget vs host roles.
- PCIe root complex basics.
| Exercise: | Net bring-up | |
- Resource isolation framework.
- TZC/ETZPC-like gates (periph/DDR).
- OP-TEE secure services.
- Keys/OTP and tamper (overview).
- Secure storage story
| Exercise: | OP-TEE ping | |
- Dual-A/B rootfs strategy.
- SWUpdate/mender (concepts).
- U-Boot env for rollback.
- DFU recovery path.
- Factory vs field flows.
| Exercise: | Safe update sim | |
- DRM/KMS planes/connectors.
- 3D GPU overview (1080p UIs).
- Mesa/Wayland (Weston).
- Performance tips (buffers).
- Multi-display notes
| Exercise: | Weston demo | |
- Formats & pixel planes.
- H.264 decode/encode HW.
- GStreamer pipelines.
- Zero-copy paths idea.
- Storage & bandwidth tips
| Exercise: | GStreamer test | |
- CSI-2 lanes & DT nodes.
- Sensor drivers & controls.
- ISP blocks (conceptual).
- V4L2 capture basics.
- Sync/exposure notes.
| Exercise: | Camera capture | |
- Connector DT bindings.
- Mode setting (EDID/timings).
- Backlight/panel drivers.
- VSYNC/TE considerations.
- Tear & bandwidth checks
| Exercise: | Panel bring-up | |
- NPU
- Toolchains (TFLite/ONNX).
- Delegate selection (CPU/GPU/NPU).
- Pre/post-processing tips.
| Exercise: | Demo | |
- CubeMP2 HAL/LL layout.
- Project templates in CubeIDE.
- Clocks/IRQs on M33.
- Bare-metal vs FreeRTOS.
- Debug attach options
| Exercise: | M33 hello | |
- VirtIO/RPMsg concepts.
- Shared memory carve-outs.
- Mailbox/interrupt routing.
- Message framing policy.
| Exercise: | RPMsg ping-pong | |
- UART/I²C/SPI from Linux.
- Offloading real-time to M33.
- PWM/capture (M33 side).
- DMA pipelines.
- Latency budgeting.
- eMMC/SD tuning (HS modes).
- ext4 vs squashfs trade-offs.
- I/O schedulers & fio.
- Wear leveling & logs.
- Mount options & journaling.
| Exercise: | I/O bench | |
- Firewalling basics (nftables).
- Secure shells/keys.
- Time sync (PTP/NTP).
- TSN concepts (sched/queues).
- Logging & metrics.
| Exercise: | Net hardening | |
- cpufreq/governors.
- cpuidle/suspend-to-RAM.
- Peripheral low-power.
- Display blanking strategy.
| Exercise: | Power sweep | |
- OTP/fuses & boot keys.
- Active tamper inputs.
- Secure RTC/monitors.
- Rollback prevention.
- Audit logging
| Exercise: | Tamper demo | |
- Golden image layout.
- Serial/UID/keys injection.
- Manufacturing scripts.
- Boundary/functional tests.
- Field diagnostics hooks.
| Exercise: | Factory script | |
- BSP update policy.
- Yocto release strategy.
- Security CVE handling.
- Backup & recovery docs.
- Next steps & references.
| Exercise: | Self-audit | |
More
To book a training session or for more information, please contact us on info@ac6-training.com.
Registrations are accepted till one week before the start date for scheduled classes. For late registrations, please consult us.
You can also fill and send us the registration form
This course can be provided either remotely, in our Paris training center or worldwide on your premises.
Scheduled classes are confirmed as soon as there is two confirmed bookings. Bookings are accepted until 1 week before the course start.
Last update of course schedule: 27 June 2026
Booking one of our trainings is subject to our General Terms of Sales
Related Courses
STG
STM32 + FreeRTOS + LwIP
STR10
STM32F7
STR11
STM32H7
STR12
STM32H5
STR13
STM32U5
STR14
STM32G0
STR15
STM32G4
STR16
STM32L0
STR17
STM32L1
STR18
STM32 L4/L4+ implementation
STR19
STM32L5
STR20
STM32WB (BLE/Thread/Zigbee)
STR21
STM32WL (Sub-GHz/LoRa)
STR22
STM32WBA (BLE 5.4)
STR7
STM32 F4-Series implementation
STR8
STM32MP15 Implementation
STR9
STM32 Peripherals