Get ready for the STM32 Summit 2026 | Online, November 3
Ask questions and find answers on STM32 microprocessors, including hardware, power, DRAM, flashing, interfacing, device tree, and peripherals.
Most recent activity
In engineering mode (BOOT0:off, BOOT2:On) I want to update my cortex-m4 firmware from CMD, not an IDE. What is the command to do so?Thank you!Note: I tried using the STM32_Programmer_CLI executable but it keeps seeing the a7 only, I cant communicate with the m4.Note: I think the IDE uses OpenOCD to do so but I can't find how to extract the command line it uses.
I'm having trouble closing a device as per the recommended method.STM32MP> fuse read 0 0 Reading bank 0: Word 0x00000000: 00000017  
Hello!I am trying to replicate the workshop STM32MP1 - 11 Inter-Processor Communication Lab Example. I create a new STM32 project and copy all the data from the lab example. Then I connect the device (STM32MP157C-DK2) in production mode to send message between processor but the following message appears in the terminal:/dev/ttyRPMSG0: no such file or directory Can somebody help me?Thanks!
Hi,After installing and running the latest, OpenStLinux discovered a problem with M4. Firmware is loading fine, but the system doesn't create /dev/ttyRPMSGx channel. What is changed in comparison to the dunfell?[ 2399.320707] remoteproc remoteproc0: powering up m4 [ 2399.330950] remoteproc remoteproc0: Booting fw image my-m4-firmware_CM4.elf, size 3297396 [ 2399.361010] rproc-srm-core 10000000.m4:m4_system_resources: bound 10000000.m4:m4_system_resources:timer@40000000 (ops 0xc0e1da) [ 2399.391021] rproc-srm-core 10000000.m4:m4_system_resources: bound 10000000.m4:m4_system_resources:serial@4000f000 (ops 0xc0e1d) [ 2399.403977] rproc-srm-core 10000000.m4:m4_system_resources: bound 10000000.m4:m4_system_resources:serial@40011000 (ops 0xc0e1d) [ 2399.437731] rproc-srm-core 10000000.m4:m4_system_resources: bound 10000000.m4:m4_system_resources:serial@40018000 (ops 0xc0e1d) [ 2399.474831] rproc-srm-core 10000000.m4:m4_system_resources: bound 10000000.m4:m4_system_resources:serial@40019000 (
Hello,I have a STM32MP157F-DK2 and I'm planning to develop some python applications to run on the A7 processor. I have some questions related to python development for this platform, as I have not found too much documentations regarding this:Software package: Which ST software package do you recommend for python dev? Given that I will not need to cross-compile any C/C++ application with an SDK, can I use the Starter package, or do I need to use the dev package?Will the default starter of dev packages contain the python modules that I will need to connect and read data from Bluetooth devices?Will the default starter of dev packages contain the python modules that I will need to create GUIs for the TFT display?If I need to install a python module that is not present by default on the image, can I do it at run time, or do I need to create a custom distribution package? how?If you have any examples or tutorials for python development for the STM32 they are very welcome. The "hello world" e
I am using PlatformIO extension on Visual Studio Code and ZephyrRTOS framework to run blinky sample code for stm32mp157c-dk2 board in engineering mode. my use-case is to debug only in engineering mode with A7 core not being active or running.Debugging in engineering mode is not getting started and "target needs reset " message(line-39) is thrown in debug terminal as shown belowundefinedC:\Users\E0565260\.platformio\packages\toolchain-gccarmnoneeabi\bin\arm-none-eabi-gdb.exe: warning: Couldn't determine a path for the index cache directory. Reading symbols from C:\Users\E0565260\Documents\PlatformIO\Projects\test4_mp1\.pio\build\disco_mp157c_dk2\firmware.elf... PlatformIO Unified Debugger -> http://bit.ly/pio-debug PlatformIO: debug_tool = stlink PlatformIO: Initializing remote target... xPack OpenOCD, x86_64 Open On-Chip Debugger 0.11.0-00155-ge392e485e (2021-03-15-16:44) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html srst_only srst_
Hi, I'm trying to leverage the capability of lower words to be programmed once to one bit by bit to implement a sort of "forever growing counter", not sure if there is a proper naming for this.In the lower OTP zone, if I understood correctly, word 10 and word 11 are for OEM, does that mean that they are totally free to be used?Best regards,Charles
I would like to clear up some confusion regarding the DSI VIO, the stm32mp157a datasheet mentions "1.2 V I/O for DSI interface" but in the EV1 kit the LCD used (the RK055AHD042-CT, for which it's impossible to find a datasheet for, could that be shared too?) uses the RM68200 driver which seems to require 1.8V for IO.The LCD I would like to use also requires 1.8V so I'm wondering if I need a high-speed voltage translator or will the STM32MP1 support my LCD?
I just spent a day trying to configure a gpio with internal pullup using gpiolib. Could not get it configured. Then spent 2 days with device drivers and device trees, and got it working. Seems insane to me that configuring gpios should be this complex. Is there an easier way?
I have a customized STM32MP157AAD board with STPMIC1E PMIC.STPMIC1E is pre-programmed to have same NVM as 1A version.After power up, the board can download firmware by CubeMX and run uboot from SD card, even partially boot the linux kernel.However, there is no action to load stpmic-regulator driver after kernel displays this line.[ 2.191543][ T54] stpmic1 1-0033: PMIC Chip Version: 0x21There should be no hardware problem because there is proper signal to read version number and turn on DDR powerThe kernel image file itself is tested on DK2 board and has no problem. The pr_debug data from kernel indicates “Bad cell count�? error[ 21.000604][ T25] stpmic1 1-0033: PMIC Chip Version: 0x21[ 21.010922][ T25] OF: of_platform_populate()[ 21.015427][ T25] OF: starting at: /soc/i2c@5c002000/stpmic@33[ 21.021500][ T25] OF: of_irq_parse_one: dev=/soc/i2c@5c002000/stpmi
Hi ST Community,I'm trying to build my linux image for STM32MP157F-EV1 board with the following commands.Linux Commands:PC $>cd <working directory path>/Distribution-PackagePC $>mkdir openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15PC $> cd openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15PC $>repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15PC $>repo syncPC $>DISTRO=openstlinux-weston MACHINE=stm32mp15-eval source layers/meta-st/scripts/envsetup.shPC $>bitbake st-image-westonThe following error is outputed and the build stops.Could you please tell me the cause of the error?**********************************ERROR: st-image-resize-initrd-1.0-r0 do_rootfs: Unable to update the package index files. Command '['/home/toku/STM32MPU_workspace/STM32MP1-Ecosystem-v4.0.0/Distribution-Package/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/build-openstlinuxweston-stm32mp15-eval/tmp-glibc/work/stm32mp
The default configuration for the trusted defconfig has CONFIG_ENV_IS_NOWHERE=y . How can I store the u-boot-env on mmc such that fw_printenv can read it. When I took out CONFIG_ENV_IS_NOWHERE I am unable to get the boot process to u-boot. The last thing I get is NOTICE: SP_MIN: v2.4-r1.0(debug):devtool-patched-5-g73e4b89f4-dirty NOTICE: SP_MIN: Built : 19:06:02, Sep 21 2022 INFO: ARM GICv2 driver initialized INFO: Set calibration timer to 60 sec INFO: stm32mp1 IWDG1 is secure INFO: SP_MIN: Initializing runtime services INFO: SP_MIN: Preparing exit to normal world INFO: CPU 0 IT Watchdog 2 INFO: CPU : 0 INFO: sp_usr : 0x0 INFO: lr_usr : 0x0 INFO: spsr_irq : 0x0 INFO: sp_irq : 0x0 INFO: lr_irq : 0x0 INFO: spsr_fiq : 0x0 INFO: sp_fiq : 0x0 INFO: lr_fiq : 0x0 INFO: spsr_svc : 0x0 INFO: sp_svc : 0xc00fcf08 INFO: lr_svc : 0xc0174d5d INFO: spsr_abt : 0x0 INFO: sp_abt : 0x0 INFO: lr_abt : 0x0 INFO: spsr_und : 0x0 INFO: sp_und : 0x0 INFO: lr_und : 0x0 INFO: spsr_mon : 0xa00001f3 INFO: sp_mon :
I am having difficulties using built-in ST-Link debugger on STM32MP157D-DK1 Discovery Kit. I am using the latest version of the STM32CubeIDE, Version: 1.10.1. Upon connecting the debugger it asked for FW upgrade on the ST-Link which I accepted and it completed the FW upgrade successfully. GDB Connection: Autostart local GDB serverDebugger Load Mode: thru JTAG/SWD LinkI have configure the debug probe to be OpenOCDConnection setup: SWDDropped the clock to 4, and 1.8 none worked.Here is the log for the debugger:Open On-Chip Debugger 0.11.0+dev-00449-g53fa0f7 (2022-06-09-09:42) Info : Listening on port 6666 for tcl connectionsInfo : Listening on port 4444 for telnet connectionsInfo : STLINK V2J40M27 (API v2) VID:PID 0483:3752Info : Target voltage: 3.245293Info : clock speed 125 kHzInfo : stlink_dap_op_connect(connect)Info : SWD DPIDR 0x6ba02477Info : stlink_dap_op_connect(connect)Info : SWD DPIDR 0x6ba02477Info : STM32MP157DACx.cm4: Cortex-M4 r0p1 processor detectedInfo : STM32MP157DACx.cm
I have a successful emmc image running on my STM32MP157FAD. However, fw_env.config is incorrect. This is my first project using FIP and I'm a little confused where the uboot environment variables are now located.Partition Layout:/dev/mmcblk1p1 34 8225 8192 4M Linux reserved FIP /dev/mmcblk1p2 49152 180223 131072 64M Linux filesystem Boot /dev/mmcblk1p3 180224 3227647 3047424 1.5G Linux filesystem RootA /dev/mmcblk1p4 3227648 6275071 3047424 1.5G Linux filesystem RootB /dev/mmcblk1p5 6275072 8372223 2097152 1G Linux filesystem DataHere is the wks output (I'm not sure how to interpret where uboot.env is placed)part fip --source rawcopy --fstype=ext4 --fsoptions "noauto" --part-name=fip --sourceparams="file=/datadrive/gen3-dev/openstlinux-5.10-dunfell-mp1-21-03-31/build-openstlinuxweston-stm32mp1-henson/tmp-glibc/deploy/images/stm32mp1-henson/fip/fip-stm32mp157f-henson-mx-trusted.bin" --ondisk mmcblk --part-type 0x8301 --fixed-size 4096K part --source rawcopy --sourceparams="file=/datadri
I check STM32MP157F-DK2 schematic. Transmit Channels(ETH_TXD0..ETH_TXD3) isn't have termination resistor. Receive Channels (ETH_RXD0..ETH_RXD3 ) is have termination resistor. But you add termination resistor on Transmit Channels in your application note(AN5031 page 74 ). I confused about transmit channels termination resistor.Please explain this.Screenshots
Hi STM-Team,We are facing problem while using multiple USART in parallel on STM32MP153C running Linux kernel v5.4.Our application contains two separate threads communicating on two separate RS485 ports in parallel at every ~10ms. After further debugging, we were able to narrow down the use-case to writes happening in parallel. The write on one of the RS485 is stuck and it never finishes and the thread is blocked forever.Simplified way of reproducing the issue using Linux script is as follows (2 instances of this running on two separate RS485 (ttySTM3 and ttySTM7) in parallel): -------------------------------------------#!/bin/bashwhile truedo echo -n -e '\x00\x01\x02\x03\x04\x05\x06\x07' > /dev/ttySTM3 # echo -n -e '\x00\x01\x02\x03\x04\x05\x06\x07' > /dev/ttySTM7done---------------------------------------------------------With this script, we can see write on one of RS485 is blocked after few seconds. Only way of recovering from this is to reboot the device. For debugging, when
Hi STM-Team,We are trying to enable/configure HS200/HS400 mode in eMMC on STM32MP157F-EV1 evaluation board.We are using the stm32mp157f-ev1.dts device tree and we have configured the eMMC node as shown in below screenshot. As per the documentation, we came to know that to select HS200/HS200/HS400, VCCQ has to be set to 1.8 V or 1.2 V.So, we have set "vqmmc-supply" property in device tree to 1.8 range regulator i.e. "v1v8" as shown below.------------------------------------------------------------------------ v1v8: ldo6 { regulator-name = "v1v8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; &
Hi, Community,SDMMC3 is not working on STM32MP157F-EV1 board.I'm not sure what's wrong.I can confirm that SDMMC3_CK/CMD/D0 signals are input and output by osilloscope,but SDMMC_FIFO is empty.The following code is part of the SD_SendSDStatus function in stm32mp1xx_hal_sd.cstatic uint32_t SD_SendSDStatus(SD_HandleTypeDef *hsd, uint32_t *pSDstatus) { : : : /* Send ACMD13 (SD_APP_STAUS) with argument as card's RCA */ errorstate = SDMMC_CmdStatusRegister(hsd->Instance); if(errorstate != HAL_SD_ERROR_NONE) { hsd->ErrorCode |= HAL_SD_ERROR_NONE; return errorstate; } /* Get status data */ while(!__HAL_SD_GET_FLAG(hsd, SDMMC_FLAG_RXOVERR | SDMMC_FLAG_DCRCFAIL | SDMMC_FLAG_DTIMEOUT | SDMMC_FLAG_DATAEND)) { if(__HAL_SD_GET_FLAG(hsd, SDMMC_FLAG_RXFIFOHF)) { for(count = 0U; count < 8U; count++) { *pData = SDMMC_ReadFIFO(hsd->Instance); ★★★NOT REACHABLE!!!★★★ pData++; } } if((HAL_GetTick() - tickstart) >= SDMMC_DATATIMEOUT) { return HAL_SD_ERROR_TIMEOUT
I'm working on project that required SPI with DMA .I'm working on STM32MP157C-DK2 board.I am trying to enable CONFIG_SPI_STM32_DMA macro in my config file getting error in zephyr driver due to DMA has not yet been ported on STM32MP1.Any suggestions.Thanks in advance!!
Hi! I'm really new to this world, so I'll appreciate the simplicity of your answers.I have an STM32MP157F-DK2 at the University and I need to measure a voltage signal and an UART signal. Can I use only the dual Cortex®-A7 32 bits for configuring the board pins? Or do I must use the Cortex®-M4?Either way, I'm having problems with understanding all this. I have finished reading the instalation wikis, what's the difference between working with the Cortex®-M4 with STM32CubeMP1 installed, and working with the Cortex®-A7 32 bits with the Linux Kernell?I need to create a GUI that shows the voltage signal an the UART that represents temperature, but I need the pins of the board for detecting those signals.
Hello everyone,I'm trying to get started with the STM32MP157 with the STM32MP157x-EV1 Evaluation board by following the exact steps shown here.Everything seems to be running smoothly but when I try to flash the microSD card on the board, something happens: Apparently the problem begins allright, but then, after the message saying "reconnecting the device..." nothing happens and the flashing stops.Here's the log:user@STest:~/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Starter-Package/stm32mp1-openstlinux-4.19-thud-mp1-19-02-20/images/stm32mp1$ STM32_Programmer_CLI -c port=usb1 -w flashlayout_st-image-weston/FlashLayout_sdcard_stm32mp157c-ev1-trusted.tsv ------------------------------------------------------------------- STM32CubeProgrammer v2.0.0 ------------------------------------------------------------------- USB speed : High Speed (480MBit/s) Manuf. ID : STMicroelectronics Product ID : DFU in HS Mode @Device ID /0x500, @Revision ID /0x0000 SN : 000000000
Hi there,I would be interested to know if there is any guidance or any existing example projects for using the STM32MP1 with an RTOS on the A7 cores. I am interested in the possibility of running an RTOS like ThreadX/SMP on the A7 cores (plus the M4 core separately).If this is possible, can the headers from the MP1 HAL be used? Are the memory-mapped peripherals all still accessible at the same base addresses on both the M4 and A7 sides?And regarding the Vivante GPU, is that possible to drive directly without the Linux driver? Are there any public datasheets? I've seen some open-source projects which have reverse-engineered the opcodes. Are there any more official projects or documentation resources for this device?Many thanks,Roger
Hi, I need help to compile, build and upload a C++ code on an STM32MP157F-DK2 board. Can anyone help me? Thanks
Hi,I am working on this new board, with its Cortex-A7 core, in Eclipse IDE on Windows 10. I understand that this board is mainly developed on Linux.I've looked into STMCubeMP1 package, and some GitHub repos, but I am not able to find the linker file (.ld) and startup file (.s) from projects. All are Cortex M4 coreAny suggestions? Is there an example code about development STM32MP157 with Cortex-A7 on Windows 10?Thanks in advance.
https://github.com/STMicroelectronics/meta-st-stm32mp/blob/kirkstone/classes/fip-utils-stm32mp.bbclassFIP_SIGN_KEY is used to specify the rot key.But if that key is not found (wrong path for example),the bbclass and cert_create silently creates a new rot key,which obviously doesn't match whatever you were using.This is a bit annoying. If a key is specified, there is no use in believing thatthe user wants a generated rot key... If rot keys are not stored and presented during build, and for whatever reason export of keys failed or path seems wrong, this will go undetected.Your build will succeed, but won't start.What's worse is that you'll be stuck without a functioning fip...
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.