cancel
Showing results for 
Search instead for 
Did you mean: 

MDMA looplisting (circular) mode bug, does not loop the transfers in some mysterious situation

SeyyedMohammad
Senior III

Channel 0 and channel 2 of MDMA (in appended code STM32cubeIDE 1.10.1 STM32H743vit56) have the same configuraton. But this does not contiue transferring on case you activate channel 2 instead of channel 0 what's the difference? Or is it a bug?

1 ACCEPTED SOLUTION

Accepted Solutions

Hello @SeyyedMohammad​,

This problem is raised internally to be reviewed. I'll keep you informed with the updates.

Internal ticket number: 136917 (This is an internal tracking number and is not accessible or usable by customers).

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

View solution in original post

5 REPLIES 5
SeyyedMohammad
Senior III

It seems all nodes of MDMA which will places in the LAR register must be double word aligned in D1 AXI domain. But the defenition of variables by cubeMX is not aligned. is something like:

MDMA_LinkNodeTypeDef node_mdma_channel40_sw_1;
//or
MDMA_LinkNodeTypeDef node_mdma_channel43_dma1_stream0_tc_1;
//etc ...

But seems these must become (in STM32cubeIDE):

MDMA_LinkNodeTypeDef node_mdma_channel40_sw_1 __attribute__ ((aligned (8)));
//or
MDMA_LinkNodeTypeDef node_mdma_channel43_dma1_stream0_tc_1 __attribute__ ((aligned (8)));
// ...

This is still a theory, but this has solved my problem. I hope ST employees to investigate over this problem.

Many thanks.

FBL
ST Employee

Hello @SeyyedMohammad​,

Thanks for sharing your settings, as I can see in ioc file, I find in MDMA request settings, the buffer address and data block length in channel 0 and channel 2 are not the same. is it done in purpose?

0693W00000UnobZQAR.png

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Hi @F.Belaid​ 

Yes I though these was not important. Buffer size(wrongly wrote address!) and block length are not bounded, Just Block data length must be multiple ofbuffer transfer length I think. But LAR adress must be 8byte aligned as specified in reference manual. The variables must be defined in aligned, otherwise the linked list adress doesn't causes to link. This is major problem. As you can see there is not effort in cubeMX generated code to aligne LAR address.

Hi @F.Belaid​ 

Any idea?

Hello @SeyyedMohammad​,

This problem is raised internally to be reviewed. I'll keep you informed with the updates.

Internal ticket number: 136917 (This is an internal tracking number and is not accessible or usable by customers).

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.