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
Hey guys,Having some issues with running through the kernel setup and dont understand the errors returned back as iv followed all the steps to a T.Attached my terminal history. This in on the https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Develop_on_Arm%C2%AE_Cortex%C2%AE-A7/Modify,_rebuild_and_reload_the_Linux%C2%AE_kernelI honestly dont understand what i may have done wrong here. if possible id like to understand the method to understanding errors within linux as this is my first ish run with native linux installed Also to note i did have a look at the readmes within the file system to which i think they differ slightly to whats whats on the wiki.Error:andreas@andreas-desktop:~/STM32MPU_workspace/STM32MP15-Ecosystem-v3.0.0/Developer-Package/en.SOURCES-kernel-stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31/stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31/sources/arm-ostl-linux-gnueabi/linux-stm32mp-5.10.10-r0/linux-5.10.10$ make -j2 ARCH=arm modules&nbs
Hello Friends,I am newly using STM32MP1 DK2 If I create python exe file, can I run python exe on st Linux?Share me details how to run python exe in st Linux on STM32MP1 DK2Thank you friends.
Of the many things I have been struggling withmSTM32MP157F-DK2 throughout this summer, one of them is the interprocessor communication between A7 and M4. I want A7 to process data and send the refined result to M4 for further low level actions. As many users may agree, information in this wiki is scattered with many branches, and while following one topic you encounter references to many links that end up blowing you out if the device is new to you. I am one blown out that way.I was reading this post https://wiki.st.com/stm32mpu/wiki/Coprocessor_resource_table and found that I have to have this code somewher in my M4 firwarewhich I managed (by trial and error) to add in my rsc_table.c as (note sure if that was correct) Then found rhat I also have to add this code somewhere, but not sure where: whether it is in A7 Linux userland or in M4 firware. Played around many times for over 14 hours and got frustrated.can anyone help me?
Hi,I want to generate Interrupts from Core0(First A7) to Core1(Second A7)in stm32mp157A at Uboot Level .We are using St distribution Uboot source Code.Can Anyone Tell the Procedure for Generation of Interrupts .
Hello , Is the BlueZ supported or added in the Distribution or developer or starter image?I tried running bluetoothd -v to get the version of the bluetoothd (and hence the Bluez which has this demon built) but I got this :root@stm32mp1:~# bluetoothd -v-sh: bluetoothd: not foundI then tried building the Distribution package which has this meta-connectivity layer where there is BlueZ is in add on Recipes ( https://wiki.st.com/stm32mpu/wiki/STM32MP15_OpenSTLinux_release_note)bluez5meta-st/meta-st-openstlinux/recipes-connectivity/bluez5/bluez5_%.bbappendDo I have to add this layer? or will it be built by bitbake st-image-weston? Using bitbake st-image-weston and fishing the image gives the same result.Please tell the steps to build and use BlueZ and all the utilities it provides (bluetoothd,meshctl)Thanks in advance !Regards,D
I designed my robot control system using STM32MP157f-K2 board I use the M4 core to read an IMU through SPI, read encoders and generate PWM for controlling the motors by using timers. I use A7 to read USB vision cameras, read a radar by using CAN bus, and read a lidar using ethernet. After processing the data, it sends the results to M4 for fusing with encoder and gyrometer data to make better control decisions.I have the M4 firmware created using STM32CubeMx, and a A7 application compiled in linux. I expect them to communicate one way from A7 to M4 through virtul_uart0. I haven't been able to test the codes since I don't know how to start the Me firmware, When I loaded it directly from STM32CubeMx, I got into problems I had to reflush the board. My questions are two, and I will appreciate any advice(1) How can I open the Linux shell on the on-board LCD screen instead of mapping it to my computer using STLink(2) How can I start both the A7 application and M4 firmware automatically and d
Hi all,I am trying to achieve DDR data transfer between M4 and A7.So I followed How to exchange data buffers with the coprocessor - stm32mpu article and built a yocto image. I have stripped down the logic analyzer application : here . On CM4 side it just transfers data from a another MCU pushing in data at UART7 and transferring that via DMA to DDR buffer. SDB Driver unchanged.On the Application side , I have removed all GTK related things and just stripped it down to receive data to DDR buffer and print to a console.I have few questions of concerns: In case of the CM4 code provided here : LinkThere no support in the latest cube-mx to create an RPMSG_HDR_HandleTypeDef type object which might be labelled as /dev/tpmsg-sdb type in user space application.Although the data structure is similar to VIRT_UART_HandleTypeDef. So I went ahead and made and rpmsg-sdb object of the later type. Now when I run my stripped down application part of attached zip. I get below error on A7-console : CA7 :
Hello Team,We are using a product build around STM32MP157C. We have a requirement for programming the OTP with MAC Id. Here is my understanding on the same:The OTP_57 and OTP_58 are meant for MAC addressMAC address can be programmed from the uboot using the fuse commandMAC address can be programmed from user space (with kernel booted up) using the sysfs interface.We boot up our platform in basic mode. However, there was a mention that by default, OTP can be updated only in the secure mode. So, want to check if there is any setting which allows to update the MAC address specific OTP in basic mode?Also, want to understand if there is any automated tool which would efficiently allows the MAC address to updated during the Mass Production?
Hi,I have a STM32MP157a-dk1 discovery board and a SX 1280 – Semtech (E28 2G4M27S - E-Byte) module. With CubeMX I add SPI5 to the architecture and get the outputs (Kernel, TF-A and U-boot files.) Then by using these output files I can generate the DTB file and can flash this at DK1 card side. Below SPI loopback test is OK also.https://wiki.st.com/stm32mpu/wiki/How_to_use_SPI_from_Linux_userland_with_spidevWhat I want to learn is:Actually, I am very new to Embedded Linux concept. I don't even know what is the structure of driver. But as I see I need to apply my SX 1280 Lora IC's communication specs to STM32MP1 series MPU side.Can any one offer me where to start? As you can see I am thinking to use MPU side of the IC. Maybe MCU side can also be used as well.I want to get data from ethernet then need to send this data over SX 1280.
I am using OSD32MP1 (based on STM32MP157c) in Production Mode with OpenSTLinux on Core A7 and FreeRTOS on M4. One of the tasks is to timestamp ADC data acquired by M4 at very highspeed, very precisely (think it order of nanosecond to microsecond). Note that only time difference between measurements is important.On-chip RTC is available (it is assigned to A7 but registers are accessible to M4). However the subsecond precision is ~0.003s (PREDIV_S is 255 - See Reference Manual for Detail) so it is not good enough. This, this and this stackoverflow posts led to using DWT_CYCCNT i.e., CPU Cycle Counter to measure the time time difference. Relevant portions of the code is as following: On M4 Side:typedef struct tTimeStamp { uint32_t nCPUFreq; uint32_t nCPUCycles; ... }tTimeStamp; ... tTimeStamp oTimeStamp; ... oTimeStamp.nCPUCycles = DWT->CYCCNT; oTimeStamp.nCPUFreq = HAL_RCC_GetSystemCoreClockFreq();The last 2 statements runs inside the FreeRTOS task
i have read the article, https://wiki.st.com/stm32mpu/wiki/How_to_start_the_coprocessor_from_the_bootloader#Starting_the_coprocessor_firmwarewhere will i find this in my device tree#define CONFIG_EXTRA_ENV_SETTINGS \ "stdin=serial\0" \ "stdout=serial\0" \ "stderr=serial\0" \ ... BOOTENV \ "m4fw_name=rproc-m4-fw.elf\0" \ "m4fw_addr=${kernel_addr_r}\0" \ "boot_m4fw=rproc init; rproc load 0 ${m4fw_addr} ${filesize}; rproc start 0\0" \ "boot_m4_mmc0=if ext4load mmc 0:4 ${m4fw_addr} ${m4fw_name} ; then run boot_m4fw; fi;\0" "bootcmd=run boot_m4_mmc0; run bootcmd_mmc0\0"
Hello guys.I have configured ethernet on STM32MP157F using Microchip's LAN8720AI-CP.I base my image on st-image-core of Distribution Package. And dts is configured using CubeMX(meta-st-stm32mp-addons).Currently, it appears as if ethernet is connected as shown in the picture below.[ 0.000000] psci: probing for conduit method from DT. [ 1.235904] usbcore: registered new interface driver cdc_ether [ 2.758680] stm32-dwmac 5800a000.ethernet: PTP uses main clock [ 2.763159] stm32-dwmac 5800a000.ethernet: no reset control found [ 2.769206] stm32-dwmac 5800a000.ethernet: No phy clock provided... [ 2.776103] stm32-dwmac 5800a000.ethernet: User ID: 0x40, Synopsys ID: 0x42 [ 2.782483] stm32-dwmac 5800a000.ethernet: DWMAC4/5 [ 2.787398] stm32-dwmac 5800a000.ethernet: DMA HW capability register supported [ 2.794742] stm32-dwmac 5800a000.ethernet: RX Checksum Offload Engine supported [ 2.802082] stm32-dwmac 5800a000.ethernet: TX Checksum insertion supported [ 2.808934] stm32-dwmac 5800a000.ethernet:
..
Hi i am using stm32mp1 has codec which required i2s1 mclk enabled, before codec probe read the basic i2c read chip command need to validate further,note:The board does not have provision to get a crystal to feed MCLK of codec, so thats out of option,any easy way to enable always MCLK free running always, any u-boot patch or machanism to make MCLK work always 12MHZ ?
i am trying to compile the third party OpenAMP folder in IAR with C++ and am facing a lot of errors.how can these be resolved.
We are new the MPUs and Linux. We received a new STM32MP157F-DK2 board, out of the box and boots up with the default binaries in the SD card.However, we find that the ethernet is not working (the LD3 is blinking). root@stm32mp1:~# ifconfig -aeth0 Link encap:Ethernet HWaddr 00:80:E1:42:84:8F inet6 addr: fe80::280:e1ff:fe42:848f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:819 errors:0 dropped:50 overruns:0 frame:0 TX packets:50 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:58744 (57.3 KiB) TX bytes:8502 (8.3 KiB) Interrupt:54 Base address:0xc000lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0  
Due to office environment and being behind the Proxy I am not able to build and flash (ports locked) STM32MP1 board from my PC at office.I have done the downloading and building of the Developer package at my Home PC (without any firewalls) and wanted to scp to my board which is connected to mobile hotspot at my office.Is it possible that i can scp from a PC in one network to the STM32MP1 board in another network(mobile hotspot or Wifi)?I can safely connect to internet from my stm32mp1 board(tested with ping -c google.com . )Also when I try to ping it from my Home PC ,it pings once and then stops.Please tell if at all it is possible , this will save my huge time and going through unnecessary mails to IT and to my Boss as well :) !!Thanks in advance !Br,Pv
Hello,I need use STM32MP157 connect a USB printer. I followed this article(https://community.st.com/s/question/0D53W00000cSjHuSAK/stm32mp157dk2-printer-support?t=1630032775565), and the result is right. but when I use print command like (lp printer_test.pdf), the printer not work. And the console outputs the following information: lp: Unsupported document-format "application/pdf".Is it because I didn't install cups-filters, or any other else?Please help me. Thanks.Shaw.
I have an STM32MP157D-DK1 board, and I'm trying to build a custom Linux image for it with the Yocto Project. I followed the guide here (https://forum.digikey.com/t/yocto-getting-started-with-the-stm32mp157/14074) to create a core-image-minimal.I’m trying to use the basic boot chain to avoid TF-A (for now). So, I formatted an SD card with the following (using fdisk):Disk /dev/mmcblk2: 7.29 GiB, 7822376960 bytes, 15278080 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: A1B93A60-F8E0-CB47-88F9-E559CD43B510 Device Start End Sectors Size Type /dev/mmcblk2p1 2048 2559 512 256K Microsoft basic data /dev/mmcblk2p2 4096 4607 512 256K Microsoft basic data /dev/mmcblk2p3 6144 10239 4096 2M Microsoft basic data /dev/mmcblk2p4 10240 141311 131072 64M Linux filesystem /dev/mmcblk2p5 141312 15278046 15136735 7.2G Linux filesystemI also set the legacy
I copied the STM32CubeIDE project into PATH: openstlinux-5.10-dunfell-mp1-21-03-31/layers/sources/m4projects-stm32mp1/Projects/STM32MP1Added projects path in recipes-extended/m4projects/m4projects-stm32mp1.bbBut i find that file structure for examples is different from the file structure of STM32CubeIDE project
I've asked Segger but I was wondering if anyone knows how to get a Segger J-Link/Trace to put only the M4 core on an STM32MP157 into reset and bring it back out?
This is the error being shown.Is iit an installation error or is there a different method to install go in stlinux??
sdk: 3.0.0 verkernel: 5.10.10Ethernet cannot be connected in the kernel of version 5.10.10, but version 5.4.31 works normallyThe Ethernet related device tree is as follows:dts as follows; &ethernet0 { status = "okay"; pinctrl-0 = <&ethernet0_rgmii_pins_a>; pinctrl-1 = <&ethernet0_rgmii_sleep_pins_a>; pinctrl-names = "default", "sleep"; phy-mode = "rgmii"; max-speed = <1000>; phy-handle = <&phy0>; nvmem-cells = <&ethernet_mac_address>; nvmem-cell-names = "mac-address"; mdio0 { // reset-gpios = <&gpiog 0 GPIO_ACTIVE_LOW>; // reset-duration = <200>; #address-cells = <1>; #size-cells = <0>; compatible = "snps,dwmac-mdio"; phy0: ethernet-phy@6 { reg = <6>; }; }; };dmesg log as follows:[ 4.133408] systemd[1]: System time before build time, advancing clock. [ 6.200429] NET: Registered protocol family 10 [ 6.253839] Segment Routing with IPv6 [ 6.291489] system
Hi,I am using psci_cpu_on() function for Triggering the Seconary core i.e,Second A7 in Stm32mp157 at Uboot Level,but i am unable to trigger the Second Core.Refer The following path for psci_cpu_on functionPath :uboot-v2018.11-stm32mp-r2.1/arch/arm/mach-stm32mp/psci.cIn my case parameters arei)function Id :0x84000003ii)target cpu :0x00000001iii)pc :0xc01007c4(User function Address)iv)context id :1 and ,I also tried with following steps (Reference to stm32 wiki Boot-Rom code Secondary Core Boot )i)Branch Addressii)Magic Numberiii)Enabling the Software group 0 Interruptsiv) Generating Software Interrupts using GICD_SGIR register.
Hi all,I am trying to write a linux user-space application where in i am taking data from an external MCU processing it and sending it to another thread. My question here is how can make use of DMA in the user-space to make it more efficient? How can i eliminate busy looping / waiting for transfer scenarios in user-space?Thanks,Nipun Pal
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.