working on refining PS2 protocols

This commit is contained in:
dekunukem
2021-12-09 10:08:28 +00:00
parent 3f60b439a7
commit 156e026df5
13 changed files with 871 additions and 773 deletions

View File

File diff suppressed because one or more lines are too long

View File

Binary file not shown.

View File

@@ -27,9 +27,10 @@ Project File Date: 12/07/2021
<h2>Output:</h2>
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'ibmpc'
compiling main.c...
compiling ps2kb.c...
compiling ps2mouse.c...
linking...
Program Size: Code=11648 RO-data=372 RW-data=92 ZI-data=2108
Program Size: Code=11664 RO-data=372 RW-data=96 ZI-data=2112
FromELF: creating hex file...
"ibmpc\ibmpc.axf" - 0 Error(s), 0 Warning(s).
@@ -54,7 +55,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
:1000000098080020D5000008ED17000869150008C1
:10000000A0080020D5000008ED17000869150008B9
:1000100000000000000000000000000000000000E0
:100020000000000000000000000000002B1B000882
:100030000000000000000000351800082D1B00081B
@@ -11,8 +11,8 @@
:10009000E7000008E7000008E7000008E7000008A4
:1000A000E700000839180008E7000008E70000082A
:1000B000E70000082D210008E7000008E70000081D
:1000C0000348854600F04EF80048004779220008B2
:1000D000980800200448804704480047FEE7FEE7F0
:1000C0000348854600F04EF800480047A12200088A
:1000D000A00800200448804704480047FEE7FEE7E8
:1000E000FEE7FEE7FEE7FEE7A51B0008C1000008EB
:1000F00030B50B46014600202022012409E00D46C0
:10010000D5409D4205D31D469540491B2546954047
@@ -23,7 +23,7 @@
:10015000F6E710B513460A4604461946FFF7F0FFC6
:10016000204610BD064C0125064E05E0E36807CC8D
:100170002B430C3C98471034B442F7D3FFF7A4FF4D
:10018000D42E0008F42E000870B50024014620315A
:10018000E42E0008042F000870B500240146203139
:100190004A78022A03D004218163012416E0026810
:1001A00013680E25AB431360026813685B085B009D
:1001B00013600122056C1346AB40C56B6B604A703F
@@ -53,7 +53,7 @@
:100330000004004800080048000C00480010004875
:10034000000401400069084000D001207047426964
:100350004A4042617047002A01D081617047816242
:100360007047000001480068704700004800002006
:100360007047000001480068704700004C00002002
:1003700070B5024640325378202B1CD11378012BE4
:1003800019D00123137024245470046825689D43F8
:100390002560046825681E03B54325600468256848
@@ -80,7 +80,7 @@
:1004E00085FE0748C269012189050A43C261C069C6
:1004F0000840059007B000BD0058004000040048C7
:100500000010024002480168491C01607047000069
:100510004800002010B50648016810221143016010
:100510004C00002010B5064801681022114301600C
:10052000002000F007F800F017F8002010BD0000D0
:100530000020024010B5044600F086F97D21C90074
:10054000FFF7D6FD00F0A0FD00222146501E00F06E
@@ -131,10 +131,10 @@
:10081000E9680843606000F02DF86168084A09063D
:10082000090F515CC840074908600020FFF782FEAD
:100830000020F8BD00200240001002408813000094
:10084000B92E00084C0000200148006870470000E5
:100850004C0000200448054900684968044A4905DD
:10086000490F515CC84070474C0000200010024006
:10087000C92E000830B516A30FCB89B06C460FC443
:10084000C92E0008500000200148006870470000D1
:10085000500000200448054900684968044A4905D9
:10086000490F515CC8407047500000200010024002
:10087000D92E000830B516A30FCB89B06C460FC433
:1008800017A30FCB0FC41A494A680C201446044022
:100890001848042C05D0184B082C04D00C2C00D17F
:1008A000184609B030BD9402240F6D462C5DC96A0C
@@ -253,15 +253,15 @@
:100FB00040392A48FFF782FF274C203C2078DE2862
:100FC0000DD0274F002608213846FFF7C0F96420CE
:100FD000FFF7FEF8761C142EF5DBFFF7EDFAA0788C
:100FE000012805D11C48227AA179203001F026FA87
:100FE000012805D11C48227AA179203001F03AFA73
:100FF000A078022820D16179207901F0D4F86946DF
:101000000880E179A07901F0CEF840426946488035
:10101000617A207A01F0C7F8404269468880607B97
:101020008871A07B0872E07BC871207C4872607C6C
:1010300088720C4801F058FCA078042804D1C10241
:1010300088720C4801F06EFCA078042804D1C1022B
:1010400000220948FFF787F9092000222946C00637
:10105000FFF781F9FEBD00006C020020A80000200F
:101060000004004840000020000800480422044911
:10105000FFF781F9FEBD000070020020AC00002007
:10106000000400484400002000080048042204490D
:101070000428086902D09043086170471043FBE7D9
:1010800000E000E070470000094910B5401E8842AA
:1010900001D9012010BD074C60610321081F00F039
@@ -364,30 +364,30 @@
:1016A000C161C2600162FEF7ADFE002800D0FEE716
:1016B00000210848FEF75CFE002800D0FEE700216C
:1016C0000448FEF77AFE002800D0FEE710BD0000B7
:1016D000005800405C0000205D3E302010B50D48F1
:1016D00000580040600000205D3E302010B50D48ED
:1016E0000B490160002141608160016141618161BC
:1016F0000722016212024162C26081620722016315
:10170000C2624163FFF752FB002800D0FEE710BD24
:1017100000300140A800002010B50121124886B019
:1017100000300140AC00002010B50121124886B015
:101720008907016000242F21846041600461611EEB
:101730008461C160FFF7E8FC002800D0FEE70120CB
:101740000003009069460848FFF716FD002800D006
:10175000FEE7049404A904480594FFF7B1FC0028AF
:1017600000D0FEE706B010BD0C01002010B50C48FB
:1017600000D0FEE706B010BD1001002010B50C48F7
:101770000A490160E1214902416000218160C160A4
:1017800001618161C1610C22016242614162FFF726
:1017900007FE002800D0FEE710BD00000038014021
:1017A0004C01002010B510480E4901604B21090181
:1017A0005001002010B510480E4901604B2109017D
:1017B00041600121090781600021C16001618161EF
:1017C0000C22C161426101623021416201210903A1
:1017D00081634900C163FFF7E3FD002800D0FEE705
:1017E00010BD000000480040BC0100207047000010
:1017E00010BD000000480040C0010020704700000C
:1017F0008307FF22DB0E9A408907090E99400028D3
:101800000BDA0007000F0838830808489B001818F7
:10181000C36993430B43C3617047830804489B002B
:101820001B181868904308431860704700ED00E0EB
:1018300000E400E07047000010B50248FFF74CFAE2
:1018400010BD0000A800002010B50168C968026C36
:1018400010BD0000AC00002010B50168C968026C32
:101850001180016C891C016401464031CA88521E06
:10186000CA80C988002909D101684A6840239A437F
:101870004A60C18F002901D100F06EF810BD10B58B
@@ -530,231 +530,233 @@
:102100008160202060346072A07200202072032061
:1021100005B0F0BD2068C1693046884304D0002076
:10212000B842D9D00020F3E70120F9E710B5024802
:10213000FFF79CF810BD0000BC01002010B5024A5A
:10214000024900F021F810BDD52100085000002000
:10213000FFF79CF810BD0000C001002010B5024A56
:10214000024900F021F810BDD521000854000020FC
:1021500030B47446641E2578641CAB4200D21D4620
:10216000635D5B00E31830BC184702E008C8121F2B
:1021700008C1002AFAD170477047002001E001C170
:10218000121F002AFBD17047F8B516460F460446C9
:10219000002503E03946B047641C6D1C20780028F8
:1021A000F8D12846F8BD0902014308B2704700B5CE
:1021B000014600F03BF9411800F038F98842FBD3A2
:1021B000014600F04FF9411800F04CF98842FBD37A
:1021C00000BD000010B502490860FEF7C9FF10BD50
:1021D0000000002013B56423012269460248FFF77E
:1021E0005EF900981CBD00004C01002038B5ED38A8
:1021F0000C460300FFF7ACFF13302A2F142F1C14DA
:102200003B3B3B2F2F2F2F2F2F2F3B0B2F00142229
:102210000121FA2000F0D4FAFA220021AA2018E0C5
:1022200014220121FA2000F0CBFA1E2168461AE0A0
:1022300014220121FA2000F0C3FA14220021AB205D
:1022400000F0BEFA14220021832002E014220121B2
:10225000EE2000F0B5FA38BD14220121FA2000F07A
:10226000AFFA1E21204600F01DFA0028F3D11422F7
:102270000121FA20EDE70000FEF74CF9FFF75CFCC6
:10228000FFF774F9FFF700FAFFF728FAFFF744FAAF
:10229000FFF76CFAFFF786FA4048FFF793FF404CD0
:1022A000FF23013322465900104600F053F922461D
:1022B00010232021104600F031FC1021394800F095
:1022C000ECF81021384800F03CFB364820216038FB
:1022D000FDF73DFF334A3148203A1146202340396B
:1022E0006438FEF7EBFD31A0FFF728FF2E4C083CC9
:1022F00000F04CFB6071022802D0012803D00AE0F4
:1023000000F098FC07E028480A21801F00F014FC28
:10231000A07800F06BFB244800F0FFFA002801D001
:1023200000F0A8FC00F0E6F8A071022802D0012815
:1023300003D026E000F034FA23E0FF2060701A4852
:102340000A21083800F0AEF917492078C91FFFF7B5
:102350004DFF6578FF2D14D0124820216038FDF71D
:10236000F6FE1048CD2160380170014620314978D1
:10237000417001218170C5700A4649030F48FDF77D
:10238000EAFF094A0748121F511E00F06FF80028A3
:10239000AED12179E07800F0EFF8A9E70C01002038
:1023A000000400488C0200204000002068656C6C2E
:1023B0006F20776F726C640A00000000000800480C
:1023C000F0B50B30C108C900144F0026144A0FE0C5
:1023D00003688B420BD38B4205D95C1A43184568BE
:1023E00030C3083B00E04368136002C004E0021DF4
:1023F00010680028ECD13046002803D13868002846
:1024000001D00020F0BD064A06481060064A121AA4
:10241000D208D20044C001203860D7E7580000201D
:10242000540000209C02002098040020024800680C
:102430000068406A704700000000002070B5154633
:102440000E46044600F039F8002801D0012070BD86
:102450002178606846542178A06845542078A17896
:10246000401CFDF745FE2170002070BD10B50446EC
:1024700040782378984201D1012010BD6368185C30
:1024800008706178A068405C10706078A178401C8A
:10249000FDF72EFE6170002010BD70B50D4604469C
:1024A00081702846FFF78CFF60602846FFF788FFA1
:1024B000A060204600F00FF870BD10B5044681788A
:1024C0000078401CFDF714FE6078814201D10120A4
:1024D00010BD002010BD10B50446002020706070B3
:1024E000A1786068FDF733FEA178A068FDF72FFEA4
:1024F00010BD000010B5164C6188A068FDF722FFE2
:10250000012805D121886068FDF71CFF012806D04D
:102510006188A068FDF716FF012802D007E00320BC
:1025200010BD21886068FDF70DFF002806D0618886
:10253000A068FDF707FF002802D007E0022010BDC9
:1025400021886068FDF7FEFE0128F8D0002010BD4C
:102550000400002010B5074C60602180A2606380F9
:102560000122FDF7F8FE01226188A068FDF7F3FE65
:1025700010BD00000400002010B559280DD2484AB3
:10258000145CFF2C7CD0002902D01422002102E030
:10259000142200217CE0204645E0632812D07728F1
:1025A00045D00246603A1F2A78D83D4A5932101861
:1025B00060380478FF2C71D0002962D014220021E9
:1025C000E02066E0002912D014220021E02000F073
:1025D000F7F814220121122000F0F2F81422012150
:1025E000E02000F0EDF8142201217C201BE01422F1
:1025F0000021E02000F0E4F814220121F02000F096
:10260000DFF8142201217C2000F0DAF814220121E5
:10261000E02000F0D5F814220121F02000F0D0F8DD
:1026200014220121122000F0CBF8002010BD002957
:10263000BBD014220021E12000F0C2F814220121B5
:10264000104600F0BDF814220121772000F0B8F800
:1026500014220121E12000F0B3F814220121F0201E
:1026600000F0AEF814220121104600F0A9F814225F
:102670000121F02000F0A4F8142201217720D2E7F4
:102680000CE014220021E02000F09AF8142201212D
:10269000F02000F095F8142201217CE7012010BD04
:1026A000402E0008F3B581B00F4600250126FDF746
:1026B00059FE3A4CE06007E0FDF754FEE168401A2D
:1026C000B84201D30120FEBDFFF714FF0128F3D16A
:1026D0001220FFF76CFD002221886068FDF73BFEA9
:1026E0002420FFF764FD012221886068FDF733FE96
:1026F0001220FFF75CFD6188A068FDF723FE01282A
:1027000000D135437004060C1220FFF750FD002263
:1027100021886068FDF71FFE2420FFF748FD012295
:1027200021886068FDF717FE1220FFF740FDFF2E9D
:10273000E1D91220FFF73BFD002221886068FDF7F8
:102740000AFE2420FFF733FD012221886068FDF78F
:1027500002FE1220FFF72BFD1220FFF728FD0022BA
:102760006188A068FDF7F7FD002221886068FDF709
:10277000F2FD2420FFF71BFD012221886068FDF790
:10278000EAFD1220FFF713FD01226188A068FDF722
:10279000E2FD019805700020FEBD0000040000204D
:1027A00010B5064C012221886068FDF7D4FD012296
:1027B0006188A068FDF7CFFD10BD00000400002077
:1027C000F7B5164605460127FDF7CCFD454CE06000
:1027D00007E0FDF7C7FDE168401AB04201D30120D0
:1027E000FEBDFFF787FE0328F3D10198002803D030
:1027F000AF208000FFF7DBFC00226188A068FDF7B6
:10280000AAFD1220FFF7D3FC002221886068FDF7A3
:10281000A2FD2420FFF7CBFC012221886068FDF790
:102820009AFD1220FFF7C3FC0026E80701D0012221
:1028300000E000226188A068FDF78DFD1220FFF7FF
:10284000B6FC002221886068FDF785FD2420FFF793
:10285000AEFC012221886068FDF77DFD1220FFF7A4
:10286000A6FCE807C00F761C47406D08F6B2082E9C
:10287000DBD3002F01D0012200E000226188A06894
:10288000FDF769FD1220FFF792FC002221886068A5
:10289000FDF761FD2420FFF78AFC01222188606892
:1028A000FDF759FD1220FFF782FC01226188A06824
:1028B000FDF751FD1220FFF77AFC002221886068A5
:1028C000FDF749FD2420FFF772FC01222188606892
:1028D000FDF741FD1220FFF76AFCC820FFF767FCF7
:1028E0000020FEBD0400002070B50D46044600F037
:1028F00034F8002801D0012070BD20780C226168D6
:10290000504308182946FDF709FC2078A178401C9F
:10291000FDF7EEFB2170002070BD70B504464078D5
:1029200022780021904201D1084670BD0C2141431C
:102930006268401C5518A178FDF7DAFB61702846E3
:1029400070BD10B5044681700C204843FFF738FD78
:102950006060204600F00FF810BD10B50446817885
:102960000078401CFDF7C4FB6078814201D1012052
:1029700010BD002010BD10B500210170417081789C
:102980000C2251434068FDF7E2FB10BD10B5164C18
:1029900021892069FDF7D6FC012805D1E188E0688E
:1029A000FDF7D0FC012806D021892069FDF7CAFC7B
:1029B000012802D007E0032010BDE188E068FDF7A0
:1029C000C1FC002806D021892069FDF7BBFC002846
:1029D00002D007E0022010BDE188E068FDF7B2FCFC
:1029E0000128F8D0002010BD14000020F8B54A4D91
:1029F00000262C4601271C3CF32837D00CDCE828A5
:102A000062D004DCE62871D0E72869D175E0EE28B1
:102A10007BD0F22864D13DE0F62861D004DCF428B4
:102A20001DD0F5285CD113E0FE2859D0FF2857D1DE
:102A300000F010F914220121FA2000F06DF9FA22B9
:102A40000021AA2000F068F91422002108465FE066
:102A500014220121FA2000F05FF92670F8BD14223B
:102A60000121FA2000F058F92770F8BD1422012145
:102A7000FA2000F051F928481E211B3800F05CF8BC
:102A80000028F2D1207961782954072828D2401CE7
:102A9000207125E014220121FA2000F03DF9667131
:102AA000207902280CD928182038C17F502907D155
:102AB000817F642904D1407FC82801D1032060713F
:102AC00014220021607923E014220121FA2000F071
:102AD00023F911481E211A3800F02EF80028C4D11D
:102AE00014220121FA2013E000E00EE0142201215B
:102AF000FA2000F011F9E770F8BD14220121FA2044
:102B000000F00AF90220E070F8BD14220121EE2045
:102B100000F002F9F8BD00003000002010B5054CAF
:102B2000E060E1802261238100F094F800F082F8F7
:102B300010BD000014000020F3B581B00F46002541
:102B40000126FDF70FFC3A4C606107E0FDF70AFC37
:102B50006169401AB84201D30120FEBDFFF716FF9C
:102B60000128F3D11220FFF722FB0022E188E06860
:102B7000FDF7F1FB2420FFF71AFB0122E188E06852
:102B8000FDF7E9FB1220FFF712FB21892069FDF711
:102B9000D9FB012800D135437004060C1220FFF741
:102BA00006FB0022E188E068FDF7D5FB2420FFF753
:102BB000FEFA0122E188E068FDF7CDFB1220FFF765
:102BC000F6FAFF2EE1D91220FFF7F1FA0022E18890
:102BD000E068FDF7C0FB2420FFF7E9FA0122E18855
:102BE000E068FDF7B8FB1220FFF7E1FA1220FFF7CB
:102BF000DEFA002221892069FDF7ADFB0022E18881
:102C0000E068FDF7A8FB2420FFF7D1FA0122E18854
:102C1000E068FDF7A0FB1220FFF7C9FA0122218925
:102C20002069FDF798FB019805700020FEBD0000AB
:102C30001400002010B5064C0122E188E068FDF781
:102C40008AFB012221892069FDF785FB10BD000068
:102C50001400002006480021017064224270032203
:102C600082700122C2700171C161016241717047BD
:102C70001400002070B50546FFF788FE032801D038
:102C8000012070BD234E3078002841D00020B06173
:102C90003446082018342070A879002801D0092073
:102CA0002070287A002803D0207802210843207061
:102CB000E879002803D02078042108432070002000
:102CC000285E002803DA20781021084320700220B3
:102CD000285E002803DA2078202108432070287815
:102CE0006070A878A0702879E0700025605D1422DB
:102CF000002100F011F86D1C032DF7DB707900281E
:102D000004D0E0781422002100F006F8002070BD05
:102D1000022070BD14000020F7B5164605460127B5
:102D2000FDF720FB454C606107E0FDF71BFB616987
:102D3000401AB04201D30120FEBDFFF727FE032851
:102D4000F3D10198002803D0AF208000FFF72FFABD
:102D5000002221892069FDF7FEFA1220FFF727FAE9
:102D60000022E188E068FDF7F6FA2420FFF71FFA59
:102D70000122E188E068FDF7EEFA1220FFF717FA6A
:102D80000026E80701D0012200E000222189206905
:102D9000FDF7E1FA1220FFF70AFA0022E188E06865
:102DA000FDF7D9FA2420FFF702FA0122E188E06852
:102DB000FDF7D1FA1220FFF7FAF9E807C00F761CE9
:102DC00047406D08F6B2082EDBD3002F01D0012258
:102DD00000E0002221892069FDF7BDFA1220FFF7EB
:102DE000E6F90022E188E068FDF7B5FA2420FFF754
:102DF000DEF90122E188E068FDF7ADFA1220FFF765
:102E0000D6F9012221892069FDF7A5FA1220FFF7E2
:102E1000CEF90022E188E068FDF79DFA2420FFF753
:102E2000C6F90122E188E068FDF795FA1220FFF764
:102E3000BEF9C820FFF7BBF90020FEBD140000203A
:102E4000FF76161E26252E363D3E46454E55660D0E
:102E5000151D242D2C353C43444D545B5A141C1B2A
:102E6000232B34333B424B4C520E125D1A22212A43
:102E700032313A41494A597C1129580506040C035C
:102E80000B830A0109777E6C757D7B6B737479699E
:102E9000727A7071FFFF6178075A144AFF11FF6C54
:102EA000757D6B7469727A7071FFFFFFFFFFFFFF22
:102EB000FFFFFFFFFFFF1F272F00000000000000A3
:102EC00000010203040607080900000000010203D4
:102ED00004000000F42E0008000000205C00000048
:102EE0006A210008502F00085C0000203C08000008
:102EF0007A2100080000000000000000000000002F
:102F000000000000000000000000000000000000C1
:1021E0005EF900981CBD00005001002038B5ED38A4
:1021F0000D462A4C0300FFF7ABFF13413B24252477
:102200002D251D164C242424242424244C0B240086
:1022100014220121FA2000F0E9FA00F0DFFAFA2294
:102220000021AA2027E014220121FA2000F0DEFA82
:10223000002005E014220121FA2000F0D7FA012045
:10224000607038BD14220121FA2000F0CFFA1E215F
:1022500068461AE014220121FA2000F0C7FA14227D
:102260000021AB2000F0C2FA14220021832002E0FA
:1022700014220121EE2000F0B9FA38BD1422012108
:10228000FA2000F0B3FA1E21284600F019FA0028BF
:10229000F3D114220121FA20EDE700000400002010
:1022A000FEF738F9FFF748FCFFF760F9FFF7ECF9A4
:1022B000FFF714FAFFF730FAFFF758FAFFF772FA50
:1022C0004048FFF77FFF404CFF230133224659006F
:1022D000104600F045F9224610232021104600F058
:1022E0001BFC1021394800F0ECF81021384800F0B0
:1022F0003EFB364820216038FDF729FF334A31483C
:10230000203A1146202340396438FEF7D7FD31A02A
:10231000FFF714FF2E4C083C00F04EFB60710228C2
:1023200002D0012803D00AE000F082FC07E0284830
:102330000A21801F00F0FEFBA07800F06DFB24480E
:1023400000F001FB002801D000F09CFC00F0E6F852
:10235000A071022802D0012803D026E000F02EFA56
:1023600023E0FF2060701A480A21083800F0A8F91D
:1023700017492078C91FFFF739FF6578FF2D14D062
:10238000124820216038FDF7E2FE1048CD21603868
:102390000170014620314978417001218170C5707A
:1023A0000A4649030F48FDF7D6FF094A0748121F9E
:1023B000511E00F06FF80028AED12179E07800F0CE
:1023C000DDF8A9E710010020000400489002002079
:1023D0004400002068656C6C6F20776F726C640A33
:1023E0000000000000080048F0B50B30C108C9002B
:1023F000144F0026144A0FE003688B420BD38B4224
:1024000005D95C1A4318456830C3083B00E04368AF
:10241000136002C004E0021D10680028ECD13046B1
:10242000002803D13868002801D00020F0BD064AFA
:1024300006481060064A121AD208D20044C0012091
:102440003860D7E75C00002058000020A40200207C
:10245000A0040020024800680068406A704700003D
:102460000000002070B515460E46044600F039F80D
:10247000002801D0012070BD217860684654217881
:10248000A06845542078A178401CFDF731FE2170EA
:10249000002070BD10B5044640782378984201D1E1
:1024A000012010BD6368185C08706178A068405C0A
:1024B00010706078A178401CFDF71AFE6170002052
:1024C00010BD70B50D46044681702846FFF78CFF9D
:1024D00060602846FFF788FFA060204600F00FF8F4
:1024E00070BD10B5044681780078401CFDF700FEF1
:1024F0006078814201D1012010BD002010BD10B5CF
:102500000446002020706070A1786068FDF71FFE0F
:10251000A178A068FDF71BFE10BD000070B50F4D3F
:102520006988A868FDF70EFF0446A988E868FDF7EA
:1025300009FF012802D0002809D00AE0012C02D0AE
:10254000002C02D005E0032070BD022070BD012CDC
:1025500001D0002070BD012070BD000004000020EB
:1025600010B5054CA0606180E260A38000F026F900
:1025700000F034F910BD00000400002010B54E4AF0
:102580005278002A0AD059280FD24C4A145CFF2CEA
:102590007ED0002904D01422002104E0012010BDC7
:1025A000142200217FE0204645E0632812D07728DE
:1025B00045D00246603A1F2A7BD8404A593210184B
:1025C00060380478FF2C65D0002965D014220021E2
:1025D000E02069E0002912D014220021E02000F060
:1025E00005F914220121122000F000F91422012122
:1025F000E02000F0FBF8142201217C201BE01422D3
:102600000021E02000F0F2F814220121F02000F077
:10261000EDF8142201217C2000F0E8F814220121B9
:10262000E02000F0E3F814220121F02000F0DEF8B1
:1026300014220121122000F0D9F8002010BD002939
:10264000BBD014220021E12000F0D0F81422012197
:10265000104600F0CBF814220121772000F0C6F8D4
:1026600014220121E12000F0C1F814220121F02000
:1026700000F0BCF814220121104600F0B7F8142233
:102680000121F02000F0B2F8142201217720D2E7D6
:1026900000E00EE0022010BD14220021E02000F036
:1026A000A5F814220121F02000F0A0F81422012145
:1026B00079E7032010BD000004000020502E000820
:1026C000F3B581B00F4600250126FDF74BFE3A4CCD
:1026D000206107E0FDF746FE2169401AB84201D3A8
:1026E0000120FEBDFFF71AFF0128F3D11220FFF7EA
:1026F0005EFD00226188A068FDF72DFE2420FFF713
:1027000056FD01226188A068FDF725FE1220FFF723
:102710004EFDA188E068FDF715FE012800D1354384
:102720007004060C1220FFF742FD00226188A068A9
:10273000FDF711FE2420FFF73AFD01226188A06811
:10274000FDF709FE1220FFF732FDFF2EE1D912201E
:10275000FFF72DFD00226188A068FDF7FCFD242015
:10276000FFF725FD01226188A068FDF7F4FD122026
:10277000FFF71DFD1220FFF71AFD0022A188E06877
:10278000FDF7E9FD00226188A068FDF7E4FD242043
:10279000FFF70DFD01226188A068FDF7DCFD122026
:1027A000FFF705FD0122A188E068FDF7D4FD01983F
:1027B00005700020FEBD00000400002010B5064C8E
:1027C00001226188A068FDF7C6FD0122A188E068AA
:1027D000FDF7C1FD10BD00000400002002480221E9
:1027E000017001214170704704000020F7B51646C2
:1027F00005460127FDF7B6FD454C206107E0FDF7D2
:10280000B1FD2169401AB04201D30120FEBDFFF79E
:1028100085FE0328F3D10198002803D0AF20800063
:10282000FFF7C5FC0022A188E068FDF794FD1220A7
:10283000FFF7BDFC00226188A068FDF78CFD242015
:10284000FFF7B5FC01226188A068FDF784FD122026
:10285000FFF7ADFC0026E80701D0012200E00022CE
:10286000A188E068FDF777FD1220FFF7A0FC0022A9
:102870006188A068FDF76FFD2420FFF798FC012216
:102880006188A068FDF767FD1220FFF790FCE8075C
:10289000C00F761C47406D08F6B2082EDBD3002F20
:1028A00001D0012200E00022A188E068FDF753FD7D
:1028B0001220FFF77CFC00226188A068FDF74BFD29
:1028C0002420FFF774FC01226188A068FDF743FD16
:1028D0001220FFF76CFC0122A188E068FDF73BFDA8
:1028E0001220FFF764FC00226188A068FDF733FD29
:1028F0002420FFF75CFC01226188A068FDF72BFD16
:102900001220FFF754FCC820FFF751FC0020FEBD49
:102910000400002070B50D46044600F034F800288D
:1029200001D0012070BD20780C2261685043081846
:102930002946FDF7F3FB2078A178401CFDF7D8FB72
:102940002170002070BD70B50446407822780021C7
:10295000904201D1084670BD0C2141436268401C81
:102960005518A178FDF7C4FB6170284670BD10B5FD
:10297000044681700C204843FFF736FD6060204616
:1029800000F00FF810BD10B5044681780078401CA7
:10299000FDF7AEFB6078814201D1012010BD00201F
:1029A00010BD10B500210170417081780C22514397
:1029B0004068FDF7CCFB10BD10B5164C618920694D
:1029C000FDF7C0FC012805D12189E068FDF7BAFCBC
:1029D000012806D061892069FDF7B4FC012802D0E6
:1029E00007E0032010BD2189E068FDF7ABFC00285B
:1029F00006D061892069FDF7A5FC002802D007E018
:102A0000022010BD2189E068FDF79CFC0128F8D068
:102A1000002010BD18000020F8B53E4FE6383C46B7
:102A2000002501261C3C0300FFF792FB1A656C553C
:102A3000616161616161616161392523211E6161AB
:102A40006161616161610E6100F002F9142201218E
:102A5000FA2000F069F9FA220021AA2000F064F9B6
:102A600014220021084633E000F0FEF83FE0257014
:102A70003DE026703BE014220121FA2000F054F9D9
:102A800024481E211B3800F055F8002822D1207957
:102A90006178395407282AD2401C207127E014227B
:102AA0000121FA2000F040F96571207902280CD943
:102AB00038182038C17F502907D1817F642904D17B
:102AC000407FC82801D10320607114220021607961
:102AD00000F02AF9F8BD14220121FA2000F024F9AF
:102AE0000C481E211A3800F025F80028F2D11422D3
:102AF0000121FA20ECE714220121FA2000F014F958
:102B0000E670F8BD14220121FA2000F00DF9022030
:102B1000E070F8BD3400002010B5054CE060218164
:102B20002261638100F094F800F082F810BD00008B
:102B300018000020F3B581B00F4600250126FDF7EF
:102B400011FC3A4C606107E0FDF70CFC6169401A2A
:102B5000B84201D30120FEBDFFF72EFF0128F3D1BB
:102B60001220FFF724FB00222189E068FDF7F3FB28
:102B70002420FFF71CFB01222189E068FDF7EBFB15
:102B80001220FFF714FB61892069FDF7DBFB0128A8
:102B900000D135437004060C1220FFF708FB002219
:102BA0002189E068FDF7D7FB2420FFF700FB012215
:102BB0002189E068FDF7CFFB1220FFF7F8FAFF2E1E
:102BC000E1D91220FFF7F3FA00222189E068FDF72E
:102BD000C2FB2420FFF7EBFA01222189E068FDF710
:102BE000BAFB1220FFF7E3FA1220FFF7E0FA002207
:102BF00061892069FDF7AFFB00222189E068FDF7BC
:102C0000AAFB2420FFF7D3FA01222189E068FDF70F
:102C1000A2FB1220FFF7CBFA012261892069FDF7A0
:102C20009AFB019805700020FEBD000018000020EE
:102C300010B5064C01222189E068FDF78CFB0122CA
:102C400061892069FDF787FB10BD00001800002096
:102C500000B500F009F8034900200871C861086256
:102C6000487100BD18000020054864214170022110
:102C700081700121C17000210170817170470000D5
:102C80001800002070B50546FFF796FE032801D016
:102C9000012070BD234E3078002841D00020B06163
:102CA0003446082018342070A879002801D0092063
:102CB0002070287A002803D0207802210843207051
:102CC000E879002803D020780421084320700020F0
:102CD000285E002803DA20781021084320700220A3
:102CE000285E002803DA2078202108432070287805
:102CF0006070A878A0702879E0700025605D1422CB
:102D0000002100F011F86D1C032DF7DB707900280D
:102D100004D0E0781422002100F006F8002070BDF5
:102D2000022070BD18000020F7B5164605460127A1
:102D3000FDF718FB454C606107E0FDF713FB616987
:102D4000401AB04201D30120FEBDFFF735FE032833
:102D5000F3D10198002803D0AF208000FFF727FAB5
:102D6000002261892069FDF7F6FA1220FFF71FFAA9
:102D700000222189E068FDF7EEFA2420FFF717FA18
:102D800001222189E068FDF7E6FA1220FFF70FFA29
:102D90000026E80701D0012200E0002261892069B5
:102DA000FDF7D9FA1220FFF702FA00222189E06824
:102DB000FDF7D1FA2420FFF7FAF901222189E06812
:102DC000FDF7C9FA1220FFF7F2F9E807C00F761CE9
:102DD00047406D08F6B2082EDBD3002F01D0012248
:102DE00000E0002261892069FDF7B5FA1220FFF7A3
:102DF000DEF900222189E068FDF7ADFA2420FFF713
:102E0000D6F901222189E068FDF7A5FA1220FFF723
:102E1000CEF9012261892069FDF79DFA1220FFF7A2
:102E2000C6F900222189E068FDF795FA2420FFF712
:102E3000BEF901222189E068FDF78DFA1220FFF723
:102E4000B6F9C820FFF7B3F90020FEBD1800002036
:102E5000FF76161E26252E363D3E46454E55660DFE
:102E6000151D242D2C353C43444D545B5A141C1B1A
:102E7000232B34333B424B4C520E125D1A22212A33
:102E800032313A41494A597C1129580506040C034C
:102E90000B830A0109777E6C757D7B6B737479698E
:102EA000727A7071FFFF6178075A144AFF11FF6C44
:102EB000757D6B7469727A7071FFFFFFFFFFFFFF12
:102EC000FFFFFFFFFFFF1F272F0000000000000093
:102ED00000010203040607080900000000010203C4
:102EE00004000000042F0008000000206000000023
:102EF0006A210008642F00086000002040080000DC
:102F00007A2100080000000002010000000000001B
:102F100000000000000000000000000000000000B1
:102F200000000000000000000000000000000000A1
:102F30000000000000000000000000000000000091
:102F400000127A00000000000000000000000000F5
:102F40000000000000000000000000000000000081
:102F50000000000000127A000000000000000000E5
:042F6000000000006D
: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: Tue Dec 07 22:17:24 2021
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Thu Dec 09 10:08:07 2021
<BR><P>
<H3>Maximum Stack Usage = 196 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="[a5]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[a7]"></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="[a6]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[a8]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[a7]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[a9]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[a8]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[aa]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[a9]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[ab]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[aa]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[ac]"></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)
@@ -191,24 +191,24 @@ 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="[ab]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[ad]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[3f]"></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
</UL>
<BR>[Called By]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
<LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_is_full
<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_get
<LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_is_full
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_get
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_add
<LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_is_full
<LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_get
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_is_full
<LI><a href="#[9b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_get
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_add
<LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
<LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetSysClockFreq
<LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
</UL>
<P><STRONG><a name="[a1]"></a>__aeabi_memcpy</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text))
<P><STRONG><a name="[a2]"></a>__aeabi_memcpy</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_add
</UL>
@@ -216,29 +216,29 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
</UL>
<P><STRONG><a name="[ac]"></a>__aeabi_memcpy8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
<P><STRONG><a name="[ae]"></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="[ad]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[af]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[ae]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[b0]"></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="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_reset
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_reset
<BR>[Called By]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_reset
<LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_reset
</UL>
<P><STRONG><a name="[90]"></a>__aeabi_memclr4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text))
<P><STRONG><a name="[91]"></a>__aeabi_memclr4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[af]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[b1]"></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
@@ -250,7 +250,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
</UL>
<P><STRONG><a name="[b0]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[b2]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[48]"></a>HAL_DMA_Abort_IT</STRONG> (Thumb, 72 bytes, Stack size 16 bytes, stm32f0xx_hal_dma.o(i.HAL_DMA_Abort_IT))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = HAL_DMA_Abort_IT
@@ -276,11 +276,11 @@ Global Symbols
<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
</UL>
<P><STRONG><a name="[9f]"></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="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
<LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_get_bus_status
<P><STRONG><a name="[a0]"></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="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
<LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_get_bus_status
</UL>
<P><STRONG><a name="[51]"></a>HAL_GPIO_TogglePin</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_TogglePin))
@@ -291,13 +291,12 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_release_lines
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_release_lines
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write
<LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_release_lines
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_init
<LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_release_lines
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
</UL>
<P><STRONG><a name="[37]"></a>HAL_GetTick</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, stm32f0xx_hal.o(i.HAL_GetTick))
@@ -306,10 +305,10 @@ Global Symbols
<LI><a href="#[44]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_ClockConfig
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCCEx_PeriphCLKConfig
<LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
<LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_WaitFlagStateUntilTimeout
<LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_WaitFifoStateUntilTimeout
<LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
@@ -752,9 +751,9 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[b1]"></a>__1printf$bare</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, printfb.o(i.__0printf$bare), UNUSED)
<P><STRONG><a name="[b3]"></a>__1printf$bare</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, printfb.o(i.__0printf$bare), UNUSED)
<P><STRONG><a name="[91]"></a>__2printf</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, printfb.o(i.__0printf$bare))
<P><STRONG><a name="[92]"></a>__2printf</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, printfb.o(i.__0printf$bare))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __2printf
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
@@ -763,14 +762,15 @@ Global Symbols
<P><STRONG><a name="[89]"></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="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;keyboard_reply
<BR>[Called By]<UL><LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;keyboard_reply
</UL>
<P><STRONG><a name="[b2]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[b4]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[b3]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[b5]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[b4]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[b6]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[54]"></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="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
@@ -781,10 +781,10 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;micros
</UL>
<BR>[Called By]<UL><LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<BR>[Called By]<UL><LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
</UL>
<P><STRONG><a name="[86]"></a>delay_us_init</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, delay_us.o(i.delay_us_init))
@@ -802,11 +802,12 @@ Global Symbols
</UL>
<BR>[Address Reference Count : 1]<UL><LI> printfb.o(i.__0printf$bare)
</UL>
<P><STRONG><a name="[88]"></a>keyboard_reply</STRONG> (Thumb, 138 bytes, Stack size 16 bytes, ps2kb.o(i.keyboard_reply))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = keyboard_reply &rArr; ps2kb_write &rArr; ps2kb_get_bus_status
<P><STRONG><a name="[88]"></a>keyboard_reply</STRONG> (Thumb, 174 bytes, Stack size 16 bytes, ps2kb.o(i.keyboard_reply))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = keyboard_reply &rArr; ps2kb_write &rArr; ps2kb_get_bus_status
</UL>
<BR>[Calls]<UL><LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_reset
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
@@ -824,34 +825,34 @@ Global Symbols
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_SPI1_Init
<LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_I2C2_Init
<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_release_lines
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_init
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_release_lines
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_init
<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_release_lines
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
<LI><a href="#[9b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_press_key
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_init
<LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_get_bus_status
<LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_release_lines
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
<LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_press_key
<LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_init
<LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_get_bus_status
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;keyboard_reply
<LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_init
<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_get
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_init
<LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_get
<LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_init
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_get
<LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_init
<LI><a href="#[9b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_get
<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_init
<LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
<LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
<LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
</UL>
<P><STRONG><a name="[9d]"></a>malloc</STRONG> (Thumb, 92 bytes, Stack size 20 bytes, malloc.o(i.malloc))
<P><STRONG><a name="[9e]"></a>malloc</STRONG> (Thumb, 92 bytes, Stack size 20 bytes, malloc.o(i.malloc))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = malloc
</UL>
<BR>[Called By]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_init
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_init
<BR>[Called By]<UL><LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_init
<LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_init
</UL>
<P><STRONG><a name="[85]"></a>micros</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, delay_us.o(i.micros))
@@ -861,13 +862,13 @@ Global Symbols
<P><STRONG><a name="[53]"></a>ps2kb_buf_add</STRONG> (Thumb, 48 bytes, Stack size 16 bytes, helpers.o(i.ps2kb_buf_add))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = ps2kb_buf_add &rArr; ps2kb_buf_is_full &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_is_full
<BR>[Calls]<UL><LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_is_full
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
</UL>
<P><STRONG><a name="[9a]"></a>ps2kb_buf_get</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, helpers.o(i.ps2kb_buf_get))
<P><STRONG><a name="[9b]"></a>ps2kb_buf_get</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, helpers.o(i.ps2kb_buf_get))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = ps2kb_buf_get &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
@@ -875,16 +876,16 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[8e]"></a>ps2kb_buf_init</STRONG> (Thumb, 32 bytes, Stack size 16 bytes, helpers.o(i.ps2kb_buf_init))
<P><STRONG><a name="[8f]"></a>ps2kb_buf_init</STRONG> (Thumb, 32 bytes, Stack size 16 bytes, helpers.o(i.ps2kb_buf_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = ps2kb_buf_init &rArr; malloc
</UL>
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_reset
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc
<BR>[Calls]<UL><LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_reset
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[9c]"></a>ps2kb_buf_is_full</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.ps2kb_buf_is_full))
<P><STRONG><a name="[9d]"></a>ps2kb_buf_is_full</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.ps2kb_buf_is_full))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = ps2kb_buf_is_full &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
@@ -892,84 +893,91 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_add
</UL>
<P><STRONG><a name="[9e]"></a>ps2kb_buf_reset</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.ps2kb_buf_reset))
<P><STRONG><a name="[9f]"></a>ps2kb_buf_reset</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.ps2kb_buf_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = ps2kb_buf_reset
</UL>
<BR>[Calls]<UL><LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_init
<BR>[Called By]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_init
</UL>
<P><STRONG><a name="[98]"></a>ps2kb_get_bus_status</STRONG> (Thumb, 92 bytes, Stack size 8 bytes, ps2kb.o(i.ps2kb_get_bus_status))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = ps2kb_get_bus_status
<P><STRONG><a name="[99]"></a>ps2kb_get_bus_status</STRONG> (Thumb, 62 bytes, Stack size 16 bytes, ps2kb.o(i.ps2kb_get_bus_status))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = ps2kb_get_bus_status
</UL>
<BR>[Calls]<UL><LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<BR>[Calls]<UL><LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
</UL>
<P><STRONG><a name="[8c]"></a>ps2kb_init</STRONG> (Thumb, 30 bytes, Stack size 8 bytes, ps2kb.o(i.ps2kb_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = ps2kb_init
<P><STRONG><a name="[8d]"></a>ps2kb_init</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, ps2kb.o(i.ps2kb_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = ps2kb_init &rArr; ps2kb_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<BR>[Calls]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_reset
<LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_release_lines
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[9b]"></a>ps2kb_press_key</STRONG> (Thumb, 296 bytes, Stack size 8 bytes, ps2kb.o(i.ps2kb_press_key))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = ps2kb_press_key &rArr; ps2kb_write &rArr; ps2kb_get_bus_status
<P><STRONG><a name="[9c]"></a>ps2kb_press_key</STRONG> (Thumb, 314 bytes, Stack size 8 bytes, ps2kb.o(i.ps2kb_press_key))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = ps2kb_press_key &rArr; ps2kb_write &rArr; ps2kb_get_bus_status
</UL>
<BR>[Calls]<UL><LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[8b]"></a>ps2kb_read</STRONG> (Thumb, 246 bytes, Stack size 32 bytes, ps2kb.o(i.ps2kb_read))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = ps2kb_read &rArr; ps2kb_get_bus_status
<P><STRONG><a name="[8c]"></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>
<BR>[Calls]<UL><LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_get_bus_status
<LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_get_bus_status
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;keyboard_reply
</UL>
<P><STRONG><a name="[99]"></a>ps2kb_release_lines</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, ps2kb.o(i.ps2kb_release_lines))
<P><STRONG><a name="[9a]"></a>ps2kb_release_lines</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, ps2kb.o(i.ps2kb_release_lines))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = ps2kb_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_init
</UL>
<P><STRONG><a name="[8b]"></a>ps2kb_reset</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, ps2kb.o(i.ps2kb_reset))
<BR><BR>[Called By]<UL><LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_init
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;keyboard_reply
</UL>
<P><STRONG><a name="[8a]"></a>ps2kb_write</STRONG> (Thumb, 292 bytes, Stack size 32 bytes, ps2kb.o(i.ps2kb_write))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = ps2kb_write &rArr; ps2kb_get_bus_status
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = ps2kb_write &rArr; ps2kb_get_bus_status
</UL>
<BR>[Calls]<UL><LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_get_bus_status
<LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_get_bus_status
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
</UL>
<BR>[Called By]<UL><LI><a href="#[9b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_press_key
<BR>[Called By]<UL><LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_press_key
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;keyboard_reply
</UL>
<P><STRONG><a name="[55]"></a>ps2mouse_buf_add</STRONG> (Thumb, 50 bytes, Stack size 16 bytes, helpers.o(i.ps2mouse_buf_add))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = ps2mouse_buf_add &rArr; ps2mouse_buf_is_full &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_is_full
<LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<BR>[Calls]<UL><LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_is_full
<LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
</UL>
<P><STRONG><a name="[96]"></a>ps2mouse_buf_get</STRONG> (Thumb, 40 bytes, Stack size 16 bytes, helpers.o(i.ps2mouse_buf_get))
<P><STRONG><a name="[97]"></a>ps2mouse_buf_get</STRONG> (Thumb, 40 bytes, Stack size 16 bytes, helpers.o(i.ps2mouse_buf_get))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = ps2mouse_buf_get &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
@@ -977,16 +985,16 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[8f]"></a>ps2mouse_buf_init</STRONG> (Thumb, 24 bytes, Stack size 8 bytes, helpers.o(i.ps2mouse_buf_init))
<P><STRONG><a name="[90]"></a>ps2mouse_buf_init</STRONG> (Thumb, 24 bytes, Stack size 8 bytes, helpers.o(i.ps2mouse_buf_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = ps2mouse_buf_init &rArr; malloc
</UL>
<BR>[Calls]<UL><LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_reset
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc
<BR>[Calls]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_reset
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[a0]"></a>ps2mouse_buf_is_full</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.ps2mouse_buf_is_full))
<P><STRONG><a name="[a1]"></a>ps2mouse_buf_is_full</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.ps2mouse_buf_is_full))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = ps2mouse_buf_is_full &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
@@ -994,90 +1002,101 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_add
</UL>
<P><STRONG><a name="[a2]"></a>ps2mouse_buf_reset</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, helpers.o(i.ps2mouse_buf_reset))
<P><STRONG><a name="[a3]"></a>ps2mouse_buf_reset</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, helpers.o(i.ps2mouse_buf_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = ps2mouse_buf_reset
</UL>
<BR>[Calls]<UL><LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_init
<BR>[Called By]<UL><LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_init
</UL>
<P><STRONG><a name="[92]"></a>ps2mouse_get_bus_status</STRONG> (Thumb, 92 bytes, Stack size 8 bytes, ps2mouse.o(i.ps2mouse_get_bus_status))
<P><STRONG><a name="[93]"></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="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<BR>[Calls]<UL><LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
</UL>
<P><STRONG><a name="[95]"></a>ps2mouse_host_req_reply</STRONG> (Thumb, 298 bytes, Stack size 24 bytes, ps2mouse.o(i.ps2mouse_host_req_reply))
<P><STRONG><a name="[96]"></a>ps2mouse_host_req_reply</STRONG> (Thumb, 252 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 &rArr; ps2mouse_get_bus_status
</UL>
<BR>[Calls]<UL><LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_reset
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<BR>[Calls]<UL><LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_restore_defaults
<LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_reset
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[8d]"></a>ps2mouse_init</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, ps2mouse.o(i.ps2mouse_init))
<P><STRONG><a name="[8e]"></a>ps2mouse_init</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, ps2mouse.o(i.ps2mouse_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = ps2mouse_init &rArr; ps2mouse_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_reset
<LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_release_lines
<BR>[Calls]<UL><LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_reset
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_release_lines
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[94]"></a>ps2mouse_read</STRONG> (Thumb, 246 bytes, Stack size 32 bytes, ps2mouse.o(i.ps2mouse_read))
<P><STRONG><a name="[95]"></a>ps2mouse_read</STRONG> (Thumb, 246 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="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<BR>[Calls]<UL><LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
</UL>
<P><STRONG><a name="[93]"></a>ps2mouse_release_lines</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, ps2mouse.o(i.ps2mouse_release_lines))
<P><STRONG><a name="[94]"></a>ps2mouse_release_lines</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, ps2mouse.o(i.ps2mouse_release_lines))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = ps2mouse_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_init
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_init
</UL>
<P><STRONG><a name="[a3]"></a>ps2mouse_reset</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, ps2mouse.o(i.ps2mouse_reset))
<BR><BR>[Called By]<UL><LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_init
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<P><STRONG><a name="[a4]"></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="#[a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_restore_defaults
</UL>
<BR>[Called By]<UL><LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_init
<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
</UL>
<P><STRONG><a name="[97]"></a>ps2mouse_send_update</STRONG> (Thumb, 160 bytes, Stack size 16 bytes, ps2mouse.o(i.ps2mouse_send_update))
<P><STRONG><a name="[a6]"></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="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_reset
<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
</UL>
<P><STRONG><a name="[98]"></a>ps2mouse_send_update</STRONG> (Thumb, 160 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_get_bus_status
</UL>
<BR>[Calls]<UL><LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<BR>[Calls]<UL><LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[a4]"></a>ps2mouse_write</STRONG> (Thumb, 292 bytes, Stack size 32 bytes, ps2mouse.o(i.ps2mouse_write))
<P><STRONG><a name="[a5]"></a>ps2mouse_write</STRONG> (Thumb, 292 bytes, Stack size 32 bytes, ps2mouse.o(i.ps2mouse_write))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = ps2mouse_write &rArr; ps2mouse_get_bus_status
</UL>
<BR>[Calls]<UL><LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<BR>[Calls]<UL><LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
</UL>
<BR>[Called By]<UL><LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<BR>[Called By]<UL><LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
</UL>
<P>
<H3>

View File

@@ -36,12 +36,16 @@ Section Cross References
helpers.o(i.ps2mouse_buf_reset) refers to memseta.o(.text) for __aeabi_memclr
ps2kb.o(i.keyboard_reply) refers to ps2kb.o(i.__ARM_common_switch8) for __ARM_common_switch8
ps2kb.o(i.keyboard_reply) refers to ps2kb.o(i.ps2kb_write) for ps2kb_write
ps2kb.o(i.keyboard_reply) refers to ps2kb.o(i.ps2kb_reset) for ps2kb_reset
ps2kb.o(i.keyboard_reply) refers to ps2kb.o(i.ps2kb_read) for ps2kb_read
ps2kb.o(i.keyboard_reply) refers to ps2kb.o(.data) for .data
ps2kb.o(i.ps2kb_get_bus_status) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_ReadPin) for HAL_GPIO_ReadPin
ps2kb.o(i.ps2kb_get_bus_status) refers to ps2kb.o(.data) for .data
ps2kb.o(i.ps2kb_init) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
ps2kb.o(i.ps2kb_init) refers to ps2kb.o(i.ps2kb_release_lines) for ps2kb_release_lines
ps2kb.o(i.ps2kb_init) refers to ps2kb.o(i.ps2kb_reset) for ps2kb_reset
ps2kb.o(i.ps2kb_init) refers to ps2kb.o(.data) for .data
ps2kb.o(i.ps2kb_press_key) refers to ps2kb.o(i.ps2kb_write) for ps2kb_write
ps2kb.o(i.ps2kb_press_key) refers to ps2kb.o(.data) for .data
ps2kb.o(i.ps2kb_press_key) refers to ps2kb.o(.constdata) for .constdata
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
@@ -51,6 +55,7 @@ Section Cross References
ps2kb.o(i.ps2kb_read) refers to ps2kb.o(.data) for .data
ps2kb.o(i.ps2kb_release_lines) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
ps2kb.o(i.ps2kb_release_lines) refers to ps2kb.o(.data) for .data
ps2kb.o(i.ps2kb_reset) refers to ps2kb.o(.data) for .data
ps2kb.o(i.ps2kb_write) refers to stm32f0xx_hal.o(i.HAL_GetTick) for HAL_GetTick
ps2kb.o(i.ps2kb_write) refers to ps2kb.o(i.ps2kb_get_bus_status) for ps2kb_get_bus_status
ps2kb.o(i.ps2kb_write) refers to delay_us.o(i.delay_us) for delay_us
@@ -58,8 +63,10 @@ Section Cross References
ps2kb.o(i.ps2kb_write) refers to ps2kb.o(.data) for .data
ps2mouse.o(i.ps2mouse_get_bus_status) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_ReadPin) for HAL_GPIO_ReadPin
ps2mouse.o(i.ps2mouse_get_bus_status) refers to ps2mouse.o(.data) for .data
ps2mouse.o(i.ps2mouse_host_req_reply) refers to ps2kb.o(i.__ARM_common_switch8) for __ARM_common_switch8
ps2mouse.o(i.ps2mouse_host_req_reply) refers to ps2mouse.o(i.ps2mouse_reset) for ps2mouse_reset
ps2mouse.o(i.ps2mouse_host_req_reply) refers to ps2mouse.o(i.ps2mouse_write) for ps2mouse_write
ps2mouse.o(i.ps2mouse_host_req_reply) refers to ps2mouse.o(i.ps2mouse_restore_defaults) for ps2mouse_restore_defaults
ps2mouse.o(i.ps2mouse_host_req_reply) refers to ps2mouse.o(i.ps2mouse_read) for ps2mouse_read
ps2mouse.o(i.ps2mouse_host_req_reply) refers to ps2mouse.o(.data) for .data
ps2mouse.o(i.ps2mouse_init) refers to ps2mouse.o(i.ps2mouse_reset) for ps2mouse_reset
@@ -73,7 +80,9 @@ Section Cross References
ps2mouse.o(i.ps2mouse_read) refers to ps2mouse.o(.data) for .data
ps2mouse.o(i.ps2mouse_release_lines) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
ps2mouse.o(i.ps2mouse_release_lines) refers to ps2mouse.o(.data) for .data
ps2mouse.o(i.ps2mouse_reset) refers to ps2mouse.o(i.ps2mouse_restore_defaults) for ps2mouse_restore_defaults
ps2mouse.o(i.ps2mouse_reset) refers to ps2mouse.o(.data) for .data
ps2mouse.o(i.ps2mouse_restore_defaults) refers to ps2mouse.o(.data) for .data
ps2mouse.o(i.ps2mouse_send_update) refers to ps2mouse.o(i.ps2mouse_get_bus_status) for ps2mouse_get_bus_status
ps2mouse.o(i.ps2mouse_send_update) refers to ps2mouse.o(i.ps2mouse_write) for ps2mouse_write
ps2mouse.o(i.ps2mouse_send_update) refers to ps2mouse.o(.data) for .data
@@ -1105,6 +1114,7 @@ Removing Unused input sections from the image.
Removing helpers.o(i.ps2mouse_buf_is_empty), (16 bytes).
Removing ps2kb.o(.rev16_text), (4 bytes).
Removing ps2kb.o(.revsh_text), (4 bytes).
Removing ps2kb.o(i.ps2kb_change_scancode_set), (2 bytes).
Removing ps2mouse.o(.rev16_text), (4 bytes).
Removing ps2mouse.o(.revsh_text), (4 bytes).
Removing main.o(.rev16_text), (4 bytes).
@@ -1571,7 +1581,7 @@ Removing Unused input sections from the image.
Removing depilogue.o(.text), (190 bytes).
Removing depilogue.o(i.__ARM_clz), (46 bytes).
473 unused section(s) (total 34270 bytes) removed from the image.
474 unused section(s) (total 34272 bytes) removed from the image.
==============================================================================
@@ -1603,39 +1613,39 @@ 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 uidiv.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.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 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.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 printfa.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 printf4.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 printf3.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 printf0.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 printf3.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.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 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/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE
@@ -1818,48 +1828,50 @@ Image Symbol Table
i.delay_us_init 0x080021c4 Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x080021d4 Section 0 main.o(i.fputc)
i.keyboard_reply 0x080021ec Section 0 ps2kb.o(i.keyboard_reply)
i.main 0x08002278 Section 0 main.o(i.main)
i.malloc 0x080023c0 Section 0 malloc.o(i.malloc)
i.micros 0x0800242c Section 0 delay_us.o(i.micros)
i.ps2kb_buf_add 0x0800243c Section 0 helpers.o(i.ps2kb_buf_add)
i.ps2kb_buf_get 0x0800246c Section 0 helpers.o(i.ps2kb_buf_get)
i.ps2kb_buf_init 0x0800249a Section 0 helpers.o(i.ps2kb_buf_init)
i.ps2kb_buf_is_full 0x080024ba Section 0 helpers.o(i.ps2kb_buf_is_full)
i.ps2kb_buf_reset 0x080024d6 Section 0 helpers.o(i.ps2kb_buf_reset)
i.ps2kb_get_bus_status 0x080024f4 Section 0 ps2kb.o(i.ps2kb_get_bus_status)
i.ps2kb_init 0x08002554 Section 0 ps2kb.o(i.ps2kb_init)
i.ps2kb_press_key 0x08002578 Section 0 ps2kb.o(i.ps2kb_press_key)
i.ps2kb_read 0x080026a4 Section 0 ps2kb.o(i.ps2kb_read)
i.ps2kb_release_lines 0x080027a0 Section 0 ps2kb.o(i.ps2kb_release_lines)
i.ps2kb_write 0x080027c0 Section 0 ps2kb.o(i.ps2kb_write)
i.ps2mouse_buf_add 0x080028e8 Section 0 helpers.o(i.ps2mouse_buf_add)
i.ps2mouse_buf_get 0x0800291a Section 0 helpers.o(i.ps2mouse_buf_get)
i.ps2mouse_buf_init 0x08002942 Section 0 helpers.o(i.ps2mouse_buf_init)
i.ps2mouse_buf_is_full 0x0800295a Section 0 helpers.o(i.ps2mouse_buf_is_full)
i.ps2mouse_buf_reset 0x08002976 Section 0 helpers.o(i.ps2mouse_buf_reset)
i.ps2mouse_get_bus_status 0x0800298c Section 0 ps2mouse.o(i.ps2mouse_get_bus_status)
i.ps2mouse_host_req_reply 0x080029ec Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
i.ps2mouse_init 0x08002b1c Section 0 ps2mouse.o(i.ps2mouse_init)
i.ps2mouse_read 0x08002b38 Section 0 ps2mouse.o(i.ps2mouse_read)
i.ps2mouse_release_lines 0x08002c34 Section 0 ps2mouse.o(i.ps2mouse_release_lines)
i.ps2mouse_reset 0x08002c54 Section 0 ps2mouse.o(i.ps2mouse_reset)
i.ps2mouse_send_update 0x08002c74 Section 0 ps2mouse.o(i.ps2mouse_send_update)
i.ps2mouse_write 0x08002d18 Section 0 ps2mouse.o(i.ps2mouse_write)
.constdata 0x08002e40 Section 121 ps2kb.o(.constdata)
.constdata 0x08002eb9 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08002ec9 Section 8 system_stm32f0xx.o(.constdata)
i.main 0x080022a0 Section 0 main.o(i.main)
i.malloc 0x080023e8 Section 0 malloc.o(i.malloc)
i.micros 0x08002454 Section 0 delay_us.o(i.micros)
i.ps2kb_buf_add 0x08002464 Section 0 helpers.o(i.ps2kb_buf_add)
i.ps2kb_buf_get 0x08002494 Section 0 helpers.o(i.ps2kb_buf_get)
i.ps2kb_buf_init 0x080024c2 Section 0 helpers.o(i.ps2kb_buf_init)
i.ps2kb_buf_is_full 0x080024e2 Section 0 helpers.o(i.ps2kb_buf_is_full)
i.ps2kb_buf_reset 0x080024fe Section 0 helpers.o(i.ps2kb_buf_reset)
i.ps2kb_get_bus_status 0x0800251c Section 0 ps2kb.o(i.ps2kb_get_bus_status)
i.ps2kb_init 0x08002560 Section 0 ps2kb.o(i.ps2kb_init)
i.ps2kb_press_key 0x0800257c Section 0 ps2kb.o(i.ps2kb_press_key)
i.ps2kb_read 0x080026c0 Section 0 ps2kb.o(i.ps2kb_read)
i.ps2kb_release_lines 0x080027bc Section 0 ps2kb.o(i.ps2kb_release_lines)
i.ps2kb_reset 0x080027dc Section 0 ps2kb.o(i.ps2kb_reset)
i.ps2kb_write 0x080027ec Section 0 ps2kb.o(i.ps2kb_write)
i.ps2mouse_buf_add 0x08002914 Section 0 helpers.o(i.ps2mouse_buf_add)
i.ps2mouse_buf_get 0x08002946 Section 0 helpers.o(i.ps2mouse_buf_get)
i.ps2mouse_buf_init 0x0800296e Section 0 helpers.o(i.ps2mouse_buf_init)
i.ps2mouse_buf_is_full 0x08002986 Section 0 helpers.o(i.ps2mouse_buf_is_full)
i.ps2mouse_buf_reset 0x080029a2 Section 0 helpers.o(i.ps2mouse_buf_reset)
i.ps2mouse_get_bus_status 0x080029b8 Section 0 ps2mouse.o(i.ps2mouse_get_bus_status)
i.ps2mouse_host_req_reply 0x08002a18 Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
i.ps2mouse_init 0x08002b18 Section 0 ps2mouse.o(i.ps2mouse_init)
i.ps2mouse_read 0x08002b34 Section 0 ps2mouse.o(i.ps2mouse_read)
i.ps2mouse_release_lines 0x08002c30 Section 0 ps2mouse.o(i.ps2mouse_release_lines)
i.ps2mouse_reset 0x08002c50 Section 0 ps2mouse.o(i.ps2mouse_reset)
i.ps2mouse_restore_defaults 0x08002c68 Section 0 ps2mouse.o(i.ps2mouse_restore_defaults)
i.ps2mouse_send_update 0x08002c84 Section 0 ps2mouse.o(i.ps2mouse_send_update)
i.ps2mouse_write 0x08002d28 Section 0 ps2mouse.o(i.ps2mouse_write)
.constdata 0x08002e50 Section 121 ps2kb.o(.constdata)
.constdata 0x08002ec9 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08002ed9 Section 8 system_stm32f0xx.o(.constdata)
.data 0x20000000 Section 4 delay_us.o(.data)
.data 0x20000004 Section 16 ps2kb.o(.data)
.data 0x20000014 Section 36 ps2mouse.o(.data)
.data 0x20000038 Section 16 main.o(.data)
.data 0x20000048 Section 4 stm32f0xx_hal.o(.data)
.data 0x2000004c Section 4 system_stm32f0xx.o(.data)
.data 0x20000050 Section 4 stdout.o(.data)
.data 0x20000054 Section 4 mvars.o(.data)
.data 0x20000004 Section 20 ps2kb.o(.data)
.data 0x20000018 Section 36 ps2mouse.o(.data)
.data 0x2000003c Section 16 main.o(.data)
.data 0x2000004c Section 4 stm32f0xx_hal.o(.data)
.data 0x20000050 Section 4 system_stm32f0xx.o(.data)
.data 0x20000054 Section 4 stdout.o(.data)
.data 0x20000058 Section 4 mvars.o(.data)
.bss 0x2000005c Section 572 main.o(.bss)
HEAP 0x20000298 Section 512 startup_stm32f072xb.o(HEAP)
STACK 0x20000498 Section 1024 startup_stm32f072xb.o(STACK)
.data 0x2000005c Section 4 mvars.o(.data)
.bss 0x20000060 Section 572 main.o(.bss)
HEAP 0x200002a0 Section 512 startup_stm32f072xb.o(HEAP)
STACK 0x200004a0 Section 1024 startup_stm32f072xb.o(STACK)
Global Symbols
@@ -2006,84 +2018,89 @@ Image Symbol Table
delay_us 0x080021af Thumb Code 20 delay_us.o(i.delay_us)
delay_us_init 0x080021c5 Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x080021d5 Thumb Code 18 main.o(i.fputc)
keyboard_reply 0x080021ed Thumb Code 138 ps2kb.o(i.keyboard_reply)
main 0x08002279 Thumb Code 292 main.o(i.main)
malloc 0x080023c1 Thumb Code 92 malloc.o(i.malloc)
micros 0x0800242d Thumb Code 10 delay_us.o(i.micros)
ps2kb_buf_add 0x0800243d Thumb Code 48 helpers.o(i.ps2kb_buf_add)
ps2kb_buf_get 0x0800246d Thumb Code 46 helpers.o(i.ps2kb_buf_get)
ps2kb_buf_init 0x0800249b Thumb Code 32 helpers.o(i.ps2kb_buf_init)
ps2kb_buf_is_full 0x080024bb Thumb Code 28 helpers.o(i.ps2kb_buf_is_full)
ps2kb_buf_reset 0x080024d7 Thumb Code 28 helpers.o(i.ps2kb_buf_reset)
ps2kb_get_bus_status 0x080024f5 Thumb Code 92 ps2kb.o(i.ps2kb_get_bus_status)
ps2kb_init 0x08002555 Thumb Code 30 ps2kb.o(i.ps2kb_init)
ps2kb_press_key 0x08002579 Thumb Code 296 ps2kb.o(i.ps2kb_press_key)
ps2kb_read 0x080026a5 Thumb Code 246 ps2kb.o(i.ps2kb_read)
ps2kb_release_lines 0x080027a1 Thumb Code 26 ps2kb.o(i.ps2kb_release_lines)
ps2kb_write 0x080027c1 Thumb Code 292 ps2kb.o(i.ps2kb_write)
ps2mouse_buf_add 0x080028e9 Thumb Code 50 helpers.o(i.ps2mouse_buf_add)
ps2mouse_buf_get 0x0800291b Thumb Code 40 helpers.o(i.ps2mouse_buf_get)
ps2mouse_buf_init 0x08002943 Thumb Code 24 helpers.o(i.ps2mouse_buf_init)
ps2mouse_buf_is_full 0x0800295b Thumb Code 28 helpers.o(i.ps2mouse_buf_is_full)
ps2mouse_buf_reset 0x08002977 Thumb Code 22 helpers.o(i.ps2mouse_buf_reset)
ps2mouse_get_bus_status 0x0800298d Thumb Code 92 ps2mouse.o(i.ps2mouse_get_bus_status)
ps2mouse_host_req_reply 0x080029ed Thumb Code 298 ps2mouse.o(i.ps2mouse_host_req_reply)
ps2mouse_init 0x08002b1d Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
ps2mouse_read 0x08002b39 Thumb Code 246 ps2mouse.o(i.ps2mouse_read)
ps2mouse_release_lines 0x08002c35 Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
ps2mouse_reset 0x08002c55 Thumb Code 28 ps2mouse.o(i.ps2mouse_reset)
ps2mouse_send_update 0x08002c75 Thumb Code 160 ps2mouse.o(i.ps2mouse_send_update)
ps2mouse_write 0x08002d19 Thumb Code 292 ps2mouse.o(i.ps2mouse_write)
linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x08002e40 Data 89 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x08002e99 Data 32 ps2kb.o(.constdata)
AHBPrescTable 0x08002eb9 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08002ec9 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08002ed4 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08002ef4 Number 0 anon$$obj.o(Region$$Table)
keyboard_reply 0x080021ed Thumb Code 174 ps2kb.o(i.keyboard_reply)
main 0x080022a1 Thumb Code 292 main.o(i.main)
malloc 0x080023e9 Thumb Code 92 malloc.o(i.malloc)
micros 0x08002455 Thumb Code 10 delay_us.o(i.micros)
ps2kb_buf_add 0x08002465 Thumb Code 48 helpers.o(i.ps2kb_buf_add)
ps2kb_buf_get 0x08002495 Thumb Code 46 helpers.o(i.ps2kb_buf_get)
ps2kb_buf_init 0x080024c3 Thumb Code 32 helpers.o(i.ps2kb_buf_init)
ps2kb_buf_is_full 0x080024e3 Thumb Code 28 helpers.o(i.ps2kb_buf_is_full)
ps2kb_buf_reset 0x080024ff Thumb Code 28 helpers.o(i.ps2kb_buf_reset)
ps2kb_get_bus_status 0x0800251d Thumb Code 62 ps2kb.o(i.ps2kb_get_bus_status)
ps2kb_init 0x08002561 Thumb Code 22 ps2kb.o(i.ps2kb_init)
ps2kb_press_key 0x0800257d Thumb Code 314 ps2kb.o(i.ps2kb_press_key)
ps2kb_read 0x080026c1 Thumb Code 246 ps2kb.o(i.ps2kb_read)
ps2kb_release_lines 0x080027bd Thumb Code 26 ps2kb.o(i.ps2kb_release_lines)
ps2kb_reset 0x080027dd Thumb Code 12 ps2kb.o(i.ps2kb_reset)
ps2kb_write 0x080027ed Thumb Code 292 ps2kb.o(i.ps2kb_write)
ps2mouse_buf_add 0x08002915 Thumb Code 50 helpers.o(i.ps2mouse_buf_add)
ps2mouse_buf_get 0x08002947 Thumb Code 40 helpers.o(i.ps2mouse_buf_get)
ps2mouse_buf_init 0x0800296f Thumb Code 24 helpers.o(i.ps2mouse_buf_init)
ps2mouse_buf_is_full 0x08002987 Thumb Code 28 helpers.o(i.ps2mouse_buf_is_full)
ps2mouse_buf_reset 0x080029a3 Thumb Code 22 helpers.o(i.ps2mouse_buf_reset)
ps2mouse_get_bus_status 0x080029b9 Thumb Code 92 ps2mouse.o(i.ps2mouse_get_bus_status)
ps2mouse_host_req_reply 0x08002a19 Thumb Code 252 ps2mouse.o(i.ps2mouse_host_req_reply)
ps2mouse_init 0x08002b19 Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
ps2mouse_read 0x08002b35 Thumb Code 246 ps2mouse.o(i.ps2mouse_read)
ps2mouse_release_lines 0x08002c31 Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
ps2mouse_reset 0x08002c51 Thumb Code 20 ps2mouse.o(i.ps2mouse_reset)
ps2mouse_restore_defaults 0x08002c69 Thumb Code 22 ps2mouse.o(i.ps2mouse_restore_defaults)
ps2mouse_send_update 0x08002c85 Thumb Code 160 ps2mouse.o(i.ps2mouse_send_update)
ps2mouse_write 0x08002d29 Thumb Code 292 ps2mouse.o(i.ps2mouse_write)
linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x08002e50 Data 89 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x08002ea9 Data 32 ps2kb.o(.constdata)
AHBPrescTable 0x08002ec9 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08002ed9 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08002ee4 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08002f04 Number 0 anon$$obj.o(Region$$Table)
us_timer 0x20000000 Data 4 delay_us.o(.data)
ps2kb_clk_pin 0x20000004 Data 2 ps2kb.o(.data)
ps2kb_data_pin 0x20000006 Data 2 ps2kb.o(.data)
ps2kb_clk_port 0x20000008 Data 4 ps2kb.o(.data)
ps2kb_data_port 0x2000000c Data 4 ps2kb.o(.data)
ps2kb_wait_start 0x20000010 Data 4 ps2kb.o(.data)
ps2mouse_data_reporting_enabled 0x20000014 Data 1 ps2mouse.o(.data)
ps2mouse_sampling_rate 0x20000015 Data 1 ps2mouse.o(.data)
ps2mouse_resolution 0x20000016 Data 1 ps2mouse.o(.data)
ps2mouse_scale 0x20000017 Data 1 ps2mouse.o(.data)
sample_rate_history_index 0x20000018 Data 1 ps2mouse.o(.data)
mouse_device_id 0x20000019 Data 1 ps2mouse.o(.data)
ps2mouse_clk_pin 0x2000001a Data 2 ps2mouse.o(.data)
ps2mouse_data_pin 0x2000001c Data 2 ps2mouse.o(.data)
ps2mouse_clk_port 0x20000020 Data 4 ps2mouse.o(.data)
ps2mouse_data_port 0x20000024 Data 4 ps2mouse.o(.data)
ps2mouse_wait_start 0x20000028 Data 4 ps2mouse.o(.data)
ps2mouse_out_buf 0x2000002c Data 4 ps2mouse.o(.data)
sample_rate_history 0x20000030 Data 8 ps2mouse.o(.data)
ps2kb_host_cmd 0x20000038 Data 1 main.o(.data)
ps2kb_leds 0x20000039 Data 1 main.o(.data)
ps2mouse_host_cmd 0x2000003a Data 1 main.o(.data)
buffered_code 0x2000003b Data 1 main.o(.data)
buffered_value 0x2000003c Data 1 main.o(.data)
ps2mouse_bus_status 0x2000003d Data 1 main.o(.data)
ps2kb_bus_status 0x2000003e Data 1 main.o(.data)
my_ps2mouse_buf 0x20000040 Data 8 main.o(.data)
uwTick 0x20000048 Data 4 stm32f0xx_hal.o(.data)
SystemCoreClock 0x2000004c Data 4 system_stm32f0xx.o(.data)
__stdout 0x20000050 Data 4 stdout.o(.data)
__microlib_freelist 0x20000054 Data 4 mvars.o(.data)
__microlib_freelist_initialised 0x20000058 Data 4 mvars.o(.data)
hi2c2 0x2000005c Data 76 main.o(.bss)
hspi1 0x200000a8 Data 100 main.o(.bss)
htim2 0x2000010c Data 64 main.o(.bss)
huart1 0x2000014c Data 112 main.o(.bss)
huart3 0x200001bc Data 112 main.o(.bss)
spi_transmit_buf 0x2000022c Data 32 main.o(.bss)
backup_spi1_recv_buf 0x2000024c Data 32 main.o(.bss)
spi_recv_buf 0x2000026c Data 32 main.o(.bss)
my_ps2kb_buf 0x2000028c Data 12 main.o(.bss)
__heap_base 0x20000298 Data 0 startup_stm32f072xb.o(HEAP)
__heap_limit 0x20000498 Data 0 startup_stm32f072xb.o(HEAP)
__initial_sp 0x20000898 Data 0 startup_stm32f072xb.o(STACK)
ps2kb_current_scancode_set 0x20000004 Data 1 ps2kb.o(.data)
ps2kb_data_reporting_enabled 0x20000005 Data 1 ps2kb.o(.data)
ps2kb_clk_pin 0x20000006 Data 2 ps2kb.o(.data)
ps2kb_data_pin 0x20000008 Data 2 ps2kb.o(.data)
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)
ps2mouse_wait_start 0x2000002c Data 4 ps2mouse.o(.data)
ps2mouse_out_buf 0x20000030 Data 4 ps2mouse.o(.data)
sample_rate_history 0x20000034 Data 8 ps2mouse.o(.data)
ps2kb_host_cmd 0x2000003c Data 1 main.o(.data)
ps2kb_leds 0x2000003d Data 1 main.o(.data)
ps2mouse_host_cmd 0x2000003e Data 1 main.o(.data)
buffered_code 0x2000003f Data 1 main.o(.data)
buffered_value 0x20000040 Data 1 main.o(.data)
ps2mouse_bus_status 0x20000041 Data 1 main.o(.data)
ps2kb_bus_status 0x20000042 Data 1 main.o(.data)
my_ps2mouse_buf 0x20000044 Data 8 main.o(.data)
uwTick 0x2000004c Data 4 stm32f0xx_hal.o(.data)
SystemCoreClock 0x20000050 Data 4 system_stm32f0xx.o(.data)
__stdout 0x20000054 Data 4 stdout.o(.data)
__microlib_freelist 0x20000058 Data 4 mvars.o(.data)
__microlib_freelist_initialised 0x2000005c Data 4 mvars.o(.data)
hi2c2 0x20000060 Data 76 main.o(.bss)
hspi1 0x200000ac Data 100 main.o(.bss)
htim2 0x20000110 Data 64 main.o(.bss)
huart1 0x20000150 Data 112 main.o(.bss)
huart3 0x200001c0 Data 112 main.o(.bss)
spi_transmit_buf 0x20000230 Data 32 main.o(.bss)
backup_spi1_recv_buf 0x20000250 Data 32 main.o(.bss)
spi_recv_buf 0x20000270 Data 32 main.o(.bss)
my_ps2kb_buf 0x20000290 Data 12 main.o(.bss)
__heap_base 0x200002a0 Data 0 startup_stm32f072xb.o(HEAP)
__heap_limit 0x200004a0 Data 0 startup_stm32f072xb.o(HEAP)
__initial_sp 0x200008a0 Data 0 startup_stm32f072xb.o(STACK)
@@ -2093,190 +2110,192 @@ Memory Map of the image
Image Entry point : 0x080000c1
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00002f50, Max: 0x00010000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00002f64, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00002ef4, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00002f04, 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 3626 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
0x080000c0 0x080000c0 0x00000004 Code RO 3927 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
0x080000c4 0x080000c4 0x00000004 Code RO 3930 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3932 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3934 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
0x080000c8 0x080000c8 0x00000008 Code RO 3935 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3937 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3939 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
0x080000d0 0x080000d0 0x00000004 Code RO 3928 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
0x080000c0 0x080000c0 0x00000000 Code RO 3640 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
0x080000c0 0x080000c0 0x00000004 Code RO 3941 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
0x080000c4 0x080000c4 0x00000004 Code RO 3944 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3946 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3948 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
0x080000c8 0x080000c8 0x00000008 Code RO 3949 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3951 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3953 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
0x080000d0 0x080000d0 0x00000004 Code RO 3942 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
0x080000d4 0x080000d4 0x0000001c Code RO 4 .text startup_stm32f072xb.o
0x080000f0 0x080000f0 0x0000002c Code RO 3629 .text mc_p.l(uidiv.o)
0x0800011c 0x0800011c 0x00000024 Code RO 3633 .text mc_p.l(memcpya.o)
0x08000140 0x08000140 0x00000024 Code RO 3635 .text mc_p.l(memseta.o)
0x08000164 0x08000164 0x00000024 Code RO 3957 .text mc_p.l(init.o)
0x08000188 0x08000188 0x00000048 Code RO 3073 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x080001d0 0x080001d0 0x0000001c Code RO 2876 i.HAL_Delay stm32f0xx_hal.o
0x080001ec 0x080001ec 0x00000158 Code RO 3011 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x08000344 0x08000344 0x0000000a Code RO 3013 i.HAL_GPIO_ReadPin stm32f0xx_hal_gpio.o
0x0800034e 0x0800034e 0x00000008 Code RO 3014 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o
0x08000356 0x08000356 0x0000000c Code RO 3015 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x080000f0 0x080000f0 0x0000002c Code RO 3643 .text mc_p.l(uidiv.o)
0x0800011c 0x0800011c 0x00000024 Code RO 3647 .text mc_p.l(memcpya.o)
0x08000140 0x08000140 0x00000024 Code RO 3649 .text mc_p.l(memseta.o)
0x08000164 0x08000164 0x00000024 Code RO 3971 .text mc_p.l(init.o)
0x08000188 0x08000188 0x00000048 Code RO 3087 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x080001d0 0x080001d0 0x0000001c Code RO 2890 i.HAL_Delay stm32f0xx_hal.o
0x080001ec 0x080001ec 0x00000158 Code RO 3025 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x08000344 0x08000344 0x0000000a Code RO 3027 i.HAL_GPIO_ReadPin stm32f0xx_hal_gpio.o
0x0800034e 0x0800034e 0x00000008 Code RO 3028 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o
0x08000356 0x08000356 0x0000000c Code RO 3029 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x08000362 0x08000362 0x00000002 PAD
0x08000364 0x08000364 0x0000000c Code RO 2880 i.HAL_GetTick stm32f0xx_hal.o
0x08000370 0x08000370 0x0000004a Code RO 1020 i.HAL_I2CEx_ConfigAnalogFilter stm32f0xx_hal_i2c_ex.o
0x080003ba 0x080003ba 0x00000048 Code RO 1021 i.HAL_I2CEx_ConfigDigitalFilter stm32f0xx_hal_i2c_ex.o
0x08000364 0x08000364 0x0000000c Code RO 2894 i.HAL_GetTick stm32f0xx_hal.o
0x08000370 0x08000370 0x0000004a Code RO 1034 i.HAL_I2CEx_ConfigAnalogFilter stm32f0xx_hal_i2c_ex.o
0x080003ba 0x080003ba 0x00000048 Code RO 1035 i.HAL_I2CEx_ConfigDigitalFilter stm32f0xx_hal_i2c_ex.o
0x08000402 0x08000402 0x00000002 PAD
0x08000404 0x08000404 0x000000b4 Code RO 607 i.HAL_I2C_Init stm32f0xx_hal_i2c.o
0x080004b8 0x080004b8 0x0000004c Code RO 529 i.HAL_I2C_MspInit stm32f0xx_hal_msp.o
0x08000504 0x08000504 0x00000010 Code RO 2884 i.HAL_IncTick stm32f0xx_hal.o
0x08000514 0x08000514 0x00000020 Code RO 2885 i.HAL_Init stm32f0xx_hal.o
0x08000534 0x08000534 0x00000022 Code RO 2886 i.HAL_InitTick stm32f0xx_hal.o
0x08000404 0x08000404 0x000000b4 Code RO 621 i.HAL_I2C_Init stm32f0xx_hal_i2c.o
0x080004b8 0x080004b8 0x0000004c Code RO 543 i.HAL_I2C_MspInit stm32f0xx_hal_msp.o
0x08000504 0x08000504 0x00000010 Code RO 2898 i.HAL_IncTick stm32f0xx_hal.o
0x08000514 0x08000514 0x00000020 Code RO 2899 i.HAL_Init stm32f0xx_hal.o
0x08000534 0x08000534 0x00000022 Code RO 2900 i.HAL_InitTick stm32f0xx_hal.o
0x08000556 0x08000556 0x00000002 PAD
0x08000558 0x08000558 0x00000044 Code RO 530 i.HAL_MspInit stm32f0xx_hal_msp.o
0x0800059c 0x0800059c 0x00000014 Code RO 3168 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x080005b0 0x080005b0 0x00000008 Code RO 3172 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x080005b8 0x080005b8 0x0000001c Code RO 3173 i.HAL_NVIC_SystemReset stm32f0xx_hal_cortex.o
0x080005d4 0x080005d4 0x00000120 Code RO 2796 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o
0x080006f4 0x080006f4 0x00000154 Code RO 2694 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x08000848 0x08000848 0x0000000c Code RO 2699 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000854 0x08000854 0x00000020 Code RO 2701 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x08000874 0x08000874 0x00000088 Code RO 2702 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x080008fc 0x080008fc 0x000003d8 Code RO 2705 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000cd4 0x08000cd4 0x00000002 Code RO 1077 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x08000558 0x08000558 0x00000044 Code RO 544 i.HAL_MspInit stm32f0xx_hal_msp.o
0x0800059c 0x0800059c 0x00000014 Code RO 3182 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x080005b0 0x080005b0 0x00000008 Code RO 3186 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x080005b8 0x080005b8 0x0000001c Code RO 3187 i.HAL_NVIC_SystemReset stm32f0xx_hal_cortex.o
0x080005d4 0x080005d4 0x00000120 Code RO 2810 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o
0x080006f4 0x080006f4 0x00000154 Code RO 2708 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x08000848 0x08000848 0x0000000c Code RO 2713 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000854 0x08000854 0x00000020 Code RO 2715 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x08000874 0x08000874 0x00000088 Code RO 2716 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x080008fc 0x080008fc 0x000003d8 Code RO 2719 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000cd4 0x08000cd4 0x00000002 Code RO 1091 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x08000cd6 0x08000cd6 0x00000002 PAD
0x08000cd8 0x08000cd8 0x000000d4 Code RO 1080 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x08000dac 0x08000dac 0x000000b8 Code RO 1081 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x08000e64 0x08000e64 0x00000054 Code RO 532 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x08000eb8 0x08000eb8 0x00000002 Code RO 1087 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x08000cd8 0x08000cd8 0x000000d4 Code RO 1094 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x08000dac 0x08000dac 0x000000b8 Code RO 1095 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x08000e64 0x08000e64 0x00000054 Code RO 546 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x08000eb8 0x08000eb8 0x00000002 Code RO 1101 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x08000eba 0x08000eba 0x00000002 PAD
0x08000ebc 0x08000ebc 0x000000d4 Code RO 1092 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x08000f90 0x08000f90 0x000000dc Code RO 378 i.HAL_SPI_TxRxCpltCallback main.o
0x0800106c 0x0800106c 0x00000018 Code RO 3174 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x08001084 0x08001084 0x00000002 Code RO 3175 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x08000ebc 0x08000ebc 0x000000d4 Code RO 1106 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x08000f90 0x08000f90 0x000000dc Code RO 392 i.HAL_SPI_TxRxCpltCallback main.o
0x0800106c 0x0800106c 0x00000018 Code RO 3188 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x08001084 0x08001084 0x00000002 Code RO 3189 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x08001086 0x08001086 0x00000002 PAD
0x08001088 0x08001088 0x00000030 Code RO 3176 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x080010b8 0x080010b8 0x00000008 Code RO 3177 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x080010c0 0x080010c0 0x00000048 Code RO 2069 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x08001108 0x08001108 0x00000034 Code RO 1415 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x0800113c 0x0800113c 0x00000024 Code RO 534 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08001160 0x08001160 0x00000018 Code RO 1418 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x08001178 0x08001178 0x000000ee Code RO 1424 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x08001266 0x08001266 0x00000002 Code RO 2638 i.HAL_UARTEx_WakeupCallback stm32f0xx_hal_uart_ex.o
0x08001268 0x08001268 0x00000002 Code RO 2313 i.HAL_UART_ErrorCallback stm32f0xx_hal_uart.o
0x08001088 0x08001088 0x00000030 Code RO 3190 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x080010b8 0x080010b8 0x00000008 Code RO 3191 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x080010c0 0x080010c0 0x00000048 Code RO 2083 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x08001108 0x08001108 0x00000034 Code RO 1429 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x0800113c 0x0800113c 0x00000024 Code RO 548 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08001160 0x08001160 0x00000018 Code RO 1432 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x08001178 0x08001178 0x000000ee Code RO 1438 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x08001266 0x08001266 0x00000002 Code RO 2652 i.HAL_UARTEx_WakeupCallback stm32f0xx_hal_uart_ex.o
0x08001268 0x08001268 0x00000002 Code RO 2327 i.HAL_UART_ErrorCallback stm32f0xx_hal_uart.o
0x0800126a 0x0800126a 0x00000002 PAD
0x0800126c 0x0800126c 0x00000134 Code RO 2316 i.HAL_UART_IRQHandler stm32f0xx_hal_uart.o
0x080013a0 0x080013a0 0x0000006c Code RO 2317 i.HAL_UART_Init stm32f0xx_hal_uart.o
0x0800140c 0x0800140c 0x00000090 Code RO 536 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x0800149c 0x0800149c 0x00000002 Code RO 2323 i.HAL_UART_RxCpltCallback stm32f0xx_hal_uart.o
0x0800149e 0x0800149e 0x000000c8 Code RO 2325 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x08001566 0x08001566 0x00000002 Code RO 2328 i.HAL_UART_TxCpltCallback stm32f0xx_hal_uart.o
0x08001568 0x08001568 0x00000002 Code RO 468 i.HardFault_Handler stm32f0xx_it.o
0x0800126c 0x0800126c 0x00000134 Code RO 2330 i.HAL_UART_IRQHandler stm32f0xx_hal_uart.o
0x080013a0 0x080013a0 0x0000006c Code RO 2331 i.HAL_UART_Init stm32f0xx_hal_uart.o
0x0800140c 0x0800140c 0x00000090 Code RO 550 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x0800149c 0x0800149c 0x00000002 Code RO 2337 i.HAL_UART_RxCpltCallback stm32f0xx_hal_uart.o
0x0800149e 0x0800149e 0x000000c8 Code RO 2339 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x08001566 0x08001566 0x00000002 Code RO 2342 i.HAL_UART_TxCpltCallback stm32f0xx_hal_uart.o
0x08001568 0x08001568 0x00000002 Code RO 482 i.HardFault_Handler stm32f0xx_it.o
0x0800156a 0x0800156a 0x00000002 PAD
0x0800156c 0x0800156c 0x0000011c Code RO 379 i.MX_GPIO_Init main.o
0x08001688 0x08001688 0x00000054 Code RO 380 i.MX_I2C2_Init main.o
0x080016dc 0x080016dc 0x0000003c Code RO 381 i.MX_SPI1_Init main.o
0x08001718 0x08001718 0x00000054 Code RO 382 i.MX_TIM2_Init main.o
0x0800176c 0x0800176c 0x00000038 Code RO 383 i.MX_USART1_UART_Init main.o
0x080017a4 0x080017a4 0x00000048 Code RO 384 i.MX_USART3_UART_Init main.o
0x080017ec 0x080017ec 0x00000002 Code RO 469 i.NMI_Handler stm32f0xx_it.o
0x0800156c 0x0800156c 0x0000011c Code RO 393 i.MX_GPIO_Init main.o
0x08001688 0x08001688 0x00000054 Code RO 394 i.MX_I2C2_Init main.o
0x080016dc 0x080016dc 0x0000003c Code RO 395 i.MX_SPI1_Init main.o
0x08001718 0x08001718 0x00000054 Code RO 396 i.MX_TIM2_Init main.o
0x0800176c 0x0800176c 0x00000038 Code RO 397 i.MX_USART1_UART_Init main.o
0x080017a4 0x080017a4 0x00000048 Code RO 398 i.MX_USART3_UART_Init main.o
0x080017ec 0x080017ec 0x00000002 Code RO 483 i.NMI_Handler stm32f0xx_it.o
0x080017ee 0x080017ee 0x00000002 PAD
0x080017f0 0x080017f0 0x00000044 Code RO 3178 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08001834 0x08001834 0x00000002 Code RO 470 i.PendSV_Handler stm32f0xx_it.o
0x080017f0 0x080017f0 0x00000044 Code RO 3192 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08001834 0x08001834 0x00000002 Code RO 484 i.PendSV_Handler stm32f0xx_it.o
0x08001836 0x08001836 0x00000002 PAD
0x08001838 0x08001838 0x00000010 Code RO 471 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001848 0x08001848 0x00000036 Code RO 1099 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x0800187e 0x0800187e 0x0000005e Code RO 1100 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x080018dc 0x080018dc 0x00000034 Code RO 1101 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x08001910 0x08001910 0x00000048 Code RO 1102 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x08001958 0x08001958 0x00000052 Code RO 1105 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x080019aa 0x080019aa 0x00000012 Code RO 1108 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x080019bc 0x080019bc 0x0000004c Code RO 1119 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x08001a08 0x08001a08 0x00000096 Code RO 1124 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x08001a9e 0x08001a9e 0x0000008c Code RO 1125 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x08001b2a 0x08001b2a 0x00000002 Code RO 472 i.SVC_Handler stm32f0xx_it.o
0x08001b2c 0x08001b2c 0x0000000c Code RO 473 i.SysTick_Handler stm32f0xx_it.o
0x08001b38 0x08001b38 0x0000006a Code RO 385 i.SystemClock_Config main.o
0x08001838 0x08001838 0x00000010 Code RO 485 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001848 0x08001848 0x00000036 Code RO 1113 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x0800187e 0x0800187e 0x0000005e Code RO 1114 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x080018dc 0x080018dc 0x00000034 Code RO 1115 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x08001910 0x08001910 0x00000048 Code RO 1116 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x08001958 0x08001958 0x00000052 Code RO 1119 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x080019aa 0x080019aa 0x00000012 Code RO 1122 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x080019bc 0x080019bc 0x0000004c Code RO 1133 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x08001a08 0x08001a08 0x00000096 Code RO 1138 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x08001a9e 0x08001a9e 0x0000008c Code RO 1139 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x08001b2a 0x08001b2a 0x00000002 Code RO 486 i.SVC_Handler stm32f0xx_it.o
0x08001b2c 0x08001b2c 0x0000000c Code RO 487 i.SysTick_Handler stm32f0xx_it.o
0x08001b38 0x08001b38 0x0000006a Code RO 399 i.SystemClock_Config main.o
0x08001ba2 0x08001ba2 0x00000002 PAD
0x08001ba4 0x08001ba4 0x0000005c Code RO 3595 i.SystemInit system_stm32f0xx.o
0x08001c00 0x08001c00 0x00000094 Code RO 1501 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08001c94 0x08001c94 0x00000016 Code RO 1508 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x08001caa 0x08001caa 0x00000010 Code RO 1509 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x08001cba 0x08001cba 0x00000022 Code RO 1515 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x08001cdc 0x08001cdc 0x00000026 Code RO 1517 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x08001d02 0x08001d02 0x000000ca Code RO 2330 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08001dcc 0x08001dcc 0x00000074 Code RO 2331 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x08001e40 0x08001e40 0x00000014 Code RO 2332 i.UART_DMAAbortOnError stm32f0xx_hal_uart.o
0x08001e54 0x08001e54 0x0000001e Code RO 2342 i.UART_EndRxTransfer stm32f0xx_hal_uart.o
0x08001e72 0x08001e72 0x0000001a Code RO 2343 i.UART_EndTransmit_IT stm32f0xx_hal_uart.o
0x08001e8c 0x08001e8c 0x0000007a Code RO 2345 i.UART_Receive_IT stm32f0xx_hal_uart.o
0x08001ba4 0x08001ba4 0x0000005c Code RO 3609 i.SystemInit system_stm32f0xx.o
0x08001c00 0x08001c00 0x00000094 Code RO 1515 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08001c94 0x08001c94 0x00000016 Code RO 1522 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x08001caa 0x08001caa 0x00000010 Code RO 1523 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x08001cba 0x08001cba 0x00000022 Code RO 1529 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x08001cdc 0x08001cdc 0x00000026 Code RO 1531 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x08001d02 0x08001d02 0x000000ca Code RO 2344 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08001dcc 0x08001dcc 0x00000074 Code RO 2345 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x08001e40 0x08001e40 0x00000014 Code RO 2346 i.UART_DMAAbortOnError stm32f0xx_hal_uart.o
0x08001e54 0x08001e54 0x0000001e Code RO 2356 i.UART_EndRxTransfer stm32f0xx_hal_uart.o
0x08001e72 0x08001e72 0x0000001a Code RO 2357 i.UART_EndTransmit_IT stm32f0xx_hal_uart.o
0x08001e8c 0x08001e8c 0x0000007a Code RO 2359 i.UART_Receive_IT stm32f0xx_hal_uart.o
0x08001f06 0x08001f06 0x00000002 PAD
0x08001f08 0x08001f08 0x0000015c Code RO 2346 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08002064 0x08002064 0x00000066 Code RO 2347 i.UART_Transmit_IT stm32f0xx_hal_uart.o
0x080020ca 0x080020ca 0x00000062 Code RO 2348 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x0800212c 0x0800212c 0x00000010 Code RO 474 i.USART3_4_IRQHandler stm32f0xx_it.o
0x0800213c 0x0800213c 0x00000014 Code RO 3640 i.__0printf$bare mc_p.l(printfb.o)
0x08002150 0x08002150 0x0000001a Code RO 300 i.__ARM_common_switch8 ps2kb.o
0x0800216a 0x0800216a 0x0000000e Code RO 3969 i.__scatterload_copy mc_p.l(handlers.o)
0x08002178 0x08002178 0x00000002 Code RO 3970 i.__scatterload_null mc_p.l(handlers.o)
0x0800217a 0x0800217a 0x0000000e Code RO 3971 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08002188 0x08002188 0x0000001e Code RO 3647 i._printf_core mc_p.l(printfb.o)
0x080021a6 0x080021a6 0x00000008 Code RO 387 i.byte_to_int16_t main.o
0x08001f08 0x08001f08 0x0000015c Code RO 2360 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08002064 0x08002064 0x00000066 Code RO 2361 i.UART_Transmit_IT stm32f0xx_hal_uart.o
0x080020ca 0x080020ca 0x00000062 Code RO 2362 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x0800212c 0x0800212c 0x00000010 Code RO 488 i.USART3_4_IRQHandler stm32f0xx_it.o
0x0800213c 0x0800213c 0x00000014 Code RO 3654 i.__0printf$bare mc_p.l(printfb.o)
0x08002150 0x08002150 0x0000001a Code RO 309 i.__ARM_common_switch8 ps2kb.o
0x0800216a 0x0800216a 0x0000000e Code RO 3983 i.__scatterload_copy mc_p.l(handlers.o)
0x08002178 0x08002178 0x00000002 Code RO 3984 i.__scatterload_null mc_p.l(handlers.o)
0x0800217a 0x0800217a 0x0000000e Code RO 3985 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08002188 0x08002188 0x0000001e Code RO 3661 i._printf_core mc_p.l(printfb.o)
0x080021a6 0x080021a6 0x00000008 Code RO 401 i.byte_to_int16_t main.o
0x080021ae 0x080021ae 0x00000014 Code RO 12 i.delay_us delay_us.o
0x080021c2 0x080021c2 0x00000002 PAD
0x080021c4 0x080021c4 0x00000010 Code RO 13 i.delay_us_init delay_us.o
0x080021d4 0x080021d4 0x00000018 Code RO 388 i.fputc main.o
0x080021ec 0x080021ec 0x0000008a Code RO 245 i.keyboard_reply ps2kb.o
0x08002276 0x08002276 0x00000002 PAD
0x08002278 0x08002278 0x00000148 Code RO 389 i.main main.o
0x080023c0 0x080023c0 0x0000006c Code RO 3900 i.malloc mc_p.l(malloc.o)
0x0800242c 0x0800242c 0x00000010 Code RO 14 i.micros delay_us.o
0x0800243c 0x0800243c 0x00000030 Code RO 149 i.ps2kb_buf_add helpers.o
0x0800246c 0x0800246c 0x0000002e Code RO 150 i.ps2kb_buf_get helpers.o
0x0800249a 0x0800249a 0x00000020 Code RO 151 i.ps2kb_buf_init helpers.o
0x080024ba 0x080024ba 0x0000001c Code RO 153 i.ps2kb_buf_is_full helpers.o
0x080024d6 0x080024d6 0x0000001c Code RO 154 i.ps2kb_buf_reset helpers.o
0x080024f2 0x080024f2 0x00000002 PAD
0x080024f4 0x080024f4 0x00000060 Code RO 246 i.ps2kb_get_bus_status ps2kb.o
0x08002554 0x08002554 0x00000024 Code RO 247 i.ps2kb_init ps2kb.o
0x08002578 0x08002578 0x0000012c Code RO 248 i.ps2kb_press_key ps2kb.o
0x080026a4 0x080026a4 0x000000fc Code RO 249 i.ps2kb_read ps2kb.o
0x080027a0 0x080027a0 0x00000020 Code RO 250 i.ps2kb_release_lines ps2kb.o
0x080027c0 0x080027c0 0x00000128 Code RO 251 i.ps2kb_write ps2kb.o
0x080028e8 0x080028e8 0x00000032 Code RO 155 i.ps2mouse_buf_add helpers.o
0x0800291a 0x0800291a 0x00000028 Code RO 156 i.ps2mouse_buf_get helpers.o
0x08002942 0x08002942 0x00000018 Code RO 157 i.ps2mouse_buf_init helpers.o
0x0800295a 0x0800295a 0x0000001c Code RO 159 i.ps2mouse_buf_is_full helpers.o
0x08002976 0x08002976 0x00000016 Code RO 160 i.ps2mouse_buf_reset helpers.o
0x0800298c 0x0800298c 0x00000060 Code RO 310 i.ps2mouse_get_bus_status ps2mouse.o
0x080029ec 0x080029ec 0x00000130 Code RO 311 i.ps2mouse_host_req_reply ps2mouse.o
0x08002b1c 0x08002b1c 0x0000001c Code RO 312 i.ps2mouse_init ps2mouse.o
0x08002b38 0x08002b38 0x000000fc Code RO 313 i.ps2mouse_read ps2mouse.o
0x08002c34 0x08002c34 0x00000020 Code RO 314 i.ps2mouse_release_lines ps2mouse.o
0x08002c54 0x08002c54 0x00000020 Code RO 315 i.ps2mouse_reset ps2mouse.o
0x08002c74 0x08002c74 0x000000a4 Code RO 316 i.ps2mouse_send_update ps2mouse.o
0x08002d18 0x08002d18 0x00000128 Code RO 317 i.ps2mouse_write ps2mouse.o
0x08002e40 0x08002e40 0x00000079 Data RO 252 .constdata ps2kb.o
0x08002eb9 0x08002eb9 0x00000010 Data RO 3596 .constdata system_stm32f0xx.o
0x08002ec9 0x08002ec9 0x00000008 Data RO 3597 .constdata system_stm32f0xx.o
0x08002ed1 0x08002ed1 0x00000003 PAD
0x08002ed4 0x08002ed4 0x00000020 Data RO 3967 Region$$Table anon$$obj.o
0x080021d4 0x080021d4 0x00000018 Code RO 402 i.fputc main.o
0x080021ec 0x080021ec 0x000000b4 Code RO 245 i.keyboard_reply ps2kb.o
0x080022a0 0x080022a0 0x00000148 Code RO 403 i.main main.o
0x080023e8 0x080023e8 0x0000006c Code RO 3914 i.malloc mc_p.l(malloc.o)
0x08002454 0x08002454 0x00000010 Code RO 14 i.micros delay_us.o
0x08002464 0x08002464 0x00000030 Code RO 149 i.ps2kb_buf_add helpers.o
0x08002494 0x08002494 0x0000002e Code RO 150 i.ps2kb_buf_get helpers.o
0x080024c2 0x080024c2 0x00000020 Code RO 151 i.ps2kb_buf_init helpers.o
0x080024e2 0x080024e2 0x0000001c Code RO 153 i.ps2kb_buf_is_full helpers.o
0x080024fe 0x080024fe 0x0000001c Code RO 154 i.ps2kb_buf_reset helpers.o
0x0800251a 0x0800251a 0x00000002 PAD
0x0800251c 0x0800251c 0x00000044 Code RO 247 i.ps2kb_get_bus_status ps2kb.o
0x08002560 0x08002560 0x0000001c Code RO 248 i.ps2kb_init ps2kb.o
0x0800257c 0x0800257c 0x00000144 Code RO 249 i.ps2kb_press_key ps2kb.o
0x080026c0 0x080026c0 0x000000fc Code RO 250 i.ps2kb_read ps2kb.o
0x080027bc 0x080027bc 0x00000020 Code RO 251 i.ps2kb_release_lines ps2kb.o
0x080027dc 0x080027dc 0x00000010 Code RO 252 i.ps2kb_reset ps2kb.o
0x080027ec 0x080027ec 0x00000128 Code RO 253 i.ps2kb_write ps2kb.o
0x08002914 0x08002914 0x00000032 Code RO 155 i.ps2mouse_buf_add helpers.o
0x08002946 0x08002946 0x00000028 Code RO 156 i.ps2mouse_buf_get helpers.o
0x0800296e 0x0800296e 0x00000018 Code RO 157 i.ps2mouse_buf_init helpers.o
0x08002986 0x08002986 0x0000001c Code RO 159 i.ps2mouse_buf_is_full helpers.o
0x080029a2 0x080029a2 0x00000016 Code RO 160 i.ps2mouse_buf_reset helpers.o
0x080029b8 0x080029b8 0x00000060 Code RO 320 i.ps2mouse_get_bus_status ps2mouse.o
0x08002a18 0x08002a18 0x00000100 Code RO 321 i.ps2mouse_host_req_reply ps2mouse.o
0x08002b18 0x08002b18 0x0000001c Code RO 322 i.ps2mouse_init ps2mouse.o
0x08002b34 0x08002b34 0x000000fc Code RO 323 i.ps2mouse_read ps2mouse.o
0x08002c30 0x08002c30 0x00000020 Code RO 324 i.ps2mouse_release_lines ps2mouse.o
0x08002c50 0x08002c50 0x00000018 Code RO 325 i.ps2mouse_reset ps2mouse.o
0x08002c68 0x08002c68 0x0000001c Code RO 326 i.ps2mouse_restore_defaults ps2mouse.o
0x08002c84 0x08002c84 0x000000a4 Code RO 327 i.ps2mouse_send_update ps2mouse.o
0x08002d28 0x08002d28 0x00000128 Code RO 328 i.ps2mouse_write ps2mouse.o
0x08002e50 0x08002e50 0x00000079 Data RO 254 .constdata ps2kb.o
0x08002ec9 0x08002ec9 0x00000010 Data RO 3610 .constdata system_stm32f0xx.o
0x08002ed9 0x08002ed9 0x00000008 Data RO 3611 .constdata system_stm32f0xx.o
0x08002ee1 0x08002ee1 0x00000003 PAD
0x08002ee4 0x08002ee4 0x00000020 Data RO 3981 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08002ef4, Size: 0x00000898, Max: 0x00004000, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08002f04, Size: 0x000008a0, Max: 0x00004000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x08002ef4 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x08002ef8 0x00000010 Data RW 253 .data ps2kb.o
0x20000014 0x08002f08 0x00000024 Data RW 318 .data ps2mouse.o
0x20000038 0x08002f2c 0x00000010 Data RW 391 .data main.o
0x20000048 0x08002f3c 0x00000004 Data RW 2891 .data stm32f0xx_hal.o
0x2000004c 0x08002f40 0x00000004 Data RW 3598 .data system_stm32f0xx.o
0x20000050 0x08002f44 0x00000004 Data RW 3941 .data mc_p.l(stdout.o)
0x20000054 0x08002f48 0x00000004 Data RW 3944 .data mc_p.l(mvars.o)
0x20000058 0x08002f4c 0x00000004 Data RW 3945 .data mc_p.l(mvars.o)
0x2000005c - 0x0000023c Zero RW 390 .bss main.o
0x20000298 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
0x20000498 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o
0x20000000 0x08002f04 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x08002f08 0x00000014 Data RW 255 .data ps2kb.o
0x20000018 0x08002f1c 0x00000024 Data RW 329 .data ps2mouse.o
0x2000003c 0x08002f40 0x00000010 Data RW 405 .data main.o
0x2000004c 0x08002f50 0x00000004 Data RW 2905 .data stm32f0xx_hal.o
0x20000050 0x08002f54 0x00000004 Data RW 3612 .data system_stm32f0xx.o
0x20000054 0x08002f58 0x00000004 Data RW 3955 .data mc_p.l(stdout.o)
0x20000058 0x08002f5c 0x00000004 Data RW 3958 .data mc_p.l(mvars.o)
0x2000005c 0x08002f60 0x00000004 Data RW 3959 .data mc_p.l(mvars.o)
0x20000060 - 0x0000023c Zero RW 404 .bss main.o
0x2000029c 0x08002f64 0x00000004 PAD
0x200002a0 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
0x200004a0 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o
==============================================================================
@@ -2289,8 +2308,8 @@ Image component sizes
52 10 0 4 0 505155 delay_us.o
346 0 0 0 0 7067 helpers.o
1326 126 0 16 572 7776 main.o
1176 52 121 16 0 6675 ps2kb.o
1204 40 0 36 0 7521 ps2mouse.o
1222 70 121 20 0 7517 ps2kb.o
1176 72 0 36 0 8099 ps2mouse.o
28 8 192 0 1536 628 startup_stm32f072xb.o
122 18 0 4 0 3603 stm32f0xx_hal.o
206 38 0 0 0 11074 stm32f0xx_hal_cortex.o
@@ -2310,9 +2329,9 @@ Image component sizes
92 16 24 4 0 1131 system_stm32f0xx.o
----------------------------------------------------------------------
11288 612 372 80 2108 603764 Object Totals
11304 662 372 84 2112 605184 Object Totals
0 0 32 0 0 0 (incl. Generated)
30 0 3 0 0 0 (incl. Padding)
28 0 3 0 4 0 (incl. Padding)
----------------------------------------------------------------------
@@ -2356,15 +2375,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
11648 652 372 92 2108 599244 Grand Totals
11648 652 372 92 2108 599244 ELF Image Totals
11648 652 372 92 0 0 ROM Totals
11664 702 372 96 2112 600576 Grand Totals
11664 702 372 96 2112 600576 ELF Image Totals
11664 702 372 96 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 12020 ( 11.74kB)
Total RW Size (RW Data + ZI Data) 2200 ( 2.15kB)
Total ROM Size (Code + RO Data + RW Data) 12112 ( 11.83kB)
Total RO Size (Code + RO Data) 12036 ( 11.75kB)
Total RW Size (RW Data + ZI Data) 2208 ( 2.16kB)
Total ROM Size (Code + RO Data + RW Data) 12132 ( 11.85kB)
==============================================================================

View File

@@ -72,7 +72,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Inc/helpers.h)(0x617D5578)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h)(0x5DFA0893)
I (../Inc/stm32f0xx_hal_conf.h)(0x61AFDCDB)
I (../Inc/main.h)(0x61AFDCDB)
I (../Inc/main.h)(0x61AFDCDB)
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)
@@ -111,7 +111,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart_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
-o ibmpc\ps2kb.o --omf_browse ibmpc\ps2kb.crf --depend ibmpc\ps2kb.d)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A)
I (C:\Keil_v5\ARM\ARMCC\include\string.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

@@ -151,6 +151,9 @@ 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_data_reporting_enabled = 1;
#define PS2KB_CLK_HI() HAL_GPIO_WritePin(ps2kb_clk_port, ps2kb_clk_pin, GPIO_PIN_SET)
#define PS2KB_CLK_LOW() HAL_GPIO_WritePin(ps2kb_clk_port, ps2kb_clk_pin, GPIO_PIN_RESET)
@@ -168,23 +171,32 @@ void ps2kb_release_lines(void)
PS2KB_DATA_HI();
}
void ps2kb_reset()
{
ps2kb_current_scancode_set = 2;
ps2kb_data_reporting_enabled = 1;
}
void ps2kb_init(GPIO_TypeDef* clk_port, uint16_t clk_pin, GPIO_TypeDef* data_port, uint16_t data_pin)
{
ps2kb_clk_port = clk_port;
ps2kb_clk_pin = clk_pin;
ps2kb_data_port = data_port;
ps2kb_data_pin = data_pin;
PS2KB_CLK_HI();
PS2KB_DATA_HI();
ps2kb_release_lines();
ps2kb_reset();
}
uint8_t ps2kb_get_bus_status(void)
{
if(PS2KB_READ_DATA_PIN() == GPIO_PIN_SET && PS2KB_READ_CLK_PIN() == GPIO_PIN_SET)
uint8_t clk_stat = PS2KB_READ_CLK_PIN();
uint8_t data_stat = PS2KB_READ_DATA_PIN();
if(data_stat == GPIO_PIN_SET && clk_stat == GPIO_PIN_SET)
return PS2_BUS_IDLE;
if(PS2KB_READ_DATA_PIN() == GPIO_PIN_SET && PS2KB_READ_CLK_PIN() == GPIO_PIN_RESET)
if(data_stat == GPIO_PIN_SET && clk_stat == GPIO_PIN_RESET)
return PS2_BUS_INHIBIT;
if(PS2KB_READ_DATA_PIN() == GPIO_PIN_RESET && PS2KB_READ_CLK_PIN() == GPIO_PIN_SET)
if(data_stat == GPIO_PIN_RESET && clk_stat == GPIO_PIN_SET)
return PS2_BUS_REQ_TO_SEND;
return PS2_BUS_UNKNOWN;
}
@@ -304,6 +316,11 @@ uint8_t ps2kb_write(uint8_t data, uint8_t delay_start, uint8_t timeout_ms)
return 0;
}
void ps2kb_change_scancode_set(uint8_t set_number)
{
;
}
void keyboard_reply(uint8_t cmd, uint8_t *leds)
{
uint8_t received;
@@ -311,6 +328,7 @@ void keyboard_reply(uint8_t cmd, uint8_t *leds)
{
case 0xFF: //reset
PS2KB_SENDACK();
ps2kb_reset();
ps2kb_write(0xAA, 0, 250);
break;
case 0xFE: //resend
@@ -321,9 +339,11 @@ void keyboard_reply(uint8_t cmd, uint8_t *leds)
break;
case 0xF5: //disable data reporting
PS2KB_SENDACK();
ps2kb_data_reporting_enabled = 0;
break;
case 0xF4: //enable data reporting
PS2KB_SENDACK();
ps2kb_data_reporting_enabled = 1;
break;
case 0xF3: //set typematic rate
PS2KB_SENDACK();
@@ -338,7 +358,10 @@ void keyboard_reply(uint8_t cmd, uint8_t *leds)
case 0xF0: //set scan code set
PS2KB_SENDACK();
if(ps2kb_read(&received, 30) == 0)
{
PS2KB_SENDACK();
ps2kb_change_scancode_set(received);
}
break;
case 0xEE: //echo
ps2kb_write(0xEE, 1, PS2KB_WRITE_DEFAULT_TIMEOUT_MS);
@@ -353,13 +376,17 @@ void keyboard_reply(uint8_t cmd, uint8_t *leds)
uint8_t ps2kb_press_key(uint8_t linux_keycode, uint8_t linux_keyvalue)
{
// linux_keyvalue: press 1 release 0 autorepeat 2
// linux_keyvalue: release 0 press 1 autorepeat 2
uint8_t lookup_result;
if(ps2kb_data_reporting_enabled == 0)
return 1;
if(linux_keycode < LINUX_KEYCODE_TO_PS2_SCANCODE_SINGLE_SIZE)
{
lookup_result = linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2[linux_keycode];
if(lookup_result == CODE_UNUSED)
return 1;
return 2;
// printf("scan code is 0x%02x\n", lookup_result);
if(linux_keyvalue)
{
@@ -409,7 +436,7 @@ uint8_t ps2kb_press_key(uint8_t linux_keycode, uint8_t linux_keyvalue)
{
lookup_result = linux_keycode_to_ps2_scancode_lookup_special_codeset2[linux_keycode-96];
if(lookup_result == CODE_UNUSED)
return 1;
return 2;
// printf("scan code is 0xe0%02x\n", lookup_result);
if(linux_keyvalue)
{
@@ -424,6 +451,6 @@ uint8_t ps2kb_press_key(uint8_t linux_keycode, uint8_t linux_keyvalue)
}
return 0;
}
return 1;
return 3;
}

View File

@@ -16,6 +16,10 @@
#define CODE_UNUSED 0xff
#define PS2MOUSE_WRITE_DEFAULT_TIMEOUT_MS 20
#define PS2MOUSE_MODE_STREAM 0
#define PS2MOUSE_MODE_REMOTE 1
#define PS2MOUSE_MODE_WRAP 2
GPIO_TypeDef* ps2mouse_clk_port;
uint16_t ps2mouse_clk_pin;
@@ -30,6 +34,7 @@ uint8_t ps2mouse_scale;
uint8_t sample_rate_history[SAMPLE_RATE_HISTORY_BUF_SIZE];
uint8_t sample_rate_history_index;
uint8_t mouse_device_id;
uint8_t ps2mouse_current_mode;
#define PS2MOUSE_PACKET_SIZE_GENERIC 3
#define PS2MOUSE_PACKET_SIZE_INTELLIMOUSE 4
@@ -52,12 +57,18 @@ void ps2mouse_release_lines(void)
PS2MOUSE_DATA_HI();
}
void ps2mouse_restore_defaults()
{
ps2mouse_sampling_rate = 100;
ps2mouse_resolution = 2;
ps2mouse_scale = 1;
ps2mouse_data_reporting_enabled = 0;
ps2mouse_current_mode = PS2MOUSE_MODE_STREAM;
}
void ps2mouse_reset(void)
{
ps2mouse_data_reporting_enabled = 0;
ps2mouse_sampling_rate = 100;
ps2mouse_resolution = 3;
ps2mouse_scale = 1;
ps2mouse_restore_defaults();
sample_rate_history_index = 0;
memset(sample_rate_history, 0, SAMPLE_RATE_HISTORY_BUF_SIZE);
mouse_device_id = 0;
@@ -213,15 +224,16 @@ void ps2mouse_host_req_reply(uint8_t cmd)
PS2MOUSE_SENDACK();
break;
case 0xF6: //set defaults
ps2mouse_restore_defaults();
PS2MOUSE_SENDACK();
break;
case 0xF5: //disable data reporting
PS2MOUSE_SENDACK();
ps2mouse_data_reporting_enabled = 0;
PS2MOUSE_SENDACK();
break;
case 0xF4: //enable data reporting
PS2MOUSE_SENDACK();
ps2mouse_data_reporting_enabled = 1;
PS2MOUSE_SENDACK();
break;
case 0xF3: //set sampling rate
PS2MOUSE_SENDACK();
@@ -240,6 +252,24 @@ void ps2mouse_host_req_reply(uint8_t cmd)
mouse_device_id = 3; // intellimouse with scroll wheel
ps2mouse_write(mouse_device_id, 0, PS2MOUSE_WRITE_DEFAULT_TIMEOUT_MS);
break;
case 0xF0: // set remote mode
PS2MOUSE_SENDACK();
break;
case 0xEE: // set wrap mode
PS2MOUSE_SENDACK();
break;
case 0xEC: // reset wrap mode
PS2MOUSE_SENDACK();
break;
case 0xEB: // read data
PS2MOUSE_SENDACK();
break;
case 0xEA: // set stream mode
PS2MOUSE_SENDACK();
break;
case 0xE9: // status request
PS2MOUSE_SENDACK();
break;
case 0xE8: // set resolution
PS2MOUSE_SENDACK();
if(ps2mouse_read(&ps2mouse_resolution, 30) == 0)
@@ -253,9 +283,9 @@ void ps2mouse_host_req_reply(uint8_t cmd)
PS2MOUSE_SENDACK();
ps2mouse_scale = 2;
break;
case 0xEE: //echo
ps2mouse_write(0xEE, 1, PS2MOUSE_WRITE_DEFAULT_TIMEOUT_MS);
break;
// case 0xEE: //echo
// ps2mouse_write(0xEE, 1, PS2MOUSE_WRITE_DEFAULT_TIMEOUT_MS);
// break;
default:
PS2MOUSE_SENDACK();
}