Debug - HWStack/SWStack/Frames

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Debug - HWStack/SWStack/Frames

Hozzászólás Szerző: Robert »

Kisebb kísérletezés a memóriával való küzdéssel....

Így nekiestem élesben a memóriafoglaltság kezelésének.
Alaprendszer: ATMega128, SD kártya. AVRDOS használat. Memóriából a belső 4k a próba alapja.

Kód: Egész kijelölése

$hwstack = 800
$swstack = 225
$framesize = 150
Első próba:
DBD és $DBG használata. A Bascom könyvet követve (
Hibakeresés) nem jutottam eredményre. lehet túl komplex a program :P. Mondjuk a M128 30%-a tele... A .log-ba mentett adatok alapján nem jött ki értelmes eredmény...

Második próba:
Az STCheck utasítás és az Error változó használata.

Kód: Egész kijelölése

'Deklaraciok
.
.
.
Const Stcheckdbg = 1
#if Stcheckdbg = 1
   Dim Error As Byte
#endif
.
.
.
.
Do
.
.
.
Loop
.
.
Sub Valami()
      Local A as string*30
      #if Stcheckdbg = 1
         Stcheck
         Print "openfile:ErrorSt:" ; Error
      #endif
.
.
.
.
      #if Stcheckdbg = 1
         Stcheck
         Print "openfile:ErrorSt:" ; Error
      #endif
End Sub
Az ErrorST:0 esetén OK, egyéb eltérő érték esetén a HWStack / SWStack / Frames értékeket magas értékről felezéses módszerrel lehet csökkenteni...
A kiindulási a HW:800, SW:600, Frames:100 kiindulási jónak tűnik...

A legbelső Sub a lényeg, ott kell vizsgálni!
Ha az Error 0 feletti értéket vesz fel, akkor azt görgeti tovább!

A teszt Bascom 1.11.9.1Reg003-ban készült.
Válasz küldése