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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=12&amp;t=14255&amp;mode</id>
<entry>
<author><name><![CDATA[mes mariusz]]></name></author>
<updated>2016-01-29T10:45:29+01:00</updated>
<published>2016-01-29T10:45:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14255&amp;p=152041#p152041</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14255&amp;p=152041#p152041"/>
<title type="html"><![CDATA[Re: Bootloader ATmega644 - zapisuje 128 bajtów zamiast 256 /]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14255&amp;p=152041#p152041"><![CDATA[
Temat rozwiązany. Działo się tak, gdyż, przy adresowaniu słowa należy pamiętać o tym, że bit Z0 rejestru Z jest ignorowany. Oznacza to, że przed wpisaniem adresu (numeru) słowa na stronie do rejestru R30 (rejestr Z składa się z rejestrów R31:R30) należy tą wartość przesunąć o jedną pozycję w lewo. Wówczas bit Z0 zawrze będzie przyjmował wartość zero, a adres słowa zostanie ustawiony na bitach Z1...Z7. I wtedy wszystko działa prawidłowo <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> — 29 sty 2016, o 10:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mes mariusz]]></name></author>
<updated>2016-01-21T13:32:37+01:00</updated>
<published>2016-01-21T13:32:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14255&amp;p=151294#p151294</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14255&amp;p=151294#p151294"/>
<title type="html"><![CDATA[Re: Bootloader ATmega644 - zapisuje 128 bajtów zamiast 256 /]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14255&amp;p=151294#p151294"><![CDATA[
Bufor strony ładowany zgodnie z opisem...<br /><br /><a href="https://obrazkiforum.atnel.pl/7975/f3cfc50442fdc06e5e42b51d5066cfa3.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/7975/f3cfc50442fdc06e5e42b51d5066cfa3.png" alt="Obrazek" /></a><br /><br />Nie mam pojęcia w czym rzecz...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7975">mes mariusz</a> — 21 sty 2016, o 13:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mes mariusz]]></name></author>
<updated>2016-01-21T10:59:12+01:00</updated>
<published>2016-01-21T10:59:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14255&amp;p=151280#p151280</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14255&amp;p=151280#p151280"/>
<title type="html"><![CDATA[Bootloader ATmega644 - zapisuje 128 bajtów zamiast 256 / str]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14255&amp;p=151280#p151280"><![CDATA[
Cześć.<br /><br />Uparłem się by somodzielnie napisać bootloader dla ATmega644.<br /><br />Z przyswajaniem teorii znalezionej w 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 />jestem już na finiszu. <br /><br />Postanowiłem napisać najprostszy &quot;pre bootloader&quot;, który zapisze mi pierwsze 100 stron flash-a wartościami odpowiadającymi danej stronie.<br /><br />Prawie się udało, tyle, że strony zapisywane są do połowy, tzn, zostaje zapisane pierwsze 128 bajtów, pozostałe zostają czyste (FF).<br /><br /><a href="https://obrazkiforum.atnel.pl/7975/afd643f2de9f8aafd7c0d3b20cda92e5.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/7975/afd643f2de9f8aafd7c0d3b20cda92e5.png" alt="Obrazek" /></a><br /><br /> [syntax=basic4gl]$regfile = &quot;m644def.dat&quot;<br />$loader = $7c00<br /><br />Dim Count As Byte<br />Dim Pages As Byte<br /><br />Config Portb.4 = Output<br />Config Pinb.5 = Input<br /><br />Reset Portb.4<br /><br /><br />If Pinb.5 = 0 Then<br /> Set Portb.4<br /> For Pages = 0 To 99<br /><br />   '### page erase ###<br />   LDS r31,{pages}<br />   Spmcsr = 3<br />   SPM<br />   waitms 5<br /><br />   '### page reenable ###<br />   Bitwait Spmcsr.0 , Reset<br />   Spmcsr = 17<br />   SPM<br />   NOP<br />   NOP<br />   Waitms 5<br /><br />   '### page buffer write ###<br />   For Count = 0 To 127<br />      LDS r0,{pages}<br />      LDS r1,{pages}<br />      LDS r31,{pages}<br />      LDS r30,{count}<br />      Spmcsr = 1<br />      SPM<br />      Waitms 5<br />   Next Count<br /><br />   '### write page to flash ###<br />   Spmcsr = 5<br />   Spm<br />   Waitms 5<br /><br />   '### page reenable ###<br />   Bitwait Spmcsr.0 , Reset<br />   Spmcsr = 17<br />   SPM<br />   NOP<br />   NOP<br />   Waitms 5<br /><br /> Next Pages<br /> Reset Portb.4<br />End If[/syntax]<br /><br />Widzę, że strona się kasuje, a zapisuje się tak na prawdę zaledwie 128 bajtów (dla 128 słów powinno się zapisać 256 bajtów). Prawdopodobnie tu coś źle robię:<br /><br />[syntax=basic4gl]'### page buffer write ###<br />   For Count = 0 To 127<br />      LDS r0,{pages}<br />      LDS r1,{pages}<br />      LDS r31,{pages}<br />      LDS r30,{count}<br />      Spmcsr = 1<br />      SPM<br />   Next Count<br /><br />   '### write page to flash ###<br />   Spmcsr = 5<br />   Spm[/syntax]<br /><br />Hmm... Do r0 ładuję pierwszy bajt słowa, do r1 ładuję drugi bajt słowa. czynność powtarzam 128 razy. 128 rozy po 2 bajty, następnie zapisuję stronę do flash. Kurcze powinno działać, a nie działa... (działa częściowo - zapisuje się pierwsze 128 bajtów).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7975">mes mariusz</a> — 21 sty 2016, o 10:59</p><hr />
]]></content>
</entry>
</feed>