Get ready for the STM32 Summit 2026 | Online, November 3
Join conversations with your peers and ST experts. Explore the full potential of STM32 microprocessors for your embedded design.
Most recent activity
I want to implement the program that exchange large data with each other on Cortex-A7 and Cortex-M4 by using DDR.Thanks to following wiki page, I have understand the mechanism that exchange large data from Cortex-M4 to Cortex-A7 by using DDR.https://wiki.st.com/stm32mpu-ecosystem-v1/wiki/How_to_exchange_large_data_buffers_with_the_coprocessor_-_principleNow, I want to know the way that exchange large data from Cortex-A7 to Cortex-M4 by using DDR.I especially want to know how to read data on DDR from Cortex-M4.I would be grateful if there is any sample source code.Is there any sample source code that transfer large data from Cortex-A to Cortex-M?Best Regards,H. Masuda
I have generated a project with cubemx and tried all the instructions from this article..https://wiki.st.com/stm32mpu/wiki/How_to_compile_the_device_tree_with_the_Distribution_PackageMy layer.conf look like thisBBPATH .= ":${LAYERDIR}" BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ ${LAYERDIR}/recipes-*/*/*.bbappend" BBFILE_COLLECTIONS += "meta-my-demo-layer" BBFILE_PATTERN_meta-my-demo-layer = "^${LAYERDIR}/" BBFILE_PRIORITY_meta-my-demo-layer = "6" EULA_FILE_ST_stm32mpmydemo = "${LAYERDIR}/conf/eula/${MACHINE}" EULA_FILE_ST_MD5SUM_stm32mpmydemo = "8b505090fb679839cefbcc784afe8ce9" LICENSE_PATH += "${LAYERDIR}/files/licenses" STM32MP_MY_DEMO_BASE = "${LAYERDIR}" LAYERVERSION_meta-my-demo-layer = "1" LAYERDEPENDS_meta-my-demo-layer = "stm-st-stm32mp-mx" LAYERVERSION_meta-my-demo-layer = "1" LAYERDEPENDS_meta-my-demo-layer = "core" LAYERSERIES_COMPAT_meta-my-demo-layer = "dunfell"My machine configurations look like this ...#@TYPE: Mac
I see that the page related to the installation on java is still under construction on the wiki, but I urgently want to install jre and want help in doing so.I am using st-example-image-qt for my project and I need to add java to it, I have already added other packages like python, etc. using the IMAGE_INSTALL_append = python3, but when I add openjdk-7-jre in it after adding the meta-java layer, it gives an error that x11 is required in DISTRO_FEATURES.Please help me fix this.Thanks and Regards
I'm trying to generate dtb files (kernet, u-boot, tf-a) for a custom board with STM32MP157C (OSD32MP157C by Octavo Systems) following the instructions from ST (https://wiki.st.com/stm32mpu/wiki/How_to_compile_the_device_tree_with_the_Developer_Package).Here some details:*.dts and *.dtsi files are generated with CubeMXIde 1.4.0Environment is setup in a Ubuntu 20.04 LTS (using WSL).Source files: en.SOURCES-stm32mp1-openstlinux-5-4-dunfell-mp1-20-06-24.tar.xzSDK files: en.SDK-x86_64-stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24.tar.xzError log: arch/arm/dts/stm32mp157c-test_master_1-mx.dtb: ERROR (duplicate_label): /sram@10050000: Duplicate label 'sram' on /sram@10050000 and /soc/sram@10000000ERROR: Input tree has errors, aborting (use -f to force output)make[2]: *** [scripts/Makefile.lib:308: arch/arm/dts/stm32mp157c-test_master_1-mx.dtb] Error 2make[1]: *** [dts/Makefile:38: arch-dtbs] Error 2make: *** [Makefile:1087: dts/dt.dtb] Error 2Checking inside the files and includes I can see "
Hi,Can I access APB5 bus in engineering mode to run I2C4 with I2C4_SCL = PZ4, I2C4_SCL = PZ5?
Hello.I'm trying to connect MP1's eth to Marvell 88E6352. Switch connected to cpu via RGMII.Because switch don't have output 125MHZ clock, eth configured to use internal clock, how described in this article: https://community.st.com/s/question/0D50X0000B8iBSB/stm32mp157-ethernet-problem After all connections and configurations Linux can see Marvell's switch. But when I try to enable eth, it's not started and write this to console:root@stm32mp1:~# ifconfig eth0 up [ 107.460160] Generic PHY fixed-0:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=fixed-0:00, irq=POLL) [ 108.476843] stm32-dwmac 5800a000.ethernet: Failed to reset the dma [ 108.481623] stm32-dwmac 5800a000.ethernet eth0: stmmac_hw_setup: DMA engine initialization failed [ 108.490893] stm32-dwmac 5800a000.ethernet eth0: stmmac_open: Hw setup failed ifconfig: SIOCSIFFLAGS: Device or resource busyI can't solve this problem by myself.
Following the instructions found in en.FLASH-stm32mp1-openstlinux-5-4-dunfell-mp1-20-06-24.tar.xz and using create_sdcard_from_flashlayout.sh to write the data to an SD card did not work for me. When I inserted the card on the stm32mp157c-dk2 dev board and power up, nothing happens on the serial port or the units display. Things are working with the card shipped with the unit, so the HW is working.Is there a pre-built SD card image to write to a card to get the v2.0.0 equivalent of what was on the card that came with the dev board?As I'm posting this and scrolling back in my terminal window I notice warnings about sgdisk. Are those fatal? Here is a log of what I tried:```$ ./create_sdcard_from_flashlayout.sh ../flashlayout_st-image-weston/trusted/FlashLayout_sdcard_stm32mp157c-dk2-trusted.tsv [WARNING]: A previous raw image are present on this directory[WARNING]: ../flashlayout_st-image-weston/trusted/../../FlashLayout_sdcard_stm32mp157c-dk2-trusted.raw[WARNING]: would
Is there a way to directly start M4 and run M4 firmware from BootRom.I am aware of the Engineering mode, however it requires the help of a debugger to copy the M4 firmware into the memory and run it. I like to do the same but in stand alone mode.I am also aware that M4 can be started and run M4 firmware using SSBL, however we want the M4 firmware to configure clocks instead SSBL. Some could point out why not then use a M4 based microcontroller instead of the MPU, but we have a specific requirement to boot from BootRom to M4 on the MPU.I am thinking about an idea to store M4 firmware as FSBL with the correct headers on one of the Flash devices (NOR/NAND Flash), once FSBL is stated by bootRom, copy M4 firmware and run it.I have not come across such approach, that is why I like to ask if this is going to be even possible?
Hi all,I am trying to understand this commit [1] in u-boot, which removes the fdt_high variable from the environment for stm32mp1 boards.Before this commit, the FDT was initially loaded from persistent storage to address 0xc4000000, and then used in place:## Flattened Device Tree blob at c4000000 Booting using the fdt blob at 0xc4000000 XIP Kernel Image ... OK Using Device Tree in place at c4000000, end c40160d0After this commit, the FDT is loaded from persistent storage to address 0xc4000000, and then relocated to a different position:## Flattened Device Tree blob at c4000000 Booting using the fdt blob at 0xc4000000 XIP Kernel Image Loading Device Tree to cffea000, end cffffc12 ... OKWhy is the extra relocation needed? What problem does it solve?Thank you,Guillermo [1]: https://github.com/STMicroelectronics/u-boot/commit/ec244f6770454e8fd0bb3a33a36339de53e5f59a
I've a custom board with STM32MP153C MPU. I used STM32CubeMX to generate the device tree for kernel, tf-a and uboot. I would like to include these device tree files and create a distribution package. Followed the steps listed in https://wiki.st.com/stm32mpu/wiki/How_to_create_your_own_machine but during bitbake the build fails as it cannot find stm32mp153.dtsi and other related STM32MP153 files required by the device tree. I made sure the conf for my custom project includes STM32MP153c as the custom reference board, but it still can't find the files for this MPU, and it gets all the files for STM32MP157c MPU in arch/arm/dts. What do I need to do get the files for STM32MP153 and create a distribution package?
I am evaluating some embedded software libraries which are available for multiple ARM Cortex M3/M4 MCUs from ST. I would like to evaluate what would be the porting effort to port these libraries to the embedded M4 core in the STM32MP1.What is the closest STM32 MCU in terms of functionality, peripherals, etc to the M4 core embedded in the STM32MP1 ?Thank you.
I have noticed that in BSP 2.0.0, two different TF-A binaries are built, one installed as fsbl and one used only for communications with STM32CubeProgrammer (the "serialboot" binary). I believe this was not necessary in BSP 1.2.0, where a single TF-A binary was used for both purposes.I am just curious why this split is needed. Isn't it possible to build one single TF-A binary which would work for both purposes? What has changed from BSP 1.2.0 to 2.0.0 that makes it necessary to use separate binaries?Thanks.
EDIT December 2020 : all issues and limitations mentioned in this article are fixed and integrated in latest Ecosystem V2.1Hi Community members, MP1 fans, Given significant number of posts we received from the delivery of Ecosystem V2.0 in July this year, it appears that some clarification are required in order to drive you among the STM32MP1 ecosystem offers. ST is providing and supporting 2 different ecosystem environments, including tools and documentations. Ecosystem V2.0 : Released in July this year. Include version Openstlinux-5.4-dunfell-mp1-20-06-24 ( Kernel 5.4, Yocto Dunfell) Please refer and read carefully the Release Note for all components and tools version details.The today wiki site address exclusively the V2.0 ecosystem.Ecosystem V1.2 Delivered in February this year. Include version Openstlinux-20-02-19 ( Kernel 4.19, Yocto Thud) Please refer and read carefully the Release Note for all components and tool version details.Wiki documentation compliant with
hey, which profiler I can use for my custom board (without x11)?
Hi,we are currently developing our own board using the STM32MP151 MPU.Currently i am working on the FSBL in the non secure mode using U-boot.I am able to generate a device tree with CubeMX, compile U-Boot and download it via STM32 Cube Programmer over UART4. After it seems to switch into the FSBL successfully the programmer can not contact the FSBL. I attached a log file and also my cube configuration.I guess it would be helpfull to be able to debug the U-Boot. I know that the device tree should contain something like: chosen { stdout-path = "serial0:115200n8"; }; aliases { serial0 = &uart7; };But i can not seem to get CubeMX to generate that. Or is this one of the options i have to add manually? Or is there a more detailed guide how to debug the U-Boot?I already read https://wiki.st.com/stm32mpu/wiki/U-Boot_-_How_to_debugThanks in advance
We are using a STM32MP157A-DK1 and try to reduce power consumption.1) When A7 and M4 are running we measure around 300mA.2) When A7 is in Suspend-To-Mem and the M4 is still running we measure around 80mA.3) When the M4 also enters standby mode the power consumption drops to around 25mA.We are using an inline USB-device so it measures the whole board and it's probably not giving the most accurate values.Mostly we are wondering about the second case. Is this power consumption to be expected (plus/minus a few mA)? Or is there a way to have only the M4 running without using 80mA?
Hi i want to display splash screen on HDMI monitor instead of DSI monitor of STM32MP157C-DK2. I know that it has something to do with U-Boot configuration, but i can't find right options to enable this feature. I would be grateful if somebody could help me.
I am currently working on a design based around the STM32MP157C (mounted in the Seeed SoM - STM32MP157C).I am trying to connect to the M4 Core on the target but I cannot halt it. When I attempt to do it, the debugger can halt the A7 CPU0 but fails at stopping the A7 CPU1 (Error: timeout waiting for DSCR bit change).The M4 is completely inaccessible.When I try to access the cores from the OpenOCD telnet interface, I can list the targets and get the following output after issuing a reset halt command.> reset halt stlink_dap_op_connect(connect) SWD DPIDR 0x6ba02477 Deferring arp_examine of STM32MP157CACx.cm4 Use arp_examine command to examine it manually! Target not examined, will not halt after reset! stlink_dap_op_connect(connect) stlink_dap_op_connect(reconnect) SWD DPIDR 0x6ba02477 SWD DPIDR 0x6ba02477 STM32MP157CACx.cpu0: ran after reset and before halt ... STM32MP157CACx.cpu1: ran after reset and before halt ... STM32MP157CACx.cm4: hardware has 6 breakpoints, 4 watchpoints STM32M
I would like to disable bluetooth & USB-OTG from the distribution package. I have removed Usbgadget,usbip, bluetooth,bluez5 from the distribution and also try to remove it from the local.conf file by using PACKAGE_EXCLUDE ="" but somehow its still built in the image. I have tried to search all the packages inlcuded in my image using this command bitbake -g image_name && cat pn-buildlist | grep -ve "native" | sort | uniqand some of the packages which i excluded in the local.conf file is still there. One of the package is "linux-firmware-bluetooth-bcm4343". This package is coming from the machine. can i remove it somehow using local.conf?I have also tried it using bitbake menuconfig..after all the configurations i generatedthe fragment.cfg with.bitbake -c diffconfig virtual/kernelThen i make a .bbappend file in recipes-kernel/linux directory and bitbake my image.Now the problem is that all the configuration which i did is reset to the default everytime for some reason. h
Function : uint32_t SD_UltraHighSpeed(SD_HandleTypeDef *hsd)bug : Array Bounds Writecode : uint32_t SD_hs[16] = {0}; if (__HAL_SD_GET_FLAG(hsd, SDMMC_FLAG_RXFIFOHF)) { for (count = 0U; count < 8U; count++) { SD_hs[(8U*loop)+count] = SDMMC_ReadFIFO(hsd->Instance); } loop += 8U; }
Hi,I'm trying to build yocto environment setup for stm32mp157a Board with link https://github.com/dh-electronics/manifest-av96during build operation i'm facing below python related error:| + printf %b\0 bbfatal_log 'python3 setup.py install --root=/home/kaushendra/Avenger96/build-openstlinuxweston-stm32mp1-av96/tmp-glibc/work/x86_64-linux/python3-setuptools-scm-native/2.1.0-r0/image --prefix=/home/kaushendra/Avenger96/build-openstlinuxweston-stm32mp1-av96/tmp-glibc/work/x86_64-linux/python3-setuptools-scm-native/2.1.0-r0/recipe-sysroot-native/usr --install-lib=/home/kaushendra/Avenger96/build-openstlinuxweston-stm32mp1-av96/tmp-glibc/work/x86_64-linux/python3-setuptools-scm-native/2.1.0-r0/recipe-sysroot-native/usr/lib/python3.5/site-packages --install-data=/home/kaushendra/Avenger96/build-openstlinuxweston-stm32mp1-av96/tmp-glibc/work/x86_64-linux/python3-setuptools-scm-native/2.1.0-r0/recipe-sysroot-native/usr/share' execution failed. | + exit 1 | + bb_exit_handler &n
I'm having trouble with TF-A. I'm trying to build a custom distribution for the STM32MP153AAC, but I can reproduce the issue I'm having by using STM32MP157C-DK2 as a base.The differences between DK2 and my board is that the PMIC is connected to I2C4 on pins B7 and E2 instead of GPIOZ. Another difference is that the serial port is connected to UART7 instead of UART4.So, using devtool, I modified the TF-A DTS file stm32mp157c-dk2.dts to include these changes:/ { model = "STMicroelectronics STM32MP157C-DK2 Discovery Board"; compatible = "st,stm32mp157c-dk2", "st,stm32mp157"; aliases { serial0 = &uart7; }; chosen { stdout-path = "serial0:115200n8"; }; }; &pinctrl { i2c4_pins_a: i2c4-0 { pins { pinmux = <STM32_PINMUX('B', 7, AF6)>, /* I2C4_SDA */ <STM32_PINMUX('E', 2, AF4)>; /* I2C4_SCL */ bias-disable; drive-open-drain; slew-rate = <0>; }; }; uart7_pins_mx: uart7_mx-0 { pins1 { pinmux = <STM32_PINMUX('F', 6, AF7)&
Why does it fail reading the file, which seems to be the biggest one also ?Log:12:20:36 : STM32CubeProgrammer API v2.1.012:20:38 : USB speed : High Speed (480MBit/s)12:20:38 : Manuf. ID : STMicroelectronics12:20:38 : Product ID : DFU in HS Mode @Device ID /0x500, @Revision ID /0x000012:20:38 : SN : 00420020333851053438333012:20:38 : FW version : 0x011012:20:38 : Device ID : 0x050012:20:46 : Read TSV File: C:\stm32mp1-openstlinux-4.19-thud-mp1-19-02-20\images\stm32mp1\flashlayout_st-image-weston\FlashLayout_sdcard_stm32mp157c-dk2-trusted.tsv12:20:46 : Number of partitions: 912:21:08 : Start Embedded Flashing service12:21:08 : Error: The file activePartitions.tsv does not exist, please check the file's path12:21:08 : Error: TSV flashing service failed12:21:14 : Start Embedded Flashing service12:21:14 : Error: The file activePartitions.tsv does not exist, please check the file's path12:21:14 : Error: TSV flashing service failed12:21:19 : Start Embedded Flashing service12:21:19 : Error: Th
Hi AllI am running the DDR test on stm32mp157c-dk2 board using CubeMX 6.0.1>Tools>TestSuiteTest no 9: Intensive Random test fails and the board resets.I am using the dk2 development board with the stock SD card (SPL), so my guess is that it should pass the test as all necessary DDR tuning has been pre performed by ST.I am not sure where these tests are defined and also what needs doing to make the test pass.Any help is much is appreciated
When building a custom machine for the STM32MP153AAC (using yocto), the device tree generated by CubeMX for the TF-A creates the following output:NOTICE: CPU: STM32MP153AAB Rev.B NOTICE: Model: STMicroelectronics custom STM32CubeMX board INFO: Reset reason (0x14): INFO: Pad Reset from NRST INFO: Using USB INFO: Instance 2 INFO: Boot used partition fsbl1 NOTICE: BL2: v2.2-r1.0(release):devtool-patched-dirty NOTICE: BL2: Built : 13:15:56, Sep 25 2020 INFO: Using crypto library 'stm32_crypto_lib' INFO: BL2: Doing platform setup INFO: RAM: DDR3-DDR3L 16bits 533000Khz INFO: Memory size = 0x10000000 (256 MB) INFO: BL2 runs SP_MIN setup INFO: BL2: Loading image id 4 INFO: Loading image id=4 at address 0x2ffed000 INFO: Image id=4 loaded: 0x2ffed000 - 0x2ffff000 INFO: BL2: Loading image id 5 INFO: GETSTATUS : INFO: DFU_STATE_IDLE INFO: UPLOAD : INFO: Phase ID : 0 INFO: address 0x2ffe5928 INFO: GETSTATUS : INFO: DFU_STATE_IDLE INFO: GETSTATUS : INFO: DFU_STATE_IDLE INFO: UPLOAD : INFO: Phase ID
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.