R32c DMA Setup

Hi All!

I am trying to use the DMA module in R32C (R5F64169).

I am using IAR workbench and I couldn't find some of the DMA registers in the processor header file (DMD0, DDA0 etc). How could I set these registers up? In the application notes which I found in Renesas website, they mention about using pragmas to allocate these register addresses to variables and use the variables to set up the registers, but they use HEW compiler. Is there any pragma equivalent to these in the IAR compiler?

Please help!

  • The DMA registers in R32C are NOT memory mapped like other special function registers (e.g. for timers or SIO) but they are CPU registers. So they need dedicated assembler instructions for access.

    In IAR EW you should have a look at the intrinsic functions like __set_DMD_register() to write or read these registers.

  • Thanks Frank! I found the intrinsics functions you mentioned:

    __intrinsic void __set_DMD_register(unsigned char channel, unsigned long value);

    I am assuming the channel values start from 0 and not from 1?

    Again, thanks a ton!!