Skip to main content
20 events
when toggle format what by license comment
Jun 12, 2021 at 16:40 vote accept Leoc
Jun 8, 2021 at 6:23 answer added Leoc timeline score: 0
Jun 7, 2021 at 20:08 history edited Leoc CC BY-SA 4.0
added 12098 characters in body
Jun 7, 2021 at 18:50 history edited Leoc CC BY-SA 4.0
added 10613 characters in body
Jun 5, 2021 at 18:05 history edited Leoc CC BY-SA 4.0
added 425 characters in body
Jun 5, 2021 at 17:57 history edited Leoc CC BY-SA 4.0
added 128 characters in body
Jun 4, 2021 at 20:54 comment added Leoc @brhans Tell me about it. What I am doing right now is just breaking down the module, so I am making a new file that just has I2S and DMA and observing from there. I am at the part where this time the DMA buffers are in the DTCMRAM part I could use you're help how to transfer these bad boys out of there into the right ram spots, cause to be honest I have no idea what I am doing with the linker file.
Jun 4, 2021 at 20:14 comment added brhans Well - in a way that's unfortunate because it looks like the problem I was describing isn't the cause in your case. Your buffers are in the .bss section which is in the RAM_D1 block at 0x24000000, and the DMA is able to access those.
Jun 4, 2021 at 16:58 history edited Leoc CC BY-SA 4.0
deleted 108 characters in body
Jun 4, 2021 at 16:33 history edited Leoc CC BY-SA 4.0
added 1038 characters in body
Jun 4, 2021 at 16:13 history edited Leoc CC BY-SA 4.0
added 153 characters in body
Jun 4, 2021 at 16:12 comment added Leoc @brhans wasn't able to locate the linker file that STM32CubeIDE generated but I found this. Updated in the main post.
Jun 4, 2021 at 5:33 comment added Leoc Ill get back to you tomorrow about it? Dont have access to the equipment right now.
Jun 4, 2021 at 5:19 comment added brhans If you look in the map file generated by the linker you should find your buffer variables with their addresses. Check the memory map in the STM32H7 ref manual to see which RAM block they're in. If they're in DTCM or ITCM then you'll probably have to edit your linker script to either move all your variables to a different block, or create a new section in another block and tell your compiler to locate your DMA buffers in that section.
Jun 4, 2021 at 5:14 comment added Leoc This would be my very first time doing anything of that sort, how would I go about if its actually in the DTCM region or the ITCM?
Jun 4, 2021 at 5:13 comment added brhans That is what I'm getting at. When I started a new project on an STM32H7 last year I had so much trouble getting DMA working until I realized that my compiler/linker had placed all my variables in the DTCM RAM block. This is great for 'normal' variables because it's 'closely coupled' to the core, but only the core can access it - not the DMA or any other module, because it's not on the shared bus between them. You need to make sure that your DMA buffers are in one of the other RAM blocks like the AXISRAM which DMA can access.
Jun 4, 2021 at 3:15 comment added Leoc @brhans I think I know where you getting at, but I haven't done anything to the linker. How can I find out? I can check it for you but I would hope its where the DMA can access
Jun 4, 2021 at 1:58 comment added brhans What is the memory address of the buffer from which you're trying to transmit using DMA? Is it in one of the STM32H7's internal SRAM memory blocks? Which one?
Jun 4, 2021 at 0:05 history edited Leoc CC BY-SA 4.0
added 1 character in body
Jun 3, 2021 at 23:59 history asked Leoc CC BY-SA 4.0