<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=CS link=blue vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>Můj finální závěr k tomu je, že neoptimalizovaně je po sei jmp, co se vrací na začátek, optimalizace ale jmp dala jinam, takže je po sei hned cli a int nemůže proběhnout.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Nakonec tedy bude tato úloha ve 3 verzích:</p><p class=MsoNormal>1. Prasácká, kdy žádné cli/sei neobsahuje a je možno pozorovat, že blikání občas škobrtne. S diskusí, kdy to stačí.</p><p class=MsoNormal>2. cli/sei/nop. S diskusí, jak je to s tou optimalizací.</p><p class=MsoNormal>3. Funkce atomicMsRd a atomicMs0. S poznámkou, že kód sežere víc flashky, je přehledný skoro jako 1, ale spolehlivý jako 2 bez starostí s optimalizací.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>PH</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal style='border:none;padding:0cm'><b>Od: </b><a href="mailto:benedikt@lphard.cz">Radek Benedikt</a><o:p></o:p></p></div><p class=MsoNormal>Ahoj, hezky se nam rozvinula debata ohledne optimalizace.... Ale</p><p class=MsoNormal>zavedla cely problem nespravnym smerem.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Problem je ale jinde, autor sam napsal - kdyz pridam nop tak to</p><p class=MsoNormal>funguje. Pravda, cely priklad je napsan spis Opravdovym programatorem a</p><p class=MsoNormal>ne pojidacem kolacu. Nechce se mi hrabat v manualu od AVRka a v</p><p class=MsoNormal>casovani instrukci, ale nebudu daleko od pravdy kdyz tu zaseklou sekci</p><p class=MsoNormal>okomentuji slovy a kde bude vlastne povolene preruseni ? Ceka se na</p><p class=MsoNormal>inkrementaci ms a prerusovaci rutina se nepusti ke zlabu.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>while(1) {</p><p class=MsoNormal> __asm__("cli");</p><p class=MsoNormal> if (ms>=n) break;</p><p class=MsoNormal> __asm__("sei");</p><p class=MsoNormal>}</p></div></body></html>