From 927b2edd1f863fe531bca0b06656e0b8f18e3e9c Mon Sep 17 00:00:00 2001 From: aht2nguy <aht2nguy@student.cs.uwaterloo.ca> Date: Sun, 27 May 2018 09:10:07 -0400 Subject: [PATCH] indentation fixed + Ans script --- src/an | 3 + src/developing/first.map | 64 ++++++++++----------- src/developing/main.c | 8 ++- src/developing/main.elf | Bin 6983 -> 6397 bytes src/developing/main.o | Bin 1400 -> 700 bytes src/developing/main.s | 121 +++------------------------------------ src/main.c | 72 ++++++++++++----------- src/main.elf | Bin 0 -> 11864 bytes src/main.o | Bin 0 -> 1488 bytes src/main.s | 98 +++++++++++++++++++++++++++++++ src/sketch | 2 +- 11 files changed, 180 insertions(+), 188 deletions(-) create mode 100755 src/an create mode 100755 src/main.elf create mode 100644 src/main.o create mode 100644 src/main.s diff --git a/src/an b/src/an new file mode 100755 index 0000000..825b356 --- /dev/null +++ b/src/an @@ -0,0 +1,3 @@ +#! /bin/bash + +cp main.elf /u/cs452/tftp/ARM/temp/ diff --git a/src/developing/first.map b/src/developing/first.map index 5b04277..4c18731 100644 --- a/src/developing/first.map +++ b/src/developing/first.map @@ -1,6 +1,6 @@ Archive member included because of file (symbol) -../../lib/libbwio.a(bwio.o) main.o (bwprintf) +../../lib/libbwio.a(bwio.o) main.o (bwputr) /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_udivsi3.o) ../../lib/libbwio.a(bwio.o) (__udivsi3) /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_umodsi3.o) @@ -28,46 +28,40 @@ bss 0x0000000000000000 0x0 *(.bss) 0x0000000000000000 _BssEnd = . -text 0x0000000000000000 0xff8 +text 0x0000000000000000 0xe58 *(.text) - .text 0x0000000000000000 0x15c main.o - 0x0000000000000000 test - 0x00000000000000f4 main - .text 0x000000000000015c 0xc54 ../../lib/libbwio.a(bwio.o) - 0x00000000000004d4 bwputr - 0x0000000000000a40 bwi2a - 0x000000000000015c bwsetfifo - 0x0000000000000330 bwputc - 0x0000000000000790 bwa2d - 0x0000000000000224 bwsetspeed - 0x00000000000003f4 c2x - 0x0000000000000838 bwa2i - 0x00000000000006d8 bwgetc - 0x00000000000008fc bwui2a - 0x0000000000000aa4 bwformat - 0x00000000000005d0 bwputw - 0x0000000000000d78 bwprintf - 0x0000000000000454 bwputx - 0x0000000000000554 bwputstr - .text 0x0000000000000db0 0x110 /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_udivsi3.o) - 0x0000000000000db0 __udivsi3 - 0x0000000000000ea8 __aeabi_uidivmod - .text 0x0000000000000ec0 0xcc /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_umodsi3.o) - 0x0000000000000ec0 __umodsi3 - .text 0x0000000000000f8c 0x4 /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_dvmd_tls.o) - 0x0000000000000f8c __aeabi_ldiv0 - 0x0000000000000f8c __div0 - 0x0000000000000f8c __aeabi_idiv0 + .text 0x0000000000000000 0x24 main.o + 0x0000000000000000 main + .text 0x0000000000000024 0xc54 ../../lib/libbwio.a(bwio.o) + 0x000000000000039c bwputr + 0x0000000000000908 bwi2a + 0x0000000000000024 bwsetfifo + 0x00000000000001f8 bwputc + 0x0000000000000658 bwa2d + 0x00000000000000ec bwsetspeed + 0x00000000000002bc c2x + 0x0000000000000700 bwa2i + 0x00000000000005a0 bwgetc + 0x00000000000007c4 bwui2a + 0x000000000000096c bwformat + 0x0000000000000498 bwputw + 0x0000000000000c40 bwprintf + 0x000000000000031c bwputx + 0x000000000000041c bwputstr + .text 0x0000000000000c78 0x110 /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_udivsi3.o) + 0x0000000000000c78 __udivsi3 + 0x0000000000000d70 __aeabi_uidivmod + .text 0x0000000000000d88 0xcc /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_umodsi3.o) + 0x0000000000000d88 __umodsi3 + .text 0x0000000000000e54 0x4 /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_dvmd_tls.o) + 0x0000000000000e54 __aeabi_ldiv0 + 0x0000000000000e54 __div0 + 0x0000000000000e54 __aeabi_idiv0 *(.got) *(.got.plt) - .got.plt 0x0000000000000f90 0xc main.o - 0x0000000000000f90 _GLOBAL_OFFSET_TABLE_ *(.rodata) - .rodata 0x0000000000000f9c 0x5c main.o *(.glue_7) *(.glue_7t) - -.rel.dyn LOAD main.o LOAD ../../lib/libbwio.a LOAD /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a diff --git a/src/developing/main.c b/src/developing/main.c index d11389f..68fea93 100644 --- a/src/developing/main.c +++ b/src/developing/main.c @@ -1,6 +1,6 @@ #include <types.h> #include <bwio.h> - +/* void test(TD* T){ asm volatile(//"mov r0, #0\n\t" "mov r1, #11\n\t" @@ -34,8 +34,9 @@ void test(TD* T){ bwprintf(COM2,"sp:%d, lr:%d, spsr:%d, retval:%d, args:%d\n\r",T->sp,T->lr,T->spsr,T->RetVal,T->Args); bwprintf(COM2,"r4:%d, r5:%d, r6:%d, r7:%d, r8:%d\n\r",four,five,six,seven,eight); } - +*/ int main(){ +/* //TD T; //T.sp = 0x1e000000; //T.lr = 222; @@ -57,5 +58,6 @@ int main(){ register int r3 asm("r3"); int three = r3; bwprintf(COM2,"r3: %d\n\r",three); - return 0; +*/ +return 0; } diff --git a/src/developing/main.elf b/src/developing/main.elf index 4c9afe2fb40d46f2d382f5f2b2e6b60aee982c80..68c107d859ce077751ba32c66ef4eb663a3b30ef 100755 GIT binary patch delta 1154 zcmZ`&O=uHA6n?u&+o;L9yCzs-NiRuIuu`RpdXk``poow|ytTFmTZ~o_3_(Z_J@g`0 z=b)g%>Zyl<0YL->MGA^~5D_T|LK}b4i;B>T==Wu3WGVE)n{U4N=Kai@-KRVLY@O~- z31k3T^RZkm^bS-U5o#BB9GZF@EXaJ{*Ld^LqVxx?m;?)!1g#D?XuTKtCNnp`+-+Lh z9d+0pw`)oD$epyOQfi-9EtHWbcCpK{ZLzE>lG#wCwYb)jB2%cZ951JKXV<Dv{$|zh zy9pW@xy;e&Z*0f@#!5Gvj2x+#n9yyfW_pnxs4Zu(@*ZKam+f7+g#Ja4&|h}c?R9VM zSx42=xow^LWEsd(M#8fqn_!3(6NEia7wuP$`U&WDRW?(!&w8o^XnJZ4;QH!Hrr1|W zi%i5s)*wR;%8V{_6%^+GGQVD=pgv|kH;l=KpHW8Q^5bs;B(Dwh^Bq5EZh_PPeYsyZ zZv0D{oA}xAop8T)d_x{;gE??OPsb#vXik4d7bBPk`81T3{Cx72{kT6L+#D!ja|45# z0Qx9+5SYO5Ml?SH<V2onehkPP&S^dfWJ61uj{%LiXz?5fFEj&W{yOK+4*BuWFbU*H zlSoQ_340?<a213T8wApSolg8urh!|ayii>G?*M}ik^7q815)x(#y1{d6AgGmuND`t z^aA@i6xgd9dJTRO6M2IsnBX1wI4;l)Bxm#2P(7i~{{oNZw_x9c3GEEe@0Zmu^h8GP qkt4wcoiGb-gbhh`X!O*UVaX54@$;jnxf?M*>rpkGJ)xWpyZ!;J28ek8 delta 1746 zcmaJ>U1(cn7=Clkaf>}oa++i#W8HRybW}~pS&dt%L$hk@V3BqjL{RLi9kZ}@T~hoR zLIQfDtl070c(JjAKQM5zcroxsEKG0=!Cs6ZvSE|#Xo`YWCiFs$&wIY_%vjVHzVp2Q zKi~Hzf9(Ep&q6A4n~1VFsU(qhx@SjuEk?v=Ba{YCWYMjy-t1d3s`+~F(i8P1_ng<^ zzO$So(=#o%vDtPT_c(4NlXDw;$J|DeD)ooSUa_d!Tn<&6`*Nn2bGCW|j_GB`OwT!N zdYM_%>#ayVEehXmEc;mY!nRa&S`sZscx2CehBfbnop~=rZez?j=jqPd%ev*(I&HTW zb=+FNPCq&*MDWP~4PY-Yh_TyZ_Ssv#ENnf9NiQ9&uYP>Cd8^fGor%p5UBUD`HQkU? z8<_flnz{qU|843=sBa}qpEZ-1k{j%9E0#nt6NL!3q?20<UpU)b{j=5j33Ws+wB?i2 z-O;1C>3~YJgFTZO`&iM3(rigG#UpbsPaN}g6UCz?FdY#pW_?BRK?!>#?3FM8V4nvD zZJ$8_aUps_t473**qhp7RD2kl?m2}v^!be;O`}j~8a|reh!J9_Mu--ph?|LR7iKCZ zM!GU$!Lq`v<j8e~4e?$?8KK|sW%I&6T}}>hLd#Fh>4~~=G&+GVFPkj(mCwnKwAUd> z`>B}F;@7pjCBBVs@8>0DD&X+a2E@L6?!{><MhLqvu~VD1#FK!}yTnOAJR#l#j3vZX zKs6zLP3-Jj+ayz%fV5=E0^W_I;{>#}g=ka^Cx0lPxl>;!4C$|t^wKFFxC1rBbMmIr zg&?QE^Eyb9{`|{i3j7Od5cc0DP5#%QUs}jtrstGH5YR0j5*Hv7rj>lhuI32rj*<iW zt#$U>>+BVE`!c?a$5skXz;_mq>d;>%*8P{Ack2J_yikGt5SVLt;tDX1de5Lf<vNHa zmEw6I-^djuzXaq7zfkgVATQ&Zl3xP`WTC}3An-uvfn4A%AUDX%$+7@4@iVbpeisa1 zaVLth;(fL%;)EZ8=PNu6Wcx+nK=|*5E<xrAF_dq=4E$yT(Wgqj3gluu2*-a7Z1XSE zbtnR|@ao?|_#FivQw@C&`2*b0H8jZyeujJ=6Y=t~%)b==y)t!aI&Fr$bQe)r#cu<) z6{Pzizls|ifPb8x)+q}`0qs|Og-#E#j0CSMnHvd+8>H!pshM3b(ysiY4u5u2dV<oE z%=Xg@uS^|>P5r+dGUkqy=ESq9sZHaL=SPS3=f_7!MxGijj2HF~<%h?`<<#I`RN_OK diff --git a/src/developing/main.o b/src/developing/main.o index 9b4a0d9ffc8f15617e2c4cb2c4162a9212aaf51b..36edf06a140130581d35d11051df71b807955346 100644 GIT binary patch delta 278 zcmeytwTE?rg2fUB2rvOt8VsBaYz({y7CdCQq5G0$gU=%dg9VS785TTbWLWT+Rbav6 zfB*l#W>_)z#pE}P&g{wgxw)x%C6gVQ)F-Dhi8HA%Os->6;@rZ-z`y}CkA3n=CV9q) z$rqW$CqG~kfUtxNfHI5_OTlCW!(=CBHP$R3$8vHmvobFaQ2PWR4`RezW@*+rKoRlD zdzq6HKw>b!gklT>12Y3F12<Gs1xO14<pp4hfi#$%o0yrWm&~A&$N*w7B$XGGmJ~5C L$N=S~frbMBsk$}0 literal 1400 zcmah{TWb?h5T5OBY|OTGEmbN}T&0DG>9W>nLn)f{k_tu}u!0YTxNV~?G;P>jygb=w zp(ymZbRT_C=pPXJ1ANF2sE`W>66`|+pIc{k&(W<2J#g~PH}lQR&dI!+$>$_VvVb26 z5+DhJnCS{g%7+BRpc{Jky?W>SNL$&<HxkuHjjFfHV%~>Z22`eMUh|^vHLsaoGnw(4 zV+F4{0Go|_ptm*HYt^K^)<i~S88gn(rpi(Um6^{~maM2Ou^ISbf7_2MwE&}ffIV7( znz_wD-(rfk#iHgGlfY{h%v~m%?`yK=)q8ZW-e-FCqvPWrCiVf;BoP(F1fs~%Lpc+A zoTV^EIYZTljn0>y*0<0*(9CcU%&g$d5BSV6?ESx)@54wt3SV0TI3s=E<xsBy>_vS5 z-$(|p9{s%2n&!Qn%J}edQeU%ua4Jq<*d_OswdVUQ`=x_MtQYK*@38L#a5sRl0MZDg zxjnA?2GyUPni|&=vyY$N&{KwKi~<<W+p=pdBD!{fE5fo%Yld5T<ASklxfU3Ujsu3h z5s;;ga=Enbh92k?^D4$^ug-8C?bAYN(G>2FBcA0pK{|pvh#197a?+7K%(;w6=VPcA zaY1jQP5RSxCePvP?$=vDpE%<C(&!MiDRzjYUx-4n^Jt5n6h1;-mJEJG4MNeALRC!C z(MfO6hnM<lc!`JWbuf@apE#nP-~z*b1%4h2KcReL65`<w#KqJ>mJAX9E&tYtKrfQy zA4lZGTXbRl3m9whxP*KV?ZQ9$Uz`j5JpX9YhmVZgbA>x7ryt|jLjrmy`oF~?p2bVr z6}+T}vbDNyEP;`qGU?|Q3|TO=Oy(%KCC7!u*A;tp-F*SY+5FsOHeZ~}<(|yU7w5B+ s`I(}hkF`GGjh_QJ;7BuG!iI;4gSg}!!ft?RY)LwriQ>-?2V(%g0eq(P82|tP diff --git a/src/developing/main.s b/src/developing/main.s index a6e5398..8743442 100644 --- a/src/developing/main.s +++ b/src/developing/main.s @@ -1,127 +1,20 @@ .file "main.c" - .section .rodata - .align 2 -.LC0: - .ascii "sp:%d, lr:%d, spsr:%d, retval:%d, args:%d\012\015\000" - .align 2 -.LC1: - .ascii "r4:%d, r5:%d, r6:%d, r7:%d, r8:%d\012\015\000" - .text - .align 2 - .global test - .type test, %function -test: - @ args = 0, pretend = 0, frame = 28 - @ frame_needed = 1, uses_anonymous_args = 0 - mov ip, sp - stmfd sp!, {r4, r5, r6, r7, r8, sl, fp, ip, lr, pc} - sub fp, ip, #4 - sub sp, sp, #40 - ldr sl, .L4 -.L3: - add sl, pc, sl - str r0, [fp, #-64] - mov r1, #11 - mov r2, #22 - mov r3, #33 - mov r4, #44 - mov r5, #55 - add r0, r0,#20 - stmfd r0!, {r1-r5} - - ldmfd r0!,{r4} - ldmfd r0!,{r5-r8} - - str r4, [fp, #-60] - ldr r3, [fp, #-64] - str r3, [fp, #-56] - str r5, [fp, #-52] - str r6, [fp, #-48] - str r7, [fp, #-44] - str r8, [fp, #-40] - ldr r3, [fp, #-64] - ldr ip, [r3, #0] - ldr r3, [fp, #-64] - ldr lr, [r3, #4] - ldr r3, [fp, #-64] - ldr r2, [r3, #8] - ldr r3, [fp, #-64] - ldr r1, [r3, #12] - ldr r3, [fp, #-64] - ldr r3, [r3, #16] - str r2, [sp, #0] - str r1, [sp, #4] - str r3, [sp, #8] - mov r0, #1 - ldr r3, .L4+4 - add r3, sl, r3 - mov r1, r3 - mov r2, ip - mov r3, lr - bl bwprintf(PLT) - ldr r3, [fp, #-48] - str r3, [sp, #0] - ldr r3, [fp, #-44] - str r3, [sp, #4] - ldr r3, [fp, #-40] - str r3, [sp, #8] - mov r0, #1 - ldr r3, .L4+8 - add r3, sl, r3 - mov r1, r3 - ldr r2, [fp, #-60] - ldr r3, [fp, #-52] - bl bwprintf(PLT) - sub sp, fp, #36 - ldmfd sp, {r4, r5, r6, r7, r8, sl, fp, sp, pc} -.L5: - .align 2 -.L4: - .word _GLOBAL_OFFSET_TABLE_-(.L3+8) - .word .LC0(GOTOFF) - .word .LC1(GOTOFF) - .size test, .-test - .section .rodata - .align 2 -.LC2: - .ascii "r3: %d\012\015\000" .text .align 2 .global main .type main, %function main: - @ args = 0, pretend = 0, frame = 4 + @ args = 0, pretend = 0, frame = 0 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp - stmfd sp!, {sl, fp, ip, lr, pc} + stmfd sp!, {fp, ip, lr, pc} sub fp, ip, #4 - sub sp, sp, #4 - ldr sl, .L9 -.L8: - add sl, pc, sl - mov r0, #10 - mov r1, #11 - mov r2, #22 - mov r3, #33 - mov r4, #44 - mov r5, #55 - stmfd sp!, {r0-r5} - ldmfd sp!, {r3} - - str r3, [fp, #-20] - mov r0, #1 - ldr r3, .L9+4 - add r3, sl, r3 - mov r1, r3 - ldr r2, [fp, #-20] - bl bwprintf(PLT) mov r3, #0 mov r0, r3 - ldmfd sp, {r3, sl, fp, sp, pc} -.L10: - .align 2 -.L9: - .word _GLOBAL_OFFSET_TABLE_-(.L8+8) - .word .LC2(GOTOFF) + + mov r0, #1 + mov r1, #5 + bl bwputr(PLT) + ldmfd sp, {fp, sp, pc} .size main, .-main .ident "GCC: (GNU) 4.0.2" diff --git a/src/main.c b/src/main.c index 44fb95a..93caf47 100644 --- a/src/main.c +++ b/src/main.c @@ -14,39 +14,41 @@ int main() { - - KernelStruct Colonel; - int i, Status, req; - TD* Next; - - //int* kernelEntry = (int *)(0x28); - //*kernelEntry = (int)&kerent; - InitSwi(); - //SetUpRegs(); - //kerent(); - kernelInit(&Colonel); - //schedulerInit(); - // First User Task - TD* FirstUserTask= CreateTask(&Colonel, Prio4, (void *) (&firstUserTaskChildren)); - //bwprintf(COM2,"main function ptr: %d\n\r",(&firstUserTaskChildren)); - pushToScheduler(&Colonel, FirstUserTask); - TD* Task; - int ReturnValue = 0; - FOREVER { - if(Colonel.Active == NULL){ - ReturnValue = 0; - Task = getNextTaskScheduler(&Colonel); - }else{ - Task = Colonel.Active; - ReturnValue = Task->RetVal; - } - //bwprintf(COM2,"Kernel Loop Task = %d\n\r",Task); - if(Task == NULL) break; - req = Activate(&Colonel,Task); - //register int r0 asm("r0"); - //req = r0; - //bwprintf(COM2,"req= %d\n\r",req); - Handle(&Colonel, req); - } - return 0; + + KernelStruct Colonel; + int i, Status, req; + TD* Next; + + InitSwi(); + kernelInit(&Colonel); + // First User Task +// bwprintf(COM2, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n\r"); +// bwprintf(COM2, "main: before calling create first task \n\r"); + TD* FirstUserTask= CreateTask(&Colonel, Prio4, (void *) (&firstUserTaskChildren)); + +// bwprintf(COM2,"main function ptr: %d\n\r",(&firstUserTaskChildren)); + pushToScheduler(&Colonel, FirstUserTask); + TD* Task; + int ReturnValue = 0; + FOREVER { + if(Colonel.Active == NULL){ +// bwprintf(COM2, "main: Active == NULL\n\r"); + ReturnValue = 0; + Task = getNextTaskScheduler(&Colonel); + } + else{ +// bwprintf(COM2, "main: Active not NULL\n\r"); + Task = Colonel.Active; + ReturnValue = Task->RetVal; + } + if(Task == NULL) break; + bwprintf(COM2,"main: Active->Priority: %d\n\r", Task->TaskPriority); + req = Activate(&Colonel,Task); +// bwprintf(COM2,"main: after Activates finished req= %d\n\r",req); +// bwprintf(COM2,"main: before Handle\n\r"); + Handle(&Colonel, req); +// bwprintf(COM2, "main: done with one loop\n\r"); +// bwprintf(COM2,"==================================================================\n\r"); + } + return 0; } diff --git a/src/main.elf b/src/main.elf new file mode 100755 index 0000000000000000000000000000000000000000..a05424ee0b37637a3b08e7773911504458f7927d GIT binary patch literal 11864 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 SakzlD3aO+!LhC~U7x-U{Pp@SF literal 0 HcmV?d00001 diff --git a/src/main.o b/src/main.o new file mode 100644 index 0000000000000000000000000000000000000000..b1d698ffb67943d59d446e587535ebe4179162bf GIT binary patch literal 1488 zcmah}&1=(O7=N;Kb9SB9xkFtB=Fnk97lI6t9tK@lr!4z`b|82tX_MKoevBk@8wg%J z?c!nLL6F6}ibs$86L$14WNit49`qk@K2MUD#_X^clHc=tzTZ6Wn`iTCk>fZG!o@)j zI7SdZhh)ar<sb<cVD!-K!146=#7DLJ{>xG~b+ptSetY00-4`c+Pfve-m|g6qWTnf4 z+lli;+U=dl2OclK{>qDi9b~sNDUW#3xXHBOQ7qbe<7oSp7d(Jc?*_mG(?$J5-%bX7 zZv*@wf08q@;HBh!k8+SqITU~-$)dRLap3mKem{FBeEMv^nSLLgEar&T%!W1r>rqd% z-}KR97v8=3mWX`Bre?PCVxi`kPmJl=Rm*H!rn8$Dr}X5g|5+ClB`@X{me+2IGm<Rb z0g&w7rlVC69V@^(lPselImV6ylCC)#NLAYg$!Z6r)^0Y9mJ=D^IpTG+Q>#OvAI({g z^qvUyxJS4c$^;Jw0d^3F@gaBeBY7(1JR&VUl8ZQ_w@@bk^Zev6W&n{E<r94=c(MNO zA!WJA@*K%n;NriT?FuqhlMJuWQ1Cs17xN=zHOW%PpjA}TH%Q_`b<_9|kLLS?1{ZZ~ zv3!g(jOr8c=alIQ`Tur8JX(P`+jS7d!=V2y`#A<7I9P#Z0P|6=*{~>gCjSsz4TEX+ zV`$Ixllie?jMMzsqTF{GK_p&`@kcSP$9OZwqeqzX?ZxasmrAOEq$)CGHOT6|1|GCb zr?hRthGDgg1~E`9LvxI>W^cgemR&EmOSQV8Z#4`H9vjXwUL~^imDTM{%WOI8;NMsb zh5K4dZx~QnP*>&(YGtKZEX|iI<-(jgUx9VgvYj>CuqcaCHygTTv|tkZ6-EH?Uj#x5 zKqbVX)Cn&EJVoU2fW0JsIXE-K4@3Pi>2c$~3GvXTa4rHK=rkhv(JZgw&~k_q<5&kV HgO~UpA}aW| literal 0 HcmV?d00001 diff --git a/src/main.s b/src/main.s new file mode 100644 index 0000000..fda61f5 --- /dev/null +++ b/src/main.s @@ -0,0 +1,98 @@ + .file "main.c" + .section .rodata + .align 2 +.LC0: + .ascii "main: Active->Priority: %d\012\015\000" + .text + .align 2 + .global main + .type main, %function +main: + @ args = 0, pretend = 0, frame = 2780 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {sl, fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #2768 + sub sp, sp, #12 + ldr sl, .L10 +.L9: + add sl, pc, sl + bl InitSwi(PLT) + sub r3, fp, #2784 + sub r3, r3, #12 + mov r0, r3 + bl kernelInit(PLT) + sub r3, fp, #2784 + sub r3, r3, #12 + mov r0, r3 + mov r1, #4 + ldr r3, .L10+4 + ldr r3, [sl, r3] + mov r2, r3 + bl CreateTask(PLT) + mov r3, r0 + str r3, [fp, #-28] + sub r3, fp, #2784 + sub r3, r3, #12 + mov r0, r3 + ldr r1, [fp, #-28] + bl pushToScheduler(PLT) + mov r3, #0 + str r3, [fp, #-20] +.L2: + ldr r3, [fp, #-2796] + cmp r3, #0 + bne .L3 + mov r3, #0 + str r3, [fp, #-20] + sub r3, fp, #2784 + sub r3, r3, #12 + mov r0, r3 + bl getNextTaskScheduler(PLT) + mov r3, r0 + str r3, [fp, #-24] + b .L5 +.L3: + ldr r3, [fp, #-2796] + str r3, [fp, #-24] + ldr r3, [fp, #-24] + ldr r3, [r3, #12] + str r3, [fp, #-20] +.L5: + ldr r3, [fp, #-24] + cmp r3, #0 + beq .L6 + ldr r3, [fp, #-24] + ldr r2, [r3, #32] + mov r0, #1 + ldr r3, .L10+8 + add r3, sl, r3 + mov r1, r3 + bl bwprintf(PLT) + sub r3, fp, #2784 + sub r3, r3, #12 + mov r0, r3 + ldr r1, [fp, #-24] + bl Activate(PLT) + mov r3, r0 + str r3, [fp, #-36] + sub r3, fp, #2784 + sub r3, r3, #12 + mov r0, r3 + ldr r1, [fp, #-36] + bl Handle(PLT) + b .L2 +.L6: + mov r3, #0 + mov r0, r3 + sub sp, fp, #16 + ldmfd sp, {sl, fp, sp, pc} +.L11: + .align 2 +.L10: + .word _GLOBAL_OFFSET_TABLE_-(.L9+8) + .word firstUserTaskChildren(GOT) + .word .LC0(GOTOFF) + .size main, .-main + .ident "GCC: (GNU) 4.0.2" diff --git a/src/sketch b/src/sketch index 5dc31aa..8ea26d8 100644 --- a/src/sketch +++ b/src/sketch @@ -1 +1 @@ -K.Active(0)->T0(Create(someFunc))->SWI->K.Active(return 0)->K.Handle(0)->handelCreate()->Activate(T0)->(probably kerxit) \ No newline at end of file +K.Active(0)->T0(Create(someFunc))->SWI->K.Active(return 0)->K.Handle(0)->handelCreate()->Activate(T0)->(probably kerxit) -- GitLab