[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