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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-11-12T17:37:47+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=56&amp;t=1465&amp;mode</id>
<entry>
<author><name><![CDATA[EmCom5]]></name></author>
<updated>2013-11-12T17:37:47+01:00</updated>
<published>2013-11-12T17:37:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=56535#p56535</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=56535#p56535"/>
<title type="html"><![CDATA[Re: Kłopoty z PSTR() w nowym toolchanie? w Eclipse - koniec!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=56535#p56535"><![CDATA[
Dzięki nie pomyślałem <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2018">EmCom5</a> — 12 lis 2013, o 17:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-11-11T20:10:50+01:00</updated>
<published>2013-11-11T20:10:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=56408#p56408</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=56408#p56408"/>
<title type="html"><![CDATA[Re: Kłopoty z PSTR() w nowym toolchanie? w Eclipse - koniec!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=56408#p56408"><![CDATA[
No a poprawiłeś także deklarację funkcji w *.h ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 11 lis 2013, o 20:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[EmCom5]]></name></author>
<updated>2013-11-11T20:00:11+01:00</updated>
<published>2013-11-11T20:00:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=56403#p56403</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=56403#p56403"/>
<title type="html"><![CDATA[Re: Kłopoty z PSTR() w nowym toolchanie? w Eclipse - koniec!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=56403#p56403"><![CDATA[
Witam<br /><br />Po prawienia w bibliotece HD44780.h funkcji lcd_str_P, otrzymuję błąd:<br /><br />conflicting types for 'lcd_str_P'<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/2018/649f594cf41f8bb2fc5a55a38d0432fd.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2018/649f594cf41f8bb2fc5a55a38d0432fd.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2018">EmCom5</a> — 11 lis 2013, o 20:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-28T13:30:38+01:00</updated>
<published>2012-08-28T13:30:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=13899#p13899</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=13899#p13899"/>
<title type="html"><![CDATA[Re: Kłopoty z PSTR() w nowym toolchanie? w Eclipse - koniec!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=13899#p13899"><![CDATA[
makro PSTR ma taką postać:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent"># define PSTR(s) (__extension__({static const char __c&#91;&#93; PROGMEM = (s); &amp;__c&#91;0&#93;;}))</div><br /><br />i już nie ważne czy z const czy bez const, jest to niejako instrukcja zakończona średnikiem, co oznacza, że jeśli jest w postaci definicji czy deklaracji to jest OK, jeśli zaś wystąpić ma w postaci argumentu funkcji to rzeczywiście z punktu widzenia syntaktyki zdaje się C++ jest to instrukcja, która NIC NIE ROBI (statement has no effect). Niestety gdyby to był C czy C++ stosowany na PC to nigdy z taką sytuacją byśmy nie mieli do czynienia ponieważ tam nie ma takich hocków-klocków z jakimś PROGMEM ... i całymi sztuczkami jakie trzeba robić w avr gcc żeby dopasować niejako C na potrzeby procków. Więc coś za coś - udało się to sprytnie za pomocą tego makra ominąć i kompilator AVR GCC sobie z tym radzi bo przecież nie zgłasza żadnych warningów! a to jest najważniejsze - więc możemy być pewni że z punktu widzenia AVR GCC jest wszystko ok<br /><br />owszem jak się pracuje w eclipse to te podkreślenia (szlaczek żółty i to oznaczenie po prawej na pionowej belce) mogą drażnić bo po kompilacji zawsze wydaje się że pozostał jakiś warning, więc jeśli często posługujemy się czymś  takim, to może to prowadzić do sytuacji, że wciąż będziemy musieli skrupulatnie od nowa przeglądać każdy przypadek i oceniać czy to coś złego czy nie....<br /><br />więc znowu - można ponarzekać a można poszukać przyczyny ale i rozwiązania problemu. OK przyczynę już widać gołym okiem - za te szlaczki odpowiedzialne jest samo Eclipse i to akurat ta wersja - bo w innych tego nie ma. Czy to oznacza, że z tak błahego powodu ja miałbym np nie próbować nadal korzystać ze sporo lepszego Juno ????<br /><br />Nie nie - można szukać dalej i znaleźć rozwiązanie - nie może być tak że coś tam się dzieje i nic nie da zrobić, no chyba że wykryjemy BUG'a w eclipse <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Ja poszedłem tym tropem, że jak się najedzie kursorem myszki na to podkreślenie, to pojawia się:<br /><br /><img src="http://forum.atnel.pl/_obrazki/o/54_45470b28e432678d6389533958defd17.jpg" alt="Obrazek" /><br /><br />hmmm w takim razie zamiast się martwić - może kliknę ten klawisz F2, żeby zobaczyć co mi się dalej pokaże:<br /><br /><img src="http://forum.atnel.pl/_obrazki/o/54_4123e222ec6894865dfb161f23d760bf.jpg" alt="Obrazek" /><br /><br />Oooo! moim oczom ukazuje się podpowiedź: &quot;<span style="color: #0040FF">Configure Annotation Preferences</span>&quot;<br /><br />czyli będzie można to gdzieś ustawić w preferencjach - coś tam musi być takiego i to może jeszcze coś czego nie ma w innych wersjach Eclipse. No to bach na tapetę bierzemy kilka poprzednich wersji Eclipse i tę najnowszą - sprawdzamy.... skanujemy.... sprawdzamy.... skanujemy....<br /><br />i ciach! okazuje się że w Juno mamy dodatkowo taką pozycję w drzewku jak niżej:<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/54_a3a62530e82e86a7623aad12e826d67b.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/54_a3a62530e82e86a7623aad12e826d67b.jpg" alt="Obrazek" /></a><br /><br />czyli pojawiło się: &quot;<strong><span style="color: #0040FF">Code Analysis</span></strong>&quot; !!! a co w nim mamy po prawej ???<br /><br />&quot;<strong><span style="color: #BF00FF">Statement has no effect</span></strong>&quot; !!!<br /><br />generowane przez Eclipsa i możemy to pięknie wyptaszyć .... więc odptaszkowujemy tę opcję i pseudo-warningi  z takich instrukcji znikają a nasze oczęta nie są drażnione.<br /><br />Można byłoby się obawiać no że hmmm no ale co teraz jeśli tego typu błąd tzn ostrzeżenie wystąpi gdzieś w kodzie na prawdę ? to co - może tego nie zauważymy ???? ....<br /><br />O nie nie - spokojnie to już byłoby ostrzeżenie kompilatora a nie Eclipsa więc po pierwsze pojawiłoby się w konsoli po kompilacji a jednocześnie nie wyobrażam sobie aby na taki Warning od kompilatora miał nie zareagować Eclips. No i proszę mam rację - zasymulujmy sobie w kodzie C wyrażenie które wygeneruje nam Warniga prawdziwego w konsoli można to zrobić tak:<br /><br /><img src="http://forum.atnel.pl/_obrazki/o/54_86f55a5ba06c665fa9216aabc71508a4.jpg" alt="Obrazek" /><br /><br />i co widzimy że teraz nawet Eclips pokazuje obydwa ostrzeżenia nieco inaczej. To wygenerowane przez kompilator oznaczył standardowo trójkątem ostrzegawczym, a to wynikające z jego &quot;Code Analysis&quot; jakąś pchłą .... (bo znowu włączyłem PTAKA) przy tej opcji. A zatem teraz go wyłączam i proszę jak to wygląda:<br /><br /><img src="http://forum.atnel.pl/_obrazki/o/54_11dd2eaae76637140a45ae74048d496d.jpg" alt="Obrazek" /><br /><br />czyli podkreślenia z domysłów eclipsa (code analysis) zniknęły bezpowrotnie natomiast warningi z kompilatora tak jak miały być tak pozostają.<br /><br />KONIEC TEMATU<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 sie 2012, o 13:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-28T12:06:14+01:00</updated>
<published>2012-08-28T12:06:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=13889#p13889</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=13889#p13889"/>
<title type="html"><![CDATA[Re: Kłopoty z PSTR() w nowym toolchanie? w Eclipse - koniec!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=13889#p13889"><![CDATA[
<div class="quotetitle">robiw napisał(a):</div><div class="quotecontent"><br />PS.1<br />Co prawda wbudowane funkcje ze string.h nadal krzyczą <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" />.<br /></div><br /><br />tak tego mogłem nie przebadać, ale podaj mi tu jakichś kilka linii z tymi funckjami, przypadkami gdzie krzyczą - to z chęcią sprawdzę bo pewnie i tak wcześniej czy później się z tym będę musiał zmierzyć - a nie cierpię warnigów w kodzie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 sie 2012, o 12:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-28T11:01:24+01:00</updated>
<published>2012-08-28T11:01:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=13875#p13875</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=13875#p13875"/>
<title type="html"><![CDATA[Re: Kłopoty z PSTR() w nowym toolchanie? w Eclipse - koniec!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=13875#p13875"><![CDATA[
Nie jest jedna i druga sugerowana zmiana deklaracji taka sama, ponieważ pierwsza dotyczy konfliktu typów zmiennych co pokazałem wyraźnie w przykładzie:<br /><br />[syntax=c]char napis[] PROGMEM = &quot;jakis napis&quot;; // tak definiowaliśmy zmienną - bez const<br />void lcd_str_P( char * str ); // tak deklarowaliśmy funkcję - bez const przy argumencie<br />void lcd_str_P( napis );  // a tak wywoływaliśmy ją w kodzie - i to działało wcześniej[/syntax]<br /><br />czyli tak pisaliśmy kiedyś (może nie wszyscy ale ja często pozwalałem sobie nie używać tu specyfikatora const - co się teraz zemściło) i to jest RÓŻNE od tego:<br /><br />[syntax=c]<br />void lcd_str_P( char * str );  // tak deklarowaliśmy funkcję - bez const przy argumencie<br />lcd_str_P( PSTR(&quot;jakis napis&quot;) ); // tak wywoływaliśmy ją z PSTR() - i to też działało[/syntax]<br /><br />gdzie tu widać takie same przypadki ? <br /><br />Tylko rozwiązanie pozostaje to samo czyli należy (albo wystarczy) , użyć specyfikatora const przy argumencie w takich własnych funkcjach i koniec problemów, czyli teraz te dwa przypadki teraz muszą wyglądać tak:<br /><br />[syntax=c]const char napis[] PROGMEM = &quot;jakis napis&quot;; // tak TERAZ powinniśmy definiować zmienną/stałą we FLASH<br />void lcd_str_P( const char * str ); // tak TERAZ powinniśmy opatrywać argument specyfikatorem const<br />void lcd_str_P( napis );  // to nie będzie warningu i wszystko zadziała prawidłowo[/syntax]<br /><br />niże widać że rozwiązanie nieco innego kłopotu - właśnie z PSTR(), które w postaci makra automatycznie definiuje to samo ale ze specyfikatorem const to musimy tak zrobić:<br /><br />[syntax=c]<br />void lcd_str_P( const char * str );  // tak TERAZ powinniśmy definiować zmienną/stałą we FLASH - jak wyżej -<br />lcd_str_P( PSTR(&quot;jakis napis&quot;) ); // teraz nie będzie warninga ponieważ zarówno stała zdefiniowana przez PSTR i argument mają const[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 sie 2012, o 11:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-24T17:51:46+01:00</updated>
<published>2012-08-24T17:51:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=13606#p13606</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=13606#p13606"/>
<title type="html"><![CDATA[Kłopoty z PSTR() w nowym toolchanie? w Eclipse - koniec!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1465&amp;p=13606#p13606"><![CDATA[
Witam, w związku z tym, że na maila dostałem więcej zapytań o co chodzi z tymi warningami przy PSTR() <br /><br /><a href="http://mirekk36.blogspot.com/2012/08/eclipse-kopot-z-pstr-przeczytaj.html"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/54_d3bcea1d1a4ca2cae35282890bf3d3d1.png" alt="Obrazek" /></a><br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/08/eclipse-kopot-z-pstr-przeczytaj.html" >http://mirekk36.blogspot.com/2012/08/ec ... zytaj.html</a><!-- m --><br /><br />podczas używania nowego toolchaina atmelowskiego postanowiłem skrobnąć coś na ten temat - zapraszam do poczytania <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 24 sie 2012, o 17:51</p><hr />
]]></content>
</entry>
</feed>