Pamięć nadpisuje stos (choć powinno by ć mnóstwo miejsca)

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Polish to

Threaded View




Oprogramowanie napisane w C i skompilowane kompilatorem CC65.

https://github.com/marekw1986/RetroEG/tree/master/code













bardzo rzadko.










nie ma.






Fragment pliku .map wygenerowanego podczas linkowania projektu


Segment list:
-------------
Name                   Start     End    Size  Align
----------------------------------------------------
ZEROPAGE              000000  000019  00001A  00001
DATA                  000200  00024A  00004B  00001
BSS                   00024B  0004FF  0002B5  00001
STARTUP               00804B  008066  00001C  00001
ONCE                  008067  008072  00000C  00001
CODE                  008073  00A022  001FB0  00001
RODATA                00A023  00A1D6  0001B4  00001
VECTORS               00FFFA  00FFFF  000006  00001



MEMORY {
    ZP:        start =    $0, size =  $100, type   = rw, define = yes;
    RAM:       start =  $200, size = $1E00, define = yes;
    ROM:       start = $8000, size = $8000, file   = %O;
}

SEGMENTS {
    ZEROPAGE: load = ZP,  type = zp,  define   = yes;
    DATA:     load = ROM, type = rw,  define   = yes, run = RAM;
    BSS:      load = RAM, type = bss, define   = yes;
    HEAP:     load = RAM, type = bss, optional = yes;
    STARTUP:  load = ROM, type = ro;
    ONCE:     load = ROM, type = ro,  optional = yes;
    CODE:     load = ROM, type = ro;
    RODATA:   load = ROM, type = ro;
    VECTORS:  load = ROM, type = ro,  start    = $FFFA;
}

FEATURES {
    CONDES:    segment = STARTUP,
               type    = constructor,
               label   = __CONSTRUCTOR_TABLE__,
               count   = __CONSTRUCTOR_COUNT__;
    CONDES:    segment = STARTUP,
               type    = destructor,
               label   = __DESTRUCTOR_TABLE__,
               count   = __DESTRUCTOR_COUNT__;
}

SYMBOLS {
    # Define the stack size for the application

    __STACKSIZE__:  value = $0200, type = weak;
}






Re: Pamięć nadpisuje stos (choć powinno być mnóstwo miejsca)
On 29/09/2020 21:35, Atlantis wrote:













Re: Pamięć nadpisuje stos (choć powinno być mnóstwo miejsca)
On 29/09/2020 21:35, Atlantis wrote:














Re: Pamięć nadpisuje stos (choć powinno być mnóstwo miejsca)

On 29.09.2020 22:36, heby wrote:








program wraca z przerwania.

(tylko z nich korzystam) a przed powrotem je przywracam.











W 6502 CLI to instrukcja "clear interrupt DISABLE", natomiast SEI















Re: Pamięć nadpisuje stos (choć powinno być mnóstwo miejsca)
On 29/09/2020 23:04, Atlantis wrote:







Quoted text here. Click to load it





Re: Pamięć nadpisuje stos (choć powinno być mnóstwo miejsca)
On 29.09.2020 23:19, heby wrote:











Nie jestem pewien co do sytuacji, kiedy kolejne przerwania przychodzi













Re: Pamięć nadpisuje stos (choć powinno być mnóstwo miejsca)
On 29/09/2020 23:50, Atlantis wrote:
Quoted text here. Click to load it














Np, jeden z ziliona:

https://github.com/redcode/6502


ale weryfikacja runtime, przez unit testy na emulatorze, raczej prosta i  





6502 w clangu.








Re: Pamięć nadpisuje stos (choć powinno być mnóstwo miejsca)
On 29/09/2020 23:04, Atlantis wrote:




Re: Pamięć nadpisuje stos (choć powinno być mnóstwo miejsca)


Quoted text here. Click to load it















--  

dwa szympansy.
- Masz cos do jedzenia? - pyta samiec.




Re: Pamięć nadpisuje stos (choć powinno być mnóstwo miejsca)
On 30.09.2020 11:29, Arnold Ziffel wrote:


















Re: Pamięć nadpisuje stos (choć powinno by ć mnóstwo miejsca)

dyskusyjnych:5f749a85$0$544$ snipped-for-privacy@news.neostrada.pl...


Quoted text here. Click to load it

Quoted text here. Click to load it




Jesli dobrze rozumiem - to niechcacy odblokowalo przerwania w  
procedurze obslugi przerwania?
I sie przerwania nakladaly, i stos rosl ?

To by tlumaczylo zachowanie, ale ... obsluga przerwania powinna byc  
krotka, i szansa zlapania drugiego przerwania niewielka, a przeciez  
dwa jeszcze nie powinny wywrocic programu.
Musialo sie to czesciej zdarzac, czyli obsluga przerwania za dluga,  
i/lub przerwania czeste.

No chyba, ze krytyczne bylo samo przerwanie obslugi i niekontrolowana  
zmiana uzywanych tam zmiennych.

Pamiec mi juz zawodzi - ta flaga nie jest w statusie 6502 ?
Moze da sie zamiast CLI przywrocic poprzedni stan flagi ...

J.


Re: Pamięć nadpisuje stos (choć powinno być mnóstwo miejsca)

Quoted text here. Click to load it















--  







Re: Pamięć nadpisuje stos (choć powinno być mnóstwo miejsca)
On 30.09.2020 20:00, Arnold Ziffel wrote:






polecenia SEI/CLI.









Tak, tm jest jedno przerwanie od wszystkiego, bo system nie posiada



(kiedy przyjdzie nowy znak).

Re: Pamięć nadpisuje stos (choć powinno by ć mnóstwo miejsca)

dyskusyjnych:5f74e5f1$0$17357$ snipped-for-privacy@news.neostrada.pl...
On 30.09.2020 20:00, Arnold Ziffel wrote:

Quoted text here. Click to load it



Quoted text here. Click to load it

Quoted text here. Click to load it





Quoted text here. Click to load it

Quoted text here. Click to load it


Quoted text here. Click to load it

Trzy przerwania sprzetowe polaczone bramka OR czy tam AND, AND "na  
drucie" ?

Pomysl czy tam nie bylo sytuacji:
-jeden z ukladow wysterowuje linie IRQ,
-w trakcie obslugi, zanim obsluzysz wlasciwy chip, wykonuje sie  
instrukcja CLI,
-poniewaz linia IRQ jest ciagle aktywna - procesor natychmiast  
wywoluje obsluge przerwania,
-i tak w kolko, dopoki program obslugi nie dojdzie do wlasciwego chipu  
i nie zgasi przyczyny przerwania, lub chip sam nie zdeaktywuje.

Tylko to raczej blyskawicznie by wywalalo program, a nie tak raz na  
pewien czas ...

J.



Site Timeline