SLAST in the Kinetis eDMA engine is a 32-bit number. As such it can be treated as either signed or unsigned. One might use this to implement a circular buffer in which case it makes sense to enter it as a negative number. The Init_eDMA bean doesn't allow this (called Address adjustment field in data source/destination).
Also - while not a bug a shortcoming is that while you can put an #include in the 'external object declaration' and use symbols in the Address field, you can not in the Address offset/adjustment fields. It would be nice to allow that (toggle D, H, or text), to be able to use #defines and formulas from stuff in the #include you can put in.
Solved! Go to Solution.
Hi,
Yes, you are right, currently it's not supported, the address adjustment is unsigned field. As a workaround, it's necessary to compute the 32-bit number corresponding to the negative value yourself and put it there. I'm passing your comment to the development team to possibly improve the component in the next releases.
To change the adjustment value (after the initialization or later in the code), you can also use PDD macro DMA_PDD_WriteLastSourceAddressAdjustmentReg (see the PDD folder under the Init_eDMA component).
best regards
Petr Hradsky
Processor Expert Support Team
Hi,
Yes, you are right, currently it's not supported, the address adjustment is unsigned field. As a workaround, it's necessary to compute the 32-bit number corresponding to the negative value yourself and put it there. I'm passing your comment to the development team to possibly improve the component in the next releases.
To change the adjustment value (after the initialization or later in the code), you can also use PDD macro DMA_PDD_WriteLastSourceAddressAdjustmentReg (see the PDD folder under the Init_eDMA component).
best regards
Petr Hradsky
Processor Expert Support Team
Yes, of course I input the unsigned equivalent and that works.