computer lab

profileAlkhawaa
lab10_performance_evaluation.zip

lab10_performance_evaluation/lab10_prob.uvguix.shutengn

-6.1 ### uVision Project, (C) Keil Software 38003 Registers 115 30 346 Code Coverage 450 160 204 Performance Analyzer 610 35141 Event Statistics 200 50 700 1506 Symbols 42 42 42 1936 Watch 1 200 133 133 1937 Watch 2 200 133 133 1935 Call Stack + Locals 200 133 133 2506 Trace Data 75 135 130 95 70 230 200 150 466 Source Browser 500 300 1 1 0 0 -1 44 0 1 -32000 -32000 -1 -1 94 4 1010 874 0 575 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000300000001000000010000005C433A5C55736572735C73687574656E676E5C4465736B746F705C4345433332325C6C616231305C6C616231305F706572666F726D616E63655F6576616C756174696F6E5C736F757263655C6C616231305F6D61696E5F70726F622E6300000000116C616231305F6D61696E5F70726F622E6300000000C5D4F200FFFFFFFF5E433A5C55736572735C73687574656E676E5C4465736B746F705C4345433332325C6C616231305C6C616231305F706572666F726D616E63655F6576616C756174696F6E5C736F757263655C6C616231305F635F66756E6374696F6E732E6300000000136C616231305F635F66756E6374696F6E732E6300000000FFDC7800FFFFFFFF65433A5C55736572735C73687574656E676E5C4465736B746F705C4345433332325C6C616231305C6C616231305F706572666F726D616E63655F6576616C756174696F6E5C736F757263655C6C616231305F61736D5F66756E6374696F6E735F70726F622E73000000001A6C616231305F61736D5F66756E6374696F6E735F70726F622E7300000000BECEA100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000090000000CB000000EA030000E7020000 0 Build -1 -1 0 0 0 0 32767 0 4096 0 16 840000004F000000F0020000B3000000 16 21000000370000009901000098000000 1005 1005 1 0 0 0 32767 0 4096 0 16 03000000660000007D00000052020000 16 2100000037000000A1000000C4000000 109 109 1 0 0 0 32767 0 4096 0 16 03000000660000007D00000052020000 16 2100000037000000B7000000BE010000 1465 1465 0 0 0 0 32767 0 4096 0 16 0000000074010000F0020000D5010000 16 21000000370000009901000098000000 1466 1466 0 0 0 0 32767 0 4096 0 16 0300000077010000ED020000AB010000 16 21000000370000009901000098000000 1467 1467 0 0 0 0 32767 0 4096 0 16 0300000077010000ED020000AB010000 16 21000000370000009901000098000000 1468 1468 0 0 0 0 32767 0 4096 0 16 0300000077010000ED020000AB010000 16 21000000370000009901000098000000 1506 1506 0 0 0 0 32767 0 16384 0 16 7302000066000000ED020000C3000000 16 2100000037000000A1000000C4000000 1913 1913 0 0 0 0 32767 0 4096 0 16 8700000066000000ED0200009A000000 16 21000000370000009901000098000000 1935 1935 0 0 0 0 32767 0 32768 0 16 0300000077010000ED020000BC010000 16 2100000037000000A1000000C4000000 1936 1936 0 0 0 0 32767 0 4096 0 16 0300000077010000ED020000AB010000 16 2100000037000000A1000000C4000000 1937 1937 0 0 0 0 32767 0 4096 0 16 0300000077010000ED020000AB010000 16 2100000037000000A1000000C4000000 1939 1939 0 0 0 0 32767 0 4096 0 16 0300000077010000ED020000AB010000 16 21000000370000009901000098000000 1940 1940 0 0 0 0 32767 0 4096 0 16 0300000077010000ED020000AB010000 16 21000000370000009901000098000000 1941 1941 0 0 0 0 32767 0 4096 0 16 0300000077010000ED020000AB010000 16 21000000370000009901000098000000 1942 1942 0 0 0 0 32767 0 4096 0 16 0300000077010000ED020000AB010000 16 21000000370000009901000098000000 195 195 1 0 0 0 32767 0 4096 0 16 03000000660000007D00000052020000 16 2100000037000000B7000000BE010000 196 196 1 0 0 0 32767 0 4096 0 16 03000000660000007D00000052020000 16 2100000037000000B7000000BE010000 197 197 1 0 0 0 32767 0 32768 0 16 0000000083020000DE030000D3020000 16 21000000370000009901000098000000 198 198 0 0 0 0 32767 0 32768 0 16 0000000060010000F0020000D5010000 16 21000000370000009901000098000000 199 199 0 0 0 0 32767 0 4096 0 16 0300000086020000ED020000BA020000 16 21000000370000009901000098000000 203 203 0 0 0 0 32767 0 8192 0 16 8400000063000000F0020000B3000000 16 21000000370000009901000098000000 204 204 0 0 0 0 32767 0 4096 0 16 8700000066000000ED0200009A000000 16 21000000370000009901000098000000 221 221 0 0 0 0 32767 0 4096 0 16 00000000000000000000000000000000 16 0A0000000A0000006E0000006E000000 2506 2506 0 0 0 0 32767 0 4096 0 16 7002000063000000F00200006D010000 16 2100000037000000A1000000C4000000 2507 2507 0 0 0 0 32767 0 4096 0 16 0000000074010000F0020000C4010000 16 21000000370000009901000098000000 343 343 0 0 0 0 32767 0 4096 0 16 8700000066000000ED0200009A000000 16 21000000370000009901000098000000 346 346 0 0 0 0 32767 0 4096 0 16 8700000066000000ED0200009A000000 16 21000000370000009901000098000000 35141 35141 0 0 0 0 32767 0 4096 0 16 8400000063000000F0020000B3000000 16 2100000037000000A1000000C4000000 35824 35824 0 0 0 0 32767 0 4096 0 16 8700000066000000ED0200009A000000 16 21000000370000009901000098000000 35885 35885 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35886 35886 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35887 35887 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35888 35888 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35889 35889 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35890 35890 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35891 35891 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35892 35892 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35893 35893 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35894 35894 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35895 35895 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35896 35896 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35897 35897 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35898 35898 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35899 35899 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35900 35900 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35901 35901 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35902 35902 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35903 35903 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35904 35904 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 35905 35905 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 38003 38003 0 0 0 0 32767 0 4096 0 16 03000000660000007D000000BC010000 16 2100000037000000B7000000BE010000 38007 38007 0 0 0 0 32767 0 4096 0 16 0000000083020000F0020000D3020000 16 21000000370000009901000098000000 436 436 0 0 0 0 32767 0 4096 0 16 0300000086020000ED020000BA020000 16 2100000037000000B7000000BE010000 437 437 0 0 0 0 32767 0 4096 0 16 0300000077010000ED020000AB010000 16 2100000037000000A1000000C4000000 440 440 0 0 0 0 32767 0 4096 0 16 0300000077010000ED020000AB010000 16 2100000037000000A1000000C4000000 463 463 0 0 0 0 32767 0 4096 0 16 0300000086020000ED020000BA020000 16 2100000037000000B7000000BE010000 466 466 0 0 0 0 32767 0 4096 0 16 0300000086020000ED020000BA020000 16 2100000037000000B7000000BE010000 470 470 0 0 0 0 32767 0 4096 0 16 8700000066000000ED0200009A000000 16 21000000370000009901000098000000 50000 50000 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50001 50001 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50002 50002 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50003 50003 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50004 50004 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50005 50005 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50006 50006 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50007 50007 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50008 50008 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50009 50009 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50010 50010 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50011 50011 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50012 50012 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50013 50013 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50014 50014 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50015 50015 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50016 50016 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50017 50017 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50018 50018 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 50019 50019 0 0 0 0 32767 0 4096 0 16 7302000066000000ED020000EC000000 16 2100000037000000A1000000C4000000 59392 59392 1 0 0 0 32767 0 8192 0 16 0000000000000000C40300001C000000 16 0A0000000A0000006E0000006E000000 59393 0 1 0 0 0 32767 0 4096 0 16 00000000D3020000DE030000E6020000 16 0A0000000A0000006E0000006E000000 59399 59399 1 0 0 0 32767 0 8192 1 16 000000001C000000E701000038000000 16 0A0000000A0000006E0000006E000000 59400 59400 0 0 0 0 32767 0 8192 2 16 00000000380000006F02000054000000 16 0A0000000A0000006E0000006E000000 824 824 0 0 0 0 32767 0 4096 0 16 0300000077010000ED020000AB010000 16 2100000037000000A1000000C4000000 3312 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF84000000B3000000F0020000B7000000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E65002000000000000021000000370000009901000098000000840000004F000000F0020000B30000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF6C0200004F000000700200006D010000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000002100000037000000A1000000C4000000700200004F000000F00200006D01000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF800000004F000000840000006B0200000100000002000010040000000100000082FFFFFF55030000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000002100000037000000A1000000C4000000000000004F000000800000006B0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000005C010000F00200006001000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000002100000037000000A1000000C40000000000000060010000F0020000D501000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF78010000600100007C010000D501000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000006B020000DE0300006F020000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000021000000370000009901000098000000000000006F020000DE030000D30200000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File 2213 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000 1423 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000 1423 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000 59399 Build 968 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000470726F62960000000000000001000470726F62000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64FF7F0000 583 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000 583 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000 59400 Debug 2373 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000000000000100000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000000000000100000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000000000000100000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000000000000100000001000000000000000000000001000000000000000000054465627567FF7F0000 898 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000 898 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000 0 1920 1200 1 0 100 1 .\source\lab10_main_prob.c 0 74 104 1 0 .\source\lab10_c_functions.c 18 1 28 1 0 .\source\lab10_asm_functions_prob.s 0 40 1 1 0

lab10_performance_evaluation/lab10_prob.uvoptx

1.0 ### uVision Project, (C) Keil Software *.c *.s*; *.src; *.a* *.obj; *.o *.lib *.txt; *.h; *.inc *.plm *.cpp 0 0 0 prob 0x4 ARM-ADS 1000000 1 1 0 1 0 1 65535 0 0 0 79 66 8 .\Listings\ 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 1 7 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 0 0 BIN\UL2CM3.DLL 0 ARMRTXEVENTFLAGS -L70 -Z18 -C0 -M0 -T1 0 DLGDARM (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0) 0 ARMDBGFLAGS -T0 0 UL2CM3 UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000) 0 1 localv,0x0A 1 1 pint 2 1 str 1 1 0x20010000 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 Soruce for prob 1 0 0 0 1 1 1 0 0 0 .\source\lab10_main_prob.c lab10_main_prob.c 0 0 1 2 1 0 0 0 .\source\lab10_c_functions.c lab10_c_functions.c 0 0 1 3 2 0 0 0 .\source\lab10_asm_functions_prob.s lab10_asm_functions_prob.s 0 0 ::CMSIS 0 0 0 1 ::Compiler 1 0 0 1 ::Device 1 0 0 1

lab10_performance_evaluation/lab10_prob.uvprojx

2.1 ### uVision Project, (C) Keil Software prob 0x4 ARM-ADS 5060750::V5.06 update 6 (build 750)::ARMCC 0 ARMCM4_FP ARM ARM.CMSIS.5.4.0 http://www.keil.com/pack/ IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00040000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ESEL ELITTLE UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000) 0 $$Device:ARMCM4_FP$Device\ARM\ARMCM4\Include\ARMCM4_FP.h 0 0 0 0 0 0 1 .\Objects\ target_sim 1 0 0 1 1 .\Listings\ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 3 1 SARMCM3.DLL -MPU DCM.DLL -pCM4 SARMCM3.DLL -MPU TCM.DLL -pCM4 1 0 0 0 16 1 0 0 1 1 -1 1 BIN\UL2CM3.DLL 0 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 "Cortex-M4" 0 0 0 1 1 0 0 2 0 0 0 8 0 1 0 0 3 3 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0x0 0x0 0 0x0 0x0 0 0x0 0x0 0 0x0 0x0 0 0x0 0x0 0 0x0 0x0 0 0x20000000 0x20000 1 0x0 0x40000 0 0x0 0x0 1 0x0 0x0 1 0x0 0x0 1 0x0 0x0 1 0x0 0x40000 1 0x0 0x0 0 0x0 0x0 0 0x0 0x0 0 0x0 0x0 0 0x20000000 0x10000 0 0x20010000 0x10000 1 1 0 0 1 0 0 0 0 0 2 0 0 1 1 0 1 1 1 1 0 0 0 .\source 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0x00000000 0x20000000 Soruce for prob lab10_main_prob.c 1 .\source\lab10_main_prob.c lab10_c_functions.c 1 .\source\lab10_c_functions.c lab10_asm_functions_prob.s 2 .\source\lab10_asm_functions_prob.s ::CMSIS ::Compiler ::Device RTE\Device\ARMCM4\startup_ARMCM4.s RTE\Device\ARMCM4\system_ARMCM4.c RTE\Device\ARMCM4_FP\startup_ARMCM4.s RTE\Device\ARMCM4_FP\system_ARMCM4.c RTE\Device\STM32L476VGTx\startup_stm32l476xx.s RTE\Device\STM32L476VGTx\system_stm32l4xx.c

lab10_performance_evaluation/RTE/Device/ARMCM4_FP/startup_ARMCM4.s

;/**************************************************************************//** ; * @file startup_ARMCM4.s ; * @brief CMSIS Core Device Startup File for ; * ARMCM4 Device ; * @version V5.3.1 ; * @date 09. July 2018 ; ******************************************************************************/ ;/* ; * Copyright (c) 2009-2018 Arm Limited. All rights reserved. ; * ; * SPDX-License-Identifier: Apache-2.0 ; * ; * Licensed under the Apache License, Version 2.0 (the License); you may ; * not use this file except in compliance with the License. ; * You may obtain a copy of the License at ; * ; * www.apache.org/licenses/LICENSE-2.0 ; * ; * Unless required by applicable law or agreed to in writing, software ; * distributed under the License is distributed on an AS IS BASIS, WITHOUT ; * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ; * See the License for the specific language governing permissions and ; * limitations under the License. ; */ ;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------ ;<h> Stack Configuration ; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> ;</h> Stack_Size EQU 0x00000400 AREA STACK, NOINIT, READWRITE, ALIGN=3 __stack_limit Stack_Mem SPACE Stack_Size __initial_sp ;<h> Heap Configuration ; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> ;</h> Heap_Size EQU 0x00000C00 IF Heap_Size != 0 ; Heap is provided AREA HEAP, NOINIT, READWRITE, ALIGN=3 __heap_base Heap_Mem SPACE Heap_Size __heap_limit ENDIF PRESERVE8 THUMB ; Vector Table Mapped to Address 0 at Reset AREA RESET, DATA, READONLY EXPORT __Vectors EXPORT __Vectors_End EXPORT __Vectors_Size __Vectors DCD __initial_sp ; Top of Stack DCD Reset_Handler ; Reset Handler DCD NMI_Handler ; -14 NMI Handler DCD HardFault_Handler ; -13 Hard Fault Handler DCD MemManage_Handler ; -12 MPU Fault Handler DCD BusFault_Handler ; -11 Bus Fault Handler DCD UsageFault_Handler ; -10 Usage Fault Handler DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD SVC_Handler ; -5 SVCall Handler DCD DebugMon_Handler ; -4 Debug Monitor Handler DCD 0 ; Reserved DCD PendSV_Handler ; -2 PendSV Handler DCD SysTick_Handler ; -1 SysTick Handler ; Interrupts DCD Interrupt0_Handler ; 0 Interrupt 0 DCD Interrupt1_Handler ; 1 Interrupt 1 DCD Interrupt2_Handler ; 2 Interrupt 2 DCD Interrupt3_Handler ; 3 Interrupt 3 DCD Interrupt4_Handler ; 4 Interrupt 4 DCD Interrupt5_Handler ; 5 Interrupt 5 DCD Interrupt6_Handler ; 6 Interrupt 6 DCD Interrupt7_Handler ; 7 Interrupt 7 DCD Interrupt8_Handler ; 8 Interrupt 8 DCD Interrupt9_Handler ; 9 Interrupt 9 SPACE (214 * 4) ; Interrupts 10 .. 224 are left out __Vectors_End __Vectors_Size EQU __Vectors_End - __Vectors AREA |.text|, CODE, READONLY ; Reset Handler Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT SystemInit IMPORT __main LDR R0, =SystemInit BLX R0 LDR R0, =__main BX R0 ENDP ; Macro to define default exception/interrupt handlers. ; Default handler are weak symbols with an endless loop. ; They can be overwritten by real handlers. MACRO Set_Default_Handler $Handler_Name $Handler_Name PROC EXPORT $Handler_Name [WEAK] B . ENDP MEND ; Default exception/interrupt handler Set_Default_Handler NMI_Handler Set_Default_Handler HardFault_Handler Set_Default_Handler MemManage_Handler Set_Default_Handler BusFault_Handler Set_Default_Handler UsageFault_Handler Set_Default_Handler SVC_Handler Set_Default_Handler DebugMon_Handler Set_Default_Handler PendSV_Handler Set_Default_Handler SysTick_Handler Set_Default_Handler Interrupt0_Handler Set_Default_Handler Interrupt1_Handler Set_Default_Handler Interrupt2_Handler Set_Default_Handler Interrupt3_Handler Set_Default_Handler Interrupt4_Handler Set_Default_Handler Interrupt5_Handler Set_Default_Handler Interrupt6_Handler Set_Default_Handler Interrupt7_Handler Set_Default_Handler Interrupt8_Handler Set_Default_Handler Interrupt9_Handler ALIGN ; User setup Stack & Heap EXPORT __stack_limit EXPORT __initial_sp IF Heap_Size != 0 ; Heap is provided EXPORT __heap_base EXPORT __heap_limit ENDIF END

lab10_performance_evaluation/RTE/Device/ARMCM4_FP/system_ARMCM4.c

/**************************************************************************//** * @file system_ARMCM4.c * @brief CMSIS Device System Source File for * ARMCM4 Device * @version V5.3.1 * @date 09. July 2018 ******************************************************************************/ /* * Copyright (c) 2009-2018 Arm Limited. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the License); you may * not use this file except in compliance with the License. * You may obtain a copy of the License at * * www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an AS IS BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #if defined (ARMCM4) #include "ARMCM4.h" #elif defined (ARMCM4_FP) #include "ARMCM4_FP.h" #else #error device not specified! #endif /*---------------------------------------------------------------------------- Define clocks *----------------------------------------------------------------------------*/ #define XTAL (50000000UL) /* Oscillator frequency */ #define SYSTEM_CLOCK (XTAL / 2U) /*---------------------------------------------------------------------------- Externals *----------------------------------------------------------------------------*/ #if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) extern uint32_t __Vectors; #endif /*---------------------------------------------------------------------------- System Core Clock Variable *----------------------------------------------------------------------------*/ uint32_t SystemCoreClock = SYSTEM_CLOCK; /* System Core Clock Frequency */ /*---------------------------------------------------------------------------- System Core Clock update function *----------------------------------------------------------------------------*/ void SystemCoreClockUpdate (void) { SystemCoreClock = SYSTEM_CLOCK; } /*---------------------------------------------------------------------------- System initialization function *----------------------------------------------------------------------------*/ void SystemInit (void) { #if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U) SCB->VTOR = (uint32_t) &__Vectors; #endif #if defined (__FPU_USED) && (__FPU_USED == 1U) SCB->CPACR |= ((3U << 10U*2U) | /* enable CP10 Full Access */ (3U << 11U*2U) ); /* enable CP11 Full Access */ #endif #ifdef UNALIGNED_SUPPORT_DISABLE SCB->CCR |= SCB_CCR_UNALIGN_TRP_Msk; #endif SystemCoreClock = SYSTEM_CLOCK; }

lab10_performance_evaluation/RTE/_prob/RTE_Components.h

/* * Auto generated Run-Time-Environment Component Configuration File * *** Do not modify ! *** * * Project: 'lab10_prob' * Target: 'prob' */ #ifndef RTE_COMPONENTS_H #define RTE_COMPONENTS_H /* * Define the Device Header File: */ #define CMSIS_device_header "ARMCM4_FP.h" #define RTE_Compiler_IO_STDOUT /* Compiler I/O: STDOUT */ #define RTE_Compiler_IO_STDOUT_ITM /* Compiler I/O: STDOUT ITM */ #endif /* RTE_COMPONENTS_H */

lab10_performance_evaluation/source/lab10_asm_functions.h

#ifndef __LAB10_ASM_FUNCTIONS_H #define __LAB10_ASM_FUNCTIONS_H #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include <stdint.h> // Count the number of binary 1's using Algorithm 1 uint32_t asm_number_of_1s_alg1(uint32_t x); // Count the number of binary 1's using Algorithm 2 uint32_t asm_number_of_1s_alg2(uint32_t x); // Count the number of binary 1's using Algorithm 3 uint32_t asm_number_of_1s_alg3(uint32_t x); // Call Algorithm 2 in assembly void asm_number_of_1s_alg2_asm_caller( uint32_t *pIn, // pointer to input uint32_t array uint32_t *PLen, // pointer to output, the number of 1's, array uint32_t n); // the number of elements in the input array // Call Algorithm 3 in assembly void asm_number_of_1s_alg3_asm_caller( uint32_t *pIn, // pointer to input uint32_t array uint32_t *PLen, // pointer to output, the number of 1's, array uint32_t n); // the number of elements in the input array #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __LAB10_ASM_FUNCTIONS_H */

lab10_performance_evaluation/source/lab10_asm_functions_prob.s

AREA my_asm_code, CODE, READONLY ; Define the program area ; Export functions defined in this file. These functions need to be declared ; in the file calling them. EXPORT asm_number_of_1s_alg1 EXPORT asm_number_of_1s_alg2 EXPORT asm_number_of_1s_alg3 EXPORT asm_number_of_1s_alg2_asm_caller EXPORT asm_number_of_1s_alg3_asm_caller ALIGN ; Align the data in the boundary of 4 bytes. asm_number_of_1s_alg1 PROC MOV r1, #0 ; n_of_1 alg1_lp CBZ r0, alg1_done ADD r1, r0, LSR #31 MOV r0, r0, LSL #1 B alg1_lp alg1_done MOV r0, r1 BX lr ENDP asm_number_of_1s_alg2 PROC MOV r1, r0, LSR #31 ; n_of_1 alg2_lp CBZ r0, alg2_done MOVS r0, r0, LSL #2 ADC r1, r0, LSR #31 B alg2_lp alg2_done MOV r0, r1 BX lr ENDP asm_number_of_1s_alg3 PROC MOV r1, #0 ; n_of_1 alg3_lp CBZ r0, alg3_done SUB r2, r0, #1 AND r0, r2 ADD r1, #1 B alg3_lp alg3_done MOV r0, r1 BX lr ENDP asm_number_of_1s_alg2_asm_caller PROC PUSH {r4-r7, lr} ; Have to save lr for calling another func MOV r4, r0 ; pointer to the input array MOV r5, r1 ; pointer to the output array (num of 1's) MOV r6, r2 ; num of elements in the input array MOV r7, #0 ; the loop-control variable i asm_number_of_1s_alg2_asm_caller_loop CMP r7, r6 BHS asm_number_of_1s_alg2_asm_caller_end LDR r0, [r4], #4 ; POSTFIX increment BL asm_number_of_1s_alg2 STR r0, [r5], #4 ADD r7, #1 B asm_number_of_1s_alg2_asm_caller_loop asm_number_of_1s_alg2_asm_caller_end POP {r4-r7, pc} ENDP asm_number_of_1s_alg3_asm_caller PROC PUSH {r4-r9, lr} ; if you don't use these many registers, ; change the number here. MOV r4, r0 ; pointer to the input array MOV r5, r1 ; pointer to the output array (num of 1's) MOV r6, r2 ; num of elements in the input array MOV r7, #0 ; the loop-control variable i ; Note that you need to code using the PREFIX increment format asm_number_of_1s_alg3_asm_caller_loop asm_number_of_1s_alg3_asm_caller_end POP {r4-r9, pc} ENDP END ; End of the entire file

lab10_performance_evaluation/source/lab10_c_functions.c

#include "lab10_c_functions.h" // Count the number of binary 1's using Algorithm 1 uint32_t C_number_of_1s_alg1(uint32_t x) { uint32_t n_of_1 = 0; // number of 1s of the input while (x) { n_of_1 += x >> 31; x = x << 1; } return n_of_1; } // Count the number of binary 1's using Algorithm 2 uint32_t C_number_of_1s_alg2(uint32_t x) { uint32_t y, z; uint32_t n_of_1 = x >> 31; // number of 1s of the input while (x) { y = x << 2; z = y >> 31; if (x<<1 > y) n_of_1 += z + 1; else n_of_1 += z; x = y; } return n_of_1; } // Count the number of binary 1's using Algorithm 3 uint32_t C_number_of_1s_alg3(uint32_t x) { uint32_t n_of_1 = 0; // number of 1s of the input while (x) { x = x & (x-1); n_of_1++; } return n_of_1; }

lab10_performance_evaluation/source/lab10_c_functions.h

#ifndef __LAB10_C_FUNCTIONS_H #define __LAB10_C_FUNCTIONS_H #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include <stdint.h> // Count the number of binary 1's using Algorithm 1 uint32_t C_number_of_1s_alg1(uint32_t x); // Count the number of binary 1's using Algorithm 2 uint32_t C_number_of_1s_alg2(uint32_t x); // Count the number of binary 1's using Algorithm 3 uint32_t C_number_of_1s_alg3(uint32_t x); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __LAB10_C_FUNCTIONS_H */

lab10_performance_evaluation/source/lab10_main_prob.c

#include <stdio.h> #include <stdint.h> #include <stdbool.h> #include <stdlib.h> #include "lab10_c_functions.h" #include "lab10_asm_functions.h" #define NUM_ELE 10 uint32_t A = 0, B = 0xAAAAAAAA, C = 0xFFFFFFFF; uint32_t array_data[NUM_ELE], array_nof1a[NUM_ELE], array_nof1b[NUM_ELE]; uint32_t array_nof1c[NUM_ELE], array_nof1d[NUM_ELE]; uint32_t breakPointHere = 0; // Used only for creating breakpoints int main(void) { uint32_t myID = 1234; // The last 4 digit of your ERAU ID srand(myID); // Seed the random number generator for (int i = 0; i < NUM_ELE; i++) { array_data[i] = 2*rand(); } uint32_t num_of_1a, num_of_1b, num_of_1c; // Evaluate C functions num_of_1a = C_number_of_1s_alg1(A); num_of_1b = C_number_of_1s_alg1(B); num_of_1c = C_number_of_1s_alg1(C); printf("C Alg 1: A: %d, B: %d, C: %d\n", num_of_1a, num_of_1b, num_of_1c); num_of_1a = 0, num_of_1b = 0, num_of_1c = 0; num_of_1a = C_number_of_1s_alg2(A); num_of_1b = C_number_of_1s_alg2(B); num_of_1c = C_number_of_1s_alg2(C); printf("C Alg 2: A: %d, B: %d, C: %d\n", num_of_1a, num_of_1b, num_of_1c); num_of_1a = 0, num_of_1b = 0, num_of_1c = 0; num_of_1a = C_number_of_1s_alg3(A); num_of_1b = C_number_of_1s_alg3(B); num_of_1c = C_number_of_1s_alg3(C); printf("C Alg 3: A: %d, B: %d, C: %d\n", num_of_1a, num_of_1b, num_of_1c); // Evaluate asm functions num_of_1a = 0, num_of_1b = 0, num_of_1c = 0; num_of_1a = asm_number_of_1s_alg1(A); num_of_1b = asm_number_of_1s_alg1(B); num_of_1c = asm_number_of_1s_alg1(C); printf("Asm Alg 1: A: %d, B: %d, C: %d\n", num_of_1a, num_of_1b, num_of_1c); num_of_1a = 0, num_of_1b = 0, num_of_1c = 0; num_of_1a = asm_number_of_1s_alg2(A); num_of_1b = asm_number_of_1s_alg2(B); num_of_1c = asm_number_of_1s_alg2(C); printf("Asm Alg 2: A: %d, B: %d, C: %d\n", num_of_1a, num_of_1b, num_of_1c); num_of_1a = 0, num_of_1b = 0, num_of_1c = 0; num_of_1a = asm_number_of_1s_alg3(A); num_of_1b = asm_number_of_1s_alg3(B); num_of_1c = asm_number_of_1s_alg3(C); printf("Asm Alg 3: A: %d, B: %d, C: %d\n", num_of_1a, num_of_1b, num_of_1c); // Use C functions in loops to process an array of data breakPointHere++; for (int i = 0; i < NUM_ELE; i++) { array_nof1a[i] = C_number_of_1s_alg1(array_data[i]); } /* C program assignment A: Repeat the above block of code using pointers. * Call C_number_of_1s_alg2 in the loop. * Use pointers to array_data and array_nof1b in the postfix format. * For examples of this usage, see the C code of Lab 06. * You may have to define and initialize your pointers. */ breakPointHere++; for (int i = 0; i < NUM_ELE; i++) { ; } /* C program assignment B: Repeat the above block of code using pointers again. * Call C_number_of_1s_alg3 in the loop. * Use pointers to array_data and array_nof1c in the prefix format. For examples of this usage, see the C code of Lab 06. */ breakPointHere++; for (int i = 0; i < NUM_ELE; i++) { ; } /* Asm program illustration: for details, see lab10_asm_function.s. * Call the function using pointers to array_data, array_nof1d, and NUM_ELE. * USE POINTERS IN THE POSTFIX INCREMENT FORMAT. */ breakPointHere++; asm_number_of_1s_alg2_asm_caller(array_data, array_nof1d, NUM_ELE); breakPointHere++; for (int i = 0; i < NUM_ELE; i++) { printf("Rand = %x; ", array_data[i]); printf("Nof1a = %d, Nof1b = %d, ", array_nof1a[i], array_nof1b[i]); printf("Nof1c = %d, Nof1d = %d\n", array_nof1c[i], array_nof1d[i]); } printf("\n"); /* Asm program assignment: for details, see lab10_asm_function.s. * Call the function using pointers to array_data, array_nof1d, and NUM_ELE * USE POINTERS IN THE PREFIX INCREMENT FORMAT. */ breakPointHere++; asm_number_of_1s_alg3_asm_caller(array_data, array_nof1d, NUM_ELE); breakPointHere++; for (int i = 0; i < NUM_ELE; i++) { printf("Rand = %x; ", array_data[i]); printf("Nof1a = %d, Nof1b = %d, ", array_nof1a[i], array_nof1b[i]); printf("Nof1c = %d, Nof1d = %d\n", array_nof1c[i], array_nof1d[i]); } while(1); }