From 1e7742c6a34296706575b08b6b05af8af023abad Mon Sep 17 00:00:00 2001 From: Dane Sabo Date: Mon, 17 Feb 2025 14:47:10 -0500 Subject: [PATCH] me2150 microkit part1 and 2 --- .../tutorial/build/client.elf | Bin 0 -> 140168 bytes .../microkit_tutorial/tutorial/build/client.o | Bin 0 -> 21440 bytes .../tutorial/build/loader.img | Bin 2486104 -> 2510520 bytes .../tutorial/build/report.txt | 655 +++++++++++++----- .../tutorial/build/serial_server.elf | Bin 140080 -> 140672 bytes .../tutorial/build/serial_server.o | Bin 20128 -> 21528 bytes .../microkit_tutorial/tutorial/client.c | 22 +- .../tutorial/serial_server.c | 25 +- .../microkit_tutorial/tutorial/wordle.system | 16 + 9 files changed, 534 insertions(+), 184 deletions(-) create mode 100755 ME_2150/microkit_tutorial/microkit_tutorial/tutorial/build/client.elf create mode 100644 ME_2150/microkit_tutorial/microkit_tutorial/tutorial/build/client.o diff --git a/ME_2150/microkit_tutorial/microkit_tutorial/tutorial/build/client.elf b/ME_2150/microkit_tutorial/microkit_tutorial/tutorial/build/client.elf new file mode 100755 index 0000000000000000000000000000000000000000..9fa10176ac56e8bf0f5f5bb2468014c17830cc5c GIT binary patch literal 140168 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

nr8q8f@ve`u7FlNSw&o3?&gWZc>=@z? zkp%n`R?$VM5Vb#?>asv-Z>_f?jIu!Dvb+-7Ylmm-4Y@6A5yowvm^pd)YbRKZtsJfw zSgDGyPj><7C&0Yt$!|6F{A$U{;Nh^Gi?T*r>-ye1< zN?inZ@MG;>i)ZdSz(-lb8Q_Q$Jzb8n#?pF$L|ljWC~Jm}W()u^{3vUlF4$uXKgwE5 zaWViTR!3Qvv-fu5%R91VP8wx>UUR^C;+j#`BkYcyzz~rEFv{Ae`=@mLkFs9Tctks9 zjCKqHO#9`uq+f~$L|pbs$>SE>^Cq(A4OT9533vcsk?_la3!lQ5RiaIDX~<=z6qB^! z9aL?S5^Hb|layGadYGidYV2u}66>6vCMmI&(x2TXDY4e~G)akdo#yaNQexf39(S9h z#QG`=0tsW166+a_8uHifDJCgfKwBJ=>2I9vq8&WzK~BJrwR>hd zl37Xl4h_+kXswV;=g=5!hz;d3^&OhVZX;?dBr*=2r_rWz8BB*hshJm-%TPMBN>k@l zNRS-btVhUs6%rzcZqS{ZSs?*(=pNJe3JH%xdra3WWOh9CyhgKC*~N7B3(}8cmJ4l^ zl6NX_w|3`cc>Q=`pzg;?-H#XQwQ5beA1^d$)fVf1yl}SBRQKbBC3?x3sr&K5YE6x6 z)n2%gy4Z<*JG5>uBsBiyj!KytUotb}hT?d@1t+o=`Nno0 zR^Ms4!n8)d*_Cu3EcC;h|&&|22ShUq92fcEx?8xrGQMOi0}~RU5>F)P3h_v`JMjrRdM)uQa0N zNimCde>N%lb6&T!=+BMmA^LMYqxExMw5ooaEXcVjf2I-bLM%Vl?st-+Z|W)frkM8oBr0D*&lyhyqx2;9~BOhzGHpaCBdl=)|(|c%q?HN6caqV2s80uy`d=9E%u&3ES zKLv+Z0c{%UN&^uLVSdJ9Ry*nb+1ol##o`gIEnWy-vx9a74)oYYPXIYOwqz^0BC>-H z4n+%Tg9eg07z_d)HL#g5Gn2Fh1IZfv0?S(p?jnqzyQ;LdyoUgX!V!{VXJs-?4FAjl z62|WZlodXL??9NZgxTRQpijZ@TC8SH_-@n=h5r-*WB5|=N5WU)I~u+P-)Z5$fIk)< zh6yY^d_8Jqgja$;GyH3OXN7+PYIb-OzH`F0i0IsK0Ofh%e*5$s>3Lb~mP*^a0kCv25_+L9&iQW;AUrOu^)$dE3CGh~ zPX~M&;hAZzV*!sRJSVMn9N@`>7ehXo8i_OkA=eBdD}j*hY$6-b^mrh1h_s?@D!7nH zTUsj!1=6GIQ3Zqo>C!Dgpn5?ux$Xo4-3z2o?LeS>K|fL+1_JF11{2u>1nL(IC-Ni^ zik80YhXNFRIw>y#q3DT3UI9YUaUyR5q3AP+bO52~vxvL{grd(QatsK1U9f=2hv}`O z(CdN=h$ssfx?ONFv51xN1Nb|=NV=D8Wqby{PA@7Y4e!(izer-S%?vsC8r+)DDEFXW8E6-*Z z97@Pu1esX{7sLTa?Y3zy0Q78s(CV1+m0I}qN7zS`kQkP-|}0*e#= zIe0?hr_rZy_^)Ur5>5j(8onCeY2mv-jj3RNjJ)hJ`$E*n;e_yG0J)q7FcdF?A`xqx z6?qqh`IkXyYrK{7eIOW{&*ElHw5nMlS_Y9Sm=nv!Uvt9L(!4_Dq!+W6N?W@bNJbV3 zk&M%zMoy-9`9(Wp7gWy4%A(*`?2KPp^xCJt*?*~J1glt)_V4l|Y%*_l9q6@Ew4TpsB zKL^y%@G>+uEc{0l4-cGVG;SVu6jt-|o!kF-A zsC`=aM(~^-{t6_F4UYiNxbQuojt`GOtqH260fcPljL5mT$Nmakof)BtP*ugaWpd6; ze+ajT3R)23%op9@bd$ov8G)J4} zRI~hIv=zw>1y6TDOFdNkGwN0R1@a=fE@2#+Rm_3Pk=&tFERblam@4QbO-9&82*$zY!<9YvF2HTO;ZD)K!w4=dfD~e=XxN!`+=be1_aV zhO*(W=X&Z;yYL=^ZV>Il-^issuz42k!jBs&(vlZg`OBHK#~dTRJAcBTZcr6jFlhM8 zVliZGl}mvP)P23QavhMmYemh){WfE?<+BP;5{n~TS*xeO1L6Bb{5xZGFR2MX*6ukl zf);<@fHn~Vb8SKc_cbg6DUfJl1NWWnHE^j4-|scR)*dLmNZ2-@wF?22QDFb#2s_~3 z!IrPE;-g$PrsQoz+^yZWfT?0VnhRf1x*jFecEDGmcKB>-xZ%!c6@0AS-v@W)(w0_G z`w`ZCwUmhzDyma_am(9(W3)rBDlj-tT#ux!d;)NGZbT@ zAE$wEyl}bLqgA;@2Q#0RqibRSu{hmSbxl=k_p4y6{1oUi%y6)% z22VpDL*FfV2s}^LYt98pe&$0J)6kL7cc*urP6`Van+hpmM z#vImN>(b`aP5o}K{2P_;$R~Uv4 zEUyRt=&|woNFDKMR9-v ze57(d?cs6Yqm*-<#_hzDJ5VrMIoEpyID8#^G29+}s)j8*IKmZmTas$uj_{Z99eipU zS1Ytpu?X4+pSnn^6o(V*RdC;QaBBY`i__#Wb;fM2Tdhl!5{-lB1wzAQk)!SBlo z3TtNH2}1>+mgNtQ%^pK^zd=`Kf0yVp25riIn&`6zU5q(|-gRGsk%IZ9HKsS)q)&9h zzbAW>U#ol5s(X`vrtZxKHK3UNxHW&TNSLI;Y|e#>8!()acBL2Lu%>;UKKy ztAgIBsjA|yxnRECv>VATMabEom#o;DBL=na(AZqDr+t^k=7~A&yEQgntZDDo*a9)8 zeUHW#W`D(!97%cYq{CZ=g*-0ZE#dcL2Y5cGrMjAgsqZ_nU z#!CXt#faf!kC)V#s|BOS9=}#IFP7l3Cm2z4BzEixM$}B*?@3xK)9=X|GyRTh%=Eia zW2WCzHD>xfO=AmnPiJWCeC76o(*mPQKOE*tAG_CW7tfC?SAjM}ucX_c9I);g=@m?t zf!Zqexb z;}AE5DJ)p(bttbKCJ#5?uq4&xJT-!U%fxEZGPd=R@j+5XlU3J4Msv4}nqvqAYl>x& z!Q1JVC#Q=mq45w-v|#B+RpH?wzh$#itkX2!G-Nhn8TcHHFCJ3Gu1&F4Xnf94=|_X* z%?Pz;U^smiGNbl8XPPeOFau+mtabUyVZ-VN9QW#U7|UC-}3PfK5wN<6ljBkUMLEB>Uo7}4f;ak~Kaj(YO*lT!uHCD*c zd$sgfb{jZzxtOM>7qgbiWs;Vjkwrozk9)QB%q;roMLUmswe+m4TR?in&f{J!Jv-}j zpuJ<~aj%x1BiJ!Jk9)QBT&ah>S~}~qmMD6e#@jtSpz^s_OV6`&P^5wdX0OJ>=fVit zB0ou*EF&}Y4KPRl2y4JonC`9UzrbXH=ndepqt!5CFj|QcC%PLYq3A?0?ji6;qL0(K z(FXvhMQ4Hh9bn`;VAjI3f}znEkziEMc>o73LJ?Cs&Xg9f25%&k9r-k5<>C-KloRFbtxBFjOQGD-Oq2&z`V!oB zTeahjv@=oST}0NjmX$1pi8JkUMYy$k!F|TRIG-jrKU8!*=3F&ia8*#>8`8y0ICNK)FH)avp_eCXY26E3=~hx! zhGtIEl${tz{8+m;p`EIwpjCKc+}~2uOF}%f>X_&X-%9x=KTE6F?j^xDh^_Qv8qD)i0yx7p& z3_Ui2dY_-G>8&U&{a5z7KGZbc6`seEz5WOdl>LPI))%oyfy9#XTMXA4!=>AskZkWx zLysG}Zf~O3UU|EryB=L4XmUSB5Dy?|v?)1SyA9>V6SPjdL^H(45$Za#keXqEl~VC6 zf1f4sW~oyCs58_*^!m7-b*p_h#S z%!2Z*N}R^ibkJ{817dJfa7O6>!#pY3P#u`dn5_qA z)N>|hJ~Z%W=%Kwl|HHAa@C{FLe~F?c)n8t(6=|*FsfNA0!RS>cx&88UHM%k;8TiU# zqSl-kw>0)Djm?co?z~20$em3_x!<%pF4^iY*=lM=Ni!m&G)=1hCZi;Ndmo*%qPli> zMmfl2lw4qT8h!+Ye5~Dry-beFp_d?aXL3(KT#c8>aREk{)OeYk#+z!qOitsAYrITO z<8yRIicF48z~V!h$vqFjm;ldmwIb<%L9DS%;x=EUv0-%-r#FtWBFuY6T!f>u3UVX$ zR4)-QpY{UG$NK%t=s75J-YA-kTSPw|is<(*!NAAx5&g1bM8C)x(Jyk=>K8d9`n}DF ze&7_H02!gNB@`9?H?$odIPe0(Oz^@B21@x)S-!mBdX_WU3%3;9PMFDFxGnE7z;#Y! zC~i49nKRISSdzW4Bzs{=_QI0vg(cYwOR^W1WG^hqURaX7uq1n7N%q2$?1d%S3rn&W zmSit1$zE8Jz4{)>UM`cp>Chn($-E9aSd!{llImHK>RFQNS(55mlImHK>RCF~i}Jia zl4r96d6Y1csa~Yug4+PwxyVx4vn0Q>bbgo1{EjSXV?yteMY20fvO7y> zciFVtUqH*JVR6PR*TgPw`&kCm{v%BlT*s0y%*ve9SIjPM1r5WOUiQlV6m( zOyfL<6g;3#HyPbP6scg08C@`=`dMIwZn*$=ti_ zt|W7oBy*M|bCx7?mLzkQPUfOa=CU#iSue_y|Ew$x^W;A(yPOWq#vk%iyu|ET*xt!& z$ayS^@q{*OKt>kf2^f}HgL2y;D|Q!h$gIJ+^lI!UglozuYwTy3Oc#YVf~&AVCt4t6&mmi8pxLiw(n6_? z@#&EQFr>1UJKu-EGQy#3P`P3d8CVWvAWJI%)B~u&HR&-UH*(F6(F1lW&Nyli2md>U z@N*RKV{O^NtmQ6zT?lk8E{7qCbzvX_oa&!gPJm7WJ6>o9Fz7xB1S8ye)8oSZ%F^PBw3goO0f< zwJIF~Aicqb5G-F@0RtC0KV)a(AaLKjoh_aYgh`I--l-I@!I_w0RGJrH956@vXzUSlqS@a_Ypgn zgZUcB3jGnt_fd5puF4Ij<#a@Tg*7Lz6I_|g5FWz~A>si8K;g%ln%9YAt-uyA{VPQL z2v^_>K;8oIGa@{l`YnKWiChK5!r1KsQvM|%<=?l@HSSa7lDvQu0QhDrtSH{3$(1Yf^3I^7!8}cU)6I0yzT(&__Tfj59e(5n!xzz>0x11Kf(eaZn)OXP7N(*aB+@(_^402UG9 zdci-y@-IYg0vPC~pg$ z(|KFuOyv!OD}E61*J7+*Z2H6`F!VME-+=6|^RNLOivHILgDRr)ka zcX^)s41`$I^OmD};MXARM}5A&5C|fAUIFl9B7Xv<1HdncyanWa0RKtk6(AABe~`03 zg_Y-^VyF^dgHSX8S7;cJi2z0u83$x7fMrC^0CEq2JBZ8!@&M#H+`c?g3s6E$|kv*B)TxsdKG#Ceb1=gtaKh^+E0X#|M79c+c@G_B| zKz;$>=R{h8@Ewo$aFtOr=OdILo+J~U>*OamXo@WE+TMp0NQs(Ru z^6m3{?E#d)&tl7oGuqi?0h-J6nhdC^sTGqATwwKB5L9K25q%|M-wdyYQb?Zmq{%9n zbg3M!>ejdni^-CGoEDgn#`MvClJG>?b5z;K$TdZ_elGVS4U)Rr)hs?McN+xRmyrK# zfv0mdviTl?HK(W@L{;VTjpoIr(}|$f)nu;EusHT@c?Ew|`bZGKr$*-x!mB%TAz)Z_ zJHRF{5o0+%*6vnRJfi|mv4)-gCrpupV4r@tsy{&N4m;OI53IS>b!cYTD)L(MR3Qt8 zbwTApH3aAM5z0Ad22Ne9LDQIwHbUNHPv)S-TBaKQD+motwQ87fH(@r&;L!^TrZOAP zSj72ys&yf$XYyPH$U32vqUFFeYns&ILrx$INy*}oO5hAjY@J0@2WD7VkCDO$#(^^p z!pFsdnFis*;=n9}@KJH#ERCo_*6eo$8#pRTGL=jdRgN~Yy`boL^a83F6s?Y~rBXpr z>TTh%MW^40O5**%Z$%?pH2R%}MWNqoSoArjVNvG~0;_&sqax>sBAi6DBIisJMWpd_ zW_LG!&c!U(jn7MIe7+VejW5u!G`>*7()c0`OXKGYta2u!ar^Ono6BvQ9C|%IislK* z!|lf#35!Pd<8!54o^n6lEE>r%*f%x*9Jt7SVziXY!|f+#3M@~ypI9QWJl1~VQv%B~ z?Qdy*d7%BRS(IiuPqY@2gR=~XNh*wvz8`-D`?X#!v($zL)YFC7x+s8FA#W-z$*oo zo^827v=CojrnQrvwQ5*;wpGK@vuzrdo?WS7>DhJ-OV4&VB2#*HwUn!zeh84@=u(?$ zM%pTXLsqa~I5`cDKAr5UACFCgwN*rz3X`k0mRxEkPe_A92J*nh9?k>N7#?kN%)buC zj1CNV6!g0ttQkD}1ag`nJop4MM-ZNR0$D*Mi>FsH9C=d6ES`5B&c~?|B&%$0$BD@y zM!w2p8)_)7fZ7Dci1qCfAj;*J@?O`Ef{8n_#kj1tkr<;q7yUH&3*=msf3A_zUolJB zlh{V`^ATi)^8KvgL0x77T;5<%ItQX1f$uCSTkf!IJBNUCoj?aL(AXQ0qZp?JVKTrL)NM6tHjM zs<<17*GNG9C!6T!T!Y?QUjpT4U^#%x*#l&;(ZxzaF4*}giCW(ULy#L~T+aVW;kNs5 zXF1jZFyw(V2bcW|Aowpis*K35fQ$yfhbH#>K+Xifw*&1iAbd^pd?IPcVECT!Y9a+d zt^%+FSF{?4r)ew+xuPd}bt}lbz;^>Ki_b;x0Pr~?+kiX-;6WlAfqV=b_S4xDD5C+0+2rd_&t$YAb8_I{S`>y9w6A~Kg`?Q08gE;r}{o` z^8+vOwjjViI%+Kp{F1jtfnW26ycg*yz13#iP;a`_eoqMt?vPNiU_^+GJqcvp|^ep;HO0BtzQFphX}oO z9KfH5&|67q^i~A(Y6zEjs|Y{=5qfJ7fC0GvVQ=j*ZWv&UKj4=b@!~E1BBvggc*|q6 zl?QnhjJF!W*+6c3%j0p9kjHJjbq+Ys#wFgm5Wx9F=&khtRuiGOt^u%v2))HOv~D9p zZ+!*8mx*v}eGkA>xWrpt+Zlb@7H_=>z8~NcZyf;eDiM0?Ab<`c^wu8${GJHC#YN<= zMCh$7AQ`yCTS;m3RwYWyN#WQU0bm#rdW(6H{M73o9b2y(Z;dhD8u(cbUyiL=Xkr>J z@m5E2YPet^j8%x#=yB$4NpSxA7M9pPjhGTYM?@79#Z4!vG#6LT~K@@FWp> z>lFYm6QQ>b1Lz<^Z*f2TJ}&W=*LFsqw#8c(Bz1vTyp;|l4VQSU3_uAHj;)~pYKYKV z;{l8%LT}9kFoOuam6S$rosUvJ3=?nh^`uLQaBOV?zz1#ru(yUAZ+T;Dumm2xbv3SS zxWrrI44b7qNIN;1W$Xs$UF4>>JRUmOBCzCqiF^c|ygDzA6JyM1;QLYgWT>iLbo2Gy1eGz8VL<({YKfrU7UqLSM}Tz!#>) zSIq#H5TUO&09Z$azS;qRCwbzlq%`{KCY0_Xg}%B6z}-YRvK|KT5Uzj3S1N~(6mwg# zLn~yCo`oNz7gjODSGmhkm`=lIEmc-}(OD={RX3n8&=4rKnJ2qA{%Qz}C2eksK-n;0p z=(6$oHoVB!;3dpGzCf}@uP}cRoX_KuF#it#ZxCUa^V!K!A`J6C1K@k{66R@WDuheI zyc9qo5r%mUfI+zW(V<@3Y3f~Q7?>GwB)mt0UWZGbo-4eFU%g5FB{<*0CBFI< zfFnfctK$IvNQAzM;^fr9CB7;FP(XxJ(hvXxiO^SL0i1?QrX;V$Sf94VXL0aN!6iPM z1>j5~oRSs+SU`l!$5H^zL}W?=u#O0Qb|rwVMCh}mH2UlYlwMB?eRc=|9t7|J zu76}o$`9Tfa23DPAT`Gtn3)%|Gs`k_tlV&R5o8ZgvDg$8!6*hqk{ukRX5q-gDa2ws zAvQ5KK1MW@XW5yt7z-?*;S5k`<&BGt!3k3&3vysf-pHF)U=1!ISIiMn>3No}IbP~! zpl-yIJPs8zYpsS7Y0McP8(cCgj|#?%KR;E3WI380v{`w9Vuc?PYt51cIVe=QV|uaW zp@1DovgKRWtURh!Pz|-}&~RZbI;C0qG+Pvd#d5>sFV-Lew@7ycB3WK)IwCD#%`?(q zu|Cpp_SD^Hb^_0oy3NaiN~5mWn*~*-L&*a7Wb*IOMygJw^)O$*z7$iZ|4At@<=-DF zJ!8btkrN79Q(}w+?PFRhT!Y?n#~2X+=U7pRC#RbQ8FaUW7!@&wn5Hw(u!8pBz)=eW zsha}@nIavtKvocr?X5(1Zwu#m0g>wkL|!t=jf?Y56XIejQDC}kd|sGpf$J^kP?XwA zL&+qJk793NlqAK&sS-hYh@Kvl9AK|j>kSscOfGR&x& zEEry!43BPc=ob>wlQm>|TuZsL^2U@<=6`=E^c@2sFF5sJz!->}EJ~x^P)XCHDQ5ba zoCeapsLk-AHZvJk=sUfDEYF+Q^w7!f8MQgR2VZWFp@lHVU##jmwDS7|dO@mUI?xNf zK<_mOXv*TGk|y@COHOG5ZI*sa^p^FWF3Y`usxWR(+NZKsnbkx_Q8ElMqxK#z7!#?i zy<#8ZqMNG4c%ve;8MoSU^C)PJA+Oc!QL=B*-)wJJyeDmPbEi& zjGgWn_aZLfsF8VrqVG&aZeXW+7fC^?{gE7uAt$^V5!biJws;T4UL>sN4Ub8D}${% z9IFndu1tA)l;wM4sX(H#IvsgWbruE>W^_h%b%cox!urg-3Dp*pB8h38-<0&!t{Sg< zYW47vmQj0QQMb}%F>4_#Tu##=5tyX{#oJ-Z%9+-c)((_Z@h>{N=vl-x#ipypAi8Ot z2K89jXXUxoHiv$H8OfqQR$#7J2)tw%SBC~;MUsg+2Gyv>AnKU3YPCb+;0mZF=7!$Y z!3(NSJ0I<js?V*QL4buiGT<}>|H_gAE@&9y`RJ##4-Y{C>YgDUzxS#f94H^}R~6n5E=+OqrrW!2 zidP>KztC`ScG8dL|5lRUJ7)4;_~>0}G)!r$TTvXe{*sxYEPR0AvOcwTZ5`fqtJ~7D zYK^MfvUyY8npKz7tysEr1paUP=FN5HpR?qvgI0{bjg-gYg$IES_k#Q##49>Ki}N=!8}}&Sb)bs;4-iTF3gtR3~kUW7j(UR3I31anutCT9X``w_2wX zH_-BVo8*+$Io9McPGKF1p-EDRuV5{{LN1!eEmSw!$)4;)tDRW2GjNhK6p|-7Ij$3S zoq`cgTCEeE!jB?u_;bwwUai<$*pyAMo^Ba7i;JyZI;Ek@{{pG|Gug?nd*cI2ov1XQcN+(?&T~VziU?H7C^Hi9ydeyT&kq zW`n0Vxy!2whbB3gV1t3sS@`>+)COO{5WgLM!R@)cfh`kvn1yHrmf{Vb=Iv~WFle3D z;8>ArgyjGEM(s>A-(Ky6207_xJE5;S=_~ks`U)qV{jj7<@bD*rpnrIZY$6|40VrP) z*9nCl&^B5gTJEHW`Z7*l85xtWqNGzi7;YO!uvNQNB zC+#c-5S$KUg{C;p1y1G^rw~DW7J~#a9y@2Y7bp^)wT@Hogc_WD#0i2A--}td7-|J- z;g`_>Yz)vLyklgIbaKyiV)Ya?c(Rj!uaoII`3!kP!g41z-id-dfbpJ-p)^s#5DH4b zPjVt7sShYoh_f1+O73SJyq3^%|54>%$C zzzgHFIvb`csdLI*_8w6Rljpn6aEwXU8PU%fwAh(B$vN9~=3$nAb6lsW-Weu#Ew6LN zE_SjPqw-_~hcke6`Z;;7Q(o&#!fZ0h8CmNLt91s|I&Q5~_9(#h!OWKTiy zD91$w$SmXyGi{xdjrpj~NuPb8li82HF!M$_CjS9W?qr%dI}S!xkQqH7svwS05)6GE zf-xBjmEU@FyUv+Hz14~FK1m!Jgq9JawN6Hz_#Cqx$GUZkEF(~hy~0$<*`HALG$-v= z2SX$}rJ+9qHeByyeANk0b}|MyvAFZU+xz<9IF9Sio}HcHf(8XZASH;R!~qFX(3!vj zAVgCNA>o5xAOQ#jK#6i(wOH&9fQ=TroBg0jTbAt-lVVc5ME**Y#5R$0DskoH6q8bw zc_+D|`-o5R=_+?uzAB}n#L7kIQeElloQv({SezwYUt>DcFNLmQ>KonaPg8-U&)E&QQgr_FPmeGbewh9vZ$4)iQmBDDAR)KgB! zn6np3F$gIRIWTdQifRDSpdX!ac0qE z$77V348%AE#2(W?jm$uIGx`?syD%7_Ck{DdR27)y)CZm22c2#hi?nl8aP}og;GhlF zn1MbII!7QjZQ7krQNy9L{`8=;3hbv)Bn?$5gpbm_*XgF4*m}DTLc44X{wNgMzdLbY z7s^UIX$q_jI&*{0W5`<3M1Mz!e;!mnWdZ*?2#`h-d8XUzbo@^e&43aB>n+)u*rMHSQx$o+8ARMG35u+Nv=yV-(x+k1ADtj{?L5ecw?CNuN zr=B7%bl0IC0vC!{O}aBOLQrqmwZ4VGgmWhhIZWLbNx8@rqAG0h2H8gd^E|kNiIFXt zx%7@cSS*y1c215tU10Ov|KeN6yWp+Q>G(8m`<;%j5~thkzxlZ5paa?V&vPHP+%qWB zboTAcae=#KvUlFGQ!r4Q+!0jK#m<_Gl-f*nH8t26KUU$0BO7=to zPV(0w7=2FTr5=U8F8M| zd4Hv`X1wNf%`c9s_e+4OWU^Hpzj@!J-ZvHa{eE>doAYb$hZ*($<|4KAY}LX$2i zEwkpAFx$YaWVKPs)eGfPO@r74k;@i~1kn_w31JfhwM!;fEcm55qLbJ>D=iENnm{uo zgs`uHLwNU5Y|ewpVXd%HDf*fRq(%8T6kX4j>QW+ehZq!Yf>g5RL+2>3{FI-oQ>=#Z zy3umgupg?UjxCffmUCIEAz&g^&+C~MO;w#T=2m91YkxgqInGZ}pLNf;&$qriZSK!F z=%SeJco>C_IrrliR(_Aueh}TrnXoa%*f&JuQ#(ynoJsq?sR$;Su>ak&aE!V!>)KCF zLm%dAXNMi3P0)e{XN^ewq(i2kqC@F{kI#z0QOC(`oqDX{U!{Iv$`o zS=SgY&`Kul?>vXO(;E8inEjhLf7tOE&~Q@w^$hHou|pVoV7Orfcw+Xx&<+Opud`2! z2^Kut&~H0@{@$cxe+e?W_rs1`N`se<{Z7}bWEtC00nf41XV1c*%<~A1StyA-opkMA zY`oy?IzkQ+h8`sV_x<~0zLHHN_wRZiO<8gzzcXx4^kcn1`*QG-Xjf}u( z^sv>XrKu3FEzBlTM9e4%JX5abi)4Vw$cL@7wy9=8@W)|OVKCqN_-zfQjhRHxSuvLf zUF{o*GObvOCX@ba;~H3Ca}%o(}h z3}99RqxFdMfiup55$C}RY>(0F$7$}`HUaPSF|uRu`CxS5Ut$W-^@`K^3eDCBzUk~b z=A?V+_n!UEt`p8(4>(U%d z_Mj;8k6G%5v44WaFVZ;9Cu=A!AbNBhX0K8QujF=rT-8k2L3b=GhKhtI4#(E+f( zT~=u0OSG1?cN-RP)hYa)#ossZM{nVJ6@TT##O;&)rLt zTDmdLaqUrTd2T~8%+A`-Sob4%-#+L5`#Jr6Znx8APhj5XxVv{cZQb2Fv4CPZotUV1 z=-6o35Qn+u3Q~3*L4)J&4C@*Dk{EH_!t~oMUwDU;l)Kl%4js74g_h zNn8udhW3nw1iNj#cL23JVAuKH>)P89iKU3R$k4W#Vqrn)&@?yz$=-+LL}gBIOke-z7AI)0biibL)v>dB2F_5AaXbNvq3@p^taq3iiJC(!l0F1T-paGQervk>l|07vzFo9ccy z*VEqa?cLK)>^cv){g5E^;Lo0;7Tag<_E;URg6D`jTwxLJw*S=d7*Ysn4bA0l`%iR| zUgDD)__yE^ky7kpr9l1v%f~J5P?PAQ`di@+tVI3d^;xJ_Ga3)_@!-vc#^f0{O>X+)aF!90ILnNV(2Yqxy^;&OJf zmg>It&1ZqQ3wlIa?AX6+Lz1rjN6&ge2Q*zTesA_kCdXp3?7w)Y}w$tUr=j zu%JGWT?e>2h#mfd)T=)#M;kXV6*i1 z$c=|OVc7ZmE)he)50`jMz=2$2_+A4C30ex?qME|>|Ka8SxLTTJ`wumhQ8Vbt)QL=+ z1x;q!Fn$jbv~E*0XO}iumGU$A%3F9XC>=az##cZy_`-bVnQFG8@`cq^l_3;9@VSbE zD-Ene9U0Bk;qRBLbq^4x4j;vG3|4YV&lK|Yb(Qh!<*d$>!=ylMWG_(?wOY;Q)WvME z;p<5HjQy#(^WN0(hrHpT!I8mXZ)9j>cxZTd$Q#(mRT^VC6yaYQ$Ubx!2)shMkgE@5 zi-olkz+$0ZFZu(1DPPDEoLwo56)Q(Zy@54vV0E?X`?My6$K?cOYnMy8^=i3PZqx=E z;Iot;sApG-SWL@g)~cEE>S~RvR;gF1ZuKly7U}gs;86<(=`JFwTv5d`Nb(O=9_VbQ zSg0XXLbWriSCyTwOY)s)k6FP35l_w=nORgeUCMht(ObZZjq#5pjtwTOiewrUPg)O z^>VGAt~cuCY5}a)bR9A(Q>bO~g|$MRCVv;HCL^lkuVHEIqOXX%Yz~W*x^=7mMWkwg z6H_r#C|sS7g?cqRm95ki-hw+_S}mhRv$dKJ4Wflnoqq9h?Kmw^FP4yS zy)4DdmFp*v>H4l&2GeyxVmNa)mSsl8G8xydK9P*G{?sdA}aEf;6APy5vD zAP5B)rlw2iiG_T&?rY8}jrvhdh6N!EmL~8707+#HcqY5z7i;Pw3>27zykHeFt65^! za4?1CZw(lYoSL7QTHqCrS~OzfEjD}16Zb>Tgl)9 zaFSrUScKgzK3?&w{9r<7GfkqQsd=9k_Rnl>cbLXGZ3piBIwahX8L$j zd$@74)eUe5A%R6H9qFDd)YoShYDRV02E_Xun9$nFN~H77H8$9;NM+~B+R9+m@G;U% z&6Tk@ihN{g&X)?Smow9N090-8Lnuw*WER~#KT|G0-M|Qoe$8WNL>Lpzz7bMMEVI@# z7z@|n$Z&F0*_adJbGk%Nj;0sR38&?HVYQ$i4u$QR>42z-PG}Gltklq@>cv9N*Il?; z=1vSF3Pv;ZE<>|!o7t!mLjfl|hG49j&cpPg;u1lYQ-m{J%KMizI@SqwZF1{=UMxzO zU(}Lm&o}B*FD*_z1BR2bdyEF|63x=_RukDolL zNZ{~9TiFNQ7-Vl1DOl}t4T3YH#8MTbD@=D@S})4t6SJc0BizBxm&p65_+o<$4<}%9 zL;)B5I>w~tU@Jxyf|;A-p$S%!hGp1EY`F}cd8%5jR94uz>Fe_6$~;_X*)GAAn_?e` z#V4wd_Jgwu|Mjv_VjeDMF<7FEAwojGrfao^kNasju|>bSR4uHn!M8$+5&AhSV-NMW zyr0wRU8zaSNl6pcwFV8+nzgW&ld0DVVd}@-JuGE(W#b2sH9M*rP+A_q;dbOIm*M7+ zf0Gdx34&r03N^oV2h9CDUp}xsl zd%UqxStQMFKvKG}W&?yelOE@Eg5!SCuZzz|gI+UPZoL2}iCNZmhl7F2%xDW*+Tsxe z+@di`CFtz*+|=U>3n!+Q6f-B?j(xDDvMyk@wl>4YX0lLcJGnSJ#ohyS5gOSXRY*%0 zD|r0h(ulH2oGrr(FR?*_o@)YJ@H`yzjhYgrX!0!&gvftE)56n-7Y^5gvVzyu!dj#1 zH^st~FALq-srhOFvjga`E*l!cJ*ml~cBw#1`~%F9{Ax|1gbZmbmC92v5d>^{v(0p; zVamFlq}Zjxh7ScZmJQtzj-J*UO^dTElf)?01hqLwdgP^$-Ol9`{G zm^v|gVs1&EjqxzyllKD30YNx}AXr1sHXc=NZ8m#J>ruo|>Io-H8?z_&b#-%1WlK4~ zI7uEyo{Sr&!5e6Rh{p#8Psr4Ul{0vHNJ5vU6D1?Pgq&H0(5yP8D3gB5$4yQWCiSg` zgboVEwG#!=Gz0YlIEm>xrb@v;D=OFER_2KT?XJND#JK30B99qiiJdR4fQmG|u-Y6; z7BQQ_L>FZ(VA=s&gV0pDf~nA&aK&v#TBLiS5ISDo$QDXaBmAd4x|9g7VJ4^|k#^MS zdFo7a>lLg6)L5915awI>)pgYq)aDeMmJFcbC=mrO%`8sRtT;!a%|KPL5`)TcSD;EL zFgP>XauOpZdBNvJhd{%{QUvoNJE;%Y_*!b44*NtP#Zlb z!YHldXs{56t~t#NY-RCa|8p z=!0X-+GyP+I;SMp6N!YuFneF-uw_ z!y`ivwOZ1;?HbnOSoFeE`Y|kz3=hYav_eY^aCCJor)i94HJzk+E-9wMGmH#)lL48A zId;%1)p8wPEZL9dLyojO<4Du&q?X3|MY)!)*MdEG8Qy<~{7|!+AE4;ZyDA4L9W^Qk3l_M+#<=5jwL z@9IwCHU2-N4j;UpOnH`1`@`@+$5NsA_QcTjWcyAlm)zN7KmUpA$sW(*O&EA%tOc^J z`F2YZPmku4$vu?*&{6t5dOR_FJ-Pmt1%NiR1y@43JLMI$Nu0)=Pj>cz{;_d{#+MOV z&Lfn+gwRXY4a=Gb?~1mo;RvoWB&L!2`9F`F=}hV)S|hb~itlCVnGnhOgtXTdG~EoUWZk`&V;-k1nTHpp+;Jg;NJ6hnnx8Ts=kuvSJ zzrL=vh525HfTS6go$55&U@b+!#0Vs&Qu7ksXXT0dAp=TjO&E=k3dNg72;-8UzVuns z5rWT=BvntMkxKULu@;hhy!PM=Oz!>^?eoMHP1;FG7h_2~xr0R$_Mp3j$@TE(k>cb$ zB6mJU&QqN`gQ_a-LO6^dRaaDXHx+^*sqO6{`0#aghYDbi^fL^*o4-9m^@`%Y*aG)L z3*7T9aF@5>=))sX`p<1mgL;J1*lmByO>RDBLY)M?;+oWZl? zQZk^XR_rjq?b_#Of)ifzYo z7*&bn=%gHrq%YX46)gc86G_@bNtd+R;IVi#u~D2z4v%u2SKIFhBw)1Xg_!mnH&$uC>;q>YF&+nb_M^LS%ccw9w$R<2^eN?x^Y zTGoe?H?5m?lZeEgL+rH#HacHRaO^o<1m|3!oRnojBPGis(C;Ly3(0qMmPH;)*&nm6>k;%PF%EGI4T?Y5jV`1?8d?(xm!n`|kPDgT zm1|is+&NfnJBC}pn`x3U+@fm3Gv6q^CAB@ks1Ixjx|?$o#Ja?|n-fuRGzvZt1$Rfm z9U6>QRw&zT--A%K&~8|7Qv1AVy=B=Sg_Pd1-Udukx`~*Oln69ZqA*G6O^stIMQ|de z2u`FF!HJY2IF^!NNEWf6yZL`6MM@OoZvOWu_@ATTe~N;yN5NM#7_F?7DN;(lZCy#Y zn}5oN5G_xjo${_Lv~CdIM!G`~N##o7N&=Efk?urr=kV!7p%A27P}@m&BIy?KA~>NQ zq=VrLQmGwVf*8e)lT;+e-TYz{d?5-x9|bQ)!9p11x(ZnqNt;%jD~TJ_b#EkIPGFna z_2kQmn}A7it|2C*I0PESp)ghHhQ_htL~x=w5u7Ma1Sg6U!Li~9h7>0jbT==Y6vd$! zck^r%d^8FUN5Q@*c((?lm6bA$;@nKU6;>Pqjp77hRvdyzDsSO#6eofc#fjiVaUwWT zoCuB;M=+!wv7o!@o)*QS7)R-6b<6eofc#fjiVaUwWY9Kn#{#DebT%hRGb z6yt9GRuufzDEN<~;3uPCO@qErVZ96#@$?uf+wTk!%^^16xF+ zjMf3nCFiKpjCD632?GORzzYN2VZhY@Q32_cXnQiHYqJe*7JDUJf~mf?w?ju!;iJpw zIm>zOH~FIOHRH>nJ~O^-dd&DTiDQ{y?kxcUJ79F*1iSaW_;$JZKfLEN+^2ejj0|p(gzo|lDvY29$wI+r9Zqc=KU<> zVO{V?&L3YH{5u`mP4hw7AC>hVPtn1ng#SNPzkR7gTUTCbxe}|x19h{Q$%~hR5XSHT z-V20Xjsr+?WOTs1V5n3sVaH@~)x3Ym>~9|kBJ`@KIYw=cWzosl@FCye0BqzGS?mZI zR@0kjY;&O_y5W;zc*0MIYQrdi%_lhk%;GYFdZQbq4~~n`0ydVHq3&|E4oQFOWh=ZJv&Cg& zovhVmtBzJ^(C@qj9`6f}T^8V^`pX~0(DKB9V!cQd)#!HV&Fi{MCejnUFadcyM)6Dw zA%X~hTJQwZMXzZi{JP+eG8XS&6#S;(X9Pbc`1b_=5y77p{AtT$jCmRTg5a+RzR0oo z4w>M;D|qu2x2)ig+8#pqLbi0E62io1-t`ErK4S5WzZ_2Z*S2|#F!-Ni$Wm7)G@e2H zT*Duw-_xe?$6Our8NpxZ(D*l@@^rn3Kb&G#-=FjdRP+3+)F$pkXK1I#n3+5IrgXUp zRgCqoe~Rc<2x@=wCRE$Vd1u#PItB|El1P#*YgA4Z$B`YIrrK;J+_;qgQ7HKXgc! zX!Pny!9OebmxNA1@cjci{j-9v3H~<(Uk6Or6~XtUJ%&?)|24sTLmJ=5vH0eV;ExM_ zNbs)##F-HHwrxpAm!JGPa3jR&O8-Df* zJ~g5#824l7X5_E2-=jwDcz0q@nkL$TP-fid`JvaEco{yi=^o^byy}j}wjqemfMsGhS z_(Os>di$E-O?{U|KHra}uL{2JsHSi1-gAOq7QE3PqgPjBc%xT01aI_8%X#a#c@1{a z!b^;r|y z>-2fS(|Fj4^yfv-1+9)q`tb*J`qw1lF~KK~XuP2_3q11^<1=s4%Z&E4(Ag0D8={}4 zUiYBB`@m1!KmMeoKYdJ>OLm#A&j`NnL66~e{>7JufbWES#I`08b{KWm$S5YLErW|VWDs2 zqp9QLRlrkyyRw=-QKaihp%b59_)G`2sd${u{CpPmWjTm`z9tbLyG6O5l5$OdH|2g_ z=sbJSV+#LT=zIq0iT<}l->wP%OM+M9I=!*CH-IO3#_Rj9B>meW|8=3Gk7}1y-zB{< zl-`^hKETLfK8VL5+8o(Dju<)#*F5W{&&_daI@A_D=f{Ws_q}p^=uN` zdj7=hhv(y5vSrX5(IOGaX#?3eY|hnaFtqtx?{b$jcERq~h#**xxVEx`G~iNpO9$J5 z!#jy(eNHc1WKPXIJ~=Uy!BL3C6HA$;iOHE0IB98)tl)TRvAlwfkh~YsulDhtXW4!$ z8*StJx0_7Rw)p@GcHsqwCb3!cQk}PJHjjA5&Mvmx)611B`1w}bl(+8h4ip~MTB-5I zN_0)L198hX%+Q(J@Xqd_8ljD$M6OvsiJ)ztX3KMPLv049{IYsyD(xBPn(IB1k)5QZ z&Ou4xEuPIYowVU{3)8%Jl*?#lH(Of6yNv_d(in99IJ9$CZ)7#x>kZp#uy%O^yW4TE zSM`0}g!o|Kpue8M*=jWPV6{xuq=dtRN7Wz!YH$t5P3dQ_f}?wbB(lLgokc~#II$_= z?8*umHv?7ad~1-9kGDt^ZK)s3l{ffYiQtN5Xkrap*#)ka)*>+F=e_t6uemh_`~BVT zMRpomQTNd6wghcA=Q+~*KUVN<^GtA6o$nhRz$3U!sHCi`#X^*8_|W7`-)Uq7y5Eqn2qQ2iMUZd{f=Hnp8x*=ZJz@Q literal 0 HcmV?d00001 diff --git a/ME_2150/microkit_tutorial/microkit_tutorial/tutorial/build/client.o b/ME_2150/microkit_tutorial/microkit_tutorial/tutorial/build/client.o new file mode 100644 index 0000000000000000000000000000000000000000..1f053e9f277831d38d26b3ef6cdaf9f4ecdcd0c1 GIT binary patch literal 21440 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 literal 0 HcmV?d00001 diff --git a/ME_2150/microkit_tutorial/microkit_tutorial/tutorial/build/loader.img b/ME_2150/microkit_tutorial/microkit_tutorial/tutorial/build/loader.img index ba63c958d869740a7b4b15cbc221cac82560ff42..6673e94de5df6b32fb6c78c6dcc220a973a93c32 100644 GIT binary patch delta 9124 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 - + + + + # Monitor (Initial Task) Info virtual memory : MemoryRegion(base=0x8a000000, end=0x8a008000) - physical memory: MemoryRegion(base=0x6024e000, end=0x60256000) + physical memory: MemoryRegion(base=0x60256000, end=0x6025e000) # Allocated Kernel Objects Summary - # of allocated objects: 23 + # of allocated objects: 46 # Bootstrap Kernel Invocations Summary # of invocations : 9 - size of invocations: 576 + size of invocations: 616 # System Kernel Invocations Summary - # of invocations : 48 - size of invocations: 3,232 + # of invocations : 84 + size of invocations: 5,944 # Allocated Kernel Objects Detail - Page(4 KiB): IPC Buffer PD=serial_server 9 cap_addr=8000000000000002 phys_addr=60002000 - Page(4 KiB): MR=STACK:serial_server #0 9 cap_addr=8000000000000003 phys_addr=60003000 - Page(4 KiB): MR=uart @ 9000000 9 cap_addr=8000000000000004 phys_addr=9000000 - Page(4 KiB): MR=ELF:serial_server-0 @ 60247000 9 cap_addr=8000000000000005 phys_addr=60247000 - Page(4 KiB): MR=ELF:serial_server-0 @ 60248000 9 cap_addr=8000000000000006 phys_addr=60248000 - Page(4 KiB): MR=ELF:serial_server-0 @ 60249000 9 cap_addr=8000000000000007 phys_addr=60249000 - Page(4 KiB): MR=ELF:serial_server-0 @ 6024a000 9 cap_addr=8000000000000008 phys_addr=6024a000 - Page(4 KiB): MR=ELF:serial_server-0 @ 6024b000 9 cap_addr=8000000000000009 phys_addr=6024b000 - Page(4 KiB): MR=ELF:serial_server-0 @ 6024c000 9 cap_addr=800000000000000a phys_addr=6024c000 - Page(4 KiB): MR=ELF:serial_server-1 @ 6024d000 9 cap_addr=800000000000000b phys_addr=6024d000 - TCB: PD=serial_server 1 cap_addr=800000000000000c phys_addr=60004000 - SchedContext: PD=serial_server 5 cap_addr=800000000000000d phys_addr=60006000 - Reply: Monitor 6 cap_addr=800000000000000e phys_addr=60008000 - Reply: PD=serial_server 6 cap_addr=800000000000000f phys_addr=60008020 - EP: Monitor Fault 2 cap_addr=8000000000000010 phys_addr=60008040 - Notification: PD=serial_server 3 cap_addr=8000000000000011 phys_addr=60008080 - VSpace: PD=serial_server 8 cap_addr=8000000000000012 phys_addr=6000a000 - PageTable: PD=serial_server VADDR=0x0 11 cap_addr=8000000000000013 phys_addr=6000c000 - PageTable: PD=serial_server VADDR=0xffc0000000 11 cap_addr=8000000000000014 phys_addr=6000d000 - PageTable: PD=serial_server VADDR=0x200000 11 cap_addr=8000000000000015 phys_addr=60258000 - PageTable: PD=serial_server VADDR=0x2000000 11 cap_addr=8000000000000016 phys_addr=60259000 - PageTable: PD=serial_server VADDR=0xffffe00000 11 cap_addr=8000000000000017 phys_addr=6025a000 - CNode: PD=serial_server 4 cap_addr=8000000000000018 phys_addr=6025c000 + Page(4 KiB): IPC Buffer PD=serial_server 9 cap_addr=8000000000000003 phys_addr=60003000 + Page(4 KiB): IPC Buffer PD=client 9 cap_addr=8000000000000004 phys_addr=60004000 + Page(4 KiB): MR=serial_to_client #0 9 cap_addr=8000000000000005 phys_addr=60005000 + Page(4 KiB): MR=client_to_serial #0 9 cap_addr=8000000000000006 phys_addr=60006000 + Page(4 KiB): MR=STACK:serial_server #0 9 cap_addr=8000000000000007 phys_addr=60007000 + Page(4 KiB): MR=STACK:client #0 9 cap_addr=8000000000000008 phys_addr=60008000 + Page(4 KiB): MR=uart @ 9000000 9 cap_addr=8000000000000009 phys_addr=9000000 + Page(4 KiB): MR=ELF:serial_server-0 @ 60248000 9 cap_addr=800000000000000a phys_addr=60248000 + Page(4 KiB): MR=ELF:serial_server-0 @ 60249000 9 cap_addr=800000000000000b phys_addr=60249000 + Page(4 KiB): MR=ELF:serial_server-0 @ 6024a000 9 cap_addr=800000000000000c phys_addr=6024a000 + Page(4 KiB): MR=ELF:serial_server-0 @ 6024b000 9 cap_addr=800000000000000d phys_addr=6024b000 + Page(4 KiB): MR=ELF:serial_server-0 @ 6024c000 9 cap_addr=800000000000000e phys_addr=6024c000 + Page(4 KiB): MR=ELF:serial_server-0 @ 6024d000 9 cap_addr=800000000000000f phys_addr=6024d000 + Page(4 KiB): MR=ELF:serial_server-1 @ 6024e000 9 cap_addr=8000000000000010 phys_addr=6024e000 + Page(4 KiB): MR=ELF:client-0 @ 6024f000 9 cap_addr=8000000000000011 phys_addr=6024f000 + Page(4 KiB): MR=ELF:client-0 @ 60250000 9 cap_addr=8000000000000012 phys_addr=60250000 + Page(4 KiB): MR=ELF:client-0 @ 60251000 9 cap_addr=8000000000000013 phys_addr=60251000 + Page(4 KiB): MR=ELF:client-0 @ 60252000 9 cap_addr=8000000000000014 phys_addr=60252000 + Page(4 KiB): MR=ELF:client-0 @ 60253000 9 cap_addr=8000000000000015 phys_addr=60253000 + Page(4 KiB): MR=ELF:client-0 @ 60254000 9 cap_addr=8000000000000016 phys_addr=60254000 + Page(4 KiB): MR=ELF:client-1 @ 60255000 9 cap_addr=8000000000000017 phys_addr=60255000 + TCB: PD=serial_server 1 cap_addr=8000000000000018 phys_addr=60009000 + TCB: PD=client 1 cap_addr=8000000000000019 phys_addr=60009800 + SchedContext: PD=serial_server 5 cap_addr=800000000000001a phys_addr=6000a000 + SchedContext: PD=client 5 cap_addr=800000000000001b phys_addr=6000c000 + Reply: Monitor 6 cap_addr=800000000000001c phys_addr=6000e000 + Reply: PD=serial_server 6 cap_addr=800000000000001d phys_addr=6000e020 + Reply: PD=client 6 cap_addr=800000000000001e phys_addr=6000e040 + EP: Monitor Fault 2 cap_addr=800000000000001f phys_addr=6000e060 + Notification: PD=serial_server 3 cap_addr=8000000000000020 phys_addr=6000e080 + Notification: PD=client 3 cap_addr=8000000000000021 phys_addr=6000e0c0 + VSpace: PD=serial_server 8 cap_addr=8000000000000022 phys_addr=60260000 + VSpace: PD=client 8 cap_addr=8000000000000023 phys_addr=60262000 + PageTable: PD=serial_server VADDR=0x0 11 cap_addr=8000000000000024 phys_addr=60264000 + PageTable: PD=serial_server VADDR=0xffc0000000 11 cap_addr=8000000000000025 phys_addr=60265000 + PageTable: PD=client VADDR=0x0 11 cap_addr=8000000000000026 phys_addr=60266000 + PageTable: PD=client VADDR=0xffc0000000 11 cap_addr=8000000000000027 phys_addr=60267000 + PageTable: PD=serial_server VADDR=0x200000 11 cap_addr=8000000000000028 phys_addr=60268000 + PageTable: PD=serial_server VADDR=0x2000000 11 cap_addr=8000000000000029 phys_addr=60269000 + PageTable: PD=serial_server VADDR=0x4000000 11 cap_addr=800000000000002a phys_addr=6026a000 + PageTable: PD=serial_server VADDR=0xffffe00000 11 cap_addr=800000000000002b phys_addr=6026b000 + PageTable: PD=client VADDR=0x200000 11 cap_addr=800000000000002c phys_addr=6026c000 + PageTable: PD=client VADDR=0x4000000 11 cap_addr=800000000000002d phys_addr=6026d000 + PageTable: PD=client VADDR=0xffffe00000 11 cap_addr=800000000000002e phys_addr=6026e000 + CNode: PD=serial_server 4 cap_addr=800000000000002f phys_addr=60270000 + CNode: PD=client 4 cap_addr=8000000000000030 phys_addr=60274000 # Bootstrap Kernel Invocations Detail - 0x0000 Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) + 0x0000 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000) object_type 4 (SEL4_CNODE_OBJECT - variable size) size_bits 1 (0x2) root (cap) 0x0000000000000002 (CNode: init) @@ -79,9 +104,9 @@ cspace_root_data 0 vspace_root (cap) 0x0000000000000003 (VSpace: init) vspace_root_data 0 - 0x0003 Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) + 0x0003 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000) object_type 4 (SEL4_CNODE_OBJECT - variable size) - size_bits 6 (0x40) + size_bits 7 (0x80) root (cap) 0x0000000000000002 (CNode: init) node_index 0 node_depth 0 @@ -94,7 +119,7 @@ src_obj (cap) 0x0000000000000061 (CNode: system) src_depth 64 rights 15 - badge 57 + badge 56 0x0005 Untyped - Retype - 0x000000000000001b (Untyped @ 0x60246000:0x2000 (device)) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) size_bits 0 (N/A) @@ -102,16 +127,16 @@ node_index 1 node_depth 1 node_offset 0 - num_objects 1 - 0x0006 Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) + num_objects 2 + 0x0006 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000) object_type 11 (SEL4_PAGE_TABLE_OBJECT - 0x1000) size_bits 0 (N/A) root (cap) 0x0000000000000060 (CNode: root) node_index 1 node_depth 1 - node_offset 1 + node_offset 2 num_objects 1 - 0x0007 Page Table - Map - 0x8000000000000001 (PageTable: monitor) + 0x0007 Page Table - Map - 0x8000000000000002 (PageTable: monitor) vspace (cap) 0x0000000000000003 (VSpace: init) vaddr 0x80000000 attr 3 @@ -120,58 +145,19 @@ vaddr 0x80000000 rights 2 attr 7 + REPEAT: count=2 # System Kernel Invocations Detail - 0x0000 Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) + 0x0000 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) size_bits 0 (N/A) root (cap) 0x0000000000000060 (CNode: root) node_index 1 node_depth 1 - node_offset 2 - num_objects 2 - 0x0001 Untyped - Retype - 0x0000000000000032 (Untyped @ 0x9000000:0x1000000 (device)) - object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) - size_bits 0 (N/A) - root (cap) 0x0000000000000060 (CNode: root) - node_index 1 - node_depth 1 - node_offset 4 - num_objects 1 - 0x0002 Untyped - Retype - 0x000000000000001b (Untyped @ 0x60246000:0x2000 (device)) - object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) - size_bits 0 (N/A) - root (cap) 0x0000000000000060 (CNode: root) - node_index 1 - node_depth 1 - node_offset 5 - num_objects 1 - 0x0003 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x4000 (device)) - object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) - size_bits 0 (N/A) - root (cap) 0x0000000000000060 (CNode: root) - node_index 1 - node_depth 1 - node_offset 6 - num_objects 1 - 0x0004 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x4000 (device)) - object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) - size_bits 0 (N/A) - root (cap) 0x0000000000000060 (CNode: root) - node_index 1 - node_depth 1 - node_offset 7 - num_objects 1 - 0x0005 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x4000 (device)) - object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) - size_bits 0 (N/A) - root (cap) 0x0000000000000060 (CNode: root) - node_index 1 - node_depth 1 - node_offset 8 - num_objects 1 - 0x0006 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x4000 (device)) + node_offset 3 + num_objects 6 + 0x0001 Untyped - Retype - 0x0000000000000033 (Untyped @ 0x9000000:0x1000000 (device)) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) size_bits 0 (N/A) root (cap) 0x0000000000000060 (CNode: root) @@ -179,7 +165,7 @@ node_depth 1 node_offset 9 num_objects 1 - 0x0007 Untyped - Retype - 0x000000000000001d (Untyped @ 0x6024c000:0x2000 (device)) + 0x0002 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x8000 (device)) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) size_bits 0 (N/A) root (cap) 0x0000000000000060 (CNode: root) @@ -187,7 +173,7 @@ node_depth 1 node_offset 10 num_objects 1 - 0x0008 Untyped - Retype - 0x000000000000001d (Untyped @ 0x6024c000:0x2000 (device)) + 0x0003 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x8000 (device)) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) size_bits 0 (N/A) root (cap) 0x0000000000000060 (CNode: root) @@ -195,238 +181,508 @@ node_depth 1 node_offset 11 num_objects 1 - 0x0009 Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) - object_type 1 (SEL4_TCB_OBJECT - 0x800) + 0x0004 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x8000 (device)) + object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) size_bits 0 (N/A) root (cap) 0x0000000000000060 (CNode: root) node_index 1 node_depth 1 node_offset 12 num_objects 1 - 0x000a Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) - object_type 5 (SEL4_SCHEDCONTEXT_OBJECT - variable size) - size_bits 8 (0x100) + 0x0005 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x8000 (device)) + object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) + size_bits 0 (N/A) root (cap) 0x0000000000000060 (CNode: root) node_index 1 node_depth 1 node_offset 13 num_objects 1 - 0x000b Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) - object_type 6 (SEL4_REPLY_OBJECT - 0x20) + 0x0006 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x8000 (device)) + object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) size_bits 0 (N/A) root (cap) 0x0000000000000060 (CNode: root) node_index 1 node_depth 1 node_offset 14 - num_objects 2 - 0x000c Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) - object_type 2 (SEL4_ENDPOINT_OBJECT - 0x10) + num_objects 1 + 0x0007 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x8000 (device)) + object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) + size_bits 0 (N/A) + root (cap) 0x0000000000000060 (CNode: root) + node_index 1 + node_depth 1 + node_offset 15 + num_objects 1 + 0x0008 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x8000 (device)) + object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) size_bits 0 (N/A) root (cap) 0x0000000000000060 (CNode: root) node_index 1 node_depth 1 node_offset 16 num_objects 1 - 0x000d Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) - object_type 3 (SEL4_NOTIFICATION_OBJECT - 0x40) + 0x0009 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x8000 (device)) + object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) size_bits 0 (N/A) root (cap) 0x0000000000000060 (CNode: root) node_index 1 node_depth 1 node_offset 17 num_objects 1 - 0x000e Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) - object_type 8 (SEL4_VSPACE_OBJECT - 0x2000) + 0x000a Untyped - Retype - 0x000000000000001d (Untyped @ 0x60250000:0x4000 (device)) + object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) size_bits 0 (N/A) root (cap) 0x0000000000000060 (CNode: root) node_index 1 node_depth 1 node_offset 18 num_objects 1 - 0x000f Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) - object_type 11 (SEL4_PAGE_TABLE_OBJECT - 0x1000) + 0x000b Untyped - Retype - 0x000000000000001d (Untyped @ 0x60250000:0x4000 (device)) + object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) size_bits 0 (N/A) root (cap) 0x0000000000000060 (CNode: root) node_index 1 node_depth 1 node_offset 19 - num_objects 2 - 0x0010 Untyped - Retype - 0x0000000000000043 (Untyped @ 0x60258000:0x8000) - object_type 11 (SEL4_PAGE_TABLE_OBJECT - 0x1000) + num_objects 1 + 0x000c Untyped - Retype - 0x000000000000001d (Untyped @ 0x60250000:0x4000 (device)) + object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) + size_bits 0 (N/A) + root (cap) 0x0000000000000060 (CNode: root) + node_index 1 + node_depth 1 + node_offset 20 + num_objects 1 + 0x000d Untyped - Retype - 0x000000000000001d (Untyped @ 0x60250000:0x4000 (device)) + object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) size_bits 0 (N/A) root (cap) 0x0000000000000060 (CNode: root) node_index 1 node_depth 1 node_offset 21 + num_objects 1 + 0x000e Untyped - Retype - 0x000000000000001e (Untyped @ 0x60254000:0x2000 (device)) + object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) + size_bits 0 (N/A) + root (cap) 0x0000000000000060 (CNode: root) + node_index 1 + node_depth 1 + node_offset 22 + num_objects 1 + 0x000f Untyped - Retype - 0x000000000000001e (Untyped @ 0x60254000:0x2000 (device)) + object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) + size_bits 0 (N/A) + root (cap) 0x0000000000000060 (CNode: root) + node_index 1 + node_depth 1 + node_offset 23 + num_objects 1 + 0x0010 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000) + object_type 1 (SEL4_TCB_OBJECT - 0x800) + size_bits 0 (N/A) + root (cap) 0x0000000000000060 (CNode: root) + node_index 1 + node_depth 1 + node_offset 24 + num_objects 2 + 0x0011 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000) + object_type 5 (SEL4_SCHEDCONTEXT_OBJECT - variable size) + size_bits 8 (0x100) + root (cap) 0x0000000000000060 (CNode: root) + node_index 1 + node_depth 1 + node_offset 26 + num_objects 2 + 0x0012 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000) + object_type 6 (SEL4_REPLY_OBJECT - 0x20) + size_bits 0 (N/A) + root (cap) 0x0000000000000060 (CNode: root) + node_index 1 + node_depth 1 + node_offset 28 num_objects 3 - 0x0011 Untyped - Retype - 0x0000000000000043 (Untyped @ 0x60258000:0x8000) + 0x0013 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000) + object_type 2 (SEL4_ENDPOINT_OBJECT - 0x10) + size_bits 0 (N/A) + root (cap) 0x0000000000000060 (CNode: root) + node_index 1 + node_depth 1 + node_offset 31 + num_objects 1 + 0x0014 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000) + object_type 3 (SEL4_NOTIFICATION_OBJECT - 0x40) + size_bits 0 (N/A) + root (cap) 0x0000000000000060 (CNode: root) + node_index 1 + node_depth 1 + node_offset 32 + num_objects 2 + 0x0015 Untyped - Retype - 0x0000000000000044 (Untyped @ 0x60260000:0x20000) + object_type 8 (SEL4_VSPACE_OBJECT - 0x2000) + size_bits 0 (N/A) + root (cap) 0x0000000000000060 (CNode: root) + node_index 1 + node_depth 1 + node_offset 34 + num_objects 2 + 0x0016 Untyped - Retype - 0x0000000000000044 (Untyped @ 0x60260000:0x20000) + object_type 11 (SEL4_PAGE_TABLE_OBJECT - 0x1000) + size_bits 0 (N/A) + root (cap) 0x0000000000000060 (CNode: root) + node_index 1 + node_depth 1 + node_offset 36 + num_objects 4 + 0x0017 Untyped - Retype - 0x0000000000000044 (Untyped @ 0x60260000:0x20000) + object_type 11 (SEL4_PAGE_TABLE_OBJECT - 0x1000) + size_bits 0 (N/A) + root (cap) 0x0000000000000060 (CNode: root) + node_index 1 + node_depth 1 + node_offset 40 + num_objects 7 + 0x0018 Untyped - Retype - 0x0000000000000044 (Untyped @ 0x60260000:0x20000) object_type 4 (SEL4_CNODE_OBJECT - variable size) size_bits 9 (0x200) root (cap) 0x0000000000000060 (CNode: root) node_index 1 node_depth 1 - node_offset 24 - num_objects 1 - 0x0012 IRQ Control - Get - 0x0000000000000004 (IRQ Control) + node_offset 47 + num_objects 2 + 0x0019 IRQ Control - Get - 0x0000000000000004 (IRQ Control) irq 33 trigger 0 dest_root (cap) 0x0000000000000060 (CNode: root) - dest_index 9223372036854775833 + dest_index 9223372036854775857 dest_depth 64 - 0x0013 ASID Pool - Assign - 0x0000000000000006 (ASID Pool: init) - vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) - 0x0014 CNode - Mint - 0x0000000000000061 (CNode: system) - dest_index 26 - dest_depth 6 + 0x001a ASID Pool - Assign - 0x0000000000000006 (ASID Pool: init) + vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server) + REPEAT: count=2 + 0x001b CNode - Mint - 0x0000000000000061 (CNode: system) + dest_index 50 + dest_depth 7 src_root (cap) 0x0000000000000060 (CNode: root) - src_obj (cap) 0x8000000000000004 (Page(4 KiB): MR=uart @ 9000000) + src_obj (cap) 0x8000000000000009 (Page(4 KiB): MR=uart @ 9000000) src_depth 64 rights 3 badge 0 - 0x0015 CNode - Mint - 0x0000000000000061 (CNode: system) - dest_index 27 - dest_depth 6 + 0x001c CNode - Mint - 0x0000000000000061 (CNode: system) + dest_index 51 + dest_depth 7 src_root (cap) 0x0000000000000060 (CNode: root) - src_obj (cap) 0x8000000000000005 (Page(4 KiB): MR=ELF:serial_server-0 @ 60247000) + src_obj (cap) 0x8000000000000005 (Page(4 KiB): MR=serial_to_client #0) + src_depth 64 + rights 3 + badge 0 + 0x001d CNode - Mint - 0x0000000000000061 (CNode: system) + dest_index 52 + dest_depth 7 + src_root (cap) 0x0000000000000060 (CNode: root) + src_obj (cap) 0x8000000000000006 (Page(4 KiB): MR=client_to_serial #0) + src_depth 64 + rights 2 + badge 0 + 0x001e CNode - Mint - 0x0000000000000061 (CNode: system) + dest_index 53 + dest_depth 7 + src_root (cap) 0x0000000000000060 (CNode: root) + src_obj (cap) 0x800000000000000a (Page(4 KiB): MR=ELF:serial_server-0 @ 60248000) src_depth 64 rights 2 badge 0 REPEAT: count=6 - 0x0016 CNode - Mint - 0x0000000000000061 (CNode: system) - dest_index 33 - dest_depth 6 + 0x001f CNode - Mint - 0x0000000000000061 (CNode: system) + dest_index 59 + dest_depth 7 src_root (cap) 0x0000000000000060 (CNode: root) - src_obj (cap) 0x800000000000000b (Page(4 KiB): MR=ELF:serial_server-1 @ 6024d000) + src_obj (cap) 0x8000000000000010 (Page(4 KiB): MR=ELF:serial_server-1 @ 6024e000) src_depth 64 rights 3 badge 0 - 0x0017 CNode - Mint - 0x0000000000000061 (CNode: system) - dest_index 34 - dest_depth 6 + 0x0020 CNode - Mint - 0x0000000000000061 (CNode: system) + dest_index 60 + dest_depth 7 src_root (cap) 0x0000000000000060 (CNode: root) - src_obj (cap) 0x8000000000000003 (Page(4 KiB): MR=STACK:serial_server #0) + src_obj (cap) 0x8000000000000007 (Page(4 KiB): MR=STACK:serial_server #0) src_depth 64 rights 3 badge 0 - 0x0018 CNode - Mint - 0x0000000000000061 (CNode: system) - dest_index 35 - dest_depth 6 + 0x0021 CNode - Mint - 0x0000000000000061 (CNode: system) + dest_index 61 + dest_depth 7 src_root (cap) 0x0000000000000060 (CNode: root) - src_obj (cap) 0x8000000000000011 (Notification: PD=serial_server) + src_obj (cap) 0x8000000000000005 (Page(4 KiB): MR=serial_to_client #0) + src_depth 64 + rights 2 + badge 0 + 0x0022 CNode - Mint - 0x0000000000000061 (CNode: system) + dest_index 62 + dest_depth 7 + src_root (cap) 0x0000000000000060 (CNode: root) + src_obj (cap) 0x8000000000000006 (Page(4 KiB): MR=client_to_serial #0) + src_depth 64 + rights 3 + badge 0 + 0x0023 CNode - Mint - 0x0000000000000061 (CNode: system) + dest_index 63 + dest_depth 7 + src_root (cap) 0x0000000000000060 (CNode: root) + src_obj (cap) 0x8000000000000011 (Page(4 KiB): MR=ELF:client-0 @ 6024f000) + src_depth 64 + rights 2 + badge 0 + REPEAT: count=6 + 0x0024 CNode - Mint - 0x0000000000000061 (CNode: system) + dest_index 69 + dest_depth 7 + src_root (cap) 0x0000000000000060 (CNode: root) + src_obj (cap) 0x8000000000000017 (Page(4 KiB): MR=ELF:client-1 @ 60255000) + src_depth 64 + rights 3 + badge 0 + 0x0025 CNode - Mint - 0x0000000000000061 (CNode: system) + dest_index 70 + dest_depth 7 + src_root (cap) 0x0000000000000060 (CNode: root) + src_obj (cap) 0x8000000000000008 (Page(4 KiB): MR=STACK:client #0) + src_depth 64 + rights 3 + badge 0 + 0x0026 CNode - Mint - 0x0000000000000061 (CNode: system) + dest_index 71 + dest_depth 7 + src_root (cap) 0x0000000000000060 (CNode: root) + src_obj (cap) 0x8000000000000020 (Notification: PD=serial_server) src_depth 64 rights 15 badge 2 - 0x0019 CNode - Mint - 0x0000000000000061 (CNode: system) - dest_index 36 - dest_depth 6 + 0x0027 CNode - Mint - 0x0000000000000061 (CNode: system) + dest_index 72 + dest_depth 7 src_root (cap) 0x0000000000000060 (CNode: root) - src_obj (cap) 0x8000000000000010 (EP: Monitor Fault) + src_obj (cap) 0x800000000000001f (EP: Monitor Fault) src_depth 64 rights 15 badge 1 - 0x001a CNode - Mint - 0x8000000000000018 (CNode: PD=serial_server) + 0x0028 CNode - Mint - 0x0000000000000061 (CNode: system) + dest_index 73 + dest_depth 7 + src_root (cap) 0x0000000000000060 (CNode: root) + src_obj (cap) 0x800000000000001f (EP: Monitor Fault) + src_depth 64 + rights 15 + badge 2 + 0x0029 CNode - Mint - 0x800000000000002f (CNode: PD=serial_server) dest_index 1 dest_depth 9 src_root (cap) 0x0000000000000060 (CNode: root) - src_obj (cap) 0x8000000000000011 (Notification: PD=serial_server) + src_obj (cap) 0x8000000000000020 (Notification: PD=serial_server) src_depth 64 rights 15 badge 0 - 0x001b CNode - Mint - 0x8000000000000018 (CNode: PD=serial_server) + 0x002a CNode - Mint - 0x8000000000000030 (CNode: PD=client) + dest_index 1 + dest_depth 9 + src_root (cap) 0x0000000000000060 (CNode: root) + src_obj (cap) 0x8000000000000021 (Notification: PD=client) + src_depth 64 + rights 15 + badge 0 + 0x002b CNode - Mint - 0x800000000000002f (CNode: PD=serial_server) dest_index 4 dest_depth 9 src_root (cap) 0x0000000000000060 (CNode: root) - src_obj (cap) 0x800000000000000f (Reply: PD=serial_server) + src_obj (cap) 0x800000000000001d (Reply: PD=serial_server) src_depth 64 rights 15 badge 1 - 0x001c CNode - Mint - 0x8000000000000018 (CNode: PD=serial_server) + REPEAT: count=2 + 0x002c CNode - Mint - 0x800000000000002f (CNode: PD=serial_server) dest_index 3 dest_depth 9 src_root (cap) 0x0000000000000060 (CNode: root) - src_obj (cap) 0x8000000000000012 (VSpace: PD=serial_server) + src_obj (cap) 0x8000000000000022 (VSpace: PD=serial_server) src_depth 64 rights 15 badge 0 - 0x001d CNode - Mint - 0x8000000000000018 (CNode: PD=serial_server) + REPEAT: count=2 + 0x002d CNode - Mint - 0x800000000000002f (CNode: PD=serial_server) dest_index 139 dest_depth 9 src_root (cap) 0x0000000000000060 (CNode: root) - src_obj (cap) 0x8000000000000019 (IRQ Handler: irq=33) + src_obj (cap) 0x8000000000000031 (IRQ Handler: irq=33) src_depth 64 rights 15 badge 0 - 0x001e IRQ Handler - SetNotification - 0x8000000000000019 (IRQ Handler: irq=33) - notification (cap) 0x8000000000000023 (Notification: PD=serial_server (badge=0x2)) - 0x001f Page Table - Map - 0x8000000000000013 (PageTable: PD=serial_server VADDR=0x0) - vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) + 0x002e CNode - Mint - 0x800000000000002f (CNode: PD=serial_server) + dest_index 12 + dest_depth 9 + src_root (cap) 0x0000000000000060 (CNode: root) + src_obj (cap) 0x8000000000000021 (Notification: PD=client) + src_depth 64 + rights 15 + badge 2 + 0x002f CNode - Mint - 0x8000000000000030 (CNode: PD=client) + dest_index 11 + dest_depth 9 + src_root (cap) 0x0000000000000060 (CNode: root) + src_obj (cap) 0x8000000000000020 (Notification: PD=serial_server) + src_depth 64 + rights 15 + badge 4 + 0x0030 IRQ Handler - SetNotification - 0x8000000000000031 (IRQ Handler: irq=33) + notification (cap) 0x8000000000000047 (Notification: PD=serial_server (badge=0x2)) + 0x0031 Page Table - Map - 0x8000000000000024 (PageTable: PD=serial_server VADDR=0x0) + vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server) vaddr 0x0 attr 3 - 0x0020 Page Table - Map - 0x8000000000000014 (PageTable: PD=serial_server VADDR=0xffc0000000) - vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) + 0x0032 Page Table - Map - 0x8000000000000025 (PageTable: PD=serial_server VADDR=0xffc0000000) + vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server) vaddr 0xffc0000000 attr 3 - 0x0021 Page Table - Map - 0x8000000000000015 (PageTable: PD=serial_server VADDR=0x200000) - vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) + 0x0033 Page Table - Map - 0x8000000000000026 (PageTable: PD=client VADDR=0x0) + vspace (cap) 0x8000000000000023 (VSpace: PD=client) + vaddr 0x0 + attr 3 + 0x0034 Page Table - Map - 0x8000000000000027 (PageTable: PD=client VADDR=0xffc0000000) + vspace (cap) 0x8000000000000023 (VSpace: PD=client) + vaddr 0xffc0000000 + attr 3 + 0x0035 Page Table - Map - 0x8000000000000028 (PageTable: PD=serial_server VADDR=0x200000) + vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server) vaddr 0x200000 attr 3 - 0x0022 Page Table - Map - 0x8000000000000016 (PageTable: PD=serial_server VADDR=0x2000000) - vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) + 0x0036 Page Table - Map - 0x8000000000000029 (PageTable: PD=serial_server VADDR=0x2000000) + vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server) vaddr 0x2000000 attr 3 - 0x0023 Page Table - Map - 0x8000000000000017 (PageTable: PD=serial_server VADDR=0xffffe00000) - vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) + 0x0037 Page Table - Map - 0x800000000000002a (PageTable: PD=serial_server VADDR=0x4000000) + vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server) + vaddr 0x4000000 + attr 3 + 0x0038 Page Table - Map - 0x800000000000002b (PageTable: PD=serial_server VADDR=0xffffe00000) + vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server) vaddr 0xffffe00000 attr 3 - 0x0024 Page - Map - 0x800000000000001a (Page(4 KiB): MR=uart @ 9000000 (derived)) - vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) + 0x0039 Page Table - Map - 0x800000000000002c (PageTable: PD=client VADDR=0x200000) + vspace (cap) 0x8000000000000023 (VSpace: PD=client) + vaddr 0x200000 + attr 3 + 0x003a Page Table - Map - 0x800000000000002d (PageTable: PD=client VADDR=0x4000000) + vspace (cap) 0x8000000000000023 (VSpace: PD=client) + vaddr 0x4000000 + attr 3 + 0x003b Page Table - Map - 0x800000000000002e (PageTable: PD=client VADDR=0xffffe00000) + vspace (cap) 0x8000000000000023 (VSpace: PD=client) + vaddr 0xffffe00000 + attr 3 + 0x003c Page - Map - 0x8000000000000032 (Page(4 KiB): MR=uart @ 9000000 (derived)) + vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server) vaddr 0x2000000 rights 3 attr 6 - 0x0025 Page - Map - 0x800000000000001b (Page(4 KiB): MR=ELF:serial_server-0 @ 60247000 (derived)) - vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) + 0x003d Page - Map - 0x8000000000000033 (Page(4 KiB): MR=serial_to_client #0 (derived)) + vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server) + vaddr 0x4000000 + rights 3 + attr 7 + 0x003e Page - Map - 0x8000000000000034 (Page(4 KiB): MR=client_to_serial #0 (derived)) + vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server) + vaddr 0x4001000 + rights 2 + attr 7 + 0x003f Page - Map - 0x8000000000000035 (Page(4 KiB): MR=ELF:serial_server-0 @ 60248000 (derived)) + vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server) vaddr 0x200000 rights 2 attr 3 REPEAT: count=6 - 0x0026 Page - Map - 0x8000000000000021 (Page(4 KiB): MR=ELF:serial_server-1 @ 6024d000 (derived)) - vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) + 0x0040 Page - Map - 0x800000000000003b (Page(4 KiB): MR=ELF:serial_server-1 @ 6024e000 (derived)) + vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server) vaddr 0x206000 rights 3 attr 7 - 0x0027 Page - Map - 0x8000000000000022 (Page(4 KiB): MR=STACK:serial_server #0 (derived)) - vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) + 0x0041 Page - Map - 0x800000000000003c (Page(4 KiB): MR=STACK:serial_server #0 (derived)) + vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server) vaddr 0xfffffff000 rights 3 attr 7 - 0x0028 Page - Map - 0x8000000000000002 (Page(4 KiB): IPC Buffer PD=serial_server) - vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) + 0x0042 Page - Map - 0x800000000000003d (Page(4 KiB): MR=serial_to_client #0 (derived)) + vspace (cap) 0x8000000000000023 (VSpace: PD=client) + vaddr 0x4000000 + rights 2 + attr 7 + 0x0043 Page - Map - 0x800000000000003e (Page(4 KiB): MR=client_to_serial #0 (derived)) + vspace (cap) 0x8000000000000023 (VSpace: PD=client) + vaddr 0x4001000 + rights 3 + attr 7 + 0x0044 Page - Map - 0x800000000000003f (Page(4 KiB): MR=ELF:client-0 @ 6024f000 (derived)) + vspace (cap) 0x8000000000000023 (VSpace: PD=client) + vaddr 0x200000 + rights 2 + attr 3 + REPEAT: count=6 + 0x0045 Page - Map - 0x8000000000000045 (Page(4 KiB): MR=ELF:client-1 @ 60255000 (derived)) + vspace (cap) 0x8000000000000023 (VSpace: PD=client) + vaddr 0x206000 + rights 3 + attr 7 + 0x0046 Page - Map - 0x8000000000000046 (Page(4 KiB): MR=STACK:client #0 (derived)) + vspace (cap) 0x8000000000000023 (VSpace: PD=client) + vaddr 0xfffffff000 + rights 3 + attr 7 + 0x0047 Page - Map - 0x8000000000000003 (Page(4 KiB): IPC Buffer PD=serial_server) + vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server) vaddr 0x207000 rights 3 attr 7 - 0x0029 SchedControl - ConfigureFlags - 0x0000000000000012 (None) - schedcontext (cap) 0x800000000000000d (SchedContext: PD=serial_server) + 0x0048 Page - Map - 0x8000000000000004 (Page(4 KiB): IPC Buffer PD=client) + vspace (cap) 0x8000000000000023 (VSpace: PD=client) + vaddr 0x207000 + rights 3 + attr 7 + 0x0049 SchedControl - ConfigureFlags - 0x0000000000000012 (None) + schedcontext (cap) 0x800000000000001a (SchedContext: PD=serial_server) budget 1000 period 1000 extra_refills 0 badge 256 flags 0 - 0x002a TCB - SetSchedParams - 0x800000000000000c (TCB: PD=serial_server) + 0x004a SchedControl - ConfigureFlags - 0x0000000000000012 (None) + schedcontext (cap) 0x800000000000001b (SchedContext: PD=client) + budget 1000 + period 1000 + extra_refills 0 + badge 257 + flags 0 + 0x004b TCB - SetSchedParams - 0x8000000000000018 (TCB: PD=serial_server) authority (cap) 0x0000000000000001 (TCB: init) mcp 254 priority 254 - sched_context (cap) 0x800000000000000d (SchedContext: PD=serial_server) - fault_ep (cap) 0x8000000000000010 (EP: Monitor Fault) - 0x002b TCB - SetSpace - 0x800000000000000c (TCB: PD=serial_server) - fault_ep (cap) 0x8000000000000024 (None) - cspace_root (cap) 0x8000000000000018 (CNode: PD=serial_server) + sched_context (cap) 0x800000000000001a (SchedContext: PD=serial_server) + fault_ep (cap) 0x800000000000001f (EP: Monitor Fault) + 0x004c TCB - SetSchedParams - 0x8000000000000019 (TCB: PD=client) + authority (cap) 0x0000000000000001 (TCB: init) + mcp 253 + priority 253 + sched_context (cap) 0x800000000000001b (SchedContext: PD=client) + fault_ep (cap) 0x800000000000001f (EP: Monitor Fault) + 0x004d TCB - SetSpace - 0x8000000000000018 (TCB: PD=serial_server) + fault_ep (cap) 0x8000000000000048 (None) + cspace_root (cap) 0x800000000000002f (CNode: PD=serial_server) cspace_root_data 55 - vspace_root (cap) 0x8000000000000012 (VSpace: PD=serial_server) + vspace_root (cap) 0x8000000000000022 (VSpace: PD=serial_server) vspace_root_data 0 - 0x002c TCB - SetIPCBuffer - 0x800000000000000c (TCB: PD=serial_server) + REPEAT: count=2 + 0x004e TCB - SetIPCBuffer - 0x8000000000000018 (TCB: PD=serial_server) buffer 0x207000 - buffer_frame (cap) 0x8000000000000002 (Page(4 KiB): IPC Buffer PD=serial_server) - 0x002d TCB - WriteRegisters - 0x800000000000000c (TCB: PD=serial_server) + buffer_frame (cap) 0x8000000000000003 (Page(4 KiB): IPC Buffer PD=serial_server) + 0x004f TCB - SetIPCBuffer - 0x8000000000000019 (TCB: PD=client) + buffer 0x207000 + buffer_frame (cap) 0x8000000000000004 (Page(4 KiB): IPC Buffer PD=client) + 0x0050 TCB - WriteRegisters - 0x8000000000000018 (TCB: PD=serial_server) resume false arch_flags 0 regs pc: 0x0000000000200000 @@ -465,7 +721,48 @@ x28: 0x0000000000000000 tpidr_el0: 0x0000000000000000 tpidrro_el0: 0x0000000000000000 - 0x002e TCB - BindNotification - 0x800000000000000c (TCB: PD=serial_server) - notification (cap) 0x8000000000000011 (Notification: PD=serial_server) - 0x002f TCB - Resume - 0x800000000000000c (TCB: PD=serial_server) + 0x0051 TCB - WriteRegisters - 0x8000000000000019 (TCB: PD=client) + resume false + arch_flags 0 + regs pc: 0x0000000000200000 + sp: 0x0000010000000000 + spsr: 0x0000000000000000 + x0: 0x0000000000000000 + x1: 0x0000000000000000 + x2: 0x0000000000000000 + x3: 0x0000000000000000 + x4: 0x0000000000000000 + x5: 0x0000000000000000 + x6: 0x0000000000000000 + x7: 0x0000000000000000 + x8: 0x0000000000000000 + x16: 0x0000000000000000 + x17: 0x0000000000000000 + x18: 0x0000000000000000 + x29: 0x0000000000000000 + x30: 0x0000000000000000 + x9: 0x0000000000000000 + x10: 0x0000000000000000 + x11: 0x0000000000000000 + x12: 0x0000000000000000 + x13: 0x0000000000000000 + x14: 0x0000000000000000 + x15: 0x0000000000000000 + x19: 0x0000000000000000 + x20: 0x0000000000000000 + x21: 0x0000000000000000 + x22: 0x0000000000000000 + x23: 0x0000000000000000 + x24: 0x0000000000000000 + x25: 0x0000000000000000 + x26: 0x0000000000000000 + x27: 0x0000000000000000 + x28: 0x0000000000000000 + tpidr_el0: 0x0000000000000000 + tpidrro_el0: 0x0000000000000000 + 0x0052 TCB - BindNotification - 0x8000000000000018 (TCB: PD=serial_server) + notification (cap) 0x8000000000000020 (Notification: PD=serial_server) + REPEAT: count=2 + 0x0053 TCB - Resume - 0x8000000000000018 (TCB: PD=serial_server) + REPEAT: count=2 diff --git a/ME_2150/microkit_tutorial/microkit_tutorial/tutorial/build/serial_server.elf b/ME_2150/microkit_tutorial/microkit_tutorial/tutorial/build/serial_server.elf index ae2083ae60e01e9f33e3807d665427dce7a61ddc..0f90dbffc570c20d8ef8c080c1a85e4008c77ce8 100755 GIT binary patch delta 10888 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

PGx8J9&H{j%M>=>TLPxAIB%+Xco`>KORr4p#T5? delta 10108 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 delta 6714 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 + + + + + + + + + + + + + + + +