<html>
  <head>
    <meta content="text/html; charset=ISO-8859-2"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 2/4/2013 3:15 PM, Miroslav Draxal
      wrote:<br>
    </div>
    <blockquote cite="mid:000601ce02e2$0829baa0$187d2fe0$@cz"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-2">
      <meta name="Generator" content="Microsoft Word 12 (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;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.StylE-mailovZprvy17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.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><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal">Dobrý den,<o:p></o:p></p>
        <p class="MsoNormal">Snažím se deborelizovat projekt, mám ale
          problém s přerušením. Jak docílit toho, abych všechen kód od
          SPI v jednom souboru včetně přerušení. To stejné např. pro
          TMR2. Pokud to napíši takhle (viz dole) tak to přeloží za
          sebou, ale jako dvě low přerušení, a na to druhé se nedostane.
          RETFIE je již za přerušením od SPI. Koukám do dokumentace, a
          nějak nemohu najít co s tím. Jde to vůbec? Děkuji ve spolek za
          reakce. Míra<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
      </div>
    </blockquote>
    <br>
    Snad som pochopil, o co ide...<br>
    <br>
    Nepoznam dany prekladac, tak naznacim vseobecnu cestu:<br>
    <br>
    Kedze su to dve samostatne funkcie, tak su kompletne aj s prologom,
    a epilogom (vratane navratu), tak jednoduche riesenie nie je,
    kompilator - a uz vobec nie linker - nema ako vediet, ze ma nejaky
    kusok funkcie vynechat.<br>
    <br>
    Taketo "zliepanie" funkcii sa da riesit (ak to prekladac podporuje) 
    cez "naked" funkcie. Treba sa pozriet, ci prekladac podporuje
    atribut funkcie "naked" a ake ma obmedzenia. "naked" funkcia nema
    prolog a epilog.<br>
    <br>
    Potom je treba zabezpecit, aby linker vsetky taketo "funkcie"
    zlinkoval do jednej sekcie (atribut "section" alebo tak nejako) v
    definovanom poradi - aby boli funkcie za sebou (a vykonavanie
    prechadzalo z jednej do druhej)<br>
    <br>
    Potom treba na zaciatok takejto sekcie natlacit vstupny bod pre
    prerusenie a prolog - ulozenie registrov a na koniec takejto sekcie
    epilog - obnovenie registrov a navrat z prerusenia - oboje najlepsie
    v ASM (dalsie dve male "naked" funkcie)<br>
    <br>
    Myslim, ze akekolvek riesenie je lepsie ako snaha pozliepat viac
    funkcii do jednej. Napriklad ekvivalentnym riesenim (zlinkuje sa
    samo) moze byt dispecerska tabulka, do ktorej sa pri linkovani
    funkcii prida smernik na funkciu a samotna prerusovacia rutina iba
    prebehne tuto tabulku a zavola vsetky funkcie.<br>
    <br>
    -m- <br>
    <br>
    <blockquote cite="mid:000601ce02e2$0829baa0$187d2fe0$@cz"
      type="cite">
      <div class="WordSection1">
        <p class="MsoNormal">SPI.c<o:p></o:p></p>
        <p class="MsoNormal">void interrupt low_priority SPIinterrupt
          (void)<o:p></o:p></p>
        <p class="MsoNormal">{<o:p></o:p></p>
        <p class="MsoNormal">    if (SSPIE &amp;&amp; SSPIF)<o:p></o:p></p>
        <p class="MsoNormal">    {<o:p></o:p></p>
        <p class="MsoNormal">    &#8230;&#8230;<o:p></o:p></p>
        <p class="MsoNormal">    }<o:p></o:p></p>
        <p class="MsoNormal">}<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">a<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">TMR2.c<o:p></o:p></p>
        <p class="MsoNormal">void interrupt low_priority TMR2interrupt
          (void)<o:p></o:p></p>
        <p class="MsoNormal">{<o:p></o:p></p>
        <p class="MsoNormal">    if (TMR2IE &amp;&amp; TMR2IF)<o:p></o:p></p>
        <p class="MsoNormal">    {<o:p></o:p></p>
        <p class="MsoNormal">     &#8230;.<o:p></o:p></p>
        <p class="MsoNormal">    }<o:p></o:p></p>
        <p class="MsoNormal">}<o:p></o:p></p>
        <p class="MsoNormal">--------------------------přeloží to takhle<o:p></o:p></p>
        <p class="MsoNormal">0x0016 &#8211; low interrupt vektor<o:p></o:p></p>
        <p class="MsoNormal">uloží reg<o:p></o:p></p>
        <p class="MsoNormal">SPIinterrupt<o:p></o:p></p>
        <p class="MsoNormal">Načte reg<o:p></o:p></p>
        <p class="MsoNormal">0x0090RETFIE&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;<o:p></o:p></p>
        <p class="MsoNormal">0x0091uloží reg<o:p></o:p></p>
        <p class="MsoNormal">TMR2interrupt<o:p></o:p></p>
        <p class="MsoNormal">Načte reg<o:p></o:p></p>
        <p class="MsoNormal">0x0150RETFIE&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
      </div>
      <br>
      <br>
      __________ Informace od ESET NOD32 Antivirus, verze databaze 7968
      (20130204) __________<br>
      <br>
      Tuto zpravu proveril ESET NOD32 Antivirus.<br>
      <br>
      <a moz-do-not-send="true" href="http://www.eset.cz">http://www.eset.cz</a><br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
HW-list mailing list  -  sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>