sending scancode set 3 working

This commit is contained in:
dekunukem
2022-05-06 12:09:57 +01:00
parent 3eb1e2eecc
commit 4583a040e7
16 changed files with 923 additions and 822 deletions

View File

@@ -26,11 +26,13 @@ void ps2kb_reset(void);
#define PS2_OK 0
#define PS2_ERROR_SCAN_DISABLED 1
#define PS2_ERROR_UNKNOWN_CODE_SET 9
#define PS2_ERROR_HOST_INHIBIT 69
#define PS2_ERROR_UNUSED_CODE 2
#define PS2_ERROR_UNKNOWN 3
#define PS2_ERROR_TIMEOUT 4
#define PS2_ERROR_UNKNOWN_EV 5
#define PS2_ERROR_UNKNOWN_SCANCODE 6
#define PS2_ERROR_UNKNOWN_CODE_SET 7
#define PS2_ERROR_HOST_INHIBIT 8
#ifdef __cplusplus
}

View File

@@ -28,9 +28,9 @@ uint8_t ps2mouse_wait_for_idle(uint8_t timeout_ms);
#define PS2_OK 0
#define PS2_ERROR_REPORTING_DISABLED 1
#define PS2_ERROR_HOST_INHIBIT 69
#define PS2_ERROR_TIMEOUT 4
#define PS2_ERROR_UNIMPLEMENTED_MODE 3
#define PS2_ERROR_UNIMPLEMENTED_MODE 6
#define PS2_ERROR_HOST_INHIBIT 8
#ifdef __cplusplus
}

View File

@@ -110,8 +110,8 @@
<MDIClientArea>
<RegID>0</RegID>
<MDITabState>
<Len>528</Len>
<Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000400000003000000010000003E433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C69626D70635C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF42433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C69626D70635C5372635C7073326D6F7573652E63000000000A7073326D6F7573652E6300000000FFDC7800FFFFFFFF3F433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C69626D70635C496E635C7073326B622E6800000000077073326B622E6800000000BECEA100FFFFFFFF3F433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C69626D70635C5372635C7073326B622E6300000000077073326B622E6300000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000006C08000066000000000F000037030000</Data>
<Len>622</Len>
<Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000500000003000000010000003E433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C69626D70635C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF42433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C69626D70635C5372635C7073326D6F7573652E63000000000A7073326D6F7573652E6300000000FFDC7800FFFFFFFF3F433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C69626D70635C496E635C7073326B622E6800000000077073326B622E6800000000BECEA100FFFFFFFF3F433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C69626D70635C5372635C7073326B622E6300000000077073326B622E6300000000F0A0A100FFFFFFFF42433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C69626D70635C496E635C7073326D6F7573652E68000000000A7073326D6F7573652E6800000000BCA8E100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000006C08000066000000000F000037030000</Data>
</MDITabState>
</MDIClientArea>
<ViewEx>
@@ -3633,9 +3633,18 @@
</Doc>
<Doc>
<Name>..\Src\ps2kb.c</Name>
<ColumnNumber>56</ColumnNumber>
<TopLine>196</TopLine>
<CurrentLine>226</CurrentLine>
<ColumnNumber>44</ColumnNumber>
<TopLine>861</TopLine>
<CurrentLine>899</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>
</Doc>
<Doc>
<Name>..\Inc\ps2mouse.h</Name>
<ColumnNumber>0</ColumnNumber>
<TopLine>1</TopLine>
<CurrentLine>33</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>

View File

Binary file not shown.

View File

@@ -29,7 +29,7 @@ Project File Date: 03/28/2022
Build target 'ibmpc'
compiling ps2kb.c...
linking...
Program Size: Code=16656 RO-data=428 RW-data=128 ZI-data=2176
Program Size: Code=16796 RO-data=624 RW-data=272 ZI-data=2176
FromELF: creating hex file...
"ibmpc\ibmpc.axf" - 0 Error(s), 0 Warning(s).
@@ -54,7 +54,7 @@ Package Vendor: Keil
<h2>Collection of Component Files used:</h2>
* Component: ARM::CMSIS:CORE:5.3.0
Build Time Elapsed: 00:00:01
Build Time Elapsed: 00:00:02
</pre>
</body>
</html>

View File

@@ -1,5 +1,5 @@
:020000040800F2
:1000000000090020D5000008691E000875190008C5
:1000000090090020D5000008691E00087519000835
:1000100000000000000000000000000000000000E0
:10002000000000000000000000000000A721000800
:100030000000000000000000B11E0008A921000817
@@ -12,7 +12,7 @@
:1000A000E7000008B51E0008E7000008E7000008A8
:1000B000E7000008A9270008E7000008E70000089B
:1000C0000348854600F04EF8004800472D2E0008F2
:1000D000000900200448804704480047FEE7FEE787
:1000D000900900200448804704480047FEE7FEE7F7
:1000E000FEE7FEE7FEE7FEE721220008C100000868
:1000F00030B50B46014600202022012409E00D46C0
:10010000D5409D4205D31D469540491B2546954047
@@ -23,7 +23,7 @@
:10015000F6E710B513460A4604461946FFF7F0FFC6
:10016000204610BD064C0125064E05E0E36807CC8D
:100170002B430C3C98471034B442F7D3FFF7A4FF4D
:100180009C420008BC42000810B5022000F042F872
:10018000EC4300080C44000810B5022000F042F8CF
:1001900010BD70B50024014620314A78022A03D0F0
:1001A00004218163012416E0026813680E25AB4325
:1001B0001360026813685B085B0013600122056C22
@@ -32,7 +32,7 @@
:1001E000009C0546601C00D0641C00F0DBF8401B3E
:1001F000A042FAD338BD000000B5022807D105207F
:1002000002F024FD002802D001490120087200BD3F
:100210004800002010B504494A69024202D04861F2
:10021000D800002010B504494A69024202D0486162
:10022000FFF7EAFF10BD000000040140F8B500230D
:1002300093E0224601249C40A44622407ED04C6894
:10024000022C01D0122C0CD1DC08A40027183C6A27
@@ -57,7 +57,7 @@
:100370000004004800080048000C00480010004835
:10038000000401400069084000D001207047426924
:100390004A4042617047002A01D081617047816202
:1003A0007047000001480068704700006C000020A2
:1003A000704700000148006870470000FC00002012
:1003B00070B5024640325378202B1CD11378012BA4
:1003C00019D00123137024245470046825689D43B8
:1003D0002560046825681E03B54325600468256808
@@ -130,7 +130,7 @@
:1008000001E004490160002070BD0000CCCC000074
:1008100055550000AAAA00000068024901600020A6
:1008200070470000AAAA000002480168491C016044
:10083000704700006C00002010B5064801681022C7
:1008300070470000FC00002010B506480168102237
:1008400011430160002000F007F800F017F80020C5
:1008500010BD00000020024010B5044600F078F9F9
:100860007D21C900FFF744FC00F0E2FD0022214693
@@ -179,10 +179,10 @@
:100B10006068072109028843E9680843606000F0C3
:100B20002DF86168084A0906090F515CC840074959
:100B300008600020FFF790FE0020F8BD0020024072
:100B4000001002408813000084420008700000205A
:100B50000148006870470000700000200448054903
:100B40000010024088130000D34300080001002079
:100B50000148006870470000000100200448054972
:100B600000684968044A4905490F515CC84070470C
:100B700070000020001002409442000830B516A317
:100B70000001002000100240E343000830B516A336
:100B80000FCB89B06C460FC417A30FCB0FC41A4903
:100B90004A680C20144604401848042C05D0184B11
:100BA000082C04D00C2C00D1184609B030BD94029A
@@ -319,8 +319,8 @@
:1013D00008E00325605D002804D001F0E7FB6D1CE8
:1013E000202DF7DB074A2023114640390848FFF734
:1013F000E9FE012109200022C903C006FEF7CBFF48
:10140000F8BD0000A00200204800002000080048AD
:10141000DC000020042204490428086902D090431B
:10140000F8BD000030030020D8000020000800488C
:101410006C010020042204490428086902D090438A
:10142000086170471043FBE700E000E070470000F0
:10143000094910B5401E884201D9012010BD074C52
:1014400060610321081F00F011FD0020A06107204A
@@ -406,7 +406,7 @@
:10194000C164014640310A824A820021C1662122D7
:101950005A721972006801688022114301600020E8
:1019600030BD022030BD0000014900208872704760
:1019700048000020FEE701688A69D243920701D43B
:10197000D8000020FEE701688A69D243920701D4AB
:1019800000228A6200688169C943C90703D081695E
:101990000122114381617047F7B5044600680E4685
:1019A0008069C043C0062CD42027254640352068D6
@@ -465,33 +465,33 @@
:101CF00081610122C161C2600162FEF7A3FB00287D
:101D000000D0FEE700210848FEF752FB002800D073
:101D1000FEE700210448FEF770FB002800D0FEE734
:101D200010BD000000580040800000205D3E3020C3
:101D200010BD000000580040100100205D3E302032
:101D300010B50D480B4901600021416081600161CF
:101D4000416181610722016212024162C2608162C7
:101D500007220163C2624163FFF7ACF9002800D09B
:101D6000FEE710BD00300140DC00002010B501216D
:101D6000FEE710BD003001406C01002010B50121DC
:101D7000124886B08907016000242F2184604160E9
:101D80000461611E8461C160FFF792FB002800D0EE
:101D9000FEE701200003009069460848FFF7C0FBFA
:101DA000002800D0FEE7049404A904480594FFF736
:101DB0005BFB002800D0FEE706B010BD400100200C
:101DB0005BFB002800D0FEE706B010BDD00100207C
:101DC00010B50F480D490160E121490241600D49FC
:101DD0008989402901D00C49416000218160C1609E
:101DE00001618161C1610C2201624261416204486A
:101DF000FFF7AAFC002800D0FEE710BD0038014024
:101E000080010020480000203EFA020010B514486E
:101E000010020020D80000203EFA020010B514484D
:101E1000124901604B210901416012498989402919
:101E200002D07F2109014160002101221207C16017
:101E30008260016181610C22C161426101623021D5
:101E400041620121090381634900C1630448FFF72E
:101E50007BFC002800D0FEE710BD000000480040D9
:101E6000F001002048000020704700008307FF2297
:101E600080020020D8000020704700008307FF2276
:101E7000DB0E9A408907090E994000280BDA00070B
:101E8000000F0838830808489B001818C36993435B
:101E90000B43C3617047830804489B001B181868F4
:101EA000904308431860704700ED00E000E400E054
:101EB0007047000010B50248FFF792F810BD00000F
:101EC000DC00002010B50168C968026C1180016C4B
:101EC0006C01002010B50168C968026C1180016CBA
:101ED000891C016401464031CA88521ECA80C988E3
:101EE000002909D101684A6840239A434A60C18F9A
:101EF000002901D100F06EF810BD10B50146403147
@@ -634,9 +634,9 @@
:1027800060346072A07200202072032005B0F0BD9A
:102790002068C1693046884304D00020B842D9D0AF
:1027A0000020F3E70120F9E710B50248FEF732FFF9
:1027B00010BD0000F00100200FB410B503A9044BB8
:1027B00010BD0000800200200FB410B503A9044B27
:1027C000044A029800F024F810BC08BC04B0184772
:1027D000092A00087400002030B47446641E25786D
:1027D000092A00080401002030B47446641E2578DC
:1027E000641CAB4200D21D46635D5B00E31830BC45
:1027F000184702E008C8121F08C1002AFAD1704722
:102800007047002001E001C1121F002AFBD1704770
@@ -672,7 +672,7 @@
:1029E00008B2704700B5014600F09EFB411800F0A8
:1029F0009BFB8842FBD300BD10B502490860FEF77F
:102A000083FD10BD0000002013B564230122694638
:102A10000248FEF718FF00981CBD0000800100204E
:102A10000248FEF718FF00981CBD000010020020BD
:102A200070B50D46044600F020F8002801D00120C2
:102A300070BD20780C226168504308182946FDF7C4
:102A40006DFB2078A178401CFDF752FB217000201F
@@ -693,7 +693,7 @@
:102B3000002000F0DDFAA07A291A022000F0D8FA6D
:102B4000E07A291A012000F0D3FA0648FFF7A6FF21
:102B500070BD0122C4E70122CBE70122D3E70122A5
:102B6000D9E7000064000020001400480008004875
:102B6000D9E70000F40000200014004800080048E5
:102B700070B50C4C012202212046FDF70CFC0A4DD9
:102B80000122D1032846FDF706FC0122114620460A
:102B9000FDF701FC012291032846FDF7FCFB00F044
@@ -701,14 +701,14 @@
:102BB000C109640EC901102C25D2224D285D0028C0
:102BC00021D0002920D002281DD11F482300FFF763
:102BD00003FE0918060D1810181816101800FF2308
:102BE00001330246590000F093FB0AE001F002FABB
:102BF00007E010230246202100F08EFF01E0FFF7DE
:102BE00001330246590000F093FB0AE001F048FA75
:102BF00007E010230246202100F0D4FF01E0FFF798
:102C0000B7FF0120285570BD0128FCD102202855AE
:102C10002300FFF7E1FD0906070C060F0606140F57
:102C20000600F0E700F0F4FC00F002FD70BD01F0DA
:102C300031FA70BD01F00AF800F0F8FF70BDFFF73F
:102C400097FF70BDED02002000040048102803D259
:102C50000249085C012800D000207047ED020020E6
:102C20000600F0E700F03AFD00F048FD70BD01F04D
:102C300077FA70BD01F050F801F03EF870BDFFF773
:102C400097FF70BD7D03002000040048102803D2C8
:102C50000249085C012800D0002070477D03002055
:102C600070B515460E46044600F022F8002801D043
:102C7000012070BD2178606846542178A0684554D1
:102C80002078A178401CFDF733FA2170002070BD38
@@ -724,19 +724,19 @@
:102D200038B50D46FF216A46ED3811703E4C030060
:102D3000FFF752FD136B65304730393129201D16DE
:102D4000161616303030760B300014220121FA208E
:102D500000F0D0FC00F06CFCFA220021AA2051E027
:102D500000F016FD00F0B2FCFA220021AA2051E09A
:102D6000207803285CD014220121FE204AE000F0E4
:102D70005FFC55E000F05CFC14220121FA2000F019
:102D8000B9FC002005E014220121FA2000F0B2FC79
:102D90000120607038BD14220121FA2000F0AAFC45
:102DA0001E21684638E014220121FA2000F0A2FC1E
:102DB00014220021AB2000F09DFC1422002183206E
:102DC00020E014220121FA2000F094FC1E21684624
:102DD00000F0A0FB0028DDD114220121FA2000F030
:102DE00089FC68460078002803D00328D2D82070D8
:102DF00038BD207801F080F81422002102E014226E
:102E00000121EE2000F076FC38BD14220121FA20C9
:102E100000F070FC1E21284600F07CFB0028F3D156
:102D7000A5FC55E000F0A2FC14220121FA2000F08D
:102D8000FFFC002005E014220121FA2000F0F8FCED
:102D90000120607038BD14220121FA2000F0F0FCFF
:102DA0001E21684638E014220121FA2000F0E8FCD8
:102DB00014220021AB2000F0E3FC14220021832028
:102DC00020E014220121FA2000F0DAFC1E216846DE
:102DD00000F0E6FB0028DDD114220121FA2000F0EA
:102DE000CFFC68460078002803D00328D2D8207092
:102DF00038BD207801F0C6F81422002102E0142228
:102E00000121EE2000F0BCFC38BD14220121FA2083
:102E100000F0B6FC1E21284600F0C2FB0028F3D1CA
:102E200014220121FA20EDE7040000201CB56948B6
:102E3000694C8089A081FDF7FFFCFFF7BBF9FEF725
:102E4000A1FEFEF74BFFFEF773FFFEF78FFFFEF7C5
@@ -746,8 +746,8 @@
:102E800059495AA0FFF798FC55487430FFF7B4FD34
:102E900000F00AFAFF250135594E6F0032462B46E5
:102EA0003946104600F034FA32462B463946104671
:102EB00001F0AAF8324610232021104600F02CFE23
:102EC0000220FFF7C3FE002801D001F093F8102183
:102EB00001F0F0F8324610232021104600F072FE97
:102EC0000220FFF7C3FE002801D001F0D9F810213D
:102ED0004C48FFF7DDFE40481021143000F0A7F900
:102EE0003D4810211C30FFF7B4FD00F0EBF84548D9
:102EF00020216038FDF72BF9424A3948203A114623
@@ -755,19 +755,19 @@
:102F100053FC00F0C7F8002812D13FA0FFF74CFC8B
:102F2000002708213046FDF732FA3220FDF755F927
:102F30007F1C0A2FF5DB012208213046FDF72BFA12
:102F4000192000F09DFE0927FF062548FDF764FCC7
:102F4000192000F0E3FE0927FF062548FDF764FC81
:102F50000420FFF77BFE002804D10820FFF776FE4F
:102F6000002809D00121C9033046FDF70BFA0028DB
:102F700002D000F0A5FE06E00520FFF767FE00285E
:102F700002D000F0EBFE06E00520FFF767FE002818
:102F800001D000F0D9F80120FFF760FE002808D03A
:102F900029463846FDF7F6F9002802D000F050FB2C
:102F900029463846FDF7F6F9002802D000F096FBE6
:102FA0000CE00220FFF752FE002807D029463846E1
:102FB000FDF7E8F9002801D001F08CF80720FFF7B1
:102FB000FDF7E8F9002801D001F0D2F80720FFF76B
:102FC00045FE002801D0FFF781FD607A0028BCD0C3
:102FD00000F09CFFC0F7FF1F4800002000300040B9
:102FE000CC000020FF0F00004D42000825730A723C
:102FD00000F0E2FFC0F7FF1FD800002000300040E3
:102FE0005C010020FF0F00009C43000825730A725B
:102FF00065762564207625642E25642E25640A00D6
:1030000000040048C0020020666C6173685F736949
:103000000004004850030020666C6173685F7369B8
:103010007A653A2025640A004469676974616C2006
:10302000706F74206E6F7420726573706F6E646958
:103030006E67210A00000000F0B50B30C108C9001E
@@ -776,16 +776,16 @@
:10306000136002C004E0021D10680028ECD1304655
:10307000002803D13868002801D00020F0BD064A9E
:1030800006481060064A121AD208D20044C0012035
:103090003860D7E77C00002078000020040300207F
:1030A0000005002010B56423012258210448FDF7D3
:103090003860D7E70C0100200801002094030020CD
:1030A0009005002010B56423012258210448FDF743
:1030B00023FA002801D0002010BD012010BD00001F
:1030C0008000002010B5094C002204212046FDF7A5
:1030C0001001002010B5094C002204212046FDF714
:1030D00062F90120FDF781F8012204212046FDF765
:1030E0005AF90120FDF779F810BD000000040048EE
:1030F00003B583B0042802D3FF2005B000BD084902
:103100006423085C01210007020E04A802930191C8
:1031100000900B4658210348FDF77CFAEDE70000CC
:103120004942000880000020024800680068406AA8
:103120009843000810010020024800680068406AC7
:10313000704700000000002070B52E4C207A00255A
:10314000002807D04D20E0710122E11D2A48FEF73A
:10315000DEFB25722748143000F083F8002806D0E3
@@ -798,7 +798,7 @@
:1031C0000B7053060125002B02DA0B782B430B7092
:1031D0009206920E80064A70800E88700548143060
:1031E00000F04AF8034903220E310348FEF78FFB33
:1031F000A57270BD48000020F001002070B50D469A
:1031F000A57270BDD80000208002002070B50D4679
:10320000044600F020F8002801D0012070BD20788D
:103210000C226168504308182946FCF77FFF20788C
:10322000A178401CFCF764FF2170002070BD10B530
@@ -811,269 +811,299 @@
:1032900010B500210170417081780C2251434068C3
:1032A000FCF755FF10BD000010B510210648FCF7D3
:1032B0004EFF0121044802224170827001710272A6
:1032C0004271C17110BD0000ED02002070B50F4DBC
:1032C0004271C17110BD00007D03002070B50F4D2B
:1032D0006988A868FDF756F80446A988E868FDF7EC
:1032E00051F8012802D0002809D00AE0012C02D0B0
:1032F000002C02D005E0032070BD022070BD012C1F
:1033000001D0002070BD012070BD0000040000202D
:1033100010B5054CA0606180E260A38000F078F9F0
:1033200000F086F910BD00000400002010B5094A25
:103330005378002B06D01278012A05D0022A06D035
:10334000092010BD012010BD00F006F810BD00F0EE
:1033500019F810BD0400002010B5532805D95728CE
:1033600003D0582801D0032010BD002907D0142213
:10337000002100F0BFF90028F6D0452010BD8021C3
:103380000843F4E710B5592810D2614A145CFF2CA9
:103390007ED0002902D014220021ABE014220021AB
:1033A000F02000F0A7F9002873D1F4E7632816D0C5
:1033B00077285AD00246603A1F2A6BD8544A5932AD
:1033C000101860380478FF2C62D000297ED01422B7
:1033D0000021E02000F08EF900285AD188E0002971
:1033E0001CD014220021E02000F084F9002850D1E4
:1033F00014220021122000F07DF9002849D1142266
:103400000021E02000F076F900287DD1142200216F
:103410007C2000F06FF9002876D110BD1422002125
:10342000E02000F067F900286ED114220021F0207E
:1034300000F060F9002867D1142200217C2000F000
:1034400059F9002860D114220021E02000F052F93F
:10345000002859D114220021F02000F04BF9002857
:1034600052D1142200211220D3E70029A6D0142221
:103470000021E12000F03EF9002845D1142200216E
:10348000104600F037F900283ED11422002102E056
:103490002CE039E03AE0772000F02CF9002833D115
:1034A00014220021E12000F025F900282CD114225B
:1034B0000021F02000F01EF9002825D1142200215F
:1034C000104600F017F900281ED100E014E0142285
:1034D0000021F02000F00EF9002815D1142200215F
:1034E000772000F007F900280ED110BD022010BD92
:1034F0001422012120468CE714220021E02000F054
:10350000F9F8002800D149E7452010BD032010BD7F
:10351000D0410008F3B581B00F4600250126FCF725
:1035200041FF3A4C206107E0FCF73CFF2169401A5B
:10353000B84201D30420FEBDFFF7C8FE0128F3D135
:103540001220FFF74FFA00226188A068FCF723FFE2
:103550002420FFF747FA01226188A068FCF71BFFCF
:103560001220FFF73FFAA188E068FCF70BFF012863
:1035700000D135437004060C1220FFF733FA002205
:103580006188A068FCF707FF2420FFF72BFA0122CF
:103590006188A068FCF7FFFE1220FFF723FAFF2ED8
:1035A000E1D91220FFF71EFA00226188A068FCF71B
:1035B000F2FE2420FFF716FA01226188A068FCF7CA
:1035C000EAFE1220FFF70EFA1220FFF70BFA002294
:1035D000A188E068FCF7DFFE00226188A068FCF7A4
:1035E000DAFE2420FFF7FEF901226188A068FCF7CB
:1035F000D2FE1220FFF7F6F90122A188E068FCF75D
:10360000CAFE019805700020FEBD000004000020E5
:1036100010B5064C01226188A068FCF7BCFE0122AF
:10362000A188E068FCF7B7FE10BD00000400002090
:1036300002480221017001214170704704000020FE
:1036400038B5FFF743FE284C0228A07114D001289A
:1036500015D003280FD1221D511E2448FFF736FB39
:10366000002808D12179E078FFF760FE452836D0A0
:103670001E48FFF73BFB38BDFFF7CAFF38BDFF21EF
:103680006846017018480A21401CFFF743FF69464D
:103690006078FFF745FB68460478FF2CEED01348AE
:1036A00020216038FCF753FD1048CD2160380170AF
:1036B000014620314978417081218170E207012162
:1036C000002A00D0C170A20700D50171620700D5A1
:1036D0004171012251030648FCF75DFE38BD01200F
:1036E000FCF77BFD38BD000048000020C002002030
:1036F00000080048F8B515460E460746FCF752FE8E
:103700000C4C206107E0FCF74DFE2169401AA842ED
:1037100001D30120F8BDFFF7D9FD0328F3D1002E16
:1037200003D0AF208000FFF75DF9384600F004F8C1
:10373000F8BD000004000020F8B5474C05460126FE
:103740000022A188E068FCF726FE1220FFF74AF964
:1037500000226188A068FCF71EFE2420FFF742F9D2
:1037600001226188A068FCF716FE1220FFF73AF9E3
:103770006188A068FCF706FE002868D00027E807EB
:1037800001D0012200E00022A188E068FCF703FEDE
:103790001220FFF727F900226188A068FCF7FBFDE3
:1037A0002420FFF71FF901226188A068FCF7F3FDD0
:1037B0001220FFF717F96188A068FCF7E3FD0028E5
:1037C00045D0E807C00F46406D087F1C082FD6DBA8
:1037D000002E01D0012200E00022A188E068FCF761
:1037E000DAFD1220FFF7FEF800226188A068FCF7DE
:1037F000D2FD2420FFF7F6F801226188A068FCF7CB
:10380000CAFD1220FFF7EEF86188A068FCF7BAFD48
:1038100000281CD00122A188E068FCF7BCFD122022
:10382000FFF7E0F800226188A068FCF7B4FD2420CF
:10383000FFF7D8F801226188A068FCF7ACFD1220E0
:10384000FFF7D0F8C820FFF7CDF80020F8BDFFF74C
:10385000DFFE4520F8BD00000400002010B5164C26
:1038600061892069FCF78EFD012805D12189E06876
:10387000FCF788FD012806D061892069FCF782FDEC
:10388000012802D007E0032010BD2189E068FCF781
:1038900079FD002806D061892069FCF773FD0028B6
:1038A00002D007E0022010BD2189E068FCF76AFD24
:1038B0000128F8D0002010BD18000020F8B5374EC0
:1038C000054630780C46002804D0B079002803D093
:1038D0000320F8BD0120F8BD0821601CFCF737FC6F
:1038E0000320207008206070A879002801D00920EA
:1038F0006070287A0221002802D060780843607046
:10390000E8790422002802D060781043607000201B
:10391000285E1023002802DA6078184360700220C5
:10392000285E2027002802DA607838436070287803
:10393000A070A878E0707079032806D0042806D01B
:10394000002800D022700020F8BD28791EE0687A97
:10395000002802D0207918432071A87A002802D0CC
:1039600020793843207105202856002801DD207970
:1039700003E0002803DA20790E2108432071042097
:103980002856002804DD2079012105E02071D9E7BF
:103990000028D7DA20790F210843F7E71800002024
:1039A000F8B500250E46FF2810D0E6380021012783
:1039B000584C0300FEF710FF11A0A69063619B9B7B
:1039C0009B5A9B549B331E1C1A179B0000F03EF918
:1039D0001421FA2000F0ECF9FA21AA2000F0DBF91A
:1039E0001421002075E000F03DF980E021707EE0B8
:1039F00027707CE01421FA2000F0DAF9454896217E
:103A0000401C00F097F800282FD14249207914314A
:103A100062780A5407286AD2401C207167E014219A
:103A2000FA2000F0C5F92179022916D93948143055
:103A300040182038C17F50290FD1817F642902D0DE
:103A4000C82905D009E0407FC82806D1032003E03B
:103A5000407FC82801D1042060711421607938E0CA
:103A60001421FA2000F0A4F9A771F8BD1421FA205E
:103A700000F09EF90220A071F8BDA17137E0142179
:103A8000FA2000F095F9A079012800D1402520788E
:103A9000002801D020200543E078022801D1102021
:103AA0000543B079002801D004200543F0790028AF
:103AB00001D002200543307A002800D03D43142174
:103AC000284600F068F91421A07800F064F9142168
:103AD000607800F060F9F8BD1421FA2000F068F970
:103AE0000C489621801C00F025F80028F3D1142101
:103AF000FA2000F05DF9F8BD1421FA2000F058F921
:103B0000E770F8BD1421FA2000F052F90220E070AD
:103B1000F8BD00001800002010B5054CE0602181C0
:103B20002261638100F092F800F080F810BD00007F
:103B300018000020F3B581B00F4600250126FCF7E0
:103B400031FC044606E0FCF72DFC001BB84201D313
:103B50000420FEBDFFF782FE0128F4D11220FEF7FB
:103B600041FF314C00222189E068FCF714FC24203D
:103B7000FEF738FF01222189E068FCF70CFC1220D7
:103B8000FEF730FF61892069FCF7FCFB012800D1BA
:103B900035437004060C1220FEF724FF0022218911
:103BA000E068FCF7F8FB2420FEF71CFF01222189C6
:103BB000E068FCF7F0FB1220FEF714FFFF2EE1D9BE
:103BC0001220FEF70FFF00222189E068FCF7E3FBDB
:103BD0002420FEF707FF01222189E068FCF7DBFBC8
:103BE0001220FEF7FFFE1220FEF7FCFE0022618984
:103BF0002069FCF7D0FB00222189E068FCF7CBFBB1
:103C00002420FEF7EFFE01222189E068FCF7C3FBC8
:103C10001220FEF7E7FE012261892069FCF7BBFB59
:103C2000019805700020FEBD1800002010B5064C5C
:103C300001222189E068FCF7AEFB0122618920693D
:103C4000FCF7A9FB10BD00001800002000B500F033
:103C500009F803490020087148618861487100BD76
:103C60001800002005486421417002218170012163
:103C7000C1700021017081717047000018000020A0
:103C800010B500F075F8002807D16421AA2000F0D3
:103C900082F86421002000F07EF810BD70B50E4659
:103CA0000546002407E028194078314600F073F8F3
:103CB000002804D1641C2878A042F4DC002070BDE8
:103CC00070B5FFF7CBFD274C0228607111D0012899
:103CD00012D020461430FFF7C4FA002808D0224939
:103CE000FFF7ECFD002812D020461430FFF7C4FA8D
:103CF00070BDFFF79BFF70BD1A480A21801CFFF7BB
:103D000019FF1949A0781839FFF74AFE70BDC8227B
:103D10000820FEF79BFF002800D001221146124820
:103D2000FFF7BCFF002817D0104D012208212846BC
:103D3000FCF731FBFCF736FB044604E0FCF732FBF2
:103D4000001B192803D8FFF789FD0328F6D10022AC
:103D500008212846FCF71FFB02481430FFF798FAA9
:103D600070BD000048000020E4020020000400486C
:103D700070B50546FCF716FB044606E0FCF712FB9F
:103D8000001BA84201D3042070BDFFF767FD032884
:103D9000F4D1002070BD10B504460846FFF7E8FFD7
:103DA000002801D0042010BD204600F013F810BDFB
:103DB00010B504460846FFF7DBFF002801D00420B9
:103DC00010BDAF208000FEF70DFE204600F002F887
:103DD00010BD0000F8B5474C054601260022618958
:103DE0002069FCF7D8FA1220FEF7FCFD0022218999
:103DF000E068FCF7D0FA2420FEF7F4FD01222189C7
:103E0000E068FCF7C8FA1220FEF7ECFD2189E068B3
:103E1000FCF7B8FA002868D00027E80701D0012293
:103E200000E0002261892069FCF7B5FA1220FEF754
:103E3000D9FD00222189E068FCF7ADFA2420FEF7C5
:103E4000D1FD01222189E068FCF7A5FA1220FEF7D6
:103E5000C9FD2189E068FCF795FA002845D0E807FC
:103E6000C00F46406D087F1C082FD6DB002E01D006
:103E7000012200E0002261892069FCF78CFA1220FF
:103E8000FEF7B0FD00222189E068FCF784FA2420C7
:103E9000FEF7A8FD01222189E068FCF77CFA1220D8
:103EA000FEF7A0FD2189E068FCF76CFA00281CD021
:103EB000012261892069FCF76EFA1220FEF792FD5B
:103EC00000222189E068FCF766FA2420FEF78AFDCB
:103ED00001222189E068FCF75EFA1220FEF782FDDC
:103EE000FA20FEF77FFD0020F8BDFFF79FFE45207A
:103EF000F8BD000018000020012803D0032803D0DB
:103F000041207047432070473F20704711A0FEF7C3
:103F100053FC134D0024295D12A0FEF74DFC641CD8
:103F2000202CF8DB10A0FEF747FC134D00240821DD
:103F30002846FCF72CFA6420FCF74FF9641C642C2B
:103F4000F5DBBFF34F8F0E490C48C860BFF34F8FAE
:103F500000BFFDE7535049204552524F520A00001E
:103F600080020020256420000A7265626F6F746908
:103F70006E672E2E2E0A0000000400480400FA0589
:103F800000ED00E070B50646FCF70CFA0446084D5B
:103F900006E0FCF707FA001BB04201D9042070BD0F
:103FA00029886868FCF7EEF90028F2D0002070BD7F
:103FB0003400002010B50E4C21886068FCF7E2F94F
:103FC000012802D1FCF7EEF9E060FCF7EBF9E168BB
:103FD000401A14280BD9C820FFF7D4FF1420FCF78F
:103FE000FCF8AA2000F094F80A20FCF7F6F810BDBF
:103FF0003400002010B500F05DF8FCF7D3F901495A
:10400000C86010BD3400002010B5034C60602180F2
:10401000A260638010BD00003400002070B504462B
:1040200066380300FEF7D8FB0A1406080A0C0E10C7
:104030001216181A482413E04A2411E04B240FE00A
:104040004E240DE04F240BE0502409E0512407E0FA
:10405000472405E0522403E0532401E0532C0BD8FD
:10406000022902D000290DD00EE0FCF79BF9084D83
:104070002969401A502801D8002070BDFCF792F938
:10408000286101E080200443204600F041F870BD23
:104090003400002010B5064C012221886068FCF72E
:1040A0007AF901226188A068FCF775F910BD00005B
:1040B0003400002010B5064C012221886068FCF70E
:1040C0006AF900226188A068FCF765F910BD00005C
:1040D0003400002010B5FFF76DFF0B4A0B48511E4E
:1040E000FEF7F4FD00280AD10748001F0179C078C7
:1040F000FFF794FF452803D00448FEF7F7FD10BDF5
:104100000120FCF76AF810BD4C000020C00200201E
:1041100070B52E4C054621886068FCF733F90028FD
:104120002AD0002221886068FCF735F90520FEF7C7
:1041300059FC01226188A068FCF72DF96E20FEF77A
:1041400051FC6188A068FCF71DF9002814D00122F9
:1041500021886068FCF71FF94120FEF743FC00222C
:1041600021886068FCF717F91E20FEF73BFC00264B
:10417000E80705D0012204E0FFF79CFF452070BD51
:1041800000226188A068FCF706F901222188606896
:10419000FCF701F94120FEF725FC00222188606828
:1041A000FCF7F9F81E20FEF71DFC6D08761C082EA2
:1041B000DEDB012221886068FCF7EDF800226188CF
:1041C000A068FCF7E8F8002070BD00003400002073
:1041D000FF76161E26252E363D3E46454E55660D6B
:1041E000151D242D2C353C43444D545B5A141C1B87
:1041F000232B34333B424B4C520E125D1A22212AA0
:1042000032313A41494A597C1129580506040C03B8
:104210000B830A0109777E6C757D7B6B73747969FA
:10422000727A7071FFFF6178075A144AFF11FF6CB0
:10423000757D6B7469727A7071FFFFFFFFFFFFFF7E
:10424000FFFFFFFFFFFF1F272F0001060755534207
:104250003456432050726F746F636F6C20426F61ED
:1042600072640A49424D20504320436F6D7061745F
:1042700069626C650A64656B754E756B656D20329D
:104280003032320000000000000000000102030490
:10429000060708090000000001020304BC420008F0
:1042A0000000002080000000F22700083C430008C6
:1042B00080000020800800000228000800000000A4
:1042C00002010000000000000000000000000000EB
:1042D00000000000000000000000000000000000DE
:1042E00000000000000000000000000000000000CE
:1042F00000000000000000000000000000000000BE
:1043000000000000000000000000000000000000AD
:10431000000000000000000000000000000000009D
:1043200000000000000000000000000000127A0001
:0C43300000000000000000000000000081
:1033100010B5054CA0606180E260A38000F0BEF9AA
:1033200000F0CCF910BD00000400002010B50C4ADC
:103330005378002B08D01278012A07D0022A08D02F
:10334000032A09D0072010BD012010BD00F00AF8A3
:1033500010BD00F01DF810BD00F0E2F810BD000037
:103360000400002010B5532805D9572803D0582849
:1033700001D0032010BD002907D01422002100F045
:10338000FFF90028F6D0082010BD80210843F4E79B
:1033900010B5592810D2614A145CFF2C7ED0002948
:1033A00002D014220021ABE014220021F02000F012
:1033B000E7F9002873D1F4E7632816D077285AD0AC
:1033C0000246603A1F2A6BD8544A593210186038A6
:1033D0000478FF2C62D000297ED014220021E02046
:1033E00000F0CEF900285AD188E000291CD0142220
:1033F0000021E02000F0C4F9002850D1142200215F
:10340000122000F0BDF9002849D114220021E0204B
:1034100000F0B6F900287DD1142200217C2000F0B4
:10342000AFF9002876D110BD14220021E02000F071
:10343000A7F900286ED114220021F02000F0A0F995
:10344000002867D1142200217C2000F099F900287F
:1034500060D114220021E02000F092F9002859D117
:1034600014220021F02000F08BF9002852D1142200
:1034700000211220D3E70029A6D014220021E12048
:1034800000F07EF9002845D114220021104600F0FA
:1034900077F900283ED11422002102E02CE039E027
:1034A0003AE0772000F06CF9002833D11422002193
:1034B000E12000F065F900282CD114220021F02031
:1034C00000F05EF9002825D114220021104600F0FA
:1034D00057F900281ED100E014E014220021F0204A
:1034E00000F04EF9002815D114220021772000F0B9
:1034F00047F900280ED110BD022010BD1422012171
:1035000020468CE714220021E02000F039F9002841
:1035100000D149E7082010BD032010BD1F4300085B
:1035200070B50C460A460546014619A0FFF744F956
:10353000C32D01D3052070BD1748455DFF2D03D075
:103540008E2D03D3062070BD022070BD1348012CC0
:10355000405D04D0002C0AD0022C15D016E01422B5
:103560000021284600F00CF900280BD10EE00128BC
:1035700001D000280AD114220021F02000F000F927
:103580000028ECD0082070BD0028E8D0002070BDD5
:1035900025642025640000005C420008180000201B
:1035A000F3B581B00F4600250126FCF7FBFE3A4C2F
:1035B000206107E0FCF7F6FE2169401AB84201D30A
:1035C0000420FEBDFFF782FE0128F3D11220FFF791
:1035D00009FA00226188A068FCF7DDFE2420FFF7CD
:1035E00001FA01226188A068FCF7D5FE1220FFF7DE
:1035F000F9F9A188E068FCF7C5FE012800D1354340
:103600007004060C1220FFF7EDF900226188A06813
:10361000FCF7C1FE2420FFF7E5F901226188A068CC
:10362000FCF7B9FE1220FFF7DDF9FF2EE1D91220D9
:10363000FFF7D8F900226188A068FCF7ACFE2420CF
:10364000FFF7D0F901226188A068FCF7A4FE1220E0
:10365000FFF7C8F91220FFF7C5F90022A188E0683A
:10366000FCF799FE00226188A068FCF794FE2420F4
:10367000FFF7B8F901226188A068FCF78CFE1220E0
:10368000FFF7B0F90122A188E068FCF784FE0198F9
:1036900005700020FEBD00000400002010B5064C9F
:1036A00001226188A068FCF776FE0122A188E0680B
:1036B000FCF771FE10BD0000040000200248032149
:1036C00001700121417070470400002038B5FFF7F8
:1036D000FDFD284C0228A07114D0012815D0032824
:1036E0000FD1221D511E2448FFF7F0FA002808D1FF
:1036F0002179E078FFF71AFE082836D01E48FFF738
:10370000F5FA38BDFFF7CAFF38BDFF2168460170E2
:1037100018480A21401CFFF743FF69466078FFF70D
:10372000FFFA68460478FF2CEED013482021603859
:10373000FCF70DFD1048CD216038017001462031A5
:103740004978417081218170E2070121002A00D06F
:10375000C170A20700D50171620700D54171012235
:1037600051030648FCF717FE38BD0120FCF735FD74
:1037700038BD0000D8000020500300200008004899
:10378000F8B515460E460746FCF70CFE0C4C2061BA
:1037900007E0FCF707FE2169401AA84201D3012087
:1037A000F8BDFFF793FD0328F3D1002E03D0AF201F
:1037B0008000FFF717F9384600F004F8F8BD000064
:1037C00004000020F8B5474C054601260022A188D8
:1037D000E068FCF7E0FD1220FFF704F900226188A1
:1037E000A068FCF7D8FD2420FFF7FCF801226188CF
:1037F000A068FCF7D0FD1220FFF7F4F86188A068FC
:10380000FCF7C0FD002868D00027E80701D001229E
:1038100000E00022A188E068FCF7BDFD1220FFF760
:10382000E1F800226188A068FCF7B5FD2420FFF7CD
:10383000D9F801226188A068FCF7ADFD1220FFF7DE
:10384000D1F86188A068FCF79DFD002845D0E80705
:10385000C00F46406D087F1C082FD6DB002E01D01C
:10386000012200E00022A188E068FCF794FD12200C
:10387000FFF7B8F800226188A068FCF78CFD2420CF
:10388000FFF7B0F801226188A068FCF784FD1220E0
:10389000FFF7A8F86188A068FCF774FD00281CD029
:1038A0000122A188E068FCF776FD1220FFF79AF864
:1038B00000226188A068FCF76EFD2420FFF792F8D3
:1038C00001226188A068FCF766FD1220FFF78AF8E4
:1038D000C820FFF787F80020F8BDFFF7DFFE0820BB
:1038E000F8BD00000400002010B5164C6189206965
:1038F000FCF748FD012805D12189E068FCF742FD6D
:10390000012806D061892069FCF73CFD012802D01E
:1039100007E0032010BD2189E068FCF733FD002893
:1039200006D061892069FCF72DFD002802D007E050
:10393000022010BD2189E068FCF724FD0128F8D0A1
:10394000002010BDA8000020F8B5374E054630789D
:103950000C46002804D0B079002803D00620F8BD1A
:103960000120F8BD0821601CFCF7F1FB032020704A
:1039700008206070A879002801D009206070287A9A
:103980000221002802D0607808436070E8790422A0
:10399000002802D06078104360700020285E102359
:1039A000002802DA6078184360700220285E202721
:1039B000002802DA6078384360702878A070A87810
:1039C000E0707079032806D0042806D0002800D0C3
:1039D00022700020F8BD28791EE0687A002802D005
:1039E000207918432071A87A002802D02079384322
:1039F000207105202856002801DD207903E00028E9
:103A000003DA20790E21084320710420285600286B
:103A100004DD2079012105E02071D9E70028D7DAFB
:103A200020790F210843F7E7A8000020F8B500250A
:103A30000E46FF2810D0E63800210127584C03001D
:103A4000FEF7CAFE11A0A69063619B9B9B5A9B54F4
:103A50009B331E1C1A179B0000F03EF91421FA201C
:103A600000F0ECF9FA21AA2000F0DBF91421002083
:103A700075E000F03DF980E021707EE027707CE089
:103A80001421FA2000F0DAF945489621401C00F094
:103A900097F800282FD142492079143162780A54CE
:103AA00007286AD2401C207167E01421FA2000F038
:103AB000C5F92179022916D939481430401820381F
:103AC000C17F50290FD1817F642902D0C82905D038
:103AD00009E0407FC82806D1032003E0407FC828C2
:103AE00001D1042060711421607938E01421FA209A
:103AF00000F0A4F9A771F8BD1421FA2000F09EF996
:103B00000220A071F8BDA17137E01421FA2000F065
:103B100095F9A079012800D140252078002801D00E
:103B200020200543E078022801D110200543B07918
:103B3000002801D004200543F079002801D002209C
:103B40000543307A002800D03D431421284600F078
:103B500068F91421A07800F064F91421607800F06D
:103B600060F9F8BD1421FA2000F068F90C4896219C
:103B7000801C00F025F80028F3D11421FA2000F071
:103B80005DF9F8BD1421FA2000F058F9E770F8BD8E
:103B90001421FA2000F052F90220E070F8BD000074
:103BA000A800002010B5054CE060218122616381EE
:103BB00000F092F800F080F810BD0000A80000208E
:103BC000F3B581B00F4600250126FCF7EBFB044658
:103BD00006E0FCF7E7FB001BB84201D30420FEBD62
:103BE000FFF782FE0128F4D11220FEF7FBFE314CD4
:103BF00000222189E068FCF7CEFB2420FEF7F2FECC
:103C000001222189E068FCF7C6FB1220FEF7EAFEDC
:103C100061892069FCF7B6FB012800D135437004A7
:103C2000060C1220FEF7DEFE00222189E068FCF778
:103C3000B2FB2420FEF7D6FE01222189E068FCF7C2
:103C4000AAFB1220FEF7CEFEFF2EE1D91220FEF7CE
:103C5000C9FE00222189E068FCF79DFB2420FEF7C5
:103C6000C1FE01222189E068FCF795FB1220FEF7D6
:103C7000B9FE1220FEF7B6FE002261892069FCF72A
:103C80008AFB00222189E068FCF785FB2420FEF7EF
:103C9000A9FE01222189E068FCF77DFB1220FEF7D6
:103CA000A1FE012261892069FCF775FB019805706E
:103CB0000020FEBDA800002010B5064C012221897D
:103CC000E068FCF768FB012261892069FCF763FB6F
:103CD00010BD0000A800002000B500F009F803495D
:103CE0000020087148618861487100BDA80000206B
:103CF000054864214170022181700121C1700021B9
:103D00000170817170470000A800002010B500F01C
:103D100075F8002807D16421AA2000F082F86421F8
:103D2000002000F07EF810BD70B50E460546002458
:103D300007E028194078314600F073F8002804D1D4
:103D4000641C2878A042F4DC002070BD70B5FFF739
:103D5000CBFD274C0228607111D0012812D02046DB
:103D60001430FFF77EFA002808D02249FFF7ECFD57
:103D7000002812D020461430FFF77EFA70BDFFF7FE
:103D80009BFF70BD1A480A21801CFFF719FF1949D3
:103D9000A0781839FFF74AFE70BDC8220820FEF748
:103DA00055FF002800D0012211461248FFF7BCFF42
:103DB000002817D0104D012208212846FCF7EBFA05
:103DC000FCF7F0FA044604E0FCF7ECFA001B1928B3
:103DD00003D8FFF789FD0328F6D1002208212846E1
:103DE000FCF7D9FA02481430FFF752FA70BD000010
:103DF000D8000020740300200004004870B5054678
:103E0000FCF7D0FA044606E0FCF7CCFA001BA84207
:103E100001D3042070BDFFF767FD0328F4D1002013
:103E200070BD10B504460846FFF7E8FF002801D032
:103E3000042010BD204600F013F810BD10B5044654
:103E40000846FFF7DBFF002801D0042010BDAF209B
:103E50008000FEF7C7FD204600F002F810BD00000C
:103E6000F8B5474C05460126002261892069FCF718
:103E700092FA1220FEF7B6FD00222189E068FCF7D5
:103E80008AFA2420FEF7AEFD01222189E068FCF7C2
:103E900082FA1220FEF7A6FD2189E068FCF772FA8B
:103EA000002868D00027E80701D0012200E00022A6
:103EB00061892069FCF76FFA1220FEF793FD00225A
:103EC0002189E068FCF767FA2420FEF78BFD0122C8
:103ED0002189E068FCF75FFA1220FEF783FD218953
:103EE000E068FCF74FFA002845D0E807C00F4640CD
:103EF0006D087F1C082FD6DB002E01D0012200E0C8
:103F0000002261892069FCF746FA1220FEF76AFD5B
:103F100000222189E068FCF73EFA2420FEF762FDCA
:103F200001222189E068FCF736FA1220FEF75AFDDB
:103F30002189E068FCF726FA00281CD0012261895B
:103F40002069FCF728FA1220FEF74CFD0022218997
:103F5000E068FCF720FA2420FEF744FD01222189C5
:103F6000E068FCF718FA1220FEF73CFDFA20FEF795
:103F700039FD0020F8BDFFF79FFE0820F8BD0000C6
:103F8000A8000020012803D0032803D04120704757
:103F9000432070473F20704711A0FEF70DFC134DE2
:103FA0000024295D12A0FEF707FC641C202CF8DB1E
:103FB00010A0FEF701FC134D002408212846FCF751
:103FC000E6F96420FCF709F9641C642CF5DBBFF307
:103FD0004F8F0E490C48C860BFF34F8F00BFFDE7FD
:103FE000535049204552524F520A000010030020FE
:103FF000256420000A7265626F6F74696E672E2EE9
:104000002E0A0000000400480400FA0500ED00E05C
:1040100070B50646FCF7C6F90446084D06E0FCF705
:10402000C1F9001BB04201D9042070BD298868681D
:10403000FCF7A8F90028F2D0002070BDC4000020D1
:1040400010B50E4C21886068FCF79CF9012802D15C
:10405000FCF7A8F9E060FCF7A5F9E168401A14281C
:104060000BD9C820FFF7D4FF1420FCF7B6F8AA201C
:1040700000F094F80A20FCF7B0F810BDC40000204E
:1040800010B500F05DF8FCF78DF90149C86010BD6E
:10409000C400002010B5034C60602180A2606380E2
:1040A00010BD0000C400002070B50446663803004F
:1040B000FEF792FB0A1406080A0C0E101216181AC4
:1040C000482413E04A2411E04B240FE04E240DE075
:1040D0004F240BE0502409E0512407E0472405E079
:1040E000522403E0532401E0532C0BD8022902D0C0
:1040F00000290DD00EE0FCF755F9084D2969401A4A
:10410000502801D8002070BDFCF74CF9286101E06F
:1041100080200443204600F041F870BDC400002018
:1041200010B5064C012221886068FCF734F90122A1
:104130006188A068FCF72FF910BD0000C4000020C2
:1041400010B5064C012221886068FCF724F9002292
:104150006188A068FCF71FF910BD0000C4000020B2
:1041600010B5FFF76DFF0B4A0B48511EFEF7AEFD71
:1041700000280AD10748001F0179C078FFF794FF93
:10418000452803D00448FEF7B1FD10BD0120FCF71F
:1041900024F810BDDC0000205003002070B52E4C28
:1041A000054621886068FCF7EDF800282AD0002237
:1041B00021886068FCF7EFF80520FEF713FC012268
:1041C0006188A068FCF7E7F86E20FEF70BFC6188B9
:1041D000A068FCF7D7F8002814D001222188606875
:1041E000FCF7D9F84120FEF7FDFB0022218860682A
:1041F000FCF7D1F81E20FEF7F5FB0026E80705D0F6
:10420000012204E0FFF79CFF452070BD0022618879
:10421000A068FCF7C0F8012221886068FCF7BBF8B1
:104220004120FEF7DFFB002221886068FCF7B3F82D
:104230001E20FEF7D7FB6D08761C082EDEDB012260
:1042400021886068FCF7A7F800226188A068FCF765
:10425000A2F8002070BD0000C4000020FF08161E58
:1042600026252E363D3E46454E55660D151D242D00
:104270002C353C43444D545B5A111C1B232B3433C7
:104280003B424B4C520E125C1A22212A32313A41E7
:10429000494A597E192914070F171F272F373F47FF
:1042A0004F765F6C757D4E6B73747C69727A70713A
:1042B000FFFF13565EFFFFFFFFFFFFFF79584A57CE
:1042C00039FF6E636F616A65606D6764FFFFFFFFB2
:1042D000FFFFFF62FFFFFFFFFF8B8C8DFFFFFFFFE4
:1042E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE
:1042F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE
:10430000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD
:10431000FFFFFF08101820283038404850575FFF33
:1043200076161E26252E363D3E46454E55660D1503
:104330001D242D2C353C43444D545B5A141C1B2327
:104340002B34333B424B4C520E125D1A22212A323F
:10435000313A41494A597C1129580506040C030B8E
:10436000830A0109777E6C757D7B6B737479697242
:104370007A7071FFFF6178075A144AFF11FF6C755C
:104380007D6B7469727A7071FFFFFFFFFFFFFFFFA3
:10439000FFFFFFFFFF1F272F000106075553423481
:1043A00056432050726F746F636F6C20426F61725E
:1043B000640A49424D20504320436F6D7061746917
:1043C000626C650A64656B754E756B656D20323085
:1043D0003232000000000000000000010203040669
:1043E0000708090000000001020304000C44000853
:1043F0000000002010010000F22700081C45000802
:1044000010010020800800000228000800000000C1
:104410000301000000000000000000000000000098
:104420000000000000000000000000020200000088
:104430000000000200010100010000020001000074
:104440000000000200000000000000020000000068
:104450000000000200000000000000020002000056
:104460000000000200000000000000020000000048
:104470000000000200000000000002020201000033
:10448000000002020000020000020002000200021E
:104490000202020202020202020202020002020000
:1044A0000002020000000000020000000000000006
:1044B00000000000000000000000000000000000FC
:1044C00000000000000000000000000000000000EC
:1044D00000000000000000000000000000000000DC
:1044E00000000000000000000000000000000000CC
:1044F00000000000000000000000000000000000BC
:1045000000000000000000000000000000127A001F
:0C4510000000000000000000000000009F
:04000005080000C12E
:00000001FF

View File

@@ -3,7 +3,7 @@
<title>Static Call Graph - [ibmpc\ibmpc.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image ibmpc\ibmpc.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Fri May 06 11:22:23 2022
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Fri May 06 12:03:06 2022
<BR><P>
<H3>Maximum Stack Usage = 212 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
@@ -74,7 +74,7 @@ Global Symbols
<P><STRONG><a name="[28]"></a>__main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f072xb.o(.text)
</UL>
<P><STRONG><a name="[da]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[db]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[30]"></a>_main_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
@@ -84,15 +84,15 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL>
<P><STRONG><a name="[db]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[dc]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[dc]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[dd]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[dd]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[de]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[de]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[df]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[df]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[e0]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[0]"></a>Reset_Handler</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f072xb.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f072xb.o(RESET)
@@ -188,7 +188,7 @@ Global Symbols
<P><STRONG><a name="[6]"></a>WWDG_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f072xb.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f072xb.o(RESET)
</UL>
<P><STRONG><a name="[e0]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[e1]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[4a]"></a>__aeabi_uidivmod</STRONG> (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = __aeabi_uidivmod
@@ -218,21 +218,21 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
</UL>
<P><STRONG><a name="[e1]"></a>__aeabi_memcpy8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
<P><STRONG><a name="[e2]"></a>__aeabi_memcpy8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
<P><STRONG><a name="[33]"></a>__aeabi_memset</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[34]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_memset$wrapper
<LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<P><STRONG><a name="[e2]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[e3]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[e3]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[e4]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[32]"></a>__aeabi_memclr</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[33]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
</UL>
<BR>[Called By]<UL><LI><a href="#[cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_outgoing_data
<BR>[Called By]<UL><LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_outgoing_data
<LI><a href="#[c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_reset
<LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_reset
<LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;gamepad_buf_reset
@@ -245,7 +245,7 @@ Global Symbols
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
</UL>
<P><STRONG><a name="[e4]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[e5]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[34]"></a>_memset$wrapper</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[33]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
@@ -257,7 +257,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
</UL>
<P><STRONG><a name="[e5]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[e6]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[b]"></a>EXTI0_1_IRQHandler</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, stm32f0xx_it.o(i.EXTI0_1_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = EXTI0_1_IRQHandler &rArr; HAL_GPIO_EXTI_IRQHandler &rArr; HAL_GPIO_EXTI_Callback
@@ -278,7 +278,7 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL>
<BR>[Called By]<UL><LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<BR>[Called By]<UL><LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mcp4451_reset
<LI><a href="#[be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_update
<LI><a href="#[bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
@@ -312,13 +312,13 @@ Global Symbols
</UL>
<P><STRONG><a name="[ba]"></a>HAL_GPIO_ReadPin</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_ReadPin))
<BR><BR>[Called By]<UL><LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_for_clk_high
<LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write_nowait
<BR><BR>[Called By]<UL><LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_for_clk_high
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write_nowait
<LI><a href="#[b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
<LI><a href="#[c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_get_bus_status
<LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
@@ -331,14 +331,14 @@ Global Symbols
<P><STRONG><a name="[59]"></a>HAL_GPIO_WritePin</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin))
<BR><BR>[Called By]<UL><LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_reset_bus
<LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_reset_bus
<LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_release_lines
<LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mcp4451_reset
<LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_release_lines
<LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write_nowait
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write_nowait
<LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_release_lines
<LI><a href="#[b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
<LI><a href="#[bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
@@ -350,15 +350,15 @@ Global Symbols
</UL>
<P><STRONG><a name="[38]"></a>HAL_GetTick</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, stm32f0xx_hal.o(i.HAL_GetTick))
<BR><BR>[Called By]<UL><LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<BR><BR>[Called By]<UL><LI><a href="#[da]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_enable
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_for_clk_high
<LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_for_clk_high
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_I2C_Mem_Write
<LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_I2C_IsDeviceReady
<LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
<LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write
<LI><a href="#[b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_WaitFlagStateUntilTimeout
@@ -851,29 +851,30 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[e6]"></a>__1printf$3</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)
<P><STRONG><a name="[e7]"></a>__1printf$3</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)
<P><STRONG><a name="[b3]"></a>__2printf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = __2printf
</UL>
<BR>[Called By]<UL><LI><a href="#[bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<BR>[Called By]<UL><LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_press_key_scancode_3
<LI><a href="#[bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[a1]"></a>__ARM_common_switch8</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, ps2kb.o(i.__ARM_common_switch8))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __ARM_common_switch8
</UL>
<BR>[Called By]<UL><LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<BR>[Called By]<UL><LI><a href="#[da]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;keyboard_reply
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;handle_protocol_switch
</UL>
<P><STRONG><a name="[e7]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[e8]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[e8]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[e9]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[e9]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[ea]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[5c]"></a>byte_to_int16_t</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, main.o(i.byte_to_int16_t))
<BR><BR>[Called By]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
@@ -884,11 +885,11 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;micros
</UL>
<BR>[Called By]<UL><LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_delay_start
<LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write_nowait
<BR>[Called By]<UL><LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_delay_start
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write_nowait
<LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write
<LI><a href="#[b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
</UL>
@@ -1024,7 +1025,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_add
</UL>
<P><STRONG><a name="[c9]"></a>kb_buf_peek</STRONG> (Thumb, 32 bytes, Stack size 8 bytes, helpers.o(i.kb_buf_peek))
<P><STRONG><a name="[ca]"></a>kb_buf_peek</STRONG> (Thumb, 32 bytes, Stack size 8 bytes, helpers.o(i.kb_buf_peek))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = kb_buf_peek
</UL>
<BR>[Called By]<UL><LI><a href="#[be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_update
@@ -1228,10 +1229,11 @@ Global Symbols
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;handle_protocol_switch
</UL>
<P><STRONG><a name="[c6]"></a>ps2kb_press_key</STRONG> (Thumb, 40 bytes, Stack size 8 bytes, ps2kb.o(i.ps2kb_press_key))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = ps2kb_press_key &rArr; ps2kb_press_key_scancode_2 &rArr; ps2kb_write &rArr; ps2kb_write_nowait &rArr; ps2kb_release_lines
<P><STRONG><a name="[c6]"></a>ps2kb_press_key</STRONG> (Thumb, 50 bytes, Stack size 8 bytes, ps2kb.o(i.ps2kb_press_key))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = ps2kb_press_key &rArr; ps2kb_press_key_scancode_3 &rArr; ps2kb_write &rArr; ps2kb_write_nowait &rArr; ps2kb_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_press_key_scancode_2
<BR>[Calls]<UL><LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_press_key_scancode_3
<LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_press_key_scancode_2
<LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_press_key_scancode_1
</UL>
<BR>[Called By]<UL><LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_update
@@ -1253,6 +1255,15 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_press_key
</UL>
<P><STRONG><a name="[c9]"></a>ps2kb_press_key_scancode_3</STRONG> (Thumb, 112 bytes, Stack size 16 bytes, ps2kb.o(i.ps2kb_press_key_scancode_3))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = ps2kb_press_key_scancode_3 &rArr; ps2kb_write &rArr; ps2kb_write_nowait &rArr; ps2kb_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write
<LI><a href="#[b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL>
<BR>[Called By]<UL><LI><a href="#[c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_press_key
</UL>
<P><STRONG><a name="[b0]"></a>ps2kb_read</STRONG> (Thumb, 246 bytes, Stack size 32 bytes, ps2kb.o(i.ps2kb_read))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = ps2kb_read &rArr; ps2kb_get_bus_status
</UL>
@@ -1271,7 +1282,7 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
</UL>
<BR>[Called By]<UL><LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write_nowait
<BR>[Called By]<UL><LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write_nowait
<LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_init
<LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_update
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;handle_protocol_switch
@@ -1284,7 +1295,7 @@ Global Symbols
</UL>
<P><STRONG><a name="[bd]"></a>ps2kb_update</STRONG> (Thumb, 166 bytes, Stack size 16 bytes, main.o(i.ps2kb_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = ps2kb_update &rArr; ps2kb_press_key &rArr; ps2kb_press_key_scancode_2 &rArr; ps2kb_write &rArr; ps2kb_write_nowait &rArr; ps2kb_release_lines
<BR><BR>[Stack]<UL><LI>Max Depth = 96<LI>Call Chain = ps2kb_update &rArr; ps2kb_press_key &rArr; ps2kb_press_key_scancode_3 &rArr; ps2kb_write &rArr; ps2kb_write_nowait &rArr; ps2kb_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
@@ -1294,7 +1305,7 @@ Global Symbols
<LI><a href="#[c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_get_bus_status
<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;keyboard_reply
<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_pop
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_peek
<LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_peek
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
@@ -1304,16 +1315,17 @@ Global Symbols
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = ps2kb_write &rArr; ps2kb_write_nowait &rArr; ps2kb_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write_nowait
<LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write_nowait
<LI><a href="#[c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_get_bus_status
<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
</UL>
<BR>[Called By]<UL><LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_press_key_scancode_2
<BR>[Called By]<UL><LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_press_key_scancode_3
<LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_press_key_scancode_2
<LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_press_key_scancode_1
<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;keyboard_reply
</UL>
<P><STRONG><a name="[ca]"></a>ps2kb_write_nowait</STRONG> (Thumb, 286 bytes, Stack size 24 bytes, ps2kb.o(i.ps2kb_write_nowait))
<P><STRONG><a name="[cb]"></a>ps2kb_write_nowait</STRONG> (Thumb, 286 bytes, Stack size 24 bytes, ps2kb.o(i.ps2kb_write_nowait))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = ps2kb_write_nowait &rArr; ps2kb_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
@@ -1324,17 +1336,17 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write
</UL>
<P><STRONG><a name="[cb]"></a>ps2mouse_get_bus_status</STRONG> (Thumb, 92 bytes, Stack size 8 bytes, ps2mouse.o(i.ps2mouse_get_bus_status))
<P><STRONG><a name="[cc]"></a>ps2mouse_get_bus_status</STRONG> (Thumb, 92 bytes, Stack size 8 bytes, ps2mouse.o(i.ps2mouse_get_bus_status))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = ps2mouse_get_bus_status
</UL>
<BR>[Calls]<UL><LI><a href="#[ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
</UL>
<BR>[Called By]<UL><LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
<LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<BR>[Called By]<UL><LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
</UL>
<P><STRONG><a name="[cc]"></a>ps2mouse_get_outgoing_data</STRONG> (Thumb, 224 bytes, Stack size 24 bytes, ps2mouse.o(i.ps2mouse_get_outgoing_data))
<P><STRONG><a name="[cd]"></a>ps2mouse_get_outgoing_data</STRONG> (Thumb, 224 bytes, Stack size 24 bytes, ps2mouse.o(i.ps2mouse_get_outgoing_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = ps2mouse_get_outgoing_data
</UL>
<BR>[Calls]<UL><LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
@@ -1342,14 +1354,14 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
</UL>
<P><STRONG><a name="[cd]"></a>ps2mouse_host_req_reply</STRONG> (Thumb, 370 bytes, Stack size 24 bytes, ps2mouse.o(i.ps2mouse_host_req_reply))
<P><STRONG><a name="[ce]"></a>ps2mouse_host_req_reply</STRONG> (Thumb, 370 bytes, Stack size 24 bytes, ps2mouse.o(i.ps2mouse_host_req_reply))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = ps2mouse_host_req_reply &rArr; ps2mouse_write_delay_start &rArr; ps2mouse_write_nowait &rArr; ps2mouse_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_delay_start
<LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_restore_defaults
<BR>[Calls]<UL><LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_delay_start
<LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_restore_defaults
<LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_reset
<LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8
</UL>
<BR>[Called By]<UL><LI><a href="#[bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
@@ -1365,16 +1377,16 @@ Global Symbols
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;handle_protocol_switch
</UL>
<P><STRONG><a name="[d1]"></a>ps2mouse_read</STRONG> (Thumb, 244 bytes, Stack size 32 bytes, ps2mouse.o(i.ps2mouse_read))
<P><STRONG><a name="[d2]"></a>ps2mouse_read</STRONG> (Thumb, 244 bytes, Stack size 32 bytes, ps2mouse.o(i.ps2mouse_read))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = ps2mouse_read &rArr; ps2mouse_get_bus_status
</UL>
<BR>[Calls]<UL><LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<BR>[Calls]<UL><LI><a href="#[cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
</UL>
<BR>[Called By]<UL><LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<BR>[Called By]<UL><LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
</UL>
@@ -1383,7 +1395,7 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
</UL>
<BR>[Called By]<UL><LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<BR>[Called By]<UL><LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_init
<LI><a href="#[bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;handle_protocol_switch
@@ -1392,31 +1404,31 @@ Global Symbols
<P><STRONG><a name="[a8]"></a>ps2mouse_reset</STRONG> (Thumb, 20 bytes, Stack size 4 bytes, ps2mouse.o(i.ps2mouse_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = ps2mouse_reset
</UL>
<BR>[Calls]<UL><LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_restore_defaults
<BR>[Calls]<UL><LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_restore_defaults
</UL>
<BR>[Called By]<UL><LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_init
<LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;handle_protocol_switch
</UL>
<P><STRONG><a name="[d0]"></a>ps2mouse_restore_defaults</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, ps2mouse.o(i.ps2mouse_restore_defaults))
<P><STRONG><a name="[d1]"></a>ps2mouse_restore_defaults</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, ps2mouse.o(i.ps2mouse_restore_defaults))
<BR><BR>[Called By]<UL><LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_reset
<LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
</UL>
<P><STRONG><a name="[b9]"></a>ps2mouse_send_bat</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, ps2mouse.o(i.ps2mouse_send_bat))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = ps2mouse_send_bat &rArr; ps2mouse_write &rArr; ps2mouse_write_nowait &rArr; ps2mouse_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
<BR>[Calls]<UL><LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[d3]"></a>ps2mouse_send_update</STRONG> (Thumb, 36 bytes, Stack size 16 bytes, ps2mouse.o(i.ps2mouse_send_update))
<P><STRONG><a name="[d4]"></a>ps2mouse_send_update</STRONG> (Thumb, 36 bytes, Stack size 16 bytes, ps2mouse.o(i.ps2mouse_send_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = ps2mouse_send_update &rArr; ps2mouse_write &rArr; ps2mouse_write_nowait &rArr; ps2mouse_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<BR>[Calls]<UL><LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
</UL>
<BR>[Called By]<UL><LI><a href="#[bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
</UL>
@@ -1424,12 +1436,12 @@ Global Symbols
<P><STRONG><a name="[bb]"></a>ps2mouse_update</STRONG> (Thumb, 162 bytes, Stack size 16 bytes, main.o(i.ps2mouse_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = ps2mouse_update &rArr; ps2mouse_host_req_reply &rArr; ps2mouse_write_delay_start &rArr; ps2mouse_write_nowait &rArr; ps2mouse_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<BR>[Calls]<UL><LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<LI><a href="#[a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_release_lines
<LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_outgoing_data
<LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_outgoing_data
<LI><a href="#[cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_reset
@@ -1440,39 +1452,39 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[d2]"></a>ps2mouse_wait_for_idle</STRONG> (Thumb, 38 bytes, Stack size 16 bytes, ps2mouse.o(i.ps2mouse_wait_for_idle))
<P><STRONG><a name="[d3]"></a>ps2mouse_wait_for_idle</STRONG> (Thumb, 38 bytes, Stack size 16 bytes, ps2mouse.o(i.ps2mouse_wait_for_idle))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = ps2mouse_wait_for_idle &rArr; ps2mouse_get_bus_status
</UL>
<BR>[Calls]<UL><LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<BR>[Calls]<UL><LI><a href="#[cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL>
<BR>[Called By]<UL><LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_delay_start
<LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<BR>[Called By]<UL><LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_delay_start
<LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_bat
</UL>
<P><STRONG><a name="[cf]"></a>ps2mouse_write</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, ps2mouse.o(i.ps2mouse_write))
<P><STRONG><a name="[d0]"></a>ps2mouse_write</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, ps2mouse.o(i.ps2mouse_write))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = ps2mouse_write &rArr; ps2mouse_write_nowait &rArr; ps2mouse_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
<BR>[Calls]<UL><LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
</UL>
<BR>[Called By]<UL><LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<BR>[Called By]<UL><LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<LI><a href="#[b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_bat
<LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
</UL>
<P><STRONG><a name="[ce]"></a>ps2mouse_write_delay_start</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, ps2mouse.o(i.ps2mouse_write_delay_start))
<P><STRONG><a name="[cf]"></a>ps2mouse_write_delay_start</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, ps2mouse.o(i.ps2mouse_write_delay_start))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = ps2mouse_write_delay_start &rArr; ps2mouse_write_nowait &rArr; ps2mouse_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
<BR>[Calls]<UL><LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
</UL>
<BR>[Called By]<UL><LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<BR>[Called By]<UL><LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
</UL>
<P><STRONG><a name="[d4]"></a>ps2mouse_write_nowait</STRONG> (Thumb, 286 bytes, Stack size 24 bytes, ps2mouse.o(i.ps2mouse_write_nowait))
<P><STRONG><a name="[d5]"></a>ps2mouse_write_nowait</STRONG> (Thumb, 286 bytes, Stack size 24 bytes, ps2mouse.o(i.ps2mouse_write_nowait))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = ps2mouse_write_nowait &rArr; ps2mouse_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_release_lines
@@ -1480,8 +1492,8 @@ Global Symbols
<LI><a href="#[ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
</UL>
<BR>[Called By]<UL><LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_delay_start
<LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<BR>[Called By]<UL><LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_delay_start
<LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
</UL>
<P><STRONG><a name="[b1]"></a>scancode_set_reply_lookup</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, ps2kb.o(i.scancode_set_reply_lookup))
@@ -1498,20 +1510,20 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[d5]"></a>wait_for_clk_high</STRONG> (Thumb, 44 bytes, Stack size 16 bytes, xt_kb.o(i.wait_for_clk_high))
<P><STRONG><a name="[d6]"></a>wait_for_clk_high</STRONG> (Thumb, 44 bytes, Stack size 16 bytes, xt_kb.o(i.wait_for_clk_high))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = wait_for_clk_high
</UL>
<BR>[Calls]<UL><LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
</UL>
<BR>[Called By]<UL><LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<BR>[Called By]<UL><LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
</UL>
<P><STRONG><a name="[d6]"></a>xtkb_check_for_softreset</STRONG> (Thumb, 60 bytes, Stack size 8 bytes, xt_kb.o(i.xtkb_check_for_softreset))
<P><STRONG><a name="[d7]"></a>xtkb_check_for_softreset</STRONG> (Thumb, 60 bytes, Stack size 8 bytes, xt_kb.o(i.xtkb_check_for_softreset))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = xtkb_check_for_softreset &rArr; xtkb_write &rArr; xtkb_reset_bus
</UL>
<BR>[Calls]<UL><LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_for_clk_high
<BR>[Calls]<UL><LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_for_clk_high
<LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
@@ -1522,7 +1534,7 @@ Global Symbols
<P><STRONG><a name="[a3]"></a>xtkb_enable</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, xt_kb.o(i.xtkb_enable))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = xtkb_enable &rArr; xtkb_reset_bus
</UL>
<BR>[Calls]<UL><LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_reset_bus
<BR>[Calls]<UL><LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_reset_bus
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
@@ -1535,10 +1547,10 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[d9]"></a>xtkb_press_key</STRONG> (Thumb, 116 bytes, Stack size 16 bytes, xt_kb.o(i.xtkb_press_key))
<P><STRONG><a name="[da]"></a>xtkb_press_key</STRONG> (Thumb, 116 bytes, Stack size 16 bytes, xt_kb.o(i.xtkb_press_key))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = xtkb_press_key &rArr; xtkb_write &rArr; xtkb_reset_bus
</UL>
<BR>[Calls]<UL><LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<BR>[Calls]<UL><LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8
</UL>
@@ -1553,37 +1565,37 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;handle_protocol_switch
</UL>
<P><STRONG><a name="[d8]"></a>xtkb_reset_bus</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, xt_kb.o(i.xtkb_reset_bus))
<P><STRONG><a name="[d9]"></a>xtkb_reset_bus</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, xt_kb.o(i.xtkb_reset_bus))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = xtkb_reset_bus
</UL>
<BR>[Calls]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
</UL>
<BR>[Called By]<UL><LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<BR>[Called By]<UL><LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_enable
</UL>
<P><STRONG><a name="[be]"></a>xtkb_update</STRONG> (Thumb, 52 bytes, Stack size 8 bytes, main.o(i.xtkb_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = xtkb_update &rArr; xtkb_press_key &rArr; xtkb_write &rArr; xtkb_reset_bus
</UL>
<BR>[Calls]<UL><LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<BR>[Calls]<UL><LI><a href="#[da]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_pop
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_peek
<LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_peek
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[d7]"></a>xtkb_write</STRONG> (Thumb, 186 bytes, Stack size 16 bytes, xt_kb.o(i.xtkb_write))
<P><STRONG><a name="[d8]"></a>xtkb_write</STRONG> (Thumb, 186 bytes, Stack size 16 bytes, xt_kb.o(i.xtkb_write))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = xtkb_write &rArr; xtkb_reset_bus
</UL>
<BR>[Calls]<UL><LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_reset_bus
<BR>[Calls]<UL><LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_reset_bus
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
</UL>
<BR>[Called By]<UL><LI><a href="#[d9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<BR>[Called By]<UL><LI><a href="#[da]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
</UL>
<P>
<H3>

View File

@@ -56,10 +56,15 @@ Section Cross References
ps2kb.o(i.ps2kb_init) refers to ps2kb.o(.data) for .data
ps2kb.o(i.ps2kb_press_key) refers to ps2kb.o(i.ps2kb_press_key_scancode_1) for ps2kb_press_key_scancode_1
ps2kb.o(i.ps2kb_press_key) refers to ps2kb.o(i.ps2kb_press_key_scancode_2) for ps2kb_press_key_scancode_2
ps2kb.o(i.ps2kb_press_key) refers to ps2kb.o(i.ps2kb_press_key_scancode_3) for ps2kb_press_key_scancode_3
ps2kb.o(i.ps2kb_press_key) refers to ps2kb.o(.data) for .data
ps2kb.o(i.ps2kb_press_key_scancode_1) refers to ps2kb.o(i.ps2kb_write) for ps2kb_write
ps2kb.o(i.ps2kb_press_key_scancode_2) refers to ps2kb.o(i.ps2kb_write) for ps2kb_write
ps2kb.o(i.ps2kb_press_key_scancode_2) refers to ps2kb.o(.constdata) for .constdata
ps2kb.o(i.ps2kb_press_key_scancode_3) refers to printf3.o(i.__0printf$3) for __2printf
ps2kb.o(i.ps2kb_press_key_scancode_3) refers to ps2kb.o(i.ps2kb_write) for ps2kb_write
ps2kb.o(i.ps2kb_press_key_scancode_3) refers to ps2kb.o(.constdata) for .constdata
ps2kb.o(i.ps2kb_press_key_scancode_3) refers to ps2kb.o(.data) for .data
ps2kb.o(i.ps2kb_read) refers to stm32f0xx_hal.o(i.HAL_GetTick) for HAL_GetTick
ps2kb.o(i.ps2kb_read) refers to ps2kb.o(i.ps2kb_get_bus_status) for ps2kb_get_bus_status
ps2kb.o(i.ps2kb_read) refers to delay_us.o(i.delay_us) for delay_us
@@ -1256,8 +1261,6 @@ Removing Unused input sections from the image.
Removing helpers.o(i.mouse_buf_is_empty), (16 bytes).
Removing ps2kb.o(.rev16_text), (4 bytes).
Removing ps2kb.o(.revsh_text), (4 bytes).
Removing ps2kb.o(.constdata), (195 bytes).
Removing ps2kb.o(.data), (142 bytes).
Removing ps2mouse.o(.rev16_text), (4 bytes).
Removing ps2mouse.o(.revsh_text), (4 bytes).
Removing ps2mouse.o(.data), (1 bytes).
@@ -1728,7 +1731,7 @@ Removing Unused input sections from the image.
Removing depilogue.o(.text), (190 bytes).
Removing depilogue.o(i.__ARM_clz), (46 bytes).
480 unused section(s) (total 33424 bytes) removed from the image.
478 unused section(s) (total 33087 bytes) removed from the image.
==============================================================================
@@ -1761,44 +1764,44 @@ Image Symbol Table
../Src/main.c 0x00000000 Number 0 main.o ABSOLUTE
../Src/stm32f0xx_hal_msp.c 0x00000000 Number 0 stm32f0xx_hal_msp.o ABSOLUTE
../Src/stm32f0xx_it.c 0x00000000 Number 0 stm32f0xx_it.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE
../clib/microlib/malloc/mvars.c 0x00000000 Number 0 mvars.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE
../clib/microlib/printf/stubs.s 0x00000000 Number 0 stubs.o ABSOLUTE
../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE
../clib/microlib/string/memset.c 0x00000000 Number 0 memseta.o ABSOLUTE
../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE
../fplib/microlib/fpadd.c 0x00000000 Number 0 dadd.o ABSOLUTE
@@ -2036,58 +2039,59 @@ Image Symbol Table
i.ps2kb_get_bus_status 0x080032cc Section 0 ps2kb.o(i.ps2kb_get_bus_status)
i.ps2kb_init 0x08003310 Section 0 ps2kb.o(i.ps2kb_init)
i.ps2kb_press_key 0x0800332c Section 0 ps2kb.o(i.ps2kb_press_key)
i.ps2kb_press_key_scancode_1 0x08003358 Section 0 ps2kb.o(i.ps2kb_press_key_scancode_1)
i.ps2kb_press_key_scancode_2 0x08003384 Section 0 ps2kb.o(i.ps2kb_press_key_scancode_2)
i.ps2kb_read 0x08003514 Section 0 ps2kb.o(i.ps2kb_read)
i.ps2kb_release_lines 0x08003610 Section 0 ps2kb.o(i.ps2kb_release_lines)
i.ps2kb_reset 0x08003630 Section 0 ps2kb.o(i.ps2kb_reset)
i.ps2kb_update 0x08003640 Section 0 main.o(i.ps2kb_update)
i.ps2kb_write 0x080036f4 Section 0 ps2kb.o(i.ps2kb_write)
i.ps2kb_write_nowait 0x08003738 Section 0 ps2kb.o(i.ps2kb_write_nowait)
i.ps2mouse_get_bus_status 0x0800385c Section 0 ps2mouse.o(i.ps2mouse_get_bus_status)
i.ps2mouse_get_outgoing_data 0x080038bc Section 0 ps2mouse.o(i.ps2mouse_get_outgoing_data)
i.ps2mouse_host_req_reply 0x080039a0 Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
i.ps2mouse_init 0x08003b18 Section 0 ps2mouse.o(i.ps2mouse_init)
i.ps2mouse_read 0x08003b34 Section 0 ps2mouse.o(i.ps2mouse_read)
i.ps2mouse_release_lines 0x08003c2c Section 0 ps2mouse.o(i.ps2mouse_release_lines)
i.ps2mouse_reset 0x08003c4c Section 0 ps2mouse.o(i.ps2mouse_reset)
i.ps2mouse_restore_defaults 0x08003c64 Section 0 ps2mouse.o(i.ps2mouse_restore_defaults)
i.ps2mouse_send_bat 0x08003c80 Section 0 ps2mouse.o(i.ps2mouse_send_bat)
i.ps2mouse_send_update 0x08003c9c Section 0 ps2mouse.o(i.ps2mouse_send_update)
i.ps2mouse_update 0x08003cc0 Section 0 main.o(i.ps2mouse_update)
i.ps2mouse_wait_for_idle 0x08003d70 Section 0 ps2mouse.o(i.ps2mouse_wait_for_idle)
i.ps2mouse_write 0x08003d96 Section 0 ps2mouse.o(i.ps2mouse_write)
i.ps2mouse_write_delay_start 0x08003db0 Section 0 ps2mouse.o(i.ps2mouse_write_delay_start)
i.ps2mouse_write_nowait 0x08003dd4 Section 0 ps2mouse.o(i.ps2mouse_write_nowait)
i.scancode_set_reply_lookup 0x08003ef8 Section 0 ps2kb.o(i.scancode_set_reply_lookup)
i.spi_error_dump_reboot 0x08003f0c Section 0 main.o(i.spi_error_dump_reboot)
i.wait_for_clk_high 0x08003f84 Section 0 xt_kb.o(i.wait_for_clk_high)
i.xtkb_check_for_softreset 0x08003fb4 Section 0 xt_kb.o(i.xtkb_check_for_softreset)
i.xtkb_enable 0x08003ff4 Section 0 xt_kb.o(i.xtkb_enable)
i.xtkb_init 0x08004008 Section 0 xt_kb.o(i.xtkb_init)
i.xtkb_press_key 0x0800401c Section 0 xt_kb.o(i.xtkb_press_key)
i.xtkb_release_lines 0x08004094 Section 0 xt_kb.o(i.xtkb_release_lines)
i.xtkb_reset_bus 0x080040b4 Section 0 xt_kb.o(i.xtkb_reset_bus)
i.xtkb_update 0x080040d4 Section 0 main.o(i.xtkb_update)
i.xtkb_write 0x08004110 Section 0 xt_kb.o(i.xtkb_write)
.constdata 0x080041d0 Section 121 ps2kb.o(.constdata)
.constdata 0x08004249 Section 4 mcp4451.o(.constdata)
.constdata 0x0800424d Section 55 main.o(.constdata)
.constdata 0x08004284 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08004294 Section 8 system_stm32f0xx.o(.constdata)
i.ps2kb_press_key_scancode_1 0x08003364 Section 0 ps2kb.o(i.ps2kb_press_key_scancode_1)
i.ps2kb_press_key_scancode_2 0x08003390 Section 0 ps2kb.o(i.ps2kb_press_key_scancode_2)
i.ps2kb_press_key_scancode_3 0x08003520 Section 0 ps2kb.o(i.ps2kb_press_key_scancode_3)
i.ps2kb_read 0x080035a0 Section 0 ps2kb.o(i.ps2kb_read)
i.ps2kb_release_lines 0x0800369c Section 0 ps2kb.o(i.ps2kb_release_lines)
i.ps2kb_reset 0x080036bc Section 0 ps2kb.o(i.ps2kb_reset)
i.ps2kb_update 0x080036cc Section 0 main.o(i.ps2kb_update)
i.ps2kb_write 0x08003780 Section 0 ps2kb.o(i.ps2kb_write)
i.ps2kb_write_nowait 0x080037c4 Section 0 ps2kb.o(i.ps2kb_write_nowait)
i.ps2mouse_get_bus_status 0x080038e8 Section 0 ps2mouse.o(i.ps2mouse_get_bus_status)
i.ps2mouse_get_outgoing_data 0x08003948 Section 0 ps2mouse.o(i.ps2mouse_get_outgoing_data)
i.ps2mouse_host_req_reply 0x08003a2c Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
i.ps2mouse_init 0x08003ba4 Section 0 ps2mouse.o(i.ps2mouse_init)
i.ps2mouse_read 0x08003bc0 Section 0 ps2mouse.o(i.ps2mouse_read)
i.ps2mouse_release_lines 0x08003cb8 Section 0 ps2mouse.o(i.ps2mouse_release_lines)
i.ps2mouse_reset 0x08003cd8 Section 0 ps2mouse.o(i.ps2mouse_reset)
i.ps2mouse_restore_defaults 0x08003cf0 Section 0 ps2mouse.o(i.ps2mouse_restore_defaults)
i.ps2mouse_send_bat 0x08003d0c Section 0 ps2mouse.o(i.ps2mouse_send_bat)
i.ps2mouse_send_update 0x08003d28 Section 0 ps2mouse.o(i.ps2mouse_send_update)
i.ps2mouse_update 0x08003d4c Section 0 main.o(i.ps2mouse_update)
i.ps2mouse_wait_for_idle 0x08003dfc Section 0 ps2mouse.o(i.ps2mouse_wait_for_idle)
i.ps2mouse_write 0x08003e22 Section 0 ps2mouse.o(i.ps2mouse_write)
i.ps2mouse_write_delay_start 0x08003e3c Section 0 ps2mouse.o(i.ps2mouse_write_delay_start)
i.ps2mouse_write_nowait 0x08003e60 Section 0 ps2mouse.o(i.ps2mouse_write_nowait)
i.scancode_set_reply_lookup 0x08003f84 Section 0 ps2kb.o(i.scancode_set_reply_lookup)
i.spi_error_dump_reboot 0x08003f98 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_for_clk_high 0x08004010 Section 0 xt_kb.o(i.wait_for_clk_high)
i.xtkb_check_for_softreset 0x08004040 Section 0 xt_kb.o(i.xtkb_check_for_softreset)
i.xtkb_enable 0x08004080 Section 0 xt_kb.o(i.xtkb_enable)
i.xtkb_init 0x08004094 Section 0 xt_kb.o(i.xtkb_init)
i.xtkb_press_key 0x080040a8 Section 0 xt_kb.o(i.xtkb_press_key)
i.xtkb_release_lines 0x08004120 Section 0 xt_kb.o(i.xtkb_release_lines)
i.xtkb_reset_bus 0x08004140 Section 0 xt_kb.o(i.xtkb_reset_bus)
i.xtkb_update 0x08004160 Section 0 main.o(i.xtkb_update)
i.xtkb_write 0x0800419c Section 0 xt_kb.o(i.xtkb_write)
.constdata 0x0800425c Section 316 ps2kb.o(.constdata)
.constdata 0x08004398 Section 4 mcp4451.o(.constdata)
.constdata 0x0800439c Section 55 main.o(.constdata)
.constdata 0x080043d3 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x080043e3 Section 8 system_stm32f0xx.o(.constdata)
.data 0x20000000 Section 4 delay_us.o(.data)
.data 0x20000004 Section 20 ps2kb.o(.data)
.data 0x20000018 Section 28 ps2mouse.o(.data)
.data 0x20000034 Section 20 xt_kb.o(.data)
.data 0x20000048 Section 36 main.o(.data)
.data 0x2000006c Section 4 stm32f0xx_hal.o(.data)
.data 0x20000070 Section 4 system_stm32f0xx.o(.data)
.data 0x20000074 Section 4 stdout.o(.data)
.data 0x20000078 Section 4 mvars.o(.data)
.data 0x2000007c Section 4 mvars.o(.data)
.bss 0x20000080 Section 637 main.o(.bss)
HEAP 0x20000300 Section 512 startup_stm32f072xb.o(HEAP)
STACK 0x20000500 Section 1024 startup_stm32f072xb.o(STACK)
.data 0x20000004 Section 162 ps2kb.o(.data)
.data 0x200000a8 Section 28 ps2mouse.o(.data)
.data 0x200000c4 Section 20 xt_kb.o(.data)
.data 0x200000d8 Section 36 main.o(.data)
.data 0x200000fc Section 4 stm32f0xx_hal.o(.data)
.data 0x20000100 Section 4 system_stm32f0xx.o(.data)
.data 0x20000104 Section 4 stdout.o(.data)
.data 0x20000108 Section 4 mvars.o(.data)
.data 0x2000010c Section 4 mvars.o(.data)
.bss 0x20000110 Section 637 main.o(.bss)
HEAP 0x20000390 Section 512 startup_stm32f072xb.o(HEAP)
STACK 0x20000590 Section 1024 startup_stm32f072xb.o(STACK)
Global Symbols
@@ -2314,49 +2318,51 @@ Image Symbol Table
protocol_status_lookup_init 0x080032a9 Thumb Code 30 main.o(i.protocol_status_lookup_init)
ps2kb_get_bus_status 0x080032cd Thumb Code 62 ps2kb.o(i.ps2kb_get_bus_status)
ps2kb_init 0x08003311 Thumb Code 22 ps2kb.o(i.ps2kb_init)
ps2kb_press_key 0x0800332d Thumb Code 40 ps2kb.o(i.ps2kb_press_key)
ps2kb_press_key_scancode_1 0x08003359 Thumb Code 44 ps2kb.o(i.ps2kb_press_key_scancode_1)
ps2kb_press_key_scancode_2 0x08003385 Thumb Code 396 ps2kb.o(i.ps2kb_press_key_scancode_2)
ps2kb_read 0x08003515 Thumb Code 246 ps2kb.o(i.ps2kb_read)
ps2kb_release_lines 0x08003611 Thumb Code 26 ps2kb.o(i.ps2kb_release_lines)
ps2kb_reset 0x08003631 Thumb Code 12 ps2kb.o(i.ps2kb_reset)
ps2kb_update 0x08003641 Thumb Code 166 main.o(i.ps2kb_update)
ps2kb_write 0x080036f5 Thumb Code 62 ps2kb.o(i.ps2kb_write)
ps2kb_write_nowait 0x08003739 Thumb Code 286 ps2kb.o(i.ps2kb_write_nowait)
ps2mouse_get_bus_status 0x0800385d Thumb Code 92 ps2mouse.o(i.ps2mouse_get_bus_status)
ps2mouse_get_outgoing_data 0x080038bd Thumb Code 224 ps2mouse.o(i.ps2mouse_get_outgoing_data)
ps2mouse_host_req_reply 0x080039a1 Thumb Code 370 ps2mouse.o(i.ps2mouse_host_req_reply)
ps2mouse_init 0x08003b19 Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
ps2mouse_read 0x08003b35 Thumb Code 244 ps2mouse.o(i.ps2mouse_read)
ps2mouse_release_lines 0x08003c2d Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
ps2mouse_reset 0x08003c4d Thumb Code 20 ps2mouse.o(i.ps2mouse_reset)
ps2mouse_restore_defaults 0x08003c65 Thumb Code 22 ps2mouse.o(i.ps2mouse_restore_defaults)
ps2mouse_send_bat 0x08003c81 Thumb Code 28 ps2mouse.o(i.ps2mouse_send_bat)
ps2mouse_send_update 0x08003c9d Thumb Code 36 ps2mouse.o(i.ps2mouse_send_update)
ps2mouse_update 0x08003cc1 Thumb Code 162 main.o(i.ps2mouse_update)
ps2mouse_wait_for_idle 0x08003d71 Thumb Code 38 ps2mouse.o(i.ps2mouse_wait_for_idle)
ps2mouse_write 0x08003d97 Thumb Code 26 ps2mouse.o(i.ps2mouse_write)
ps2mouse_write_delay_start 0x08003db1 Thumb Code 34 ps2mouse.o(i.ps2mouse_write_delay_start)
ps2mouse_write_nowait 0x08003dd5 Thumb Code 286 ps2mouse.o(i.ps2mouse_write_nowait)
scancode_set_reply_lookup 0x08003ef9 Thumb Code 20 ps2kb.o(i.scancode_set_reply_lookup)
spi_error_dump_reboot 0x08003f0d Thumb Code 72 main.o(i.spi_error_dump_reboot)
wait_for_clk_high 0x08003f85 Thumb Code 44 xt_kb.o(i.wait_for_clk_high)
xtkb_check_for_softreset 0x08003fb5 Thumb Code 60 xt_kb.o(i.xtkb_check_for_softreset)
xtkb_enable 0x08003ff5 Thumb Code 16 xt_kb.o(i.xtkb_enable)
xtkb_init 0x08004009 Thumb Code 14 xt_kb.o(i.xtkb_init)
xtkb_press_key 0x0800401d Thumb Code 116 xt_kb.o(i.xtkb_press_key)
xtkb_release_lines 0x08004095 Thumb Code 26 xt_kb.o(i.xtkb_release_lines)
xtkb_reset_bus 0x080040b5 Thumb Code 26 xt_kb.o(i.xtkb_reset_bus)
xtkb_update 0x080040d5 Thumb Code 52 main.o(i.xtkb_update)
xtkb_write 0x08004111 Thumb Code 186 xt_kb.o(i.xtkb_write)
linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x080041d0 Data 89 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x08004229 Data 32 ps2kb.o(.constdata)
mcp4451_wiper_id_to_reg_addr_lookup 0x08004249 Data 4 mcp4451.o(.constdata)
boot_message 0x0800424d Data 55 main.o(.constdata)
AHBPrescTable 0x08004284 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08004294 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x0800429c Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x080042bc Number 0 anon$$obj.o(Region$$Table)
ps2kb_press_key 0x0800332d Thumb Code 50 ps2kb.o(i.ps2kb_press_key)
ps2kb_press_key_scancode_1 0x08003365 Thumb Code 44 ps2kb.o(i.ps2kb_press_key_scancode_1)
ps2kb_press_key_scancode_2 0x08003391 Thumb Code 396 ps2kb.o(i.ps2kb_press_key_scancode_2)
ps2kb_press_key_scancode_3 0x08003521 Thumb Code 112 ps2kb.o(i.ps2kb_press_key_scancode_3)
ps2kb_read 0x080035a1 Thumb Code 246 ps2kb.o(i.ps2kb_read)
ps2kb_release_lines 0x0800369d Thumb Code 26 ps2kb.o(i.ps2kb_release_lines)
ps2kb_reset 0x080036bd Thumb Code 12 ps2kb.o(i.ps2kb_reset)
ps2kb_update 0x080036cd Thumb Code 166 main.o(i.ps2kb_update)
ps2kb_write 0x08003781 Thumb Code 62 ps2kb.o(i.ps2kb_write)
ps2kb_write_nowait 0x080037c5 Thumb Code 286 ps2kb.o(i.ps2kb_write_nowait)
ps2mouse_get_bus_status 0x080038e9 Thumb Code 92 ps2mouse.o(i.ps2mouse_get_bus_status)
ps2mouse_get_outgoing_data 0x08003949 Thumb Code 224 ps2mouse.o(i.ps2mouse_get_outgoing_data)
ps2mouse_host_req_reply 0x08003a2d Thumb Code 370 ps2mouse.o(i.ps2mouse_host_req_reply)
ps2mouse_init 0x08003ba5 Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
ps2mouse_read 0x08003bc1 Thumb Code 244 ps2mouse.o(i.ps2mouse_read)
ps2mouse_release_lines 0x08003cb9 Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
ps2mouse_reset 0x08003cd9 Thumb Code 20 ps2mouse.o(i.ps2mouse_reset)
ps2mouse_restore_defaults 0x08003cf1 Thumb Code 22 ps2mouse.o(i.ps2mouse_restore_defaults)
ps2mouse_send_bat 0x08003d0d Thumb Code 28 ps2mouse.o(i.ps2mouse_send_bat)
ps2mouse_send_update 0x08003d29 Thumb Code 36 ps2mouse.o(i.ps2mouse_send_update)
ps2mouse_update 0x08003d4d Thumb Code 162 main.o(i.ps2mouse_update)
ps2mouse_wait_for_idle 0x08003dfd Thumb Code 38 ps2mouse.o(i.ps2mouse_wait_for_idle)
ps2mouse_write 0x08003e23 Thumb Code 26 ps2mouse.o(i.ps2mouse_write)
ps2mouse_write_delay_start 0x08003e3d Thumb Code 34 ps2mouse.o(i.ps2mouse_write_delay_start)
ps2mouse_write_nowait 0x08003e61 Thumb Code 286 ps2mouse.o(i.ps2mouse_write_nowait)
scancode_set_reply_lookup 0x08003f85 Thumb Code 20 ps2kb.o(i.scancode_set_reply_lookup)
spi_error_dump_reboot 0x08003f99 Thumb Code 72 main.o(i.spi_error_dump_reboot)
wait_for_clk_high 0x08004011 Thumb Code 44 xt_kb.o(i.wait_for_clk_high)
xtkb_check_for_softreset 0x08004041 Thumb Code 60 xt_kb.o(i.xtkb_check_for_softreset)
xtkb_enable 0x08004081 Thumb Code 16 xt_kb.o(i.xtkb_enable)
xtkb_init 0x08004095 Thumb Code 14 xt_kb.o(i.xtkb_init)
xtkb_press_key 0x080040a9 Thumb Code 116 xt_kb.o(i.xtkb_press_key)
xtkb_release_lines 0x08004121 Thumb Code 26 xt_kb.o(i.xtkb_release_lines)
xtkb_reset_bus 0x08004141 Thumb Code 26 xt_kb.o(i.xtkb_reset_bus)
xtkb_update 0x08004161 Thumb Code 52 main.o(i.xtkb_update)
xtkb_write 0x0800419d Thumb Code 186 xt_kb.o(i.xtkb_write)
linux_keycode_to_ps3_scancode_lookup_codeset3 0x0800425c Data 195 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x0800431f Data 89 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x08004378 Data 32 ps2kb.o(.constdata)
mcp4451_wiper_id_to_reg_addr_lookup 0x08004398 Data 4 mcp4451.o(.constdata)
boot_message 0x0800439c Data 55 main.o(.constdata)
AHBPrescTable 0x080043d3 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x080043e3 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x080043ec Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x0800440c Number 0 anon$$obj.o(Region$$Table)
us_timer 0x20000000 Data 4 delay_us.o(.data)
ps2kb_current_scancode_set 0x20000004 Data 1 ps2kb.o(.data)
ps2kb_data_reporting_enabled 0x20000005 Data 1 ps2kb.o(.data)
@@ -2365,61 +2371,62 @@ Image Symbol Table
ps2kb_clk_port 0x2000000c Data 4 ps2kb.o(.data)
ps2kb_data_port 0x20000010 Data 4 ps2kb.o(.data)
ps2kb_wait_start 0x20000014 Data 4 ps2kb.o(.data)
ps2mouse_data_reporting_enabled 0x20000018 Data 1 ps2mouse.o(.data)
ps2mouse_sampling_rate 0x20000019 Data 1 ps2mouse.o(.data)
ps2mouse_resolution 0x2000001a Data 1 ps2mouse.o(.data)
ps2mouse_scale 0x2000001b Data 1 ps2mouse.o(.data)
sample_rate_history_index 0x2000001c Data 1 ps2mouse.o(.data)
mouse_device_id 0x2000001d Data 1 ps2mouse.o(.data)
ps2mouse_current_mode 0x2000001e Data 1 ps2mouse.o(.data)
ps2mouse_clk_pin 0x20000020 Data 2 ps2mouse.o(.data)
ps2mouse_data_pin 0x20000022 Data 2 ps2mouse.o(.data)
ps2mouse_clk_port 0x20000024 Data 4 ps2mouse.o(.data)
ps2mouse_data_port 0x20000028 Data 4 ps2mouse.o(.data)
sample_rate_history 0x2000002c Data 8 ps2mouse.o(.data)
xtkb_clk_pin 0x20000034 Data 2 xt_kb.o(.data)
xtkb_data_pin 0x20000036 Data 2 xt_kb.o(.data)
xtkb_clk_port 0x20000038 Data 4 xt_kb.o(.data)
xtkb_data_port 0x2000003c Data 4 xt_kb.o(.data)
last_clk_high 0x20000040 Data 4 xt_kb.o(.data)
last_typematic 0x20000044 Data 4 xt_kb.o(.data)
hw_revision 0x20000048 Data 1 main.o(.data)
ps2kb_host_cmd 0x20000049 Data 1 main.o(.data)
ps2mouse_host_cmd 0x2000004a Data 1 main.o(.data)
buffered_code 0x2000004b Data 1 main.o(.data)
buffered_value 0x2000004c Data 1 main.o(.data)
ps2mouse_bus_status 0x2000004d Data 1 main.o(.data)
ps2kb_bus_status 0x2000004e Data 1 main.o(.data)
serial_mouse_rts_response 0x2000004f Data 1 main.o(.data)
rts_active 0x20000050 Data 1 main.o(.data)
spi_error_occured 0x20000051 Data 1 main.o(.data)
serial_mouse_is_tx_in_progress 0x20000052 Data 1 main.o(.data)
flash_size 0x20000054 Data 2 main.o(.data)
serial_mouse_output_buf 0x20000056 Data 3 main.o(.data)
my_mouse_buf 0x2000005c Data 8 main.o(.data)
my_gamepad_buf 0x20000064 Data 8 main.o(.data)
uwTick 0x2000006c Data 4 stm32f0xx_hal.o(.data)
SystemCoreClock 0x20000070 Data 4 system_stm32f0xx.o(.data)
__stdout 0x20000074 Data 4 stdout.o(.data)
__microlib_freelist 0x20000078 Data 4 mvars.o(.data)
__microlib_freelist_initialised 0x2000007c Data 4 mvars.o(.data)
hi2c2 0x20000080 Data 76 main.o(.bss)
hiwdg 0x200000cc Data 16 main.o(.bss)
hspi1 0x200000dc Data 100 main.o(.bss)
htim2 0x20000140 Data 64 main.o(.bss)
huart1 0x20000180 Data 112 main.o(.bss)
huart3 0x200001f0 Data 112 main.o(.bss)
spi_transmit_buf 0x20000260 Data 32 main.o(.bss)
backup_spi1_recv_buf 0x20000280 Data 32 main.o(.bss)
spi_recv_buf 0x200002a0 Data 32 main.o(.bss)
my_kb_buf 0x200002c0 Data 12 main.o(.bss)
latest_mouse_event 0x200002cc Data 12 main.o(.bss)
latest_gamepad_event 0x200002d8 Data 12 main.o(.bss)
my_ps2_outbuf 0x200002e4 Data 9 main.o(.bss)
protocol_status_lookup 0x200002ed Data 16 main.o(.bss)
__heap_base 0x20000300 Data 0 startup_stm32f072xb.o(HEAP)
__heap_limit 0x20000500 Data 0 startup_stm32f072xb.o(HEAP)
__initial_sp 0x20000900 Data 0 startup_stm32f072xb.o(STACK)
scancode_set3_status 0x20000018 Data 142 ps2kb.o(.data)
ps2mouse_data_reporting_enabled 0x200000a8 Data 1 ps2mouse.o(.data)
ps2mouse_sampling_rate 0x200000a9 Data 1 ps2mouse.o(.data)
ps2mouse_resolution 0x200000aa Data 1 ps2mouse.o(.data)
ps2mouse_scale 0x200000ab Data 1 ps2mouse.o(.data)
sample_rate_history_index 0x200000ac Data 1 ps2mouse.o(.data)
mouse_device_id 0x200000ad Data 1 ps2mouse.o(.data)
ps2mouse_current_mode 0x200000ae Data 1 ps2mouse.o(.data)
ps2mouse_clk_pin 0x200000b0 Data 2 ps2mouse.o(.data)
ps2mouse_data_pin 0x200000b2 Data 2 ps2mouse.o(.data)
ps2mouse_clk_port 0x200000b4 Data 4 ps2mouse.o(.data)
ps2mouse_data_port 0x200000b8 Data 4 ps2mouse.o(.data)
sample_rate_history 0x200000bc Data 8 ps2mouse.o(.data)
xtkb_clk_pin 0x200000c4 Data 2 xt_kb.o(.data)
xtkb_data_pin 0x200000c6 Data 2 xt_kb.o(.data)
xtkb_clk_port 0x200000c8 Data 4 xt_kb.o(.data)
xtkb_data_port 0x200000cc Data 4 xt_kb.o(.data)
last_clk_high 0x200000d0 Data 4 xt_kb.o(.data)
last_typematic 0x200000d4 Data 4 xt_kb.o(.data)
hw_revision 0x200000d8 Data 1 main.o(.data)
ps2kb_host_cmd 0x200000d9 Data 1 main.o(.data)
ps2mouse_host_cmd 0x200000da Data 1 main.o(.data)
buffered_code 0x200000db Data 1 main.o(.data)
buffered_value 0x200000dc Data 1 main.o(.data)
ps2mouse_bus_status 0x200000dd Data 1 main.o(.data)
ps2kb_bus_status 0x200000de Data 1 main.o(.data)
serial_mouse_rts_response 0x200000df Data 1 main.o(.data)
rts_active 0x200000e0 Data 1 main.o(.data)
spi_error_occured 0x200000e1 Data 1 main.o(.data)
serial_mouse_is_tx_in_progress 0x200000e2 Data 1 main.o(.data)
flash_size 0x200000e4 Data 2 main.o(.data)
serial_mouse_output_buf 0x200000e6 Data 3 main.o(.data)
my_mouse_buf 0x200000ec Data 8 main.o(.data)
my_gamepad_buf 0x200000f4 Data 8 main.o(.data)
uwTick 0x200000fc Data 4 stm32f0xx_hal.o(.data)
SystemCoreClock 0x20000100 Data 4 system_stm32f0xx.o(.data)
__stdout 0x20000104 Data 4 stdout.o(.data)
__microlib_freelist 0x20000108 Data 4 mvars.o(.data)
__microlib_freelist_initialised 0x2000010c Data 4 mvars.o(.data)
hi2c2 0x20000110 Data 76 main.o(.bss)
hiwdg 0x2000015c Data 16 main.o(.bss)
hspi1 0x2000016c Data 100 main.o(.bss)
htim2 0x200001d0 Data 64 main.o(.bss)
huart1 0x20000210 Data 112 main.o(.bss)
huart3 0x20000280 Data 112 main.o(.bss)
spi_transmit_buf 0x200002f0 Data 32 main.o(.bss)
backup_spi1_recv_buf 0x20000310 Data 32 main.o(.bss)
spi_recv_buf 0x20000330 Data 32 main.o(.bss)
my_kb_buf 0x20000350 Data 12 main.o(.bss)
latest_mouse_event 0x2000035c Data 12 main.o(.bss)
latest_gamepad_event 0x20000368 Data 12 main.o(.bss)
my_ps2_outbuf 0x20000374 Data 9 main.o(.bss)
protocol_status_lookup 0x2000037d Data 16 main.o(.bss)
__heap_base 0x20000390 Data 0 startup_stm32f072xb.o(HEAP)
__heap_limit 0x20000590 Data 0 startup_stm32f072xb.o(HEAP)
__initial_sp 0x20000990 Data 0 startup_stm32f072xb.o(STACK)
@@ -2429,151 +2436,151 @@ Memory Map of the image
Image Entry point : 0x080000c1
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000433c, Max: 0x00010000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000451c, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000042bc, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000440c, Max: 0x00010000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x08000000 0x08000000 0x000000c0 Data RO 3 RESET startup_stm32f072xb.o
0x080000c0 0x080000c0 0x00000000 Code RO 3957 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
0x080000c0 0x080000c0 0x00000004 Code RO 4259 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
0x080000c4 0x080000c4 0x00000004 Code RO 4262 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
0x080000c8 0x080000c8 0x00000000 Code RO 4264 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
0x080000c8 0x080000c8 0x00000000 Code RO 4266 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
0x080000c8 0x080000c8 0x00000008 Code RO 4267 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 4269 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 4271 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
0x080000d0 0x080000d0 0x00000004 Code RO 4260 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
0x080000c0 0x080000c0 0x00000000 Code RO 3961 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
0x080000c0 0x080000c0 0x00000004 Code RO 4263 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
0x080000c4 0x080000c4 0x00000004 Code RO 4266 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
0x080000c8 0x080000c8 0x00000000 Code RO 4268 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
0x080000c8 0x080000c8 0x00000000 Code RO 4270 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
0x080000c8 0x080000c8 0x00000008 Code RO 4271 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 4273 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 4275 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
0x080000d0 0x080000d0 0x00000004 Code RO 4264 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
0x080000d4 0x080000d4 0x0000001c Code RO 4 .text startup_stm32f072xb.o
0x080000f0 0x080000f0 0x0000002c Code RO 3960 .text mc_p.l(uidiv.o)
0x0800011c 0x0800011c 0x00000024 Code RO 3964 .text mc_p.l(memcpya.o)
0x08000140 0x08000140 0x00000024 Code RO 3966 .text mc_p.l(memseta.o)
0x08000164 0x08000164 0x00000024 Code RO 4289 .text mc_p.l(init.o)
0x08000188 0x08000188 0x0000000a Code RO 767 i.EXTI0_1_IRQHandler stm32f0xx_it.o
0x08000192 0x08000192 0x00000048 Code RO 3404 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x080001da 0x080001da 0x0000001c Code RO 3207 i.HAL_Delay stm32f0xx_hal.o
0x080000f0 0x080000f0 0x0000002c Code RO 3964 .text mc_p.l(uidiv.o)
0x0800011c 0x0800011c 0x00000024 Code RO 3968 .text mc_p.l(memcpya.o)
0x08000140 0x08000140 0x00000024 Code RO 3970 .text mc_p.l(memseta.o)
0x08000164 0x08000164 0x00000024 Code RO 4293 .text mc_p.l(init.o)
0x08000188 0x08000188 0x0000000a Code RO 771 i.EXTI0_1_IRQHandler stm32f0xx_it.o
0x08000192 0x08000192 0x00000048 Code RO 3408 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x080001da 0x080001da 0x0000001c Code RO 3211 i.HAL_Delay stm32f0xx_hal.o
0x080001f6 0x080001f6 0x00000002 PAD
0x080001f8 0x080001f8 0x0000001c Code RO 602 i.HAL_GPIO_EXTI_Callback main.o
0x08000214 0x08000214 0x00000018 Code RO 3341 i.HAL_GPIO_EXTI_IRQHandler stm32f0xx_hal_gpio.o
0x0800022c 0x0800022c 0x00000158 Code RO 3342 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x08000384 0x08000384 0x0000000a Code RO 3344 i.HAL_GPIO_ReadPin stm32f0xx_hal_gpio.o
0x0800038e 0x0800038e 0x00000008 Code RO 3345 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o
0x08000396 0x08000396 0x0000000c Code RO 3346 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x080001f8 0x080001f8 0x0000001c Code RO 606 i.HAL_GPIO_EXTI_Callback main.o
0x08000214 0x08000214 0x00000018 Code RO 3345 i.HAL_GPIO_EXTI_IRQHandler stm32f0xx_hal_gpio.o
0x0800022c 0x0800022c 0x00000158 Code RO 3346 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x08000384 0x08000384 0x0000000a Code RO 3348 i.HAL_GPIO_ReadPin stm32f0xx_hal_gpio.o
0x0800038e 0x0800038e 0x00000008 Code RO 3349 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o
0x08000396 0x08000396 0x0000000c Code RO 3350 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x080003a2 0x080003a2 0x00000002 PAD
0x080003a4 0x080003a4 0x0000000c Code RO 3211 i.HAL_GetTick stm32f0xx_hal.o
0x080003b0 0x080003b0 0x0000004a Code RO 1325 i.HAL_I2CEx_ConfigAnalogFilter stm32f0xx_hal_i2c_ex.o
0x080003fa 0x080003fa 0x00000048 Code RO 1326 i.HAL_I2CEx_ConfigDigitalFilter stm32f0xx_hal_i2c_ex.o
0x080003a4 0x080003a4 0x0000000c Code RO 3215 i.HAL_GetTick stm32f0xx_hal.o
0x080003b0 0x080003b0 0x0000004a Code RO 1329 i.HAL_I2CEx_ConfigAnalogFilter stm32f0xx_hal_i2c_ex.o
0x080003fa 0x080003fa 0x00000048 Code RO 1330 i.HAL_I2CEx_ConfigDigitalFilter stm32f0xx_hal_i2c_ex.o
0x08000442 0x08000442 0x00000002 PAD
0x08000444 0x08000444 0x000000b4 Code RO 912 i.HAL_I2C_Init stm32f0xx_hal_i2c.o
0x080004f8 0x080004f8 0x0000011c Code RO 913 i.HAL_I2C_IsDeviceReady stm32f0xx_hal_i2c.o
0x08000614 0x08000614 0x00000154 Code RO 931 i.HAL_I2C_Mem_Write stm32f0xx_hal_i2c.o
0x08000768 0x08000768 0x0000004c Code RO 834 i.HAL_I2C_MspInit stm32f0xx_hal_msp.o
0x080007b4 0x080007b4 0x00000064 Code RO 1375 i.HAL_IWDG_Init stm32f0xx_hal_iwdg.o
0x08000818 0x08000818 0x00000010 Code RO 1376 i.HAL_IWDG_Refresh stm32f0xx_hal_iwdg.o
0x08000828 0x08000828 0x00000010 Code RO 3215 i.HAL_IncTick stm32f0xx_hal.o
0x08000838 0x08000838 0x00000020 Code RO 3216 i.HAL_Init stm32f0xx_hal.o
0x08000858 0x08000858 0x00000022 Code RO 3217 i.HAL_InitTick stm32f0xx_hal.o
0x08000444 0x08000444 0x000000b4 Code RO 916 i.HAL_I2C_Init stm32f0xx_hal_i2c.o
0x080004f8 0x080004f8 0x0000011c Code RO 917 i.HAL_I2C_IsDeviceReady stm32f0xx_hal_i2c.o
0x08000614 0x08000614 0x00000154 Code RO 935 i.HAL_I2C_Mem_Write stm32f0xx_hal_i2c.o
0x08000768 0x08000768 0x0000004c Code RO 838 i.HAL_I2C_MspInit stm32f0xx_hal_msp.o
0x080007b4 0x080007b4 0x00000064 Code RO 1379 i.HAL_IWDG_Init stm32f0xx_hal_iwdg.o
0x08000818 0x08000818 0x00000010 Code RO 1380 i.HAL_IWDG_Refresh stm32f0xx_hal_iwdg.o
0x08000828 0x08000828 0x00000010 Code RO 3219 i.HAL_IncTick stm32f0xx_hal.o
0x08000838 0x08000838 0x00000020 Code RO 3220 i.HAL_Init stm32f0xx_hal.o
0x08000858 0x08000858 0x00000022 Code RO 3221 i.HAL_InitTick stm32f0xx_hal.o
0x0800087a 0x0800087a 0x00000002 PAD
0x0800087c 0x0800087c 0x00000044 Code RO 835 i.HAL_MspInit stm32f0xx_hal_msp.o
0x080008c0 0x080008c0 0x00000014 Code RO 3499 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x080008d4 0x080008d4 0x00000008 Code RO 3503 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x080008dc 0x080008dc 0x00000120 Code RO 3127 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o
0x080009fc 0x080009fc 0x00000154 Code RO 3025 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x08000b50 0x08000b50 0x0000000c Code RO 3030 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000b5c 0x08000b5c 0x00000020 Code RO 3032 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x08000b7c 0x08000b7c 0x00000088 Code RO 3033 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x08000c04 0x08000c04 0x000003d8 Code RO 3036 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000fdc 0x08000fdc 0x00000002 Code RO 1408 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x0800087c 0x0800087c 0x00000044 Code RO 839 i.HAL_MspInit stm32f0xx_hal_msp.o
0x080008c0 0x080008c0 0x00000014 Code RO 3503 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x080008d4 0x080008d4 0x00000008 Code RO 3507 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x080008dc 0x080008dc 0x00000120 Code RO 3131 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o
0x080009fc 0x080009fc 0x00000154 Code RO 3029 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x08000b50 0x08000b50 0x0000000c Code RO 3034 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000b5c 0x08000b5c 0x00000020 Code RO 3036 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x08000b7c 0x08000b7c 0x00000088 Code RO 3037 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x08000c04 0x08000c04 0x000003d8 Code RO 3040 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000fdc 0x08000fdc 0x00000002 Code RO 1412 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x08000fde 0x08000fde 0x00000002 PAD
0x08000fe0 0x08000fe0 0x000000d4 Code RO 1411 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x080010b4 0x080010b4 0x000000b8 Code RO 1412 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x0800116c 0x0800116c 0x00000054 Code RO 837 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x080011c0 0x080011c0 0x00000002 Code RO 1418 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x08000fe0 0x08000fe0 0x000000d4 Code RO 1415 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x080010b4 0x080010b4 0x000000b8 Code RO 1416 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x0800116c 0x0800116c 0x00000054 Code RO 841 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x080011c0 0x080011c0 0x00000002 Code RO 1422 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x080011c2 0x080011c2 0x00000002 PAD
0x080011c4 0x080011c4 0x000000d4 Code RO 1423 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x08001298 0x08001298 0x0000017c Code RO 603 i.HAL_SPI_TxRxCpltCallback main.o
0x08001414 0x08001414 0x00000018 Code RO 3505 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x0800142c 0x0800142c 0x00000002 Code RO 3506 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x080011c4 0x080011c4 0x000000d4 Code RO 1427 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x08001298 0x08001298 0x0000017c Code RO 607 i.HAL_SPI_TxRxCpltCallback main.o
0x08001414 0x08001414 0x00000018 Code RO 3509 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x0800142c 0x0800142c 0x00000002 Code RO 3510 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x0800142e 0x0800142e 0x00000002 PAD
0x08001430 0x08001430 0x00000030 Code RO 3507 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x08001460 0x08001460 0x00000008 Code RO 3508 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x08001468 0x08001468 0x00000048 Code RO 2400 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x080014b0 0x080014b0 0x00000034 Code RO 1746 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x080014e4 0x080014e4 0x00000024 Code RO 839 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08001508 0x08001508 0x00000018 Code RO 1749 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x08001520 0x08001520 0x000000ee Code RO 1755 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x0800160e 0x0800160e 0x00000002 Code RO 2969 i.HAL_UARTEx_WakeupCallback stm32f0xx_hal_uart_ex.o
0x08001610 0x08001610 0x00000002 Code RO 2644 i.HAL_UART_ErrorCallback stm32f0xx_hal_uart.o
0x08001430 0x08001430 0x00000030 Code RO 3511 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x08001460 0x08001460 0x00000008 Code RO 3512 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x08001468 0x08001468 0x00000048 Code RO 2404 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x080014b0 0x080014b0 0x00000034 Code RO 1750 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x080014e4 0x080014e4 0x00000024 Code RO 843 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08001508 0x08001508 0x00000018 Code RO 1753 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x08001520 0x08001520 0x000000ee Code RO 1759 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x0800160e 0x0800160e 0x00000002 Code RO 2973 i.HAL_UARTEx_WakeupCallback stm32f0xx_hal_uart_ex.o
0x08001610 0x08001610 0x00000002 Code RO 2648 i.HAL_UART_ErrorCallback stm32f0xx_hal_uart.o
0x08001612 0x08001612 0x00000002 PAD
0x08001614 0x08001614 0x00000134 Code RO 2647 i.HAL_UART_IRQHandler stm32f0xx_hal_uart.o
0x08001748 0x08001748 0x0000006c Code RO 2648 i.HAL_UART_Init stm32f0xx_hal_uart.o
0x080017b4 0x080017b4 0x00000090 Code RO 841 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x08001844 0x08001844 0x00000002 Code RO 2654 i.HAL_UART_RxCpltCallback stm32f0xx_hal_uart.o
0x08001846 0x08001846 0x000000c8 Code RO 2656 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x0800190e 0x0800190e 0x00000058 Code RO 2658 i.HAL_UART_Transmit_IT stm32f0xx_hal_uart.o
0x08001614 0x08001614 0x00000134 Code RO 2651 i.HAL_UART_IRQHandler stm32f0xx_hal_uart.o
0x08001748 0x08001748 0x0000006c Code RO 2652 i.HAL_UART_Init stm32f0xx_hal_uart.o
0x080017b4 0x080017b4 0x00000090 Code RO 845 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x08001844 0x08001844 0x00000002 Code RO 2658 i.HAL_UART_RxCpltCallback stm32f0xx_hal_uart.o
0x08001846 0x08001846 0x000000c8 Code RO 2660 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x0800190e 0x0800190e 0x00000058 Code RO 2662 i.HAL_UART_Transmit_IT stm32f0xx_hal_uart.o
0x08001966 0x08001966 0x00000002 PAD
0x08001968 0x08001968 0x0000000c Code RO 604 i.HAL_UART_TxCpltCallback main.o
0x08001974 0x08001974 0x00000002 Code RO 768 i.HardFault_Handler stm32f0xx_it.o
0x08001976 0x08001976 0x00000022 Code RO 954 i.I2C_Flush_TXDR stm32f0xx_hal_i2c.o
0x08001998 0x08001998 0x00000074 Code RO 962 i.I2C_IsAcknowledgeFailed stm32f0xx_hal_i2c.o
0x08001a0c 0x08001a0c 0x0000006a Code RO 966 i.I2C_RequestMemoryWrite stm32f0xx_hal_i2c.o
0x08001968 0x08001968 0x0000000c Code RO 608 i.HAL_UART_TxCpltCallback main.o
0x08001974 0x08001974 0x00000002 Code RO 772 i.HardFault_Handler stm32f0xx_it.o
0x08001976 0x08001976 0x00000022 Code RO 958 i.I2C_Flush_TXDR stm32f0xx_hal_i2c.o
0x08001998 0x08001998 0x00000074 Code RO 966 i.I2C_IsAcknowledgeFailed stm32f0xx_hal_i2c.o
0x08001a0c 0x08001a0c 0x0000006a Code RO 970 i.I2C_RequestMemoryWrite stm32f0xx_hal_i2c.o
0x08001a76 0x08001a76 0x00000002 PAD
0x08001a78 0x08001a78 0x00000024 Code RO 969 i.I2C_TransferConfig stm32f0xx_hal_i2c.o
0x08001a9c 0x08001a9c 0x00000048 Code RO 970 i.I2C_WaitOnFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001ae4 0x08001ae4 0x0000004e Code RO 972 i.I2C_WaitOnSTOPFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001b32 0x08001b32 0x00000052 Code RO 973 i.I2C_WaitOnTXISFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001b84 0x08001b84 0x00000158 Code RO 605 i.MX_GPIO_Init main.o
0x08001cdc 0x08001cdc 0x00000054 Code RO 606 i.MX_I2C2_Init main.o
0x08001d30 0x08001d30 0x0000003c Code RO 607 i.MX_SPI1_Init main.o
0x08001d6c 0x08001d6c 0x00000054 Code RO 608 i.MX_TIM2_Init main.o
0x08001dc0 0x08001dc0 0x0000004c Code RO 609 i.MX_USART1_UART_Init main.o
0x08001e0c 0x08001e0c 0x0000005c Code RO 610 i.MX_USART3_UART_Init main.o
0x08001e68 0x08001e68 0x00000002 Code RO 769 i.NMI_Handler stm32f0xx_it.o
0x08001a78 0x08001a78 0x00000024 Code RO 973 i.I2C_TransferConfig stm32f0xx_hal_i2c.o
0x08001a9c 0x08001a9c 0x00000048 Code RO 974 i.I2C_WaitOnFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001ae4 0x08001ae4 0x0000004e Code RO 976 i.I2C_WaitOnSTOPFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001b32 0x08001b32 0x00000052 Code RO 977 i.I2C_WaitOnTXISFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001b84 0x08001b84 0x00000158 Code RO 609 i.MX_GPIO_Init main.o
0x08001cdc 0x08001cdc 0x00000054 Code RO 610 i.MX_I2C2_Init main.o
0x08001d30 0x08001d30 0x0000003c Code RO 611 i.MX_SPI1_Init main.o
0x08001d6c 0x08001d6c 0x00000054 Code RO 612 i.MX_TIM2_Init main.o
0x08001dc0 0x08001dc0 0x0000004c Code RO 613 i.MX_USART1_UART_Init main.o
0x08001e0c 0x08001e0c 0x0000005c Code RO 614 i.MX_USART3_UART_Init main.o
0x08001e68 0x08001e68 0x00000002 Code RO 773 i.NMI_Handler stm32f0xx_it.o
0x08001e6a 0x08001e6a 0x00000002 PAD
0x08001e6c 0x08001e6c 0x00000044 Code RO 3509 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08001eb0 0x08001eb0 0x00000002 Code RO 770 i.PendSV_Handler stm32f0xx_it.o
0x08001e6c 0x08001e6c 0x00000044 Code RO 3513 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08001eb0 0x08001eb0 0x00000002 Code RO 774 i.PendSV_Handler stm32f0xx_it.o
0x08001eb2 0x08001eb2 0x00000002 PAD
0x08001eb4 0x08001eb4 0x00000010 Code RO 771 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001ec4 0x08001ec4 0x00000036 Code RO 1430 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x08001efa 0x08001efa 0x0000005e Code RO 1431 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x08001f58 0x08001f58 0x00000034 Code RO 1432 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x08001f8c 0x08001f8c 0x00000048 Code RO 1433 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x08001fd4 0x08001fd4 0x00000052 Code RO 1436 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x08002026 0x08002026 0x00000012 Code RO 1439 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x08002038 0x08002038 0x0000004c Code RO 1450 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x08002084 0x08002084 0x00000096 Code RO 1455 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x0800211a 0x0800211a 0x0000008c Code RO 1456 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x080021a6 0x080021a6 0x00000002 Code RO 772 i.SVC_Handler stm32f0xx_it.o
0x080021a8 0x080021a8 0x0000000c Code RO 773 i.SysTick_Handler stm32f0xx_it.o
0x080021b4 0x080021b4 0x0000006c Code RO 611 i.SystemClock_Config main.o
0x08002220 0x08002220 0x0000005c Code RO 3926 i.SystemInit system_stm32f0xx.o
0x0800227c 0x0800227c 0x00000094 Code RO 1832 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08002310 0x08002310 0x00000016 Code RO 1839 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x08002326 0x08002326 0x00000010 Code RO 1840 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x08002336 0x08002336 0x00000022 Code RO 1846 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x08002358 0x08002358 0x00000026 Code RO 1848 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x0800237e 0x0800237e 0x000000ca Code RO 2661 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08002448 0x08002448 0x00000074 Code RO 2662 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x080024bc 0x080024bc 0x00000014 Code RO 2663 i.UART_DMAAbortOnError stm32f0xx_hal_uart.o
0x080024d0 0x080024d0 0x0000001e Code RO 2673 i.UART_EndRxTransfer stm32f0xx_hal_uart.o
0x080024ee 0x080024ee 0x0000001a Code RO 2674 i.UART_EndTransmit_IT stm32f0xx_hal_uart.o
0x08002508 0x08002508 0x0000007a Code RO 2676 i.UART_Receive_IT stm32f0xx_hal_uart.o
0x08001eb4 0x08001eb4 0x00000010 Code RO 775 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001ec4 0x08001ec4 0x00000036 Code RO 1434 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x08001efa 0x08001efa 0x0000005e Code RO 1435 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x08001f58 0x08001f58 0x00000034 Code RO 1436 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x08001f8c 0x08001f8c 0x00000048 Code RO 1437 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x08001fd4 0x08001fd4 0x00000052 Code RO 1440 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x08002026 0x08002026 0x00000012 Code RO 1443 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x08002038 0x08002038 0x0000004c Code RO 1454 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x08002084 0x08002084 0x00000096 Code RO 1459 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x0800211a 0x0800211a 0x0000008c Code RO 1460 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x080021a6 0x080021a6 0x00000002 Code RO 776 i.SVC_Handler stm32f0xx_it.o
0x080021a8 0x080021a8 0x0000000c Code RO 777 i.SysTick_Handler stm32f0xx_it.o
0x080021b4 0x080021b4 0x0000006c Code RO 615 i.SystemClock_Config main.o
0x08002220 0x08002220 0x0000005c Code RO 3930 i.SystemInit system_stm32f0xx.o
0x0800227c 0x0800227c 0x00000094 Code RO 1836 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08002310 0x08002310 0x00000016 Code RO 1843 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x08002326 0x08002326 0x00000010 Code RO 1844 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x08002336 0x08002336 0x00000022 Code RO 1850 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x08002358 0x08002358 0x00000026 Code RO 1852 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x0800237e 0x0800237e 0x000000ca Code RO 2665 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08002448 0x08002448 0x00000074 Code RO 2666 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x080024bc 0x080024bc 0x00000014 Code RO 2667 i.UART_DMAAbortOnError stm32f0xx_hal_uart.o
0x080024d0 0x080024d0 0x0000001e Code RO 2677 i.UART_EndRxTransfer stm32f0xx_hal_uart.o
0x080024ee 0x080024ee 0x0000001a Code RO 2678 i.UART_EndTransmit_IT stm32f0xx_hal_uart.o
0x08002508 0x08002508 0x0000007a Code RO 2680 i.UART_Receive_IT stm32f0xx_hal_uart.o
0x08002582 0x08002582 0x00000002 PAD
0x08002584 0x08002584 0x0000015c Code RO 2677 i.UART_SetConfig stm32f0xx_hal_uart.o
0x080026e0 0x080026e0 0x00000066 Code RO 2678 i.UART_Transmit_IT stm32f0xx_hal_uart.o
0x08002746 0x08002746 0x00000062 Code RO 2679 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x080027a8 0x080027a8 0x00000010 Code RO 774 i.USART3_4_IRQHandler stm32f0xx_it.o
0x080027b8 0x080027b8 0x00000020 Code RO 4059 i.__0printf$3 mc_p.l(printf3.o)
0x080027d8 0x080027d8 0x0000001a Code RO 384 i.__ARM_common_switch8 ps2kb.o
0x080027f2 0x080027f2 0x0000000e Code RO 4301 i.__scatterload_copy mc_p.l(handlers.o)
0x08002800 0x08002800 0x00000002 Code RO 4302 i.__scatterload_null mc_p.l(handlers.o)
0x08002802 0x08002802 0x0000000e Code RO 4303 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08002810 0x08002810 0x000001cc Code RO 4066 i._printf_core mc_p.l(printf3.o)
0x080029dc 0x080029dc 0x00000008 Code RO 613 i.byte_to_int16_t main.o
0x08002584 0x08002584 0x0000015c Code RO 2681 i.UART_SetConfig stm32f0xx_hal_uart.o
0x080026e0 0x080026e0 0x00000066 Code RO 2682 i.UART_Transmit_IT stm32f0xx_hal_uart.o
0x08002746 0x08002746 0x00000062 Code RO 2683 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x080027a8 0x080027a8 0x00000010 Code RO 778 i.USART3_4_IRQHandler stm32f0xx_it.o
0x080027b8 0x080027b8 0x00000020 Code RO 4063 i.__0printf$3 mc_p.l(printf3.o)
0x080027d8 0x080027d8 0x0000001a Code RO 388 i.__ARM_common_switch8 ps2kb.o
0x080027f2 0x080027f2 0x0000000e Code RO 4305 i.__scatterload_copy mc_p.l(handlers.o)
0x08002800 0x08002800 0x00000002 Code RO 4306 i.__scatterload_null mc_p.l(handlers.o)
0x08002802 0x08002802 0x0000000e Code RO 4307 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08002810 0x08002810 0x000001cc Code RO 4070 i._printf_core mc_p.l(printf3.o)
0x080029dc 0x080029dc 0x00000008 Code RO 617 i.byte_to_int16_t main.o
0x080029e4 0x080029e4 0x00000014 Code RO 12 i.delay_us delay_us.o
0x080029f8 0x080029f8 0x00000010 Code RO 13 i.delay_us_init delay_us.o
0x08002a08 0x08002a08 0x00000018 Code RO 614 i.fputc main.o
0x08002a08 0x08002a08 0x00000018 Code RO 618 i.fputc main.o
0x08002a20 0x08002a20 0x00000032 Code RO 152 i.gamepad_buf_add helpers.o
0x08002a52 0x08002a52 0x00000018 Code RO 153 i.gamepad_buf_init helpers.o
0x08002a6a 0x08002a6a 0x0000001c Code RO 155 i.gamepad_buf_is_full helpers.o
@@ -2581,10 +2588,10 @@ Memory Map of the image
0x08002a9c 0x08002a9c 0x00000018 Code RO 157 i.gamepad_buf_pop helpers.o
0x08002ab4 0x08002ab4 0x00000016 Code RO 158 i.gamepad_buf_reset helpers.o
0x08002aca 0x08002aca 0x00000002 PAD
0x08002acc 0x08002acc 0x000000a4 Code RO 615 i.gamepad_update main.o
0x08002b70 0x08002b70 0x0000003c Code RO 616 i.gameport_init main.o
0x08002bac 0x08002bac 0x000000a0 Code RO 617 i.handle_protocol_switch main.o
0x08002c4c 0x08002c4c 0x00000014 Code RO 618 i.is_protocol_enabled main.o
0x08002acc 0x08002acc 0x000000a4 Code RO 619 i.gamepad_update main.o
0x08002b70 0x08002b70 0x0000003c Code RO 620 i.gameport_init main.o
0x08002bac 0x08002bac 0x000000a0 Code RO 621 i.handle_protocol_switch main.o
0x08002c4c 0x08002c4c 0x00000014 Code RO 622 i.is_protocol_enabled main.o
0x08002c60 0x08002c60 0x00000030 Code RO 159 i.kb_buf_add helpers.o
0x08002c90 0x08002c90 0x00000020 Code RO 160 i.kb_buf_init helpers.o
0x08002cb0 0x08002cb0 0x0000001c Code RO 162 i.kb_buf_is_full helpers.o
@@ -2592,13 +2599,13 @@ Memory Map of the image
0x08002cec 0x08002cec 0x00000018 Code RO 164 i.kb_buf_pop helpers.o
0x08002d04 0x08002d04 0x0000001c Code RO 165 i.kb_buf_reset helpers.o
0x08002d20 0x08002d20 0x0000010c Code RO 300 i.keyboard_reply ps2kb.o
0x08002e2c 0x08002e2c 0x0000020c Code RO 619 i.main main.o
0x08003038 0x08003038 0x0000006c Code RO 4232 i.malloc mc_p.l(malloc.o)
0x080030a4 0x080030a4 0x00000020 Code RO 497 i.mcp4451_is_available mcp4451.o
0x080030c4 0x080030c4 0x0000002c Code RO 498 i.mcp4451_reset mcp4451.o
0x080030f0 0x080030f0 0x00000038 Code RO 499 i.mcp4451_write_wiper mcp4451.o
0x08002e2c 0x08002e2c 0x0000020c Code RO 623 i.main main.o
0x08003038 0x08003038 0x0000006c Code RO 4236 i.malloc mc_p.l(malloc.o)
0x080030a4 0x080030a4 0x00000020 Code RO 501 i.mcp4451_is_available mcp4451.o
0x080030c4 0x080030c4 0x0000002c Code RO 502 i.mcp4451_reset mcp4451.o
0x080030f0 0x080030f0 0x00000038 Code RO 503 i.mcp4451_write_wiper mcp4451.o
0x08003128 0x08003128 0x00000010 Code RO 14 i.micros delay_us.o
0x08003138 0x08003138 0x000000c4 Code RO 620 i.microsoft_serial_mouse_update main.o
0x08003138 0x08003138 0x000000c4 Code RO 624 i.microsoft_serial_mouse_update main.o
0x080031fc 0x080031fc 0x00000032 Code RO 166 i.mouse_buf_add helpers.o
0x0800322e 0x0800322e 0x00000018 Code RO 167 i.mouse_buf_init helpers.o
0x08003246 0x08003246 0x0000001c Code RO 169 i.mouse_buf_is_full helpers.o
@@ -2606,71 +2613,74 @@ Memory Map of the image
0x08003278 0x08003278 0x00000018 Code RO 171 i.mouse_buf_pop helpers.o
0x08003290 0x08003290 0x00000016 Code RO 172 i.mouse_buf_reset helpers.o
0x080032a6 0x080032a6 0x00000002 PAD
0x080032a8 0x080032a8 0x00000024 Code RO 621 i.protocol_status_lookup_init main.o
0x080032a8 0x080032a8 0x00000024 Code RO 625 i.protocol_status_lookup_init main.o
0x080032cc 0x080032cc 0x00000044 Code RO 301 i.ps2kb_get_bus_status ps2kb.o
0x08003310 0x08003310 0x0000001c Code RO 302 i.ps2kb_init ps2kb.o
0x0800332c 0x0800332c 0x0000002c Code RO 303 i.ps2kb_press_key ps2kb.o
0x08003358 0x08003358 0x0000002c Code RO 304 i.ps2kb_press_key_scancode_1 ps2kb.o
0x08003384 0x08003384 0x00000190 Code RO 305 i.ps2kb_press_key_scancode_2 ps2kb.o
0x08003514 0x08003514 0x000000fc Code RO 306 i.ps2kb_read ps2kb.o
0x08003610 0x08003610 0x00000020 Code RO 307 i.ps2kb_release_lines ps2kb.o
0x08003630 0x08003630 0x00000010 Code RO 308 i.ps2kb_reset ps2kb.o
0x08003640 0x08003640 0x000000b4 Code RO 622 i.ps2kb_update main.o
0x080036f4 0x080036f4 0x00000044 Code RO 309 i.ps2kb_write ps2kb.o
0x08003738 0x08003738 0x00000124 Code RO 310 i.ps2kb_write_nowait ps2kb.o
0x0800385c 0x0800385c 0x00000060 Code RO 395 i.ps2mouse_get_bus_status ps2mouse.o
0x080038bc 0x080038bc 0x000000e4 Code RO 396 i.ps2mouse_get_outgoing_data ps2mouse.o
0x080039a0 0x080039a0 0x00000178 Code RO 397 i.ps2mouse_host_req_reply ps2mouse.o
0x08003b18 0x08003b18 0x0000001c Code RO 398 i.ps2mouse_init ps2mouse.o
0x08003b34 0x08003b34 0x000000f8 Code RO 399 i.ps2mouse_read ps2mouse.o
0x08003c2c 0x08003c2c 0x00000020 Code RO 400 i.ps2mouse_release_lines ps2mouse.o
0x08003c4c 0x08003c4c 0x00000018 Code RO 401 i.ps2mouse_reset ps2mouse.o
0x08003c64 0x08003c64 0x0000001c Code RO 402 i.ps2mouse_restore_defaults ps2mouse.o
0x08003c80 0x08003c80 0x0000001c Code RO 403 i.ps2mouse_send_bat ps2mouse.o
0x08003c9c 0x08003c9c 0x00000024 Code RO 404 i.ps2mouse_send_update ps2mouse.o
0x08003cc0 0x08003cc0 0x000000b0 Code RO 623 i.ps2mouse_update main.o
0x08003d70 0x08003d70 0x00000026 Code RO 405 i.ps2mouse_wait_for_idle ps2mouse.o
0x08003d96 0x08003d96 0x0000001a Code RO 406 i.ps2mouse_write ps2mouse.o
0x08003db0 0x08003db0 0x00000022 Code RO 407 i.ps2mouse_write_delay_start ps2mouse.o
0x08003dd2 0x08003dd2 0x00000002 PAD
0x08003dd4 0x08003dd4 0x00000124 Code RO 408 i.ps2mouse_write_nowait ps2mouse.o
0x08003ef8 0x08003ef8 0x00000014 Code RO 311 i.scancode_set_reply_lookup ps2kb.o
0x08003f0c 0x08003f0c 0x00000078 Code RO 624 i.spi_error_dump_reboot main.o
0x08003f84 0x08003f84 0x00000030 Code RO 535 i.wait_for_clk_high xt_kb.o
0x08003fb4 0x08003fb4 0x00000040 Code RO 536 i.xtkb_check_for_softreset xt_kb.o
0x08003ff4 0x08003ff4 0x00000014 Code RO 537 i.xtkb_enable xt_kb.o
0x08004008 0x08004008 0x00000014 Code RO 538 i.xtkb_init xt_kb.o
0x0800401c 0x0800401c 0x00000078 Code RO 539 i.xtkb_press_key xt_kb.o
0x08004094 0x08004094 0x00000020 Code RO 540 i.xtkb_release_lines xt_kb.o
0x080040b4 0x080040b4 0x00000020 Code RO 541 i.xtkb_reset_bus xt_kb.o
0x080040d4 0x080040d4 0x0000003c Code RO 625 i.xtkb_update main.o
0x08004110 0x08004110 0x000000c0 Code RO 542 i.xtkb_write xt_kb.o
0x080041d0 0x080041d0 0x00000079 Data RO 313 .constdata ps2kb.o
0x08004249 0x08004249 0x00000004 Data RO 500 .constdata mcp4451.o
0x0800424d 0x0800424d 0x00000037 Data RO 631 .constdata main.o
0x08004284 0x08004284 0x00000010 Data RO 3927 .constdata system_stm32f0xx.o
0x08004294 0x08004294 0x00000008 Data RO 3928 .constdata system_stm32f0xx.o
0x0800429c 0x0800429c 0x00000020 Data RO 4299 Region$$Table anon$$obj.o
0x0800332c 0x0800332c 0x00000038 Code RO 303 i.ps2kb_press_key ps2kb.o
0x08003364 0x08003364 0x0000002c Code RO 304 i.ps2kb_press_key_scancode_1 ps2kb.o
0x08003390 0x08003390 0x00000190 Code RO 305 i.ps2kb_press_key_scancode_2 ps2kb.o
0x08003520 0x08003520 0x00000080 Code RO 306 i.ps2kb_press_key_scancode_3 ps2kb.o
0x080035a0 0x080035a0 0x000000fc Code RO 307 i.ps2kb_read ps2kb.o
0x0800369c 0x0800369c 0x00000020 Code RO 308 i.ps2kb_release_lines ps2kb.o
0x080036bc 0x080036bc 0x00000010 Code RO 309 i.ps2kb_reset ps2kb.o
0x080036cc 0x080036cc 0x000000b4 Code RO 626 i.ps2kb_update main.o
0x08003780 0x08003780 0x00000044 Code RO 310 i.ps2kb_write ps2kb.o
0x080037c4 0x080037c4 0x00000124 Code RO 311 i.ps2kb_write_nowait ps2kb.o
0x080038e8 0x080038e8 0x00000060 Code RO 399 i.ps2mouse_get_bus_status ps2mouse.o
0x08003948 0x08003948 0x000000e4 Code RO 400 i.ps2mouse_get_outgoing_data ps2mouse.o
0x08003a2c 0x08003a2c 0x00000178 Code RO 401 i.ps2mouse_host_req_reply ps2mouse.o
0x08003ba4 0x08003ba4 0x0000001c Code RO 402 i.ps2mouse_init ps2mouse.o
0x08003bc0 0x08003bc0 0x000000f8 Code RO 403 i.ps2mouse_read ps2mouse.o
0x08003cb8 0x08003cb8 0x00000020 Code RO 404 i.ps2mouse_release_lines ps2mouse.o
0x08003cd8 0x08003cd8 0x00000018 Code RO 405 i.ps2mouse_reset ps2mouse.o
0x08003cf0 0x08003cf0 0x0000001c Code RO 406 i.ps2mouse_restore_defaults ps2mouse.o
0x08003d0c 0x08003d0c 0x0000001c Code RO 407 i.ps2mouse_send_bat ps2mouse.o
0x08003d28 0x08003d28 0x00000024 Code RO 408 i.ps2mouse_send_update ps2mouse.o
0x08003d4c 0x08003d4c 0x000000b0 Code RO 627 i.ps2mouse_update main.o
0x08003dfc 0x08003dfc 0x00000026 Code RO 409 i.ps2mouse_wait_for_idle ps2mouse.o
0x08003e22 0x08003e22 0x0000001a Code RO 410 i.ps2mouse_write ps2mouse.o
0x08003e3c 0x08003e3c 0x00000022 Code RO 411 i.ps2mouse_write_delay_start ps2mouse.o
0x08003e5e 0x08003e5e 0x00000002 PAD
0x08003e60 0x08003e60 0x00000124 Code RO 412 i.ps2mouse_write_nowait ps2mouse.o
0x08003f84 0x08003f84 0x00000014 Code RO 312 i.scancode_set_reply_lookup ps2kb.o
0x08003f98 0x08003f98 0x00000078 Code RO 628 i.spi_error_dump_reboot main.o
0x08004010 0x08004010 0x00000030 Code RO 539 i.wait_for_clk_high xt_kb.o
0x08004040 0x08004040 0x00000040 Code RO 540 i.xtkb_check_for_softreset xt_kb.o
0x08004080 0x08004080 0x00000014 Code RO 541 i.xtkb_enable xt_kb.o
0x08004094 0x08004094 0x00000014 Code RO 542 i.xtkb_init xt_kb.o
0x080040a8 0x080040a8 0x00000078 Code RO 543 i.xtkb_press_key xt_kb.o
0x08004120 0x08004120 0x00000020 Code RO 544 i.xtkb_release_lines xt_kb.o
0x08004140 0x08004140 0x00000020 Code RO 545 i.xtkb_reset_bus xt_kb.o
0x08004160 0x08004160 0x0000003c Code RO 629 i.xtkb_update main.o
0x0800419c 0x0800419c 0x000000c0 Code RO 546 i.xtkb_write xt_kb.o
0x0800425c 0x0800425c 0x0000013c Data RO 313 .constdata ps2kb.o
0x08004398 0x08004398 0x00000004 Data RO 504 .constdata mcp4451.o
0x0800439c 0x0800439c 0x00000037 Data RO 635 .constdata main.o
0x080043d3 0x080043d3 0x00000010 Data RO 3931 .constdata system_stm32f0xx.o
0x080043e3 0x080043e3 0x00000008 Data RO 3932 .constdata system_stm32f0xx.o
0x080043eb 0x080043eb 0x00000001 PAD
0x080043ec 0x080043ec 0x00000020 Data RO 4303 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080042bc, Size: 0x00000900, Max: 0x00004000, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0800440c, Size: 0x00000990, Max: 0x00004000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x080042bc 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x080042c0 0x00000014 Data RW 315 .data ps2kb.o
0x20000018 0x080042d4 0x0000001c Data RW 409 .data ps2mouse.o
0x20000034 0x080042f0 0x00000014 Data RW 543 .data xt_kb.o
0x20000048 0x08004304 0x00000024 Data RW 632 .data main.o
0x2000006c 0x08004328 0x00000004 Data RW 3222 .data stm32f0xx_hal.o
0x20000070 0x0800432c 0x00000004 Data RW 3929 .data system_stm32f0xx.o
0x20000074 0x08004330 0x00000004 Data RW 4273 .data mc_p.l(stdout.o)
0x20000078 0x08004334 0x00000004 Data RW 4276 .data mc_p.l(mvars.o)
0x2000007c 0x08004338 0x00000004 Data RW 4277 .data mc_p.l(mvars.o)
0x20000080 - 0x0000027d Zero RW 626 .bss main.o
0x200002fd 0x0800433c 0x00000003 PAD
0x20000300 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
0x20000500 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o
0x20000000 0x0800440c 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x08004410 0x000000a2 Data RW 314 .data ps2kb.o
0x200000a6 0x080044b2 0x00000002 PAD
0x200000a8 0x080044b4 0x0000001c Data RW 413 .data ps2mouse.o
0x200000c4 0x080044d0 0x00000014 Data RW 547 .data xt_kb.o
0x200000d8 0x080044e4 0x00000024 Data RW 636 .data main.o
0x200000fc 0x08004508 0x00000004 Data RW 3226 .data stm32f0xx_hal.o
0x20000100 0x0800450c 0x00000004 Data RW 3933 .data system_stm32f0xx.o
0x20000104 0x08004510 0x00000004 Data RW 4277 .data mc_p.l(stdout.o)
0x20000108 0x08004514 0x00000004 Data RW 4280 .data mc_p.l(mvars.o)
0x2000010c 0x08004518 0x00000004 Data RW 4281 .data mc_p.l(mvars.o)
0x20000110 - 0x0000027d Zero RW 630 .bss main.o
0x2000038d 0x0800451c 0x00000003 PAD
0x20000390 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
0x20000590 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o
==============================================================================
@@ -2684,7 +2694,7 @@ Image component sizes
532 0 0 0 0 11880 helpers.o
2996 364 55 36 637 22620 main.o
132 22 4 0 0 2287 mcp4451.o
1558 74 121 20 0 10471 ps2kb.o
1698 92 316 162 0 11384 ps2kb.o
1514 66 0 28 0 11530 ps2mouse.o
28 8 192 0 1536 628 startup_stm32f072xb.o
122 18 0 4 0 3603 stm32f0xx_hal.o
@@ -2707,9 +2717,9 @@ Image component sizes
528 52 0 20 0 5894 xt_kb.o
----------------------------------------------------------------------
15854 1010 428 116 2176 651512 Object Totals
15994 1028 624 260 2176 652425 Object Totals
0 0 32 0 0 0 (incl. Generated)
32 0 0 0 3 0 (incl. Padding)
32 0 1 2 3 0 (incl. Padding)
----------------------------------------------------------------------
@@ -2753,15 +2763,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
16656 1054 428 128 2176 644640 Grand Totals
16656 1054 428 128 2176 644640 ELF Image Totals
16656 1054 428 128 0 0 ROM Totals
16796 1072 624 272 2176 645509 Grand Totals
16796 1072 624 272 2176 645509 ELF Image Totals
16796 1072 624 272 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 17084 ( 16.68kB)
Total RW Size (RW Data + ZI Data) 2304 ( 2.25kB)
Total ROM Size (Code + RO Data + RW Data) 17212 ( 16.81kB)
Total RO Size (Code + RO Data) 17420 ( 17.01kB)
Total RW Size (RW Data + ZI Data) 2448 ( 2.39kB)
Total ROM Size (Code + RO Data + RW Data) 17692 ( 17.28kB)
==============================================================================

View File

@@ -74,7 +74,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h)(0x5DFA0893)
I (../Inc/stm32f0xx_hal_conf.h)(0x62423606)
I (../Inc/main.h)(0x62423606)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h)(0x5DFA0893)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h)(0x5DFA0880)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h)(0x5DFA0880)
@@ -112,7 +112,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
-IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB
-o ibmpc\ps2kb.o --omf_browse ibmpc\ps2kb.crf --depend ibmpc\ps2kb.d)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A)
@@ -152,12 +152,12 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart_ex.h)(0x5DFA0893)
I (../Inc/shared.h)(0x61B61A00)
I (../Inc/ps2kb.h)(0x6274E955)
I (../Inc/ps2kb.h)(0x6274FBAF)
I (../Inc/delay_us.h)(0x617487C7)
F (..\Src\ps2mouse.c)(0x62743872)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include
-I.\RTE\_ibmpc
-I.\RTE\_ibmpc
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
-IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include
@@ -276,9 +276,9 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h)(0x5DFA0893)
I (../Inc/stm32f0xx_hal_conf.h)(0x62423606)
I (../Inc/main.h)(0x62423606)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h)(0x5DFA0893)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h)(0x5DFA0880)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h)(0x5DFA0880)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h)(0x5DFA0880)
I (../Drivers/CMSIS/Include/core_cm0.h)(0x5DFA0892)
I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5D9B4298)

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -505,7 +505,7 @@ GPIO_TypeDef* ps2kb_data_port;
uint16_t ps2kb_data_pin;
uint32_t ps2kb_wait_start;
uint8_t ps2kb_current_scancode_set = 2;
uint8_t ps2kb_current_scancode_set = 3;
uint8_t ps2kb_data_reporting_enabled = 1;
#define PS2KB_CLK_HI() HAL_GPIO_WritePin(ps2kb_clk_port, ps2kb_clk_pin, GPIO_PIN_SET)
@@ -527,7 +527,7 @@ void ps2kb_release_lines(void)
void ps2kb_reset(void)
{
ps2kb_current_scancode_set = 2;
ps2kb_current_scancode_set = 3;
ps2kb_data_reporting_enabled = 1;
}
@@ -885,6 +885,42 @@ uint8_t ps2kb_press_key_scancode_2(uint8_t linux_keycode, uint8_t linux_keyvalue
return PS2_ERROR_UNKNOWN;
}
uint8_t ps2kb_press_key_scancode_3(uint8_t linux_keycode, uint8_t linux_keyvalue)
{
// printf("%d %d", linux_keycode, linux_keyvalue);
// linux_keyvalue: release 0 press 1 autorepeat 2
if(linux_keycode >= LINUX_KEYCODE_TO_PS2_SCANCODE_SET3_SIZE)
return PS2_ERROR_UNKNOWN_EV;
uint8_t set3_scancode = linux_keycode_to_ps3_scancode_lookup_codeset3[linux_keycode];
if(set3_scancode == CODE_UNUSED)
return PS2_ERROR_UNUSED_CODE;
if(set3_scancode >= SET3_STATUS_LOOKUP_SIZE)
return PS2_ERROR_UNKNOWN_SCANCODE;
uint8_t key_status = scancode_set3_status[set3_scancode];
if(linux_keyvalue == 1) // make
{
if(ps2kb_write(set3_scancode, 0, PS2KB_WRITE_DEFAULT_TIMEOUT_MS))
return PS2_ERROR_HOST_INHIBIT;
}
if(linux_keyvalue == 0 && (key_status == SET3_KEY_STATE_MAKE_BREAK || key_status == SET3_KEY_STATE_TYPEMATIC)) // break
{
if(ps2kb_write(0xf0, 0, PS2KB_WRITE_DEFAULT_TIMEOUT_MS))
return PS2_ERROR_HOST_INHIBIT;
if(ps2kb_write(set3_scancode, 0, PS2KB_WRITE_DEFAULT_TIMEOUT_MS))
return PS2_ERROR_HOST_INHIBIT;
}
if(linux_keyvalue == 2 && key_status == SET3_KEY_STATE_TYPEMATIC) // typematic
{
if(ps2kb_write(set3_scancode, 0, PS2KB_WRITE_DEFAULT_TIMEOUT_MS))
return PS2_ERROR_HOST_INHIBIT;
}
return PS2_OK;
}
uint8_t ps2kb_press_key(uint8_t linux_keycode, uint8_t linux_keyvalue)
{
if(ps2kb_data_reporting_enabled == 0)
@@ -895,6 +931,8 @@ uint8_t ps2kb_press_key(uint8_t linux_keycode, uint8_t linux_keyvalue)
return ps2kb_press_key_scancode_1(linux_keycode, linux_keyvalue);
case 2:
return ps2kb_press_key_scancode_2(linux_keycode, linux_keyvalue);
case 3:
return ps2kb_press_key_scancode_3(linux_keycode, linux_keyvalue);
default:
return PS2_ERROR_UNKNOWN_CODE_SET;
}