«« ( Date ) »» // «« ( Thread ) »» // ir3sp - 2011

Re: Cudno ponasanje programa ponekad i par pitanja

by Marko Laušin 08/0052
subota, 28. maj 2011 - 12:44.

Povecao sam svcStack i dataAbortStack da budu po 256kB, i za svaki
poziv iz asemblera funkicje pisane na C-u koristio sam:

push {r0, r1, r2, r3, r9, r12, lr}
bl cFunkcija
pop {r0, r1, r2, r3, r9, r12, lr}

medjutim opet mi se javlja sledeci ispis:

Unesite rec [max 255 znakova]:test_program2.bin
Out string: test_program2.bin
Out [L]: 1, 00000001h, 1
Out [L]: 2, 00000002h, 2
Out [B]: 0, 00h, 0
Kraj rada.

Kraj rada.

Kraj rada.

Out [B]: 0, 00h, 0
Kraj rada.

Kraj rada.

Kraj rada.

Unesite cio broj [rec]:

Prva 2 reda u ispisu su ok, to ispisuje identifikatore fajlova, ali vec
od treceg reda ne valja.
Na fajl koji predstavlja disk iskopirano je samo prvih 512B.


On Fri, 27 May 2011 23:49:19 -0700 (PDT), Sasa Stojanovic
<stojsasa@yahoo.com> wrote:
> Pretpostavljam da ili je stek premali, pa dolzi do prepunjavanja
> steka ili negdje niste sacuvali cjelokupan kontekst. Pronadjite u
> dokumentaciji za kompajler koji registri se sigurno cuvaju u C
> funkcijama, a koji se potencijalno mijenjaju, pa provjerite da li ste
> na svakom mjestu gdje ste iz asemblera pozivali funkciju napisanu na
> C-u pred poziv obezbjedili cuvanje registara koji se potencijalno
> mijenjaju i po povratku izvrsili restauraciju registara koji se
> potencijalno koriste.
>
> Pozdrav,
> Sasa
>
> --- On FRI, 5/27/11, MARKO LAUŠIN 08/0052 __ wrote:
>
> From: Marko Laušin 08/0052
> Subject: [ir3sp] Cudno ponasanje programa ponekad i par pitanja
> To: ir3sp@rti.etf.rs
> Date: Friday, May 27, 2011, 11:09 PM
>
> Postovani,
>
> u cemu moze biti problem ako se program ponekad ponasa cudno, npr.
> desava mi se da ispise po 2-3 reda "Kraj rada"
> ali da posle toga nastavi da se izvrsava i da se zavrsi kako treba?
>
> Takodje, malopre mi se desilo da pokusam da izvrsim neki test fajl,
> koji je pre toga radio normalno, nekoliko puta za redom je stigao do
> kopiranja iz fajla na "disk", i tu poceo cudno da se ponasa: ispisao
> je par uta "Kraj rada", zatim nekakav ceo broj, i na kraju mi trazio
> da ucitam ceo broj. Posle par pokusaja proradio je normalno, i sad ne
> mogu da reprodukujem prethodnu situaciju.
>
> Napominjem da sam pri testiranju uvek pokretao nove terminale, a one
> iz prethodnog testa iskljucivao, pa bi trebalo da nije ostalo nista u
> cevima.
>
> Takodje, interesuje me sta oznacava to "Kraj rada" sto se pojavljuje
> ponekad pri pokretanju srv.elf, i da li postoji nekakav drugi nacin da
> se iskljuci program srv.elf osim nasilnog gasenja terminala u kome je
> pokrenut?
>
> Unapred zahvalan
> Marko
>
> -----------------------------------------------------------------
> unsubscribe:
> minimalist@rti.etf.rs [1]?subject=unsubscribe%20ir3sp
> -----------------------------------------------------------------
>
>
>
> Links:
> ------
> [1] http://mail.student.etf.rs/mc/compose?to=minimalist@rti.etf.rs