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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-01-30T20:00:17+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=12&amp;t=14340&amp;mode</id>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2016-01-30T20:00:17+01:00</updated>
<published>2016-01-30T20:00:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152149#p152149</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152149#p152149"/>
<title type="html"><![CDATA[Re: Bootloader - sens oczekiwania na zakończenie instrukcji ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152149#p152149"><![CDATA[
Weź też pod uwagę, że jak pobierasz dane dla nowej strony flash po RS232, to przy prędkości 115200 pobranie 64 bajtów zajmuje więcej niż 5 ms....<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 30 sty 2016, o 20:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mes mariusz]]></name></author>
<updated>2016-01-30T18:28:46+01:00</updated>
<published>2016-01-30T18:28:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152139#p152139</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152139#p152139"/>
<title type="html"><![CDATA[Re: Bootloader - sens oczekiwania na zakończenie instrukcji ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152139#p152139"><![CDATA[
A widzisz, zupełnie zapomniałem o tych waitms 5. <br />Wywalę i z ciekawości sprawdzę bez tego w pierwszej wolnej chwili.<br /><br />Dzięki za zainteresowanie tematem <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=7975">mes mariusz</a> — 30 sty 2016, o 18:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2016-01-30T18:05:27+01:00</updated>
<published>2016-01-30T18:05:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152137#p152137</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152137#p152137"/>
<title type="html"><![CDATA[Re: Bootloader - sens oczekiwania na zakończenie instrukcji ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152137#p152137"><![CDATA[
Rzuciłem jeszcze raz na Twój kod i masz tam po każdej operacji dodane [syntax=basic4gl]Waitms 5[/syntax] co powoduje odczekanie 5 ms, więc operacje się na pewno zakończą:<br /><img src="https://obrazkiforum.atnel.pl/3427/de8d5b5f0bed3282f39e1e7f0ab33651.png" alt="Obrazek" /><br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 30 sty 2016, o 18:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mes mariusz]]></name></author>
<updated>2016-01-29T20:07:55+01:00</updated>
<published>2016-01-29T20:07:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152071#p152071</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152071#p152071"/>
<title type="html"><![CDATA[Re: Bootloader - sens oczekiwania na zakończenie instrukcji ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152071#p152071"><![CDATA[
Pytanie zadane było głównie z ciekawości. Zastanawiam się czy i w jaki sposób mógłbym doprowadzić (celowo - warunki testowe) do wykrzaczenia się procedury &quot;selfprogramingu&quot;. Trochę się zdziwiłem, że dane zapisały się poprawnie, mimo, że nie czekałem na zakończenie SPM, więc pomyślałem, że można by (w razie potrzeby) zaoszczędzić kilka słów maszynowych w kodzie bootloadera). Ale to tylko ciekawość. Docelowo na pewno włączę oczekiwanie na zakończenie operacji SPM. 64 kB flash, póki co, nie ma strachu o miejsce.<br /><br />Przebrnąłem przez teorię bootloadera. Zapisuję flash z poziomu NRWW. Jest git. <br /><br />Kolejny krok, to ogarnięcie tematu CRC...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7975">mes mariusz</a> — 29 sty 2016, o 20:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2016-01-29T19:19:15+01:00</updated>
<published>2016-01-29T19:19:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152067#p152067</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152067#p152067"/>
<title type="html"><![CDATA[Re: Bootloader - sens oczekiwania na zakończenie instrukcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152067#p152067"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Pytam o zasadność, gdyż poniższy program zapisuje strony flash bez większych problemów, mimo, że instrukcje oczekiwania na zakończenie instrukcji SPM pozostają zakomentowane.<br /></div>Twoje podejście jest takie samo jakbyś pytał po co czekać na zielone światło jak udaje mi się przechodzić na czerwonym i nie wpadłem jeszcze pod samochód. Ale do czasu ...<br />Niezachowanie właściwej procedury może spowodować nie tylko niezaprogramowanie danej strony ale możliwość uszkodzenia innych danych w pamięci flash / eeprom. Nie mówiąc o niemożliwości poprawnego wykonania pewnych operacji (odczytu flasha).<br />Dlatego wymagane jest czekanie na zakończenie programowania danej strony zanim będziesz wykonywał dalsze operacje.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 29 sty 2016, o 19:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mes mariusz]]></name></author>
<updated>2016-01-29T11:11:17+01:00</updated>
<published>2016-01-29T11:11:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152042#p152042</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152042#p152042"/>
<title type="html"><![CDATA[Bootloader - sens oczekiwania na zakończenie instrukcji SPM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14340&amp;p=152042#p152042"><![CDATA[
Zarówno w tej nocie:<br /><!-- m --><a class="postlink" href="http://www.atmel.com/images/doc1644.pdf" >http://www.atmel.com/images/doc1644.pdf</a><!-- m --><br /><br />jak i w artykule:<br /><!-- m --><a class="postlink" href="http://ep.com.pl/files/3453.pdf" >http://ep.com.pl/files/3453.pdf</a><!-- m --><br /><br />wielokrotnie wspomniano o konieczności oczekiwania na zakończenie się instrukcji SPM:<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Bit 4 – RWWSRE: aktywowanie sekcji RWW (Read–While–Write Section Read Enable) Programowanie sekcji RWW powoduje zablokowanie jej odczytywania. Odblokowanie RWW polega na <strong>poczekaniu aż operacje programowania zostaną zakończone (SPMEN=0)</strong>, następnie ustawieniu bitu RWWSRE i SPMEN oraz wykonaniu instrukcji SPM. Po poprawnym wykonaniu tych czynności, sekcja RWW jest już odblokowana.<br /></div><br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Nim zaczniemy operację ładowania bufora, musimy sprawdzić czy operacja zapisu pamięci EEPROM została zakończona, gdyż podczas zapisu EEPROM–a zostaje niszczona zawartość bufora tymczasowego. Robimy to przez sprawdzenie bitu EEWE w rejestrze EECR (jeśli jest wyzerowany, to znaczy że procesy zapisu się skończyły).<br /></div><br /><br />Pytam o zasadność, gdyż poniższy program zapisuje strony flash bez większych problemów, mimo, że instrukcje oczekiwania na zakończenie instrukcji SPM pozostają zakomentowane.<br /><br /><a href="https://obrazkiforum.atnel.pl/7975/f6a223d5c58ad79fa95394c7c293fb1e.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/7975/f6a223d5c58ad79fa95394c7c293fb1e.png" alt="Obrazek" /></a><br /><br />[syntax=basic4gl]$crystal = 8000000<br /><br />$regfile = &quot;m644def.dat&quot;<br />$loader = $7c00<br /><br />Dim Count As Byte<br />Dim Pages As Byte<br />Dim Words As Byte<br /><br /> For Pages = 0 To 99<br /><br />   '### page erase ###<br />'   Bitwait Spmcsr.0 , Reset                                 ' check for previous SPM complete<br />'   Bitwait Eecr.1 , Reset<br />   LDS r31,{pages}<br />   Spmcsr = 3<br />   SPM<br />   Waitms 5<br /><br />   '### RWW enable ###<br />'   Bitwait Spmcsr.0 , Reset                                 ' check for previous SPM complete<br />'   Bitwait Eecr.1 , Reset<br />   Spmcsr = 17<br />   SPM<br />   NOP<br />   NOP<br />   Waitms 5<br /><br />   '### page buffer write ###<br />'   Bitwait Spmcsr.0 , Reset                                 ' check for previous SPM complete<br />'   Bitwait Eecr.1 , Reset<br />   For Count = 0 To 127<br />      LDS r0,{count}                                        ' byte of a word<br />      LDS r1,{count}                                        ' byte of a word<br />      Words = Count<br />      Shift Words , Left , 1<br />      LDS r30,{words}                                       ' word on page<br />      LDS r31,{Pages}                                       ' page<br />      Spmcsr = 1<br />      SPM<br />      Waitms 5<br />   Next Count<br /><br />   '### write page to flash ###<br />'   Bitwait Spmcsr.0 , Reset                                 ' check for previous SPM complete<br />'   Bitwait Eecr.1 , Reset<br />   LDS r30,0<br />   Spmcsr = 5<br />   Spm<br />   Waitms 5<br /><br />   '### RWW enable ###<br />'   Bitwait Spmcsr.0 , Reset                                 ' check for previous SPM complete<br />'   Bitwait Eecr.1 , Reset<br />   Spmcsr = 17<br />   SPM<br />   NOP<br />   NOP<br />   Waitms 5<br /><br /> Next Pages<br /><br />End[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7975">mes mariusz</a> — 29 sty 2016, o 11:11</p><hr />
]]></content>
</entry>
</feed>