<?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=13194&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-10-16T09:49:24+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=13194&amp;mode</id>
<entry>
<author><name><![CDATA[robi99956]]></name></author>
<updated>2015-10-16T09:49:24+01:00</updated>
<published>2015-10-16T09:49:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142588#p142588</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142588#p142588"/>
<title type="html"><![CDATA[Re: Składanie zmiennej - dziwny problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142588#p142588"><![CDATA[
Wiecie co koledzy? Należą się wam przeprosiny. Problem nie leżał w tym miejscu. Dziś wrzuciłem projekt na zestaw ATB, i sytuacja się powtórzyła. ATmega1284 automatycznie wyklucza wszelkie problemy ze stosem, więc zacząłem szukać gdzie indziej. Okazało się, że w funkcji wykonującej korekcję czasu do odpowiedniej strefy czasowej wkradła się potencjalna pętla nieskończona. Zakomentowanie składania czasu unixowego sprawiało, że jej warunek był zawsze fałszywy, więc nie powodowała wtedy problemów. Na razie wygląda na to, że wszystko jest OK, ale to potwierdzi dopiero dłuższa obserwacja. Dzięki wam obu za zainteresowanie sprawą i mam nadzieję, że taka sytuacja się nie powtórzy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4938">robi99956</a> — 16 paź 2015, o 09:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2015-10-15T19:42:11+01:00</updated>
<published>2015-10-15T19:42:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142556#p142556</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142556#p142556"/>
<title type="html"><![CDATA[Re: Składanie zmiennej - dziwny problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142556#p142556"><![CDATA[
<div class="quotetitle">Federerer napisał(a):</div><div class="quotecontent"><br />Sprawdzałeś czy nie brakuje Ci stosu?<br /></div><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />To raczej nie jest problem.<br /></div><br />W Greenbooku Mirek opisuje jak monitorować stos, a na płycie jest oczywiście kod programu. To, że po kompilacji masz pokazane użycie pamięci na poziomie 64% oznacza tylko tyle, że zmienne globalne tyle zajmują. Sprawdź sobie co zmieni zdefiniowanie dużej tabeli przed funkcją main i w funkcji main. Ta tablica buf jest raczej duża wnioskując po buf[0x52]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 15 paź 2015, o 19:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[robi99956]]></name></author>
<updated>2015-10-15T07:59:21+01:00</updated>
<published>2015-10-15T07:59:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142476#p142476</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142476#p142476"/>
<title type="html"><![CDATA[Re: Składanie zmiennej - dziwny problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142476#p142476"><![CDATA[
Nie, to jest argument funkcji z biblioteki tuxgraphic. Używam go tylko w tym miejscu. A po drodze to wygląda tak: <br />1. Jest sobie globalna struktura w której trzymam wszystkie dane o czasie.<br />2. Wskaźnik do tej struktury jest przekazywany do zdarzenia od NTP.<br />3. W tym zdarzeniu wskaźnik do pola struktury z czasem unixowym idzie do funkcji bibliotecznej (tak - &amp;czas-&gt;czas_unix)<br />Zauważyłem jeszcze jedną rzecz, otóż dekodowanie z odwróconymi bajtami nie wiesza systemu, efekt jest taki sam przy unii i rzutowaniu. Natomiast ręczne składanie i odwrócona unia dają efekt w postaci zawieszenia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4938">robi99956</a> — 15 paź 2015, o 07:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Federerer]]></name></author>
<updated>2015-10-14T22:16:15+01:00</updated>
<published>2015-10-14T22:16:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142454#p142454</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142454#p142454"/>
<title type="html"><![CDATA[Re: Składanie zmiennej - dziwny problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142454#p142454"><![CDATA[
Nie przejdzie, bo kolega trzyma dane w buforze od najstarszego bajtu (big endian) a AVRy są &quot;little endian&quot;. Tak mi jeszcze przyszło do głowy pytanie. Przestawiasz gdzieś jeszcze w kodzie ten wskaźnik &quot;time&quot;?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4440">Federerer</a> — 14 paź 2015, o 22:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2015-10-14T19:25:18+01:00</updated>
<published>2015-10-14T19:25:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142427#p142427</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142427#p142427"/>
<title type="html"><![CDATA[Re: Składanie zmiennej - dziwny problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142427#p142427"><![CDATA[
<div class="quotetitle">robi99956 napisał(a):</div><div class="quotecontent"><br />Co synchronizację była zupełnie inna godzina<br /></div><br />Znaczy, że rzutowanie nie przejdzie, ale w tablicy można zamienić kolejość:<br />[syntax=c]CONV conv;<br />conv.tab&#91;0&#93; = buf&#91;0x55&#93;;<br />conv.tab&#91;1&#93; = buf&#91;0x54&#93;;<br />conv.tab&#91;2&#93; = buf&#91;0x53&#93;;<br />conv.tab&#91;3&#93; = buf&#91;0x52&#93;;<br />*time = conv.number;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 14 paź 2015, o 19:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[robi99956]]></name></author>
<updated>2015-10-14T19:07:09+01:00</updated>
<published>2015-10-14T19:07:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142421#p142421</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142421#p142421"/>
<title type="html"><![CDATA[Re: Składanie zmiennej - dziwny problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142421#p142421"><![CDATA[
Sprawdziłem oba warianty, i przy obu działało, tyle że na wyjściu otrzymywałem jakieś głupoty. Co synchronizację była zupełnie inna godzina.<br />Najpierw myślałem, że to przez zwykłe niedopatrzenie - 52 zamiast 0x52, ale po zmianie(i czyszczeniu projektu) nic się nie zmieniło. Na koniec, w akcie desperacji zakomentowałem nowy kod i odpaliłem na powrót to co było. I teraz najlepsze - ruszyło od strzała jak trzeba <img src="https://forum.atnel.pl/images/smilies/icon_eek.gif" alt=":shock:" title="Zaszokowany" /> Na razie działa, jakby znowu coś się walnęło to dam znać. I dzięki Krauser za pomoc, nie wiem jak, ale twoje metody chyba uzdrowiły ATmege <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4938">robi99956</a> — 14 paź 2015, o 19:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2015-10-14T15:57:21+01:00</updated>
<published>2015-10-14T15:57:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142403#p142403</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142403#p142403"/>
<title type="html"><![CDATA[Re: Składanie zmiennej - dziwny problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142403#p142403"><![CDATA[
W czystym projekcie spróbuj tą konwersję zrobić rzutując na wskaźnik 32-bitowy albo z użyciem unii tablicy i zmiennej 32-bitowej. Porównaj kod asemblerowy np.<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;stdlib.h&gt;<br /><br />uint32_t t;<br />uint8_t buf&#91;10&#93;;<br /><br />typedef union<br />{<br />uint8_t tab&#91;4&#93;;<br />uint32_t number;<br />}CONV;<br /><br />int main(void)<br />{<br />uint16_t seed = 0xABCD;<br />uint32_t * time = &amp;t;<br />srand(seed);<br />for(uint8_t i = 0; i &lt; 10; ++i)<br />{<br />buf&#91;i&#93; = rand() &amp; 0x00FF;<br />}<br />asm volatile(&quot;nop\r\n&quot;::);<br />#if 0<br />*time = ( ( (uint32_t)buf&#91;2&#93; &lt;&lt; 24 ) | ( (uint32_t)buf&#91;3&#93; &lt;&lt; 16 ) | ( (uint32_t)buf&#91;4&#93; &lt;&lt; 8 ) | ( (uint32_t)buf&#91;5&#93; ) );<br />#endif<br /><br />#if 1<br />*time  = *((uint32_t *)(buf+2));<br />#endif<br /><br />#if 0<br />CONV conv;<br />conv.tab&#91;0&#93; = buf&#91;2&#93;;<br />conv.tab&#91;1&#93; = buf&#91;3&#93;;<br />conv.tab&#91;2&#93; = buf&#91;4&#93;;<br />conv.tab&#91;3&#93; = buf&#91;5&#93;;<br />*time = conv.number;<br />#endif<br />asm volatile(&quot;nop\r\n&quot;::);<br />PORTA = *time &amp; 0x000000FF;<br />while(1)<br />{<br /><br />}<br />return 0;<br />}[/syntax]<br /><br />Daje od nopa do nopa:<br />[syntax=bash]d6:80 91 0a 01 ldsr24, 0x010A<br />da:30 91 0b 01 ldsr19, 0x010B<br />de:20 91 0c 01 ldsr18, 0x010C<br />e2:90 91 0d 01 ldsr25, 0x010D<br />e6:80 93 04 01 sts0x0104, r24<br />ea:30 93 05 01 sts0x0105, r19<br />ee:20 93 06 01 sts0x0106, r18<br />f2:90 93 07 01 sts0x0107, r25[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 14 paź 2015, o 15:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[robi99956]]></name></author>
<updated>2015-10-13T15:27:19+01:00</updated>
<published>2015-10-13T15:27:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142296#p142296</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142296#p142296"/>
<title type="html"><![CDATA[Re: Składanie zmiennej - dziwny problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142296#p142296"><![CDATA[
To raczej nie jest problem. Tzn. przy starym stanie ramu(83,6%) mogło tak być, zwłaszcza że mam dość pamięciożerne funkcje, ale teraz zjechałem do 64,4% i dalej to samo.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4938">robi99956</a> — 13 paź 2015, o 15:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Federerer]]></name></author>
<updated>2015-10-12T20:20:10+01:00</updated>
<published>2015-10-12T20:20:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142236#p142236</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142236#p142236"/>
<title type="html"><![CDATA[Re: Składanie zmiennej - dziwny problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142236#p142236"><![CDATA[
Sprawdzałeś czy nie brakuje Ci stosu?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4440">Federerer</a> — 12 paź 2015, o 20:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[robi99956]]></name></author>
<updated>2015-10-11T16:17:18+01:00</updated>
<published>2015-10-11T16:17:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142140#p142140</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142140#p142140"/>
<title type="html"><![CDATA[Składanie zmiennej - dziwny problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13194&amp;p=142140#p142140"><![CDATA[
Witam, jakiś czas temu wysypał się mój zegar NTP. Szukając przyczyny problemów natrafiłem na bardzo ciekawą rzecz. Metodą komentowania kolejnych linii kodu doszedłem, że problem leży w zdarzeniu od NTP, które wcześniej działało bez problemów. Schodząc głębiej spotkałem jeszcze większe dziwy - procek blokował się nie w pętli ani inny podejrzanym miejscu, ale tu:<br />[syntax=c]*time = ( ( (uint32_t)buf&#91;0x52&#93; &lt;&lt; 24 ) | ( (uint32_t)buf&#91;0x53&#93; &lt;&lt; 16 ) | ( (uint32_t)buf&#91;0x54&#93; &lt;&lt; 8 ) | ( (uint32_t)buf&#91;0x55&#93; ) );[/syntax] Wewnątrz funkcji client_ntp_process_answer z biblioteki tuxgraphic, przy operacji która, przynajmniej według mojej wiedzy, nie ma prawa nic blokować.<br />Dodam jeszcze, że taka sytuacja zdarzyła się wcześniej kilka razy, ale wtedy wystarczyło na chwilę wyłączyć zasilanie i wszystko ruszało.<br />Widział któryś kolega kiedyś takie cuda?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4938">robi99956</a> — 11 paź 2015, o 16:17</p><hr />
]]></content>
</entry>
</feed>