[elektro] HT v9.80 idegrendszerre gyakorolt hatásai
Móczik Gábor
pm_levlista at progzmaster.hu
Sun Aug 4 00:33:23 CEST 2013
2013.08.03. 23:23 keltezéssel, Pipi írta:
> Hali!
> 9.83-al volt egy érdekes gondom
> globális unsigned int változó, beleteszem az ADRESH-t (8bit), és a végeredmény felső bájtja 1...
> bármit hozzáadok, a felső bájt mindig 1, látom a watch ablakban (kényszerkonverzió sem segített).
> csak akkor javult meg, ha a mainban helyből adok neki 16bites kezdőértéket,
> különben úgy tünik kioptimalizálja 8 bites műveletekre
Eléggé elszabott egy fordító lett.
Az én témámban annyi a fejlemény, hogy Lite módban van értelmes kimenet
a soros porton, az időt (tick) is logolja, ami mindig nulla. Mivel jön a
porton valami, az interrupt is megy, ellenben a TMR2 kezelője amiben az
időzítések vannak, sosem fut le, az if (TMR2IF && TMR2IE) feltétel
valamiért soha nem teljesül...
A végtermék is gyönyörű:
27571 ;hw.c: 230: if (TMR2IF && TMR2IE) {
27572 0018E6 A29E btfss 3998,1,c ;volatile
27573 0018E8 D001 goto i2u569_41
27574 0018EA D001 goto i2u569_40
27575 0018EC i2u569_41:
27576 0018EC D135 goto i2l227
27577 0018EE i2u569_40:
27578 0018EE A29D btfss 3997,1,c ;volatile
27579 0018F0 D001 goto i2u570_41
27580 0018F2 D001 goto i2u570_40
27581 0018F4 i2u570_41:
27582 0018F4 D131 goto i2l227
27583 0018F6 i2u570_40:
6db goto. Még jó hogy ez egy high-speed ISR...
Az STD módra kiírja, hogy invalid option.
PRO módban a soros portra RESET után kiírt pár karakter kimegy, utána
dől ki a szemét. A fenti kódrészlet PRO módban is ugyanilyen "optimális".
XC8 1.20 free módban optimalizáció nélkül, ugyanez a szemétdomb.
XC8 1.20 free módban sebességre optimalizálva elindul.
Ez egy olyan kód, ami kb. 6 éve folyamatos fejlesztés alatt áll, a
legkülönfélébb real-life szituációkra le lett már tesztelve, ezerszer
töviről-hegyire át lett már nézve, az észrevett hibák folyamatosan
javítva, a kód egyre logikusabbra szervezve. Ez a hitech fordító 8.35-ös
verziójáig stabil is volt, most meg nem tudok a lényegi részbe beleírni,
mert a garantáltan jó kód első kb. 100 sora sem fut hibátlanul, amiben
jóformán csak hw beállítás van...
De úgyis architektúrát akartam cserélni, asszem pont most van itt az
ideje. :-)
Fejleszteni kell, épp nincs időm a compilert meg 200k forrást
utasításonként debugolni...
More information about the Elektro
mailing list