<div dir="ltr">Pozrite, co som Vam vedel a mohol poradit, to som urobil. Netusim ako Vam inak pomoct. Zial je to tak a je mi to luto, ze sa problem nepodarilo vyriesit. Este by som skusil napisat na support a spytal sa tam.<br>
<div class="gmail_extra"><br></div><div class="gmail_extra">A.<br></div><div class="gmail_extra"><br><div class="gmail_quote">2014-03-31 22:42 GMT+02:00 Miroslav Draxal <span dir="ltr"><<a href="mailto:evik@volny.cz" target="_blank">evik@volny.cz</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div link="blue" vlink="purple" lang="CS"><div><div class=""><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal">Myslim si, ze operator @ funguje az vo verzii xc8, preto Vam to nejde.<u></u><u></u></p></div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> Ne toto funguje už v Hi-tech. Ovšem do adresy 0x10 nějak nekorektně. Buďto je to chyba nebo úmysl, který jsem nepochopil. <u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Jaksi jsem přišel na jeden dosti závažný problém. Pokud bych napsal obsluhu přerušení „nesystémově“ potom by nejspíš následně nechodilo ICD3. Což by při odlaďování byl problém. Opět tedy na začátku. Nemůže to být nic nesystémové.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">m.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0cm 0cm 0cm"><p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Hw-list [mailto:<a href="mailto:hw-list-bounces@list.hw.cz" target="_blank">hw-list-bounces@list.hw.cz</a>] <b>On Behalf Of </b>Andrej Jancura<br>
<b>Sent:</b> Monday, March 31, 2014 10:21 PM</span></p><div class=""><br><b>To:</b> HW-news<br><b>Subject:</b> Re: c: hi-tech 9,80, interrupt asm<u></u><u></u></div><p></p></div><p class="MsoNormal"><u></u> <u></u></p><div>
<div><div><p class="MsoNormal" style="margin-bottom:12.0pt">Dobry vecer,<u></u><u></u></p></div><div><div class="h5"><p class="MsoNormal" style="margin-bottom:12.0pt">skusim to komentovat vo Vasej reakcii, teda v texte a na konci.<u></u><u></u></p>
</div></div></div><div><div class="h5"><p class="MsoNormal">A.<u></u><u></u></p><div><p class="MsoNormal" style="margin-bottom:12.0pt"><u></u> <u></u></p><div><p class="MsoNormal">2014-03-31 21:27 GMT+02:00 Miroslav Draxal <<a href="mailto:evik@volny.cz" target="_blank">evik@volny.cz</a>>:<u></u><u></u></p>
<div><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Ne neuzavřeli. Jenom pátrám dál. O tom bootloaderovi v examles vím, koukal jsem. Problém je v tom, že tohle přesouvání je všechno „systémové“. Já chci nesystémově podstrčit kompilátoru mnou napsanou obsluhu přerušení.  Kompiler si udělá „systémově“ začátek rutiny přerušení tj, uklidí registry, pak předá řízení do</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">void interrupt low_priority interrupt_low (void)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">a po návratu z funkce přerušení zase systémově obnoví registry. Těch registrů ukládá a obnovuje cca 13, což je pro mě moc. V přerušení používám jenom W reg a potřebuji „fofr“. Nemusím ukládat registry.</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Takže řešení je:</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">1/ buďto nějak systémově přesvědčit kompilátor, aby místo své obsluhy přerušení použil mou</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">2/ nebo nesystémově použít </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Void MeInterrupt(void)@0x08</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Pokud použuji 2/ v hi-tech 9,80 tak to místo na adresu 0x08 přeloží na 0x00, což je chyba</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Pokud použiji 2/ v xc8, tak se to přeloží OK</span><u></u><u></u></p></div></div><div><p class="MsoNormal">
<u></u> <u></u></p></div><div><p class="MsoNormal">Myslim si, ze operator @ funguje az vo verzii xc8, preto Vam to nejde.<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Problém je, že 9,80 mám legálně ve verzi PRO, a pokud použiji XC8, tak tam jedu ve verzi Lite a už se do pice nevejdu. Ten projekt musí být i nadále živý, čili nemohu ho jednorázově přeložit ve zkušební verzi XC8  PRO.</span><u></u><u></u></p>
</div></div></blockquote><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">A na upgrade na XC8 ste neuvazoval?  :)<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Dnes mě napadlo, že bych využil toho, že funguje </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Void MeReset (void)@0x00</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">#asm</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Goto _picInit</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Nop</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Nop</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Goto _MeHigInterrupt</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">#endasm</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Což funguje, vše se uloží jak má, ale problém je, že zas nevím jak zapsat to _picInit. Je to inicializační rutina procesoru, kde se nuluje RAM atd. To zase dodá kompiler. Adresa počátku rutiny se mění po rekompilaci (přidání dalšího kódu). Nevím jak se na ten pic Init odkázat, aby tomu kompiler rozuměl.</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">M.</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"> </span><u></u><u></u></p></div></div></blockquote><div><p class="MsoNormal"><u></u> <u></u></p></div>
<div><p class="MsoNormal" style="margin-bottom:12.0pt">Pozrite, myslim, ze zaklad je ten, ze v zdrojaku nenapisete void interrupt my_isr() {}. Ked napisete tento riadok, tak prekladac automaticky generuje celu rutinu ukladania a obnovy registrov v preruseni, aj ked je prazdna. Pak by som sa pozrel ako to generuje ten mnou zmienovany startup . as, ja mam toto:<br>
<br>--chip=16f690 -M -P -N31 \<br>--warn=0 \<br>--mode=pro \<br>--opt=all,+asm,+asmfile,9 \<br>--addrqual=ignore \<br>--runtime=default,+clear,+init,+keep,+osccal,+resetbits,-download,-stackcall,+stackwarn,+clib \<br>--summary=default,-psect,-class,+mem,-hex \<br>
--double=24 \<br>--float=24 \<br>-G \<br>--asmlist \<br>--output=default,-inhx032 \<br><br>rx_tx_debug.c<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">A pozrite si ako je rieseny ten startup a vas main v C. Potom Vam neostane uz nic ine, iba sa vrhnut do toho asembleru a manualu a naprogramovat si tu obsluhu sam. Ako som uz pisal, princip som pochopil na 90%, ale prakticky mi to nikdy moc nechodilo. Ine riesenie v tych starych verziach kompilatora nie je. Snad len to, ze si pozrite este kapitolu o uzivatelskom startup file a jeho prilinkovani.<br>
<br>Viacej Vam k tomu naozaj neviem poradit. <u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">A.<u></u><u></u></p></div></div></div></div></div></div></div></div><br>_______________________________________________<br>

HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
<br></blockquote></div><br></div></div>