Part Number: TMS320F28377D
Hello Forum,
I have a strange behaviour. My DMA fetches the ADC results into a structure. After several tries, I managed that this is working (destination in global share RAM, writing to the DMA config registers with HWREGH instead of HWREG, checking timing with DMA ready interrupts and setting HW pins). After removing my debug code, it stops working. Content is written via DMA but the calculated values from these measurements are invalid.
Finally, I get the following behaviour. By removing or adding the declaration of one global variable above my DMA configuration code the code will work or not. I do not touch this variable in the code, I declare this only. I checked the .map file and this single variable changes the arrangement significantly. But the destination structure is always in global share RAM. I updated the compiler from 20.2.5 to 21.6.0 but this does not help. The only difference is that with one compiler version it works with this single variable definition and with the other version vice versa.
I run this on CPU1. CPU2 is in an idle loop and is waiting for future implementations. CPU2 global share Ram is defined in the .cmd file (same region) but this is not used as written in the .map file of CPU2.
Any ideas how to solve this issue?
Thanks, Martin