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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-02-13T16:27:25+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=9658&amp;mode</id>
<entry>
<author><name><![CDATA[Elektro_maniak]]></name></author>
<updated>2015-02-13T16:27:25+01:00</updated>
<published>2015-02-13T16:27:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=118780#p118780</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=118780#p118780"/>
<title type="html"><![CDATA[Re: zajęta pamięć flash &gt;64KB, 24bitowy wskaźnik]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=118780#p118780"><![CDATA[
Witajcie,<br /><br />Nadarzyła się okazja, by zainstalować Eclipsa Lunę i powrócić do starego problemu <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />W ramach przypomnienia:<br />W pamięci Flash trzymam 45 tablic typu:<br /><br />[syntax=c]const  uint8_t tab1&#91;256&#93;&#91;12&#93; PROGMEM  = { ... };[/syntax]<br />Tablice ważą po 3KB każda.<br /><br />w pamięci RAM mam zdefiniowany bufor:<br /><br />[syntax=c]uint8_t buffor&#91;256&#93;&#91;12&#93;;[/syntax]<br /><br />Problem polega na kopiowaniu z pamięci Flash określonej tablicy do bufora w pamięci RAM.<br />O ile przy zadeklarowanych tylko około 20 tablicach, realizuję to w sposób następujący:<br /><br />[syntax=c]memcpy_P(&amp;buffor, &amp;tab1, sizeof(tab1));[/syntax]<br /><br />o tyle, kiedy zadeklaruję więcej tablic, wyczerpuję zakres wskaźnika 16 bitowego.<br /><br />Zgodnie z sugestią kolegi <strong>Krauser</strong>, zamieniłem wszystkie wystąpienia funkcji <div class="codetitle"><b>Code:</b></div><div class="codecontent">memcpy_P</div> na <div class="codetitle"><b>Code:</b></div><div class="codecontent">memcpy_PF</div> w sposób następujący:<br /><br />[syntax=c]memcpy_PF(&amp;buffor,  pgm_get_far_address(tab1), sizeof(tab1));[/syntax]<br /><br />Niestety w tym przypadku dostaję warningi typu:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">./config.o:(.progmem.gcc_sw_table.load_bitmap+0x0): warning: internal error: out of range error</div><br /><br />albo podczas wgrywania wsadu dostaję:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">avrdude: verifying ... <br />avrdude: verification error, first mismatch at byte 0x0000 <br />         0x0c != 0x00 <br />avrdude: verification error; content mismatch </div><br /><br />i program się zawiesza.<br />(gdy zmniejszę liczbę tablic do 64KB jest ok)<br /><br />Proszę o pomoc.<br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2202">Elektro_maniak</a> — 13 lut 2015, o 16:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Elektro_maniak]]></name></author>
<updated>2014-12-14T22:31:49+01:00</updated>
<published>2014-12-14T22:31:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=108727#p108727</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=108727#p108727"/>
<title type="html"><![CDATA[Re: zajęta pamięć flash &gt;64KB, 24bitowy wskaźnik]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=108727#p108727"><![CDATA[
Dzięki, właśnie przymierzam się do przesiadki na Lunę w najbliższym czasie, więc tak myślałem, że to rozwiąże problem.<br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2202">Elektro_maniak</a> — 14 gru 2014, o 22:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-12-14T18:40:08+01:00</updated>
<published>2014-12-14T18:40:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=108675#p108675</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=108675#p108675"/>
<title type="html"><![CDATA[Re: zajęta pamięć flash &gt;64KB, 24bitowy wskaźnik]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=108675#p108675"><![CDATA[
Zainstaluj atmel toolchain do znalezienia na przykład tutaj:<br /><!-- m --><a class="postlink" href="http://www.mirekk36.blogspot.com/2014/11/avr-jak-zaczac-z-eclipse-luna.html" >http://www.mirekk36.blogspot.com/2014/1 ... -luna.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 14 gru 2014, o 18:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Elektro_maniak]]></name></author>
<updated>2014-12-14T18:32:45+01:00</updated>
<published>2014-12-14T18:32:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=108672#p108672</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=108672#p108672"/>
<title type="html"><![CDATA[Re: zajęta pamięć flash &gt;64KB, 24bitowy wskaźnik]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=108672#p108672"><![CDATA[
Dzięki, właśnie coś o tym słyszałem. Będę musiał więcej poczytać, bo moja biblioteka pgmspace nie udostępnia tej funkcji.<br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2202">Elektro_maniak</a> — 14 gru 2014, o 18:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-12-13T23:09:55+01:00</updated>
<published>2014-12-13T23:09:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=108569#p108569</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=108569#p108569"/>
<title type="html"><![CDATA[Re: zajęta pamięć flash &gt;64KB, 24bitowy wskaźnik]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=108569#p108569"><![CDATA[
Użyj <em>memcpy_PF</em> (F od far)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 13 gru 2014, o 23:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Elektro_maniak]]></name></author>
<updated>2014-12-13T02:40:10+01:00</updated>
<published>2014-12-13T02:40:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=108455#p108455</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=108455#p108455"/>
<title type="html"><![CDATA[zajęta pamięć flash &gt;64KB, 24bitowy wskaźnik]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9658&amp;p=108455#p108455"><![CDATA[
Witajcie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />W pamięci RAM zdefiniowany mam bufor:<br /><br />[syntax=c]uint8_t buffor&#91;256&#93;&#91;12&#93;;[/syntax]<br /><br />w pamięci flash, zdefiniowanych mam pełno tablic typu:<br /><br />[syntax=c]const  uint8_t tab1&#91;256&#93;&#91;12&#93; PROGMEM  = { ... };[/syntax]<br /><br />i podczas działania programu, kopiuję z pamięci flash do naszego buffora w RAMie tablicę w sposób:<br /><br />[syntax=c]memcpy_P(&amp;buffor, &amp;tab1, sizeof(tab1));[/syntax]<br /><br />Wszystko działa bardzo dobrze, tak jak tego chcę. Problem pojawia się, gdy zajęta pamięć flash przez tablice przekroczy 64KB - do buffora kopiowane są wtedy śmieci.<br /><br />Wiem, że problem wynika z tego, że wskaźnik na tablicę jest tylko dwubajtowy i nie może wskazywać dalej niż 64KB  (0xFFFF).<br />Poszukuję możliwie prostego i skutecznego sposobu, na ominięcie tego problemu, może ktoś z Was się z tym kiedyś zetknął i mógłby poraczyć cenną wskazówką.<br /><br />Mikrokontroler to ATmega2561<br /> <br />Pozdrawiam i dziękuję za wszelką pomoc <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2202">Elektro_maniak</a> — 13 gru 2014, o 02:40</p><hr />
]]></content>
</entry>
</feed>