<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=19701&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-11-28T21:34:33+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=19701&amp;mode</id>
<entry>
<author><name><![CDATA[żbik]]></name></author>
<updated>2017-11-28T21:34:33+01:00</updated>
<published>2017-11-28T21:34:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19701&amp;p=199690#p199690</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19701&amp;p=199690#p199690"/>
<title type="html"><![CDATA[Re: Xmega DMA. W symulatorze ok, na żywym układzie niebardzo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19701&amp;p=199690#p199690"><![CDATA[
Dzięki @andrews, jest dokładnie tak jak napisałeś. Bez pracy krokowej działa wszystko jak trzeba.<br /><br />pzdr<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=88">żbik</a> — 28 lis 2017, o 21:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2017-11-28T13:39:17+01:00</updated>
<published>2017-11-28T13:39:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19701&amp;p=199668#p199668</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19701&amp;p=199668#p199668"/>
<title type="html"><![CDATA[Re: Xmega DMA. W symulatorze ok, na żywym układzie niebardzo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19701&amp;p=199668#p199668"><![CDATA[
Wgrałem Twój kod do ATxmega128A3U.<br />Debuger sprzętowy Atmel ICE, interfejs JTAG, Atmel Studio 7 - wynik na zrzucie ekranu:<br /><a href="https://obrazkiforum.atnel.pl/14165/dc9e4098dcdd07282e9038a9a5a02768.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/14165/dc9e4098dcdd07282e9038a9a5a02768.png" alt="Obrazek" /></a><br /><br />Tak samo jest przy każdym poziomie optymalizacji.<br /><br />Byłbym ostrożny w używaniu pracy krokowej debugera przy testowaniu DMA. Wstaw sobie jakieś <strong>asm(&quot;nop \n\t&quot;);</strong> w pętli <strong>while(1)</strong>, ustaw na nim breakpoint i wystartuj program tak, by zatrzymał się dopiero na breakpoincie, zobacz jaki będzie efekt, bo zgaduję, że w tym czasami może leżeć problem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 28 lis 2017, o 13:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[żbik]]></name></author>
<updated>2017-11-27T23:03:44+01:00</updated>
<published>2017-11-27T23:03:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19701&amp;p=199644#p199644</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19701&amp;p=199644#p199644"/>
<title type="html"><![CDATA[Xmega DMA. W symulatorze ok, na żywym układzie niebardzo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19701&amp;p=199644#p199644"><![CDATA[
Witam szanowne grono.<br />Próbuję rozpoznać DMA bojem. Przy ustawieniu &quot;DMA_CH_SRC/DESTRELOAD_BLOCK_gc&quot;, wyniki były inne, ale w symulatorze ok. Tak mam to teraz.<br />Chyba najprostszy przykład jaki się da:<br />[syntax=c]#include &lt;avr/io.h&gt;<br /><br />volatile uint8_t a&#91;10&#93; = {0,1,2,3,4,5,6,7,8,9};<br />volatile uint8_t b&#91;10&#93;;<br /><br />int main(void)<br />{<br />DMA.CTRL=DMA_ENABLE_bm; <br />DMA.CH0.ADDRCTRL = DMA_CH_SRCRELOAD_TRANSACTION_gc | DMA_CH_SRCDIR_INC_gc | DMA_CH_DESTDIR_INC_gc |  DMA_CH_DESTRELOAD_TRANSACTION_gc;<br /><br />DMA.CH0.SRCADDR0 = (uint16_t)&amp;a &amp; 0xFF;<br />DMA.CH0.SRCADDR1 = ((uint16_t)&amp;a &gt;&gt; 8);<br />DMA.CH0.SRCADDR2 = 0;<br />DMA.CH0.DESTADDR0 = (uint16_t)&amp;b &amp; 0xFF;<br />DMA.CH0.DESTADDR1 = ((uint16_t)&amp;b &gt;&gt; 8);<br />DMA.CH0.DESTADDR2 = 0;<br /><br />DMA.CH0.TRFCNT = sizeof(a);<br />DMA.CH0.CTRLA = DMA_CH_ENABLE_bm | DMA_CH_TRFREQ_bm | DMA_CH_BURSTLEN_1BYTE_gc;<br />while(DMA.CH0.CTRLA &amp; DMA_CH_ENABLE_bm);  //Zaczekaj na koniec transferu<br /><br />/* Replace with your application code */<br />while (1)<br />{<br />}[/syntax]<br />przy wyłączonej optymalizacji, w symulatorze w tablicy &quot;b&quot; pojawia się kopia tablicy &quot;a&quot;.<br />W debugerze w &quot;b&quot; pojawia się kolejno od pozycji 0 do 9:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">0112233445</div><br />przy optymalizacji -Os, -O2 i -O3 w symulatorze bez zmian wszystko ok. W debugerze nic się nie kopiuje i program nie wychodzi z pierwszej pętli.<br />przy optymalizacji -O1 i -Og w symulatorze bez zmian. W debugerze:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">0001122334</div><br /><br />Po zmianie &quot;DMA_CH_BURSTLEN_1BYTE_gc&quot; na 2, 4.. zdublowane wartości pojawiają się co 2,4 bajty. Dla 4:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">0012334566</div><br />Ktoś coś?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=88">żbik</a> — 27 lis 2017, o 23:03</p><hr />
]]></content>
</entry>
</feed>