<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Bug in DMA transfers in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-DMA-transfers/m-p/270732#M9166</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear All&lt;/P&gt;&lt;P&gt;I want to put a 4 element int to another 16 element int with DMA,&lt;/P&gt;&lt;P&gt;Here is the code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_13617153750624188" jivemacro_uid="_13617153750624188" modifiedtitle="true"&gt;
&lt;P&gt;static uint32_t test_source[4]={1,2,3,4};&lt;/P&gt;
&lt;P&gt;static uint32_t test_dest[16]={0};&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;//DMA&lt;/P&gt;
&lt;P&gt;//Enable DMA MUX&lt;/P&gt;
&lt;P&gt;SIM-&amp;gt;SCGC6 |= SIM_SCGC6_DMAMUX_MASK;&lt;/P&gt;
&lt;P&gt;// Disable DMA MUX channel first&lt;/P&gt;
&lt;P&gt;DMAMUX0-&amp;gt;CHCFG[0] = 0x00;&lt;/P&gt;
&lt;P&gt;// Clear pending errors and/or the done bit&lt;/P&gt;
&lt;P&gt;if (((DMA0-&amp;gt;DMA[0].DSR_BCR &amp;amp; DMA_DSR_BCR_DONE_MASK) == DMA_DSR_BCR_DONE_MASK)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | ((DMA0-&amp;gt;DMA[0].DSR_BCR &amp;amp; DMA_DSR_BCR_BES_MASK) == DMA_DSR_BCR_BES_MASK)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | ((DMA0-&amp;gt;DMA[0].DSR_BCR &amp;amp; DMA_DSR_BCR_BED_MASK) == DMA_DSR_BCR_BED_MASK)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | ((DMA0-&amp;gt;DMA[0].DSR_BCR &amp;amp; DMA_DSR_BCR_CE_MASK) == DMA_DSR_BCR_CE_MASK))&lt;/P&gt;
&lt;P&gt;DMA0-&amp;gt;DMA[0].DSR_BCR |= DMA_DSR_BCR_DONE_MASK;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;// Set Source Address&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].SAR = (uint32_t )&amp;amp;test_source;&lt;/P&gt;
&lt;P&gt;// Set destination address&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].DAR = (uint32_t )&amp;amp;test_dest;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Set BCR to know how many bytes to transfer&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].DSR_BCR = DMA_DSR_BCR_BCR(64);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Clear Source size and Destination size fields.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].DCR &amp;amp;= ~(DMA_DCR_SSIZE_MASK | DMA_DCR_DSIZE_MASK);&lt;/P&gt;
&lt;P&gt;// Set DMA as follows:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Source size is byte size&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Destination size is byte size&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // D_REQ cleared automatically by hardware&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Destination address will be incremented after each transfer&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Cycle Steal mode&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // External Requests are enabled&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Asynchronous DMA requests are enabled.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].DCR |= (DMA_DCR_SSIZE(0)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_DSIZE(0)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_D_REQ_MASK&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_DINC_MASK&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_SINC_MASK&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_ERQ_MASK&lt;/P&gt;
&lt;P&gt;&amp;nbsp; //| DMA_DCR_CS_MASK&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_ERQ_MASK&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_EADREQ_MASK&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_EINT_MASK&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_SMOD(3)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; );&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Enables the DMA channel and select the DMA Channel Source&lt;/P&gt;
&lt;P&gt;&amp;nbsp; //DMAMUX0-&amp;gt;CHCFG[0] = 0x02; // Select UART0 as the Channel Source&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMAMUX0-&amp;gt;CHCFG[0] |= DMAMUX_CHCFG_ENBL_MASK; // Enable the DMA MUX channel&lt;/P&gt;
&lt;P&gt;&amp;nbsp; NVIC_EnableIRQ(DMA0_IRQn);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].DCR |= DMA_DCR_START_MASK;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;void DMA0_IRQHandler()&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Clear pending errors and/or the done bit&lt;/P&gt;
&lt;P&gt;&amp;nbsp; if (((DMA0-&amp;gt;DMA[0].DSR_BCR &amp;amp; DMA_DSR_BCR_DONE_MASK) == DMA_DSR_BCR_DONE_MASK)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | ((DMA0-&amp;gt;DMA[0].DSR_BCR &amp;amp; DMA_DSR_BCR_BES_MASK) == DMA_DSR_BCR_BES_MASK)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | ((DMA0-&amp;gt;DMA[0].DSR_BCR &amp;amp; DMA_DSR_BCR_BED_MASK) == DMA_DSR_BCR_BED_MASK)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | ((DMA0-&amp;gt;DMA[0].DSR_BCR &amp;amp; DMA_DSR_BCR_CE_MASK) == DMA_DSR_BCR_CE_MASK))&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].DSR_BCR |= DMA_DSR_BCR_DONE_MASK;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Set BCR to know how many bytes to transfer&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].DSR_BCR = DMA_DSR_BCR_BCR(64);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Set Source Address (this is the UART0_D register&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].SAR = (uint32_t )&amp;amp;test_source;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Set destination address&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].DAR = (uint32_t )&amp;amp;test_dest;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;


&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But After I run the code instead of getting 1,2,3,4,1,2,3,4... in test_dest I will get&lt;/P&gt;&lt;P&gt;1,2,3,4,0,1,2,3,4,0,1,2,3,4,0x02DC6C00,0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;what is wrong with this Code?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 24 Feb 2013 14:12:15 GMT</pubDate>
    <dc:creator>aliasadzadeh</dc:creator>
    <dc:date>2013-02-24T14:12:15Z</dc:date>
    <item>
      <title>Bug in DMA transfers</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-DMA-transfers/m-p/270732#M9166</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear All&lt;/P&gt;&lt;P&gt;I want to put a 4 element int to another 16 element int with DMA,&lt;/P&gt;&lt;P&gt;Here is the code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_13617153750624188" jivemacro_uid="_13617153750624188" modifiedtitle="true"&gt;
&lt;P&gt;static uint32_t test_source[4]={1,2,3,4};&lt;/P&gt;
&lt;P&gt;static uint32_t test_dest[16]={0};&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;//DMA&lt;/P&gt;
&lt;P&gt;//Enable DMA MUX&lt;/P&gt;
&lt;P&gt;SIM-&amp;gt;SCGC6 |= SIM_SCGC6_DMAMUX_MASK;&lt;/P&gt;
&lt;P&gt;// Disable DMA MUX channel first&lt;/P&gt;
&lt;P&gt;DMAMUX0-&amp;gt;CHCFG[0] = 0x00;&lt;/P&gt;
&lt;P&gt;// Clear pending errors and/or the done bit&lt;/P&gt;
&lt;P&gt;if (((DMA0-&amp;gt;DMA[0].DSR_BCR &amp;amp; DMA_DSR_BCR_DONE_MASK) == DMA_DSR_BCR_DONE_MASK)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | ((DMA0-&amp;gt;DMA[0].DSR_BCR &amp;amp; DMA_DSR_BCR_BES_MASK) == DMA_DSR_BCR_BES_MASK)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | ((DMA0-&amp;gt;DMA[0].DSR_BCR &amp;amp; DMA_DSR_BCR_BED_MASK) == DMA_DSR_BCR_BED_MASK)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | ((DMA0-&amp;gt;DMA[0].DSR_BCR &amp;amp; DMA_DSR_BCR_CE_MASK) == DMA_DSR_BCR_CE_MASK))&lt;/P&gt;
&lt;P&gt;DMA0-&amp;gt;DMA[0].DSR_BCR |= DMA_DSR_BCR_DONE_MASK;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;// Set Source Address&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].SAR = (uint32_t )&amp;amp;test_source;&lt;/P&gt;
&lt;P&gt;// Set destination address&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].DAR = (uint32_t )&amp;amp;test_dest;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Set BCR to know how many bytes to transfer&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].DSR_BCR = DMA_DSR_BCR_BCR(64);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Clear Source size and Destination size fields.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].DCR &amp;amp;= ~(DMA_DCR_SSIZE_MASK | DMA_DCR_DSIZE_MASK);&lt;/P&gt;
&lt;P&gt;// Set DMA as follows:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Source size is byte size&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Destination size is byte size&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // D_REQ cleared automatically by hardware&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Destination address will be incremented after each transfer&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Cycle Steal mode&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // External Requests are enabled&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Asynchronous DMA requests are enabled.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].DCR |= (DMA_DCR_SSIZE(0)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_DSIZE(0)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_D_REQ_MASK&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_DINC_MASK&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_SINC_MASK&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_ERQ_MASK&lt;/P&gt;
&lt;P&gt;&amp;nbsp; //| DMA_DCR_CS_MASK&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_ERQ_MASK&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_EADREQ_MASK&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_EINT_MASK&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | DMA_DCR_SMOD(3)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; );&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Enables the DMA channel and select the DMA Channel Source&lt;/P&gt;
&lt;P&gt;&amp;nbsp; //DMAMUX0-&amp;gt;CHCFG[0] = 0x02; // Select UART0 as the Channel Source&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMAMUX0-&amp;gt;CHCFG[0] |= DMAMUX_CHCFG_ENBL_MASK; // Enable the DMA MUX channel&lt;/P&gt;
&lt;P&gt;&amp;nbsp; NVIC_EnableIRQ(DMA0_IRQn);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].DCR |= DMA_DCR_START_MASK;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;void DMA0_IRQHandler()&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Clear pending errors and/or the done bit&lt;/P&gt;
&lt;P&gt;&amp;nbsp; if (((DMA0-&amp;gt;DMA[0].DSR_BCR &amp;amp; DMA_DSR_BCR_DONE_MASK) == DMA_DSR_BCR_DONE_MASK)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | ((DMA0-&amp;gt;DMA[0].DSR_BCR &amp;amp; DMA_DSR_BCR_BES_MASK) == DMA_DSR_BCR_BES_MASK)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | ((DMA0-&amp;gt;DMA[0].DSR_BCR &amp;amp; DMA_DSR_BCR_BED_MASK) == DMA_DSR_BCR_BED_MASK)&lt;/P&gt;
&lt;P&gt;&amp;nbsp; | ((DMA0-&amp;gt;DMA[0].DSR_BCR &amp;amp; DMA_DSR_BCR_CE_MASK) == DMA_DSR_BCR_CE_MASK))&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].DSR_BCR |= DMA_DSR_BCR_DONE_MASK;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Set BCR to know how many bytes to transfer&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].DSR_BCR = DMA_DSR_BCR_BCR(64);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Set Source Address (this is the UART0_D register&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].SAR = (uint32_t )&amp;amp;test_source;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; // Set destination address&lt;/P&gt;
&lt;P&gt;&amp;nbsp; DMA0-&amp;gt;DMA[0].DAR = (uint32_t )&amp;amp;test_dest;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;


&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But After I run the code instead of getting 1,2,3,4,1,2,3,4... in test_dest I will get&lt;/P&gt;&lt;P&gt;1,2,3,4,0,1,2,3,4,0,1,2,3,4,0x02DC6C00,0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;what is wrong with this Code?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 24 Feb 2013 14:12:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-DMA-transfers/m-p/270732#M9166</guid>
      <dc:creator>aliasadzadeh</dc:creator>
      <dc:date>2013-02-24T14:12:15Z</dc:date>
    </item>
    <item>
      <title>Re: Bug in DMA transfers</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-DMA-transfers/m-p/270733#M9167</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Just wondering did you mean | or || in your&amp;nbsp; if statements?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Feb 2013 02:28:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-DMA-transfers/m-p/270733#M9167</guid>
      <dc:creator>JimDon</dc:creator>
      <dc:date>2013-02-25T02:28:16Z</dc:date>
    </item>
    <item>
      <title>Re: Bug in DMA transfers</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-DMA-transfers/m-p/270734#M9168</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I meant | (or) in my if statement, Do you know what's wrong?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Feb 2013 05:15:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-DMA-transfers/m-p/270734#M9168</guid>
      <dc:creator>aliasadzadeh</dc:creator>
      <dc:date>2013-02-25T05:15:05Z</dc:date>
    </item>
    <item>
      <title>Re: Bug in DMA transfers</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-DMA-transfers/m-p/270735#M9169</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;BLOCKQUOTE&gt;
&lt;P&gt;Ali Asadzadeh schrieb:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &lt;/P&gt;
&lt;PRE class="c++"&gt;static uint32_t test_source[4]={1,2,3,4};
static uint32_t test_dest[16]={0};
&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;I would write:&lt;/SPAN&gt;&lt;/P&gt;&lt;OL class="dp-cpp" start="1"&gt;&lt;LI&gt;&lt;SPAN class="keyword"&gt;static uint32_t test_source[]={&lt;SPAN class="number"&gt;1&lt;/SPAN&gt;,&lt;SPAN class="number"&gt;2&lt;/SPAN&gt;,&lt;SPAN class="number"&gt;3&lt;/SPAN&gt;,&lt;SPAN class="number"&gt;4&lt;/SPAN&gt;};&amp;nbsp; // Compiler counts the array size itself&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN class="keyword"&gt;static uint32_t test_dest[&lt;SPAN class="number"&gt;16&lt;/SPAN&gt;]; // I think they are initialized to 0 anyway and like that you only put the first element to 0&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;BR /&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;
&lt;P&gt;Ali Asadzadeh schrieb:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;PRE class="c++"&gt;// Set Source Address
&amp;nbsp; DMA0-&amp;gt;DMA[0].SAR = (uint32_t )&amp;amp;test_source;

&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Im not sure about this one. Your variable test_source is an array. Therefor in test_source[0] there is a one. But test_source without [] is a pointer, pointing to the first value of your array (*test_source is also = 1). So you probably like to write:&lt;/P&gt;&lt;P&gt;DMA0-&amp;gt;DMA[&lt;SPAN class="number"&gt;0].DAR = (uint32_t )test_&lt;/SPAN&gt;source;&lt;/P&gt;&lt;P&gt;or&lt;/P&gt;&lt;P&gt;DMA0-&amp;gt;DMA[&lt;SPAN class="number"&gt;0].DAR = (uint32_t )&amp;amp;test_&lt;/SPAN&gt;source[0];&lt;/P&gt;&lt;P&gt;At the moment you give an address of a variable in which a address is stored.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Maybe I'm wrong &lt;IMG alt="Smiley Wink" class="emoticon emoticon-smileywink" id="smileywink" src="https://community.nxp.com/i/smilies/16x16_smiley-wink.png" title="Smiley Wink" /&gt;&lt;/P&gt;&lt;P&gt;greez&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2020 13:04:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-DMA-transfers/m-p/270735#M9169</guid>
      <dc:creator>lothar</dc:creator>
      <dc:date>2020-11-02T13:04:47Z</dc:date>
    </item>
    <item>
      <title>Re: Bug in DMA transfers</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-DMA-transfers/m-p/270736#M9170</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ali, was this helpful?&lt;/P&gt;&lt;P&gt;Please let us know! :smileywink:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Mar 2013 18:04:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Bug-in-DMA-transfers/m-p/270736#M9170</guid>
      <dc:creator>Monica</dc:creator>
      <dc:date>2013-03-19T18:04:59Z</dc:date>
    </item>
  </channel>
</rss>

