[OSy] Umisteni stacku
Michal Foltýn
mike at section.cz
Tue Jan 9 13:32:25 CET 2007
Ten stack o kterem mluvis (KSEG0 | 0x200) neni kerneli stack, ale
pomocny stack, ktery se vytvari pouze pri exception handling a
inicializaci (pokud se nemylim). Stack vlakna se vytvari v "thread.c"
pomoci toho malloc_isr nekde v KSEG0, takze pokud jste toto nezmenili,
tak si nemyslim, ze by to kopirovani prepisovalo stack.
Michal F.
Nodir Yuldashev wrote:
> Zdravim,
>
> po dlouhe noci, nasel jsem nakonec v cem byl problem.
> Z vypisu dole je videt (instrukce na adresach 800029F8
> a 00000000), ze po okopirovani vsech 32Kb se skace na
> adresu 0x0 ktera se zapise v registr "ra". Zda se, ze
> mezi 0..32Kb se nachazi stack kernelu (protoze v
> gp=0)? Tohle nemuzu pochopit, ve virtualnim adresovem
> prostoru by stack mel nachazet v (KSEG0 | 0x200) a
> fyzicky se nachazi na adrese 0x200. Jak udelat tak,
> aby to kopirovani 32Kb se neprepisovalo stack?
> Docasne jsem to vyresil tak, ze jsem
> PROGRAM_BEGIN_ADDRESS dal do vyssi adresy
> (0x00020000), ale chtel bych to mit 0x0, aby to bylo
> hezke ucesany. :)
>
>
> NY.
>
>
> process.c: line 125
> i = 32767
> processor p0
> 0 00000000 at 00000000 v0 00007FFF v1
> 90007FFF a0 00000000
> a1 A1000000 a2 00000000 a3 8000A63D t0
> 00000019 t1 80009974
> t2 00000012 t3 00000000 t4 00000000 t5
> 00000000 t6 00000000
> t7 00000000 s0 00008000 s1 00000000 s2
> 00008000 s3 90000000
> s4 80010000 s5 80010000 s6 80010000 s7
> 00000000 t8 00000000
> t9 00000000 k0 80010000 k1 00000001 gp
> 00000000 sp 80000550
> fp 00000000 ra 800029D4 pc 800029EC lo
> 00000000 hi 00000003
>
> 800029EC d_trace
> 800029F0 ---
> [msim]
> 800029F4 addu v1, 0, 0 # v1:
> 0x90007fff->0x0
> [msim]
> 800029F8 lw ra, 0x34(sp) # 0x34=52, ra:
> 0x800029d4->0x0
> [msim]
> 800029FC lw s6, 0x30(sp) # 0x30=48, s6:
> 0x80010000->0x0
> [msim]
> 80002A00 lw s5, 0x2c(sp) # 0x2c=44, s5:
> 0x80010000->0x0
> [msim]
> 80002A04 lw s4, 0x28(sp) # 0x28=40, s4:
> 0x80010000->0x0
> [msim]
> 80002A08 lw s3, 0x24(sp) # 0x24=36, s3:
> 0x90000000->0x0
> [msim]
> 80002A0C lw s2, 0x20(sp) # 0x20=32, s2:
> 0x8000->0x0
> [msim]
> 80002A10 lw s1, 0x1c(sp) # 0x1c=28
> [msim]
> 80002A14 lw s0, 0x18(sp) # 0x18=24, s0:
> 0x8000->0x0
> [msim]
> 80002A18 addu v0, v1, 0 # v0:
> 0x7fff->0x0
> [msim]
> 80002A1C jr ra
> [msim]
> 80002A20 addiu sp, sp, 0x38 # 0x38=56, sp:
> 0x80000550->0x80000588
> [msim]
> 00000000 j +0x754 # 0x754=1876
> [msim]
> 00000004 nop
> [msim]
> 00000754 lui k1, 0x8000 #
> 0x8000=32768, k1: 0x1->0x80000000
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
> _______________________________________________
> OSy mailing list
> OSy at dsrg.mff.cuni.cz
> http://dsrg.mff.cuni.cz/mailman/listinfo/osy
>
>
More information about the NSWI004
mailing list