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
So I have seen several people say they used the Cube IDE to program the RA-08 from AI-Thinker. They say it was super easy and I love CubeIDE. but for the life of me I don't understand how they did it. Please help?
Can you please share STM32MP157F-DK2 discovery kit's latest demo software image link?How to flash image to STM32MP157F-DK2 discovery kit?
We have been using RPMSG_SDB driver from LogicAnalyzer example. By default, RPMSG_SDB uses common CMA area for allocating buffers via dma_alloc_coherent() We want to allocate SDB personal buffers from reserved memory regions. We adapted both device-tree and SDB driver. Device-tree snippet:reserved-memory { shared_buffers: shared_buffers@D2000000 { compatible = "shared-dma-pool"; reg = <0xD2000000 0x400000>; no-map; }; }; rpmsg-sdb@0 { compatible = "fmx,rpmsg-sdb"; memory-region = <&shared_buffers>; };SDB driver compatible string:static struct rpmsg_device_id rpmsg_driver_sdb_id_table[] = { { .name = "rpmsg-sdb-channel" }, { }, }; static struct of_device_id rpmsg_driver_sdb_dt[] = { { .name = "rpmsg-sdb-channel", .compatible = "fmx,rpmsg-sdb" }, { }, }; MODULE_DEVICE_TABLE(rpmsg, rpmsg_driver_sdb_id_table); static struct rpmsg_driver rpmsg_sdb_rmpsg_drv = { .drv.name = KBUILD_MODNAME, .drv.owner = THIS_MODULE, .drv.of_match_table =
Hello,We are playing with STM32MP157C-DK2 and trying to setup the device through the getting started provided at URL: https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157C-DK2/Let%27s_start/Unpack_the_STM32MP157C-DK2_boardWe can't able to populate the SD card and it prints the following error:sach@sach-VirtualBox:~/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Starter-Package/stm32mp1-openstlinux-4.19-thud-mp1-19-02-20/images/stm32mp1$ STM32_Programmer_CLI -l usb ------------------------------------------------------------------- STM32CubeProgrammer v2.2.0 ------------------------------------------------------------------- ===== DFU Interface ===== Total number of available STM32 device in DFU mode: 1 Device Index : USB1 USB Bus Number : 001 USB Address Number : 001 Product ID : DFU in HS Mode @Device ID /0x500, @Revision ID /0x0000 Serial number : 003100173338510B39303435 Firmware version : 0x0110 Device ID : 0x0500 sach@s
..
I want to use sysinitv instead of systemd . When I add DISTRO_FEATURES_remove = "systemd" in Distro conf ,bitbake stopped whit ERROR: /home/st/openstlinux-5.10-dunfell-mp1-21-11-17/layers/meta-openembedded/meta-initramfs/recipes-core/packagegroups/packagegroup-meta-initramfs.bb: Please ensure that your setting of VIRTUAL-RUNTIME_init_manager (systemd) matches the entries enabled in DISTRO_FEATURESERROR: Failed to parse recipe: /home/st/openstlinux-5.10-dunfell-mp1-21-11-17/layers/meta-openembedded/meta-initramfs/recipes-core/packagegroups/packagegroup-meta-initramfs.bb
Hello,I have several python modules I am trying to install that require building something in C. I've read through this and completed a build. I got to the part about adding layers and I'm lost. I've not built a distribution using these tools before and layers are a foreign concept. I can't tell a) what layer GCC is in, nor b) how to add that layer to the final image to be flashed.Any advice? I've found an older thread but this method is not longer supported by bitbake.
I have several devices connected through a CAN network. Using an STM32MP1 I want to build a web frontend that can be used to not only issue commands but also receive arbitrary data and present it to the user. (Data from the devices).I'm trying to figure out what applications/stack that I should use for this? I don't mind customizing, but would prefer to use something that I can build on to. My CAN network code is already written (ported from other STM32 HAL projects). So I can use that as a standalone piece of software and integrate it through sockets, or similar.
The STM32 MCU and MPU portfolio brings developers a wide range of design possibilities to make industrial applications smarter, more secure, and more connected.In 2023, we will continue to deliver on that promise.Join us for the STM32 Innovation Live webcast to discover our major product, solution and ecosystem announcements. Choose your preferred session and get ready to travel around the world! Meet ST experts in the production facilities and in their labs and offices where the STM32 solutions are designed. You will also have the opportunity to connect with our experts during live Q&A sessions, several of which will be held in local languages.Registration link: Worldwide webcast: STM32 Innovation Live - STMicroelectronics
I am trying to read data using ADC1 continuously and copy it into a buffer via DMA.However, the data is only read and copied once (seemingly correctly), and afterwards nothing happens anymore (data in buffer does not change, ADC1_IRQHandler() is not called anymore).If I set a breakpoint somewhere in the program, the value of the ADC_CFGR register equals 2147495944, i. e. the DMNGT bits are both 0. Shouldn't they be both 1, as I enabled DMA Circular Mode?As you can see in the code, the MX_DMA_Init() function is called before HAL_ADC_Init(), which was seemingly a bug in earlier versions of STM32CubeIDE (see this thread: How to enable ADC continuous mode with DMA? (st.com)).I already tried setting the DMNGT bits manually and also tried setting the ADSTART bit manually in the ADC1_IRQHandler() on EOC interrupt, but both did not work.I am using an STM32MP153AAB3 on a custom board.The relevant parts of code look like this (I left out unrelated things, timer inits etc. for the sake of clarity
Hi in one of link https://wiki.st.com/stm32mpu/wiki/I2S_Linux_driver#Short_Descriptioncan i2s1 used for mclk generation, and will the parent clock able to generate mclk for different audio different bitrate,because in dk2 we use i2s2 for mclk generation, in our board we i2s1 with sgtl5000,may you share the template for dts for sgtl5000 code with mclk for different audio playing 44100 and 48000 bitrates
We try to configure the (M)DMA in Linux device-tree for our System on Module board based on STM32MP151/7C but it always said us that it cannot configure it so we had to disable dma for memory (QSPI Nor/NAND and FMC Nand) which cause performance issue.If we do not set /delete-property/dmas; /delete-property/dma-names; in device-tree for qspi, the qspi try to use DMA and do not detect chip on the bus.... (there no more logs for qspi in dmesg).Here are the logs I have at Linux kernel boot :[ 0.424027] stm32-dma 48000000.dma-controller: no dma pool: can't use MDMA: 0 [ 0.425335] stm32-dma 48000000.dma-controller: STM32 DMA driver registered [ 0.425784] stm32-dma 48001000.dma-controller: no dma pool: can't use MDMA: 0 [ 0.427082] stm32-dma 48001000.dma-controller: STM32 DMA driver registeredHow can I configure correctly the DMA pool ?N.B: We also use OPTEE which is located in SRAM too but the two memory reserva
I want to connect a 128x64 LCD to my STM32MP157D-DK1 board and implement a program on the A7 core Linux to display some parameters. What should I do? Thanks in advance.
Do we need to compile CUBEMX dts files before bitbake or we need to convert them into the dtb files with eclipse like in this ST video and what is the best way to go from discovery board to custom board in the means of creating device tree files for peripherals and all. I need some guidance.
I have a large firmware that the MCU must execute. It will not fit into SRAM1-4, so I am trying to move the entire code (or a portion of it) to DDR RAM. I have no problems reading and writing DDR memory from the MCU, as long as it's just data, but for some reason when the PC jumps to an address in DDR, execution halts (or we get a HardFault, depending on if a debugger is attached to the MCU). If I move this section to SRAM, then everything works fine (except that my MCU firmware is limited to 384kB).I have set the linker so that the MCU code's entry point and Reset_Handler is in SRAM, and one particular linker section is in DDR RAM (0xC5000000 for example). I've verified the M4's elf file contains the proper sections. When I run the program, the A7 MPU properly loads the raw data of the M4's code into 0xC5000000, and I can confirm with a debugger that these addresses contain valid Cortex-M4 instructions.After that, the A7 releases the MCU HOLD on the co-processor. With a debugger attac
hi, i'm trying to make USB_FS work on my custom board. my desired configuration is peripheral (otg can be ok, i have jumper on id: PA_10)i already have 2 USB HS so i can use only USB_FS mapped on PA_11 and PA_12 as OTG. i follow the st wiki at the point 3.3.1 witn dr_mode = "peripheral";my result is: i can see 49000000.usb-otg under /sys/class/udc/i can create one gadget device in /sys/kernel/config/usb_gadget/g1 (i created serial over usb) as i assign 49000000.usb-otg > /sys/kernel/config/usb_gadget/g1/UDC, usb does not turn on, i always have 0V on PA_11 and PA_12 if i follow the st wiki at the point 3.3.2 witn dr_mode = "peripheral";all works great and i can create my usb gadget more info: my micro is STM32MP157F i'm using linux 5.10.10i have NO hardware pull_up or pull_down on any line i have VDD3V3_USBFS shorted with VDD3V3_USBHS (both connected to 3.3v)my otg port is B_TYPE and i have one jumper to select OTG mode (i need only peripheral) can anyone help me?
I'm using a custom board (it is not DK1 even tho it says on boot log) with STM32MP157AAC. The boot hangs on u-boot without proper error message. Where should I start to search the failure? NOTICE: CPU: STM32MP157AAC Rev.Z NOTICE: Model: STMicroelectronics STM32MP157A-DK1 STM32CubeMX board - openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15 WARNING: regulator_get_by_phandle: phandle 9 not found WARNING: VDD unknown INFO: Reset reason (0x15): INFO: Power-on Reset (rst_por) INFO: FCONF: Reading TB_FW firmware configuration file from: 0x2ffe2000 INFO: FCONF: Reading firmware configuration information for: stm32mp_io INFO: Using SDMMC INFO: Instance 1 INFO: Boot used partition fsbl1 WARNING: regulator_get_by_phandle: phandle 12 not found NOTICE: BL2: v2.6-stm32mp1-r1.0(debug):v2.6-dirty NOTICE: BL2: Built : 13:14:26, Nov 23 2021 INFO: BL2: Doing platform setup INFO: RAM: DDR3-1066/888 bin G 2x2Gb 533MHz v1.44 INFO: Memory size = 0x20000000 (512 MB) INFO: BL2: Loading image id 31 INFO: Loading
I have a custom STM32MP157c board. I try to set fuse bits (3 0x23000000). It worked on the basic boot system but not on the TF-A boot system. I mean by example the boot command : fuse prog 0 3 0x23000000.
Hi!I am using a STM32MP157C-DK2 board to create an application on the screen. I have used STM32CubeIDE to create my own program:I have initialized peripheral with its default modeI have enabled FDCAN peripheralI have changed the clock settings.With this, I already have the device tree of my program (kernel, tf-a, optee-os and u-boot).My question is, do I have to create my own machine to configure clock setting? Thanks!
Hello all!We have implemented our custom driver that uses DMA to copy a large amount of data from the FMC interface (FPGA mapped to it) to the RAM.For very fast data acquisition the setup time for new DMA transactions becomes critical.I tried an overlapping approach:https://community.st.com/s/question/0D53W0000274CNFSA2/stm32mdmac-fast-overlapped-dma-transaction-problemBut this did not work. Then I tried to use dmaengine_prep_dma_cyclic to copth the FPGA data into a larger coherent memory region. Then using dmaengine_prep_dma_memcpy to copy it to its final destination.But: the transaction created with dmaengine_prep_dma_cyclic does not want to start!dmaengine_prep_dma_memcpy works fine.I think this is because of the difference between software vs hardware triggered DMA transactions (memcopy. Looking into stm32-mdma.c is see that dmaengine_prep_dma_memcpy has its own setup routine whereas dmaengine_prep_dma_cyclic use stm32_mdma_set_xfer_param() that always configures a HW request.M
Hello community,we have the problem, that we need more code space for the M4 application and try now to get code area in SRAM2 (IPC area). What we've done so far:Decreased the number of vring buffers to the half: #define VRING_NUM_BUFFS 8 /* number of rpmsg buffer */Adapted the M4 linker file from 32K to 24KRAM2_ipc_shm (xrw) : ORIGIN = 0x10040000, LENGTH = 0x00006000 /* Length := 24K*/For the linux DT part we were not sure what exactly to do:First variant: vdev0 ring buffer to the halfvdev0vring0: vdev0vring0@10040000 { compatible = "shared-dma-pool";  
In my current project, I am still using the older environment. Even though there are no urgencies to migrate to the newer environment, I want to prepare everything in advance.My current project uses an external module to generate a signature. it works very well with the older image because I only need to update the image's header section with the generated signature from the external module. However, the newer image prevents me to do this because it requires the private key to generate the certificate. The external security module won't allow me to retrieve the private key from the module. It only allows me to generate a signature or retrieve the public key. So, my only choice is to generate the certificate by myself and use the external module to sign the certificate. But after searching through the internet for days, I still cannot find that this is a possible option.Is it possible to generate the certificate by ourselves and embed the generated certificate into the FIP binary?Thank
“Error: failed to download Segment[0]�?I looked at the other items with the same title but did not see an answer that would help me.I am using the STM32MP157F-DK2The demo code was working when box was openedI tried to run the demo“Populate the target and boot the image�?athttps://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2I am using ecosystem release v3.1.0AndSTM32CubeProgrammer 2.9.0Down load eventually fails with “Error: failed to download Segment[0]�?Any help on the matter would be appreciated Below is the Log 10:53:37 : USB speed : High Speed (480MBit/s) 10:53:37 : Manuf. ID : STMicroelectronics 10:53:37 : Product ID : DFU in HS Mode @Device ID /0x500, @Revision ID /0x0000 10:53:37 : SN : 002A001B3438511436383238 10:53:37 : FW version : 0x0110 10:53:37 : Board : -- 10:53:37 : Device ID : 0
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.