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
Hello,I've got problem with startup Display from Powertip. I added some commands to library ili9881c acording to datasheet by patch. After startup kernel [ 1.604819] [drm:dw_mipi_dsi_stm_probe] *ERROR* Unable to get peripheral clock: -517[ 1.724139] ili9881c-dsi 5a000000.dsi.0: Couldn't get our power regulator[ 2.920457] ili9881c-dsi 5a000000.dsi.0: Couldn't get our power regulatorDo anyone had idea where should i looking for a problem?
For measuring the USB signal quality, it is necessary to print out test pattern on the USB interface. How this can be done on a customer board with STM32MP15x controller. Is a test software or source code available?
Hi, I installed node.js with apt-get on my STM32MP157C-DK2, which worked great.Now I want to install another package but it failsapt-get install nodejs-npm... Need to get 7286 kB of archives. After this operation, 0 B of additional disk space will be used. E: You don't have enough free space in /var/cache/apt/archives/.But I think there is still enough free space on the SD Card:root@stm32mp1:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/root 715M 682M 0 100% / devtmpfs 150M 0 150M 0% /dev tmpfs 214M 0 214M 0% /dev/shm tmpfs 214M 20M 195M 10% /run tmpfs 214M 0 214M 0% /sys/fs/cgroup tmpfs 214M 4.0K 214M 1% /tmp /dev/mmcblk0p4 58M 8.5M 46M 16% /boot tmpfs 214M 80K 214M 1% /var/volatile /dev/mmcblk0p7 14G 74M 13G 1% /usr/local /dev/mmcblk0p5 15M 8.4M 5.1M 63% /vendorhope someone can help. Otherwise I have to cancel my work with node.jsregardsLukas
Hi everyoneI am trying to modify the Kernel during the Distribution Package method (compiled from Yocto directly to the image)I have followed the information in the following pages:https://wiki.st.com/stm32mpu/wiki/WLAN_overviewhttps://wiki.st.com/stm32mpu/wiki/How_to_customize_the_Linux_kernelhttps://wiki.st.com/stm32mpu/wiki/Menuconfig_or_how_to_configure_kernelMy setup is importing the meta-st-stm32mp, adding my own layers and building an image from core-image (no OpenSTLinux in this case)MACHINE = "stm32mp1-disco"I have created a .bbappend recipe as follows:FILESEXTRAPATHS:prepend := "${THISDIR}:${THISDIR}/linux-stm32mp:" KERNEL_CONFIG_FRAGMENTS:append = "${WORKDIR}/fragments/5.10/fragment-06-wlan.config" SRC_URI:append = " file://5.10/fragment-06-wlan.config;subdir=fragments " SRC_URI:class-devupstream += "file://5.10/fragment-06-wlan.config;subdir=fragments" # Autoload WiFi driver on boot KERNEL_MODULE_AUTOLOAD:append = "brcmfmac" IMAGE_INSTALL:append = " ker
..
I want to power 5V to the discovery kits through pins 2 and 4 on CN2 connector. Is that ok? Any recommended circuitry?
Hello,I just wanted to let you know there is an error in the tamper driver written for Tamper configuration in TF-A fork repository.When enabling an external tamper in passive mode, the configuration is writting the passive mode in the wrong register, disabling the external tamper. This should be written in the atcr1 register but it is being written in the cr1 register.if ((tamp_ext->mode & TAMP_ACTIVE) == TAMP_ACTIVE) { SETBITS(*cr1atcr1, _TAMP_ATCR1_ETAMPAM(id)); } else { CLRBITS(*cr1atcr1, _TAMP_ATCR1_ETAMPAM(id)); }PS: I am not sure this is the right place to put this kind of messages, where should I contact you if I find any other error/bug?Best regards
Hi,I am currently trying to make some changes in the kernel form the latest openstlinux development package v3.1.0. I have one query ; when we compile kernel modules are there still certian modules which do not get compiled?I can see that after compilition I am getting an error for the vermagic for the galckore.ko which does not seem to get compiled with kernel.Even if i have the CONFIG_MODEVERSIONS=y , still i seem to get vermagic error. How do i get past this ? Also how to re-compile this module?
I've followed this:https://www.youtube.com/watch?app=desktop&v=qEzfqKt3exE&list=PLnMKNibPkDnFp5YvrvWjgfjrOs0Vi34Mt&index=5and set up project in STMCUBEIDEwhen i try and include #include <gtk/gtk.h> i get the followingmake all Wrapper for /opt/st/stm32cubeide_1.9.0/plugins/com.st.stm32cube.ide.mpu.linux.toolchain_2.0.0.202105061257/tools/bin/makeFIP_DEPLOYDIR_ROOT: /home/reece/STM32CubeIDE/workspace_1.9.0/SterlingAcsses/Debug/../../FIP_artifacts+ case "$command" in+ exec make allBuilding file: ../main.cInvoking: MPU GCC Compilerarm-ostl-linux-gnueabi-gcc -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/reece/.eclipse/com.st.stm32cube.ide.mcu.rcp.product_1.9.0_1935169236_linux_gtk_x86_64/plugins/com.st.openstlinux.sdk.openstlinux_5.10_dunfell_mp1_21_11_17_5.10.0.202111171131/tools/sysroots/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi "../main.c" -std=gnu11 -g3 -c -I/home/reece//.eclipse/com.st.stm32cube.ide.mcu.rcp.product_1.9.0_1935169236_li
build erro info:Missing u-boot-stm32mp157a-dk1-trusted.dtb file in folder: '$FIP_DEPLOYDIR_UBOOT' or '$FIP_DEPLOYDIR_ROOT/u-boot'/home/wangdaan/Desktop/workspace/Developer-Package/stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31/sources/arm-ostl-linux-gnueabi/tf-a-stm32mp-2.4.r1-r0/tf-a-stm32mp-2.4.r1/../Makefile.sdk:194: recipe for target 'fip' failed.but I found this dtb in its folder. so I do't konw... this is dts location:~/Desktop/workspace/Developer-Package/stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31/sources/arm-ostl-linux-gnueabi/tf-a-stm32mp-2.4.r1-r0/tf-a-stm32mp-2.4.r1$ ls ../../FIP_artifacts/u-boot/u-boot-u-boot-nodtb-stm32mp15.bin u-boot-stm32mp157c-ed1-trusted.dtb u-boot-stm32mp157f-dk2-trusted.dtbu-boot-stm32mp157a-dk1-trusted.dtb u-boot-stm32mp157c-ev1-trusted.dtb u-boot-stm32mp157f-ed1-trusted.dtbu-boot-stm32mp157a-ev1-trusted.dtb u-boot-stm32mp157d-dk1-trusted.dtb u-boot-stm32mp157f-ev1-trusted.dtbu-boot-stm32mp157
Hi again,that's how i understood it so far, correct me if i'm wrong:openstlinux on STM32MP1 uses arch_sys_counter as clocksourcecat /sys/devices/system/clocksource/clocksource0/available_clocksource arch_sys_counterwhich also serves as clock source for CLOCK_MONOTONICarch_sys_counter uses STGEN as time base.this would imply that reading CLOCK_MONOTONIC(_RAW) (sec + nsec) should result in STGEN time values (/ STGEN_FREQ).When i read STGENR (using the mmap on A7) and CLOCK_MONOTONIC(_RAW) I get the following:STGEN: 179706903683 = 7487.787653 MON 7479.443003674 MONR 7479.474111358 STGEN: 179706906840 = 7487.787785Do you have any explanation where the ~8 secs difference come from?Also, what is the most efficient way of reading STGENR from the A7 side in userland? (is it the mmap or is there some more direct way?)Thanks in advance,Thomas
Dear community,I once again need your help. :)I'm using a TAS5760L on a custom board with STM32MP157 MPU and Yocto-Linux, Dunfell.Since the codec is not part of the available Linux kernel audio codecs, a simple spdif-codec (inux,spdif-dit) with I2S signal is used to send data to the TAS5760L.Audio is working quite well when playing wav-files with aplay. But I recognised, that the Frame Sync (FS, or LRCLK) is always at 48kHz, no matter what is configured in the device tree or in /etc/alsa.conf.Background:For aplay this doesn't matter much, but if audio is streamed via Bluetooth (at 44.1kHz) there is a difference in sample rates, which results in the following error:"An underrun has occurred". This error occurs cyclically about every 7 seconds and a glitch/stutter can be heard then in the audio.I use bluez-alsa (bluealsa/bluealsa-aplay) to send audio stream from for example a smartphone to the board. Here is some more information:Bluetooth module has CYW4343W chipset (same as the STM32MP
I am following the instructions of a video on ST's official Youtube page:https://www.youtube.com/watch?v=I9KDN1o6924picture: https://imgur.com/a/bN5oR3p
Both on Windows and on Linux, latest STM32CubeIDE, I cant get debug or run using ST-Link.If I try to use ST-Link GDB ServerError in final launch sequence: Failed to execute MI command: target remote localhost:61234 Error message from debugger back end: Remote communication error. Target disconnected.: Connection reset by peer. Failed to execute MI command: target remote localhost:61234 Error message from debugger back end: Remote communication error. Target disconnected.: Connection reset by peer. Remote communication error. Target disconnected.: Connection reset by peer.STMicroelectronics ST-LINK GDB server. Version 6.1.0 Copyright (c) 2022, STMicroelectronics. All rights reserved. Starting server with the following options: Persistent Mode : Disabled Logging Level : 1 Listen Port Number : 61234 Status Refresh Delay : 15s Verbose Mode : Disabled SWD Debug : Enabled ST-LINK device status: UNKNOWN Waiting for debugger connection... Debugger connected Waiti
i am using gst-play-1.0 for testing different bitrate audio play, found that 44.1 kbps, 22.050 kbps were not working but 48kbps mp3 works neatly without noisePlease let me know if i miss anything, i am using I2S1 to derive the base MCLK and feed to codeclog:gst-play-1.0 /run/media/mmcblk0p1/AudioFiles/test.wav playing 22.05kbps--- (256*22.05k) = 5644800Press 'k' to see a list of keyboard shortcuts.Now playing /run/media/sda1/AudioFiles/BabyElephantWalk60.wav[ 1164.185749] st,stm32-i2s 44004000.audio-controller: Error -16 setting i2sclk parent clock 5644800playing 44.1kbps--- (256*44.1k) = 11289600Now playing /run/media/sda1/AudioFiles/Railroad.mp3[ 1523.259773] st,stm32-i2s 44004000.audio-controller: Error -16 setting i2sclk parent clock 11289600 -309581440 -309581312[ 1523.269268] asoc-audio-graph-card sound@0: ASoC: machine hw_params failed: -16ERROR Could not get/set settings from/on resource. for file:///run/media/sda1/AudioFiles/Railroad.mp3ERROR debug informa
I followed some of the steps to integrate OPTEE with Yocto builds as below.meta-bsp-stm32mp1/conf/machine/stm32mp157f.confMACHINE_FEATURES +="optee" BOOTSCHEME_LABELS += "optee"meta-product-stm32mp157x-dk2/conf/distro/pxred-stm32mp1-dk2.conf - distro changesDISTRO_FEATURES_append = " px-red-kinit-e2fsprogs \ optee \ "The following is the boot message I get on terminalNOTICE: CPU: STM32MP157FAC Rev.ZNOTICE: Model: STMicroelectronics STM32MP157F-DK2 Discovery BoardNOTICE: Board: MB1272 Var4.0 Rev.C-02INFO: Reset reason (0x15):INFO: Power-on Reset (rst_por)INFO: PMIC version = 0x20INFO: Using SDMMCINFO: Instance 1INFO: Boot used partition fsbl1NOTICE: BL2: v2.2-r2.3(debug):v2.2-dirtyNOTICE: BL2: Built : 08:34:06, Apr 17 202
What's the process to add a native gcc to openstlinux-weston so I can compile from the command line on my DK2 dev board? I was able to rebuild using bitbake and started poking around to find which layer to enable to get a native gcc running on the STM32MP1 dev board (DK2) but I can't figure it out. Or should I use a different approach, is there a pre-built image for the DK2 with native gcc?Thanks,Andrew
This is my current cursor.json file{ "device": "/dev/dri/card0", "outputs": [ { "name": "HDMI-A-1", "mode": "1024x600", "size": "1024x600" } ], "hwcursor": false }Here are my env Qt variables QT_QPA_EGLFS_ALWAYS_SET_MODE=1 QT_QPA_EGLFS_INTEGRATION=eglfs_viv QT_QPA_EGLFS_KMS_CONFIG=/usr/share/qt5/cursor.json QT_QPA_PLATFORM=eglfs QT_QPA_EGLFS_KMS_ATOMIC=1But when I try to run any Qt application I get this QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' EGLFS: Failed to open /dev/fb0 EGLFS: Can't continue without a display Aborted (core dumped)I have verified that /dev/fb0 does not exist, and /dev/dri/card0 does.Finally, here is my modetest output, and reason why I have cursor.json file as it is.... Connectors: id encoder status name size (mm) modes encoders 33 32 connected HDMI-A-1 470x260 10 32 modes: index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot) #0 1024x600 59.82 1024 1068 1156 1344 600 603 609 625 50250 flags: phsync, nvsync; type:
Is there any way to disable and enable all interrupts in a assembly way, because i need to manually switch on and OFF particular GPIO before UBOOT SPL start uboot-source/board/st/stm32mp1/board.cvoid board_debug_uart_init(void){// disable interrupts ---- need support here//PWM self logic written// enable interrupts ---- need support here}
Hi,My bellow question is based on info read from:https://wiki.st.com/stm32mpu/wiki/STM32MP15_ROM_code_overview#Configurationandhttps://wiki.st.com/stm32mpu/wiki/STM32MP15_backup_registers#Boot_mode_selection_featureFrom those two links I understand that if ROM CODE sees "0xFF" in the BOOT_MODE register then it will not continue to TF-A and instead enter flashing mode.The bellow is also mentioned:"The Linux kernel can force a reboot mode by writing to the BOOT_MODE register.This writing is done via the "reboot" Linux command,which is configured via the compatible "syscon-reboot-mode" in the device tree."What I want to achieve / understand if possible is to run a Linux userspace command to write 0xFF into BOOT_MODE and reboot the system.I can't find a way to do this...Also, just to make sure, If I am able to achieve the above, will the device boot into DFU mode ?some background:Playing with boot selection pins on the evaluation boards is easy, not so much on our production boards.In addi
I'm following the OpenAMP_TTY_echo example.To do a Tx it basically uses two functions: VIRT_UART_Init and VIRT_UART_TransmitAfter I use VIRT_UART_Init, I can see in the Linux terminal a log message something that suggests the initialization is working.However, VIRT_UART_Transmit returns error.I was debugging and found that rpmsg_send_offchannel_raw function is returning because "dst == RPMSG_ADDR_ANY"However, VIRT_UART_Init, is initializing destiny as RPMSG_ADDR_ANYstatus = OPENAMP_create_endpoint(&huart->ept, RPMSG_SERVICE_NAME, RPMSG_ADDR_ANY, VIRT_UART_read_cb, NULL);These are automatic generated functions by STM32CubeMX.Am I missing something? Should I set the dest address somehow?Note this is code generated with STM32CubeMX, I only added the call to VIRT_UART functions.
Hi,We wish to add CRC16 checksum to our communication payloads,and I see in the stm32mp157 datasheet CRC module section that it should support CRC32,16,8 and 7 bits."""25.4.3 CRC control register (CRC_CR)Bits 4:3 POLYSIZE[1:0]: Polynomial sizeThese bits control the size of the polynomial.00: 32 bit polynomial01: 16 bit polynomial10: 8 bit polynomial11: 7 bit polynomial"""But I do not see this being utilized in the ST CRC driver ("stm32-crc32.c") - Linux 5.10from a quick look at the ST CRC driver, I see only CRC32 support.To be clear, CRC32 works, and I have already tested it with a userspace application using AF_ALG to request kernel support to calculate CRC32.But we would like to use CRC16 instead.1) Am I understanding it correctly that only CRC32 algorithm is supported by the ST drivers ? Or am I wrong ?2) If I understood it correctly, and the ST driver does support only CRC32, does the actual HW support CRC16, or am I misunderstanding the datasheet, and the HW module supports CRC16
Hello !I have some trouble implementing a FDCAN internal loopback on the STM32MP157c-dk2.I have linked the FDCAN1 Instance to the cortex M4 and I don't have any can bus to connect it to yet so I'm trying to implement an internal loopback. I took the exemple code that came with the stm32cube (STM32CubeMP1/Projects/STM32MP157C-DK2/Examples) tool and I replaced the external loopback mode with the internal one.The code blocks after having put the messages in the tx fifo (function HAL_FDCAN_IsTxBufferMessagePending() ).The messages are written in memory but they are never sent.I found that the FDCAN never ended it's init phase (FDCAN_CCCR_INIT stays set even after HAL_FDCAN_Start() function is called)I tried to force using the same protocol used to set it but it causes a timeout.Is anyone knowing why it won't switch to the normal operation mode ?Thanks in advance.Paulps : here is the code, I'm not in engineering mode so the device tree is managed by zephyr, I added the correct FDCAN address
Hi , iam using STM32mp157C micro processor ,On the cortexM4 i have configured SPI 1but iam unable to transmit using HAL_SPI_Transmit(), i have done some debugging in the spi driver , i found it is always returnning the HAL_TIMEOUT from SPI_WaitOnFlagUntilTimeout(); spi configuration: hspi1.Instance = SPI1; hspi1.Init.Mode = SPI_MODE_MASTER; hspi1.Init.Direction = SPI_DIRECTION_2LINES; hspi1.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; hspi1.Init.CLKPhase = SPI_PHASE_2EDGE; hspi1.Init.NSS = SPI_NSS_HARD_OUTPUT; hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi1.Init.TIMode = SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi1.Init.CRCPolynomial = 0x0; hspi1.Init.NSSPMode = SPI_NSS_PULSE_ENABLE; hspi1.Init.NSSPolarity = SPI_NSS_POLARITY_LOW; hspi1.Init.FifoThreshold = SPI_FIFO_THRES
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.