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
HI all,Is it possible to just compile the kernel in yocto environment for stm32mp1 using command : bitbake -C compile virtual/kernelThis command is currently failing with below error message : If not this , then what is the correct way to do it?I have another thread running here , where in if try to build it stand-alone with SDK it is failing due to GLIBC issues.
I'm using a SoM with a STM32MP157C. I've connected a LTE modem to uart7, its connected with a 4-wire uart, going trough a level shifter. The device tree contains the following:uart7_pins_mx: uart7_mx-0 { pins1 { pinmux = <STM32_PINMUX('E', 7, AF7)>, /* UART7_RX */ <STM32_PINMUX('E', 10, AF7)>; /* UART7_CTS */ bias-disable; }; pins2 { pinmux = <STM32_PINMUX('E', 8, AF7)>, /* UART7_TX */ <STM32_PINMUX('E', 9, AF7)>; /* UART7_RTS */ bias-disable; drive-push-pull; slew-rate = <0>; }; }; uart7_sleep_pins_mx: uart7_sleep_mx-0 { pins { pinmux = <STM32_PINMUX('E', 7, ANALOG)>, /* UART7_RX */ <STM32_PINMUX('E', 8, ANALOG)>, /* UART7_TX */ <STM32_PINMUX('E', 9, ANALOG)>, /* UART7_RTS */ <STM32_PINMUX('E', 10, ANALOG)>; /* UART7_CTS */ }; };and &uart7{ pinctrl-names = "default", "sleep"; pinctrl-0 = <&uart7_pins_mx>; pinctrl-1 = <&uart7_sleep_pins_
as the pictures shows,I use stm32mp157c borad to driver the raspberrypi,7inch-touchscree .when the systen run on,i used "modetest" command to list panel on system,I can see panel,but the connector and crtc is null,I can't understander the reason . ask for help
I am using a custom.board with STM32MP157C.I am not able to connect to it via JLink EDU.It shows that the ST device could not be verified.Also tried using the STM32Cube ide as well as JLink commander.Facing same issue.What should I give in the device name and core selection sections so that device can be connected??Also when selecting M4 the JLink is detecting it as M0Also is there a way to debug the A7
Hi,I have installated postgresql on STM32MP1.I would like to install libpqxx , a C++ based postgresql connector. How can i do that? FYI: apt-cache search returns empty.
Hello, i´d like to change the clock of the M4 and some of the corresponding periphals. To do that i changed the clocks in CubeMx (Stm32CubeIde integrated version). I tried to create and deploy the .dtb as showed in https://wiki.st.com/stm32mpu/wiki/How_to_manage_OpenSTLinux_projects_in_STM32CubeIDE but this didn´t change my clock speed at all. So i think i this .dtb doesn´t change the clocks. Can i change the clock tree with the STM32CubeIDE and CubeMx? If yes is there a manual for it ? Thank you in advance.
Im trying to integrate the firmware we have developed into our distribution on yocto. The documentation in the wiki [1] isn't really clear in how we add our own firmware to populate the MP1 coprocessor on boot. And the eample projects that the m4project.bb compiles seem to have a very rigid file structure compliant only with CubeMX. [2]STM32 supports the Keil IDE we are wondering how we can use a project such as that in our yocto layer. If anyone has succeeded in this endeavor please let us know.[1]: https://wiki.st.com/stm32mpu/wiki/STM32CubeMP1_Package#Distribution_Package_for_STM32CubeMP1[2]: https://github.com/STMicroelectronics/meta-st-stm32mp/blob/thud/recipes-extended/m4projects/m4projects-stm32mp1.bb
Hi,I want to interface WM8960 with STM32MP1 using I2S interface. I initialized the WM8960 driver and added the DT entry in device tree file but the drivers fails.Can you please share some pointers on how to interface audio codec with I2S to STM32MP1 ?Regards,Shree
Hi everyone,I want to send messages with L2CAP protocol between two Bluetooth devices. This is my client code:void process_bluetooth () { int bl_buff_it = 0; // global buffer iterator // Code of: https://people.csail.mit.edu/albert/bluez-intro/x559.html struct sockaddr_l2 addr = { 0 }; int s, status; char dest[18] = "24:0A:64:28:71:E6"; // Socket creation s = socket(AF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP); // Connection parameters addr.l2_family = AF_BLUETOOTH; addr.l2_psm = htobs(0x1001); str2ba( dest, &addr.l2_bdaddr ); // Establishing connection status = connect(s, (struct sockaddr *)&addr, sizeof(addr)); if (status < 0) exit(0); // Message buffer int tam_bluetooth_buff = DATA_BLUETOOTH_BUFFER * (SIZE_DATA + 1); // DATA_BLUETOOTH_BUFFER = 128, SIZE_DATA = 3 char bluetooth_buff[tam_bluetooth_buff]; strcpy(bluetooth_buff, ""); int msg_to_send = 15, msg_num = 0; char value_string[SIZE_DATA]; &
so how can I add into the linux distribution so that firmware will build and load along with linux and load in bootupFYI : Iam using Yocto for building
Hi everyone, we are developing a project where we are planning to use a processor unit for the task, so, we are thinking of buying the STM32MP157D - DK1 for the development of the project, is the first time we are using such system and we have the following questions: 1) Can we use any operating system? like Ubuntu, Debian, etc.. apart of the OpenSTLinux? we are conscious about the yocto project and the fact we can make a "custom" linux from that, but, we would like to know that. 2) We can simulate in a virtual machine the OpenSTLinux OS? 3) How is the development process with these systems? Can we develop an application in python that manipulates the peripherals like we were programming a microcontroller or how does that work? Thanks for the answers.
Specifically the STM32MP157D Discovery KitTo avoid labour-intensive file copies I'd like to simply mount something on my server where I'm going to cross-compile things which will allow me to test a particular bit of functionality. I do not want to do any major re-builds just yet.But I see the DK1 as supplied seems not to have NFS support in the form of a mount.nfs utility though NFS is mentioned in /proc/filesystems. Or if it is there I have failed to understand it.I thought I'd be able to do something like apt-get install nfs-client or nfs-common but there's no such package.I see there's already a package called packagegroup-base-nfs installed which contains no files according to dpkg. kernel ouput also says "NFS: Registering the id_resolver key type" implying some part of NFS is present at least.This is the kind of thing I've tried and the error.root@stm32mp1:/etc# mount -t nfs -o ro,nolock 192.168.x.x:/home/jon/STM32MPU_workspace /mnt/STM32MPU_workspacemount: /mnt/STM32MPU_work
Hello,so I am using the Yocto environment and patched the device tree:diff --git a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi index dd796ec03..54ef05294 100644 --- a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi +++ b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi @@ -473,7 +473,16 @@ }; }; - + + i2s1_pins_mx: i2s1_mx-0 { + pins { + pinmux = <STM32_PINMUX('A', 15, AF5)>; /* I2S1_WS */ + bias-disable; + drive-push-pull; + slew-rate = <1>; + }; + }; + i2s2_pins_a: i2s2-0 { pins { pinmux = <STM32_PINMUX('I', 3, AF5)>, /* I2S2_SDO */ @@ -1479,6 +1488,17 @@ }; }; + i2s1_pins_z_mx: i2s1_mx-0 { + pins { + pinmux = <STM32_PINMUX('Z', 0, AF5)>, /* I2S1_CK */ + <STM32_PINMUX('Z', 1, AF5)>, /* I2S1_SDI */ + <STM32_PINMUX('Z', 2, AF5)>; /* I2S1_SDO */ + bias-disable; + drive-push-pull; + slew-rate = <1>; + }; + }; +
..
if not could you introduce some MPUs that i can substitute?Thanx:folded_hands:
Hello GuysLike the subject, I want change the interface RGMII to RMII using CubeMX.(RealTek-RTL8211EG-VB-CG => Microchip - LAN8720AI-CP)Based on STM32MP157C-EV1 Code in CubeMX, I changed the Ethernet option from RGMII to RMII as shown in the picture below.And after Code Generating, I applied it to my addon(mx) directory and built it.(Changed to the code generated by CubeMX.) eth1_pins_mx: eth1_mx-0 { pins1 { pinmux = <STM32_PINMUX('A', 1, AF11)>, /* ETH1_REF_CLK */ <STM32_PINMUX('C', 1, AF11)>, /* ETH1_MDC */ <STM32_PINMUX('G', 13, AF11)>, /* ETH1_TXD0 */ <STM32_PINMUX('G', 14, AF11)>; /* ETH1_TXD1 */ bias-disable; drive-push-pull; slew-rate = <1>; }; pins2 { pinmux = <STM32_PINMUX('A', 2, AF11)>; /* ETH1_MDIO */ bias-disable; drive-push-pull; slew-rate = <0>; }; pins3 { pinmux = <STM32_PINMUX('A', 7, AF11)>, /* ETH1_CRS_DV */ <STM32_PINMUX('C', 4, AF11)>, /* ETH1_RXD0 */ <STM32_PINMUX('C', 5, AF11)>; /
1. Select STM32MP151A2. Select an GPIOx and set to GIPIO_EXTx3.Select again GPIO under Pinout View, right click -> Pin Reserved -> Cortex-M44. Goto NVIC: EXTI lineX interrupt Enable Check.5. Select any of the peripheral devices, enable Cortex-A7 or Cortex-M4, and disable it.6. Goto NVIC: The enabled EXTI lineX is automatically changed to disable.And Pin Reserved for the corresponding pin is automatically changed from Cortex-M4 to Free.It is very inconvenient that the set EXTI is all initialized due to the above phenomenon.Is the way I proceeded wrong? Or maybe it's a STM32CubeIDE(1.6.0) bug. Please check.
Hello,I would like to enable battery/capacitor charging from the VBAT pin on an STM32MP1 and also change the charging resistor.That would be VBE and VBRS of PWR_CR3.What would be the proper way to enable/disable the charging together with the resistor value from Linux and/or U-boot?The regulator driver managing PWR_CR3 does not mention VBE or VBRS.Thanks
Hi everyone,I have tried to check eval board PCB with hyperlynx DDR wizard but I can't.I downloaded all of the IBIS data which are Nanya DDR3L ram and MP157A.However, I'm confused about which ODT models I should choose.Please help me which model I chose to pass this check.By the way, I attached the odt model page screen.
I am attempting to configure my device tree to support RMII with Crystal on PHY, no 50Mhz from PHY. I have made the following modifications based on https://wiki.st.com/stm32mpu/wiki/Ethernet_device_tree_configuration#RGMII_with_Crystal_on_PHY-2C_no_125Mhz_from_PHY with a 50MHz clock instead of 125Mhz.Board Specific Linux DTS&ethernet0 { status = "okay"; pinctrl-0 = <&eth1_pins_mx>; pinctrl-1 = <&eth1_sleep_pins_mx>; pinctrl-names = "default", "sleep"; phy-mode = "rmii"; max-speed = <100>; phy-handle = <&phy0>; mdio0 { #address-cells = <1>; #size-cells = <0>; compatible = "snps,dwmac-mdio"; phy0: ethernet-phy@0 { reg = <0>; reset-gpios = <&gpiog 9 GPIO_ACTIVE_LOW>; reset-assert-us = <1000>; reset-deassert-us = <200000>; }; }; };stm32mp151.dtsiethernet0: ethernet@5800a000 { compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a"; reg = <0x5800a000 0x20
Hi everyone,I'm having the famous "Segmentation fault (core dumped)" error caused by the Linux application, but I can't find the bug.const int NUM_ELEMENTS = 131072; void process_receive (int chRPMSG) { int i; int data_buff_it = 0; char msg_RPMSG[SIZE_MSG]; char* hex_string; int hex_int; while(1) { if(read (chRPMSG, msg_RPMSG, SIZE_MSG) < 0) exit(0); else { hex_string = strtok(msg_RPMSG, " "); hex_int = (int)strtol(hex_string, NULL, 16); data_buff[data_buff_it] = hex_int; data_buff_it = (data_buff_it + 1) % NUM_ELEMENTS; for (i = 0; i < DATA_BUFFER - 1; i++) { hex_string = strtok(NULL, " "); hex_int = (int)strtol(hex_string, NULL, 16); data_buff[data_buff_it] = hex_int; data_buff_it = (data_buff_it + 1) % NUM_ELEMENTS; } } } } int main (int argc, char **argv) { int chRPMSG = open("/dev/ttyRPMSG0", O_RDWR | O_NOCTTY | O_SYNC); if (chRPMSG < 0) { int errnu
We are using the STM32MP157A device in our application. inter process communication between the both A7 processor with the bare metal programming we have doubt that how to select the both the cores independently . That is both the A7 processors. We referred the Reference manual .But we unable to get exactly.
I am currently building a dedicated image for our custom board based on STM32MP1. According to the wiki and OE mega-manual, I need to create a custom distribution to be able to customize it according to our needs.I am following the steps described here to build my own distribution which is basically the same as openstlinux-eglfs for now but in my own layer. I tried to run the init script (layers/meta-st/scripts/envsetup.sh) with my own distribution instead of openstlinux-eglfs but get the following error:[ERROR] No 'customdistro-eglfs.conf' file available in layers/meta-stThis is normal as my customdistro-eglfs.conf file is in another layers than meta-st as recommended. Do I have to copy scripts directory from meta-st to my layers ? Or do I have to source the script in another way ? I can see on others documentation the usual way is to source openembedded-core/oe-init-build-env. Why ST use a custom different script for OpenSTLinux ? In a more general ways I have the feeling ST customiz
Hi everyone,I'm coding a C application on Linux which has 2 processes. In order to optimize performance, I would like to run each one on a differente core CA7 - as I'm working whit dual-core STM32MP157F MPU. How can I achieve this? Any useful framework?Regards
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.