added peek and pop for ps2 buffers

This commit is contained in:
dekunukem
2021-12-11 18:33:14 +00:00
parent 3304820983
commit 19a500b1de
19 changed files with 643 additions and 603 deletions

View File

@@ -62,11 +62,14 @@ typedef struct
void ps2kb_buf_init(ps2kb_buf *lb, uint8_t size);
uint8_t ps2kb_buf_add(ps2kb_buf *lb, uint8_t code, uint8_t value);
uint8_t ps2kb_buf_get(ps2kb_buf *lb, uint8_t* code, uint8_t* value);
uint8_t ps2kb_buf_peek(ps2kb_buf *lb, uint8_t* code, uint8_t* value);
void ps2kb_buf_pop(ps2kb_buf *lb);
void ps2mouse_buf_init(ps2mouse_buf *lb, uint8_t size);
uint8_t ps2mouse_buf_add(ps2mouse_buf *lb, mouse_event* event);
mouse_event* ps2mouse_buf_get(ps2mouse_buf *lb);
mouse_event* ps2mouse_buf_peek(ps2mouse_buf *lb);
void ps2mouse_buf_pop(ps2mouse_buf *lb);
#ifdef __cplusplus
}

View File

@@ -1866,7 +1866,7 @@
<Doc>
<Name>../Src/main.c</Name>
<ColumnNumber>18</ColumnNumber>
<TopLine>119</TopLine>
<TopLine>122</TopLine>
<CurrentLine>156</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -27,9 +27,12 @@ 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 ps2kb.c...
compiling helpers.c...
compiling ps2mouse.c...
compiling main.c...
linking...
Program Size: Code=11968 RO-data=372 RW-data=100 ZI-data=2124
Program Size: Code=11980 RO-data=372 RW-data=100 ZI-data=2124
FromELF: creating hex file...
"ibmpc\ibmpc.axf" - 0 Error(s), 0 Warning(s).
@@ -54,7 +57,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

@@ -23,7 +23,7 @@
:10015000F6E710B513460A4604461946FFF7F0FFC6
:10016000204610BD064C0125064E05E0E36807CC8D
:100170002B430C3C98471034B442F7D3FFF7A4FF4D
:10018000143000083430000870B5002401462031D6
:10018000203000084030000870B5002401462031BE
:100190004A78022A03D004218163012416E0026810
:1001A00013680E25AB431360026813685B085B009D
:1001B00013600122056C1346AB40C56B6B604A703F
@@ -131,10 +131,10 @@
:10081000E9680843606000F02DF86168084A09063D
:10082000090F515CC840074908600020FFF782FEAD
:100830000020F8BD00200240001002408813000094
:10084000F92F00085400002001480068704700009C
:10084000053000085400002001480068704700008F
:10085000540000200448054900684968044A4905D5
:10086000490F515CC84070475400002000100240FE
:100870000930000830B516A30FCB89B06C460FC401
:100870001530000830B516A30FCB89B06C460FC4F5
:1008800017A30FCB0FC41A494A680C201446044022
:100890001848042C05D0184B082C04D00C2C00D17F
:1008A000184609B030BD9402240F6D462C5DC96A0C
@@ -258,7 +258,7 @@
:101000002C321080E179A07901F0CDF84042508077
:10101000617A207A01F0C7F840429080607B90713D
:10102000A07B1072E07BD071207C5072607C0A49FA
:1010300090722C310B4801F067FCA078042804D191
:1010300090722C310B4801F065FCA078042804D193
:10104000C10200220848FFF786F90920002229463C
:10105000C006FFF780F9F8BD74020020B000002040
:101060000004004848000020000800480422044909
@@ -544,23 +544,23 @@
:1021E0005EF900981CBD00005401002038B5ED38A0
:1021F0000D462A4C0300FFF7ABFF13413B24252477
:102200002D251D164C242424242424244C0B240086
:1022100014220121FA2000F0E3FA00F08BFAFA22EE
:102220000021AA2027E014220121FA2000F0D8FA88
:10223000002005E014220121FA2000F0D1FA01204B
:10224000607038BD14220121FA2000F0C9FA1E2165
:1022500068461AE014220121FA2000F0C1FA142283
:102260000021AB2000F0BCFA14220021832002E000
:1022700014220121EE2000F0B3FA38BD142201210E
:10228000FA2000F0ADFA1E21284600F0C5F900281A
:1022100014220121FA2000F0E1FA00F08FFAFA22EC
:102220000021AA2027E014220121FA2000F0D6FA8A
:10223000002005E014220121FA2000F0CFFA01204D
:10224000607038BD14220121FA2000F0C7FA1E2167
:1022500068461AE014220121FA2000F0BFFA142285
:102260000021AB2000F0BAFA14220021832002E002
:1022700014220121EE2000F0B1FA38BD1422012110
:10228000FA2000F0ABFA1E21284600F0C9F9002818
:10229000F3D114220121FA20EDE700000400002010
:1022A000FEF738F9FFF748FCFFF760F9FFF7ECF9A4
:1022B000FFF714FAFFF730FAFFF758FAFFF772FA50
:1022C0001748FFF77FFF174CFF23013322465900C1
:1022D000104600F0F1F8224610232021104600F0AD
:1022E0006DFC1021104800F098F810210F4800F004
:1022F00038FB0D4820216038FDF729FF0A4A0848BD
:1022D000104600F0F5F8224610232021104600F0A9
:1022E0006FFC1021104800F081F810210F4800F019
:1022F00022FB0D4820216038FDF729FF0A4A0848D3
:10230000203A1146202340396438FEF7D7FD08A053
:10231000FFF714FF00F016FA00F072FDFAE7000074
:10231000FFF714FF00F01AFA00F074FDFAE700006E
:10232000140100200004004894020020480000200E
:1023300068656C6C6F20776F726C640A0000000037
:10234000F0B50B30C108C900144F0026144A0FE045
@@ -571,211 +571,212 @@
:10239000D208D20044C001203860D7E76000002096
:1023A0005C000020B4020020B00400200248006855
:1023B0000068406A704700000000002070B51546B4
:1023C0000E46044600F039F8002801D0012070BD07
:1023C0000E46044600F022F8002801D0012070BD1E
:1023D0002178606846542178A06845542078A17817
:1023E000401CFDF785FE2170002070BD10B504462D
:1023F00040782378984201D1012010BD6368185CB1
:1024000008706178A068405C10706078A178401C0A
:10241000FDF76EFE6170002010BD70B50D460446DC
:1024200081702846FFF78CFF60602846FFF788FF21
:10243000A060204600F00FF870BD10B5044681780A
:102440000078401CFDF754FE6078814201D10120E4
:1024500010BD002010BD10B5044600202070607033
:10246000A1786068FDF773FEA178A068FDF76FFEA4
:1024700010BD000070B50F4D6988A868FDF762FFB8
:102480000446A988E868FDF75DFF012802D000280E
:1024900009D00AE0012C02D0002C02D005E0032074
:1024A00070BD022070BD012C01D0002070BD012044
:1024B00070BD00000400002010B5054CA0606180D4
:1024C000E260A38000F026F900F034F910BD0000AE
:1024D0000400002010B54E4A5278002A0AD059282C
:1024E0000FD24C4A145CFF2C7ED0002904D0142259
:1024F000002104E0012010BD142200217FE02046CD
:1025000045E0632812D0772845D00246603A1F2A5A
:102510007BD8404A5932101860380478FF2C65D0B7
:10252000002965D014220021E02069E0002912D0A2
:1025300014220021E02000F053F91422012112207E
:1025400000F04EF914220121E02000F049F9142294
:1025500001217C201BE014220021E02000F040F942
:1025600014220121F02000F03BF9142201217C20EB
:1025700000F036F914220121E02000F031F9142294
:102580000121F02000F02CF914220121122000F08A
:1025900027F9002010BD0029BBD014220021E12022
:1025A00000F01EF914220121104600F019F914223E
:1025B0000121772000F014F914220121E12000F01C
:1025C0000FF914220121F02000F00AF91422012150
:1025D000104600F005F914220121F02000F000F966
:1025E000142201217720D2E700E00EE0022010BD86
:1025F00014220021E02000F0F3F814220121F02041
:1026000000F0EEF81422012179E7032010BD00004C
:1026100004000020802F0008F3B581B00F4600258C
:102620000126FDF79FFE3A4C206107E0FDF79AFE78
:102630002169401AB84201D30120FEBDFFF71AFFFD
:102640000128F3D11220FFF7B2FD00226188A068B3
:10265000FDF781FE2420FFF7AAFD01226188A06812
:10266000FDF779FE1220FFF7A2FDA188E068FDF7D3
:1026700069FE012800D135437004060C1220FFF7D3
:1026800096FD00226188A068FDF765FE2420FFF713
:102690008EFD01226188A068FDF75DFE1220FFF724
:1026A00086FDFF2EE1D91220FFF781FD002261880F
:1026B000A068FDF750FE2420FFF779FD0122618814
:1026C000A068FDF748FE1220FFF771FD1220FFF70A
:1026D0006EFD0022A188E068FDF73DFE00226188C2
:1026E000A068FDF738FE2420FFF761FD0122618814
:1026F000A068FDF730FE1220FFF759FD0122A188E6
:10270000E068FDF728FE019805700020FEBD00007E
:102710000400002010B5064C01226188A068FDF776
:102720001AFE0122A188E068FDF715FE10BD000029
:10273000040000200248022101700121417070470D
:102740000400002038B5FFF795FE214C0228607187
:1027500002D0012803D02CE0FFF7DCFF38BDFF20BA
:102760006946087003211A48FFF756FF002805D074
:10277000012208211748FDF7EEFD38BD6946207893
:10278000FFF734FD68460578FF2D12D0202112484E
:10279000FDF7DDFC1048CD2101700146203149785C
:1027A000417001218170C5700A4649030B48FDF74D
:1027B000D2FD074A0848D21C511E6030FFF716FEB2
:1027C0000028DAD1E178A078FFF784FE38BD000058
:1027D00040000020000400483402002000080048A7
:1027E000F7B5164605460127FDF7BCFD454C2061AF
:1027F00007E0FDF7B7FD2169401AB04201D301207F
:10280000FEBDFFF737FE0328F3D10198002803D05F
:10281000AF208000FFF7CBFC0022A188E068FDF725
:102820009AFD1220FFF7C3FC00226188A068FDF723
:1028300092FD2420FFF7BBFC01226188A068FDF710
:102840008AFD1220FFF7B3FC0026E80701D0012221
:1028500000E00022A188E068FDF77DFD1220FFF76F
:10286000A6FC00226188A068FDF775FD2420FFF713
:102870009EFC01226188A068FDF76DFD1220FFF724
:1028800096FCE807C00F761C47406D08F6B2082E8C
:10289000DBD3002F01D0012200E00022A188E068F4
:1028A000FDF759FD1220FFF782FC00226188A06825
:1028B000FDF751FD2420FFF77AFC01226188A06812
:1028C000FDF749FD1220FFF772FC0122A188E068A4
:1028D000FDF741FD1220FFF76AFC00226188A06825
:1028E000FDF739FD2420FFF762FC01226188A06812
:1028F000FDF731FD1220FFF75AFCC820FFF757FC07
:102900000020FEBD0400002070B50D46044600F016
:1029100034F8002801D0012070BD20780C226168B5
:10292000504308182946FDF7F9FB2078A178401C90
:10293000FDF7DEFB2170002070BD70B504464078C5
:1029400022780021904201D1084670BD0C214143FC
:102950006268401C5518A178FDF7CAFB61702846D3
:1029600070BD10B5044681700C204843FFF7E8FCA9
:102970006060204600F00FF810BD10B50446817865
:102980000078401CFDF7B4FB6078814201D1012042
:1029900010BD002010BD10B500210170417081787C
:1029A0000C2251434068FDF7D2FB10BD10B5164C08
:1029B000E1896069FDF7C6FC012805D1A18920697C
:1029C000FDF7C0FC012806D0E1896069FDF7BAFC7B
:1029D000012802D007E0032010BDA1892069FDF77E
:1029E000B1FC002806D0E1896069FDF7ABFC002846
:1029F00002D007E0022010BDA1892069FDF7A2FCEA
:102A00000128F8D0002010BD18000020F8B50025DE
:102A10000E46FF2814D0684CEC2821D0A179022959
:102A200020D0E63801270300FFF792FB11B6BDA3C3
:102A3000726FB23E3E693E633E422725221F3E0032
:102A400000F058F914220121FA2000F0FDF9FA22D1
:102A50000021AA2000F0F8F914220021084645E0E0
:102A6000E0794EE01422002140E000F04FF91BE035
:102A70000020207046E0277044E014220121FA2053
:102A800000F0E2F900F074FA4B481E21401C00F0FF
:102A9000A3F800282CD148492079203162780A54C3
:102AA000072801D2401C207114220121FA201DE0C8
:102AB00000F05EFA14220121FA2000F0C5F900208E
:102AC0006071207902280ED93B492031081820383E
:102AD000C17F502907D1817F642904D1407FC82854
:102AE00001D10320607114220021607900F0ACF95B
:102AF000F8BD00F03DFAA079E071A771D4E7E1716B
:102B00000220A07100F034FACEE7E1710020F8E76E
:102B100014220121FA2000F097F9A079012800D1B0
:102B200040252078002801D020200543E0780228A5
:102B300001D110200543B079002801D004200543BD
:102B4000F079002801D002200543307A002800D017
:102B50003D4314220021284600F076F9142200217A
:102B6000A07800F071F914220021607800F06CF96F
:102B70000BE014220121FA2000F066F90E481E2114
:102B8000801C00F029F8002802D000F0F1F9F8BD0F
:102B900014220121FA20E9E714220121FA2000F091
:102BA00053F9E770F8BD14220121FA2000F04CF926
:102BB0000220E070F8BD00001800002010B5054CA0
:102BC0002061A1816261E38100F094F800F082F855
:102BD00010BD000018000020F3B581B00F4600259D
:102BE0000126FDF7BFFB3A4CA06107E0FDF7BAFBF9
:102BF000A169401AB84201D30120FEBDFFF7D6FEFD
:102C00000128F3D11220FFF7D2FA0022A18920690E
:102C1000FDF7A1FB2420FFF7CAFA0122A189206950
:102C2000FDF799FB1220FFF7C2FAE1896069FDF711
:102C300089FB012800D135437004060C1220FFF7F0
:102C4000B6FA0022A1892069FDF785FB2420FFF751
:102C5000AEFA0122A1892069FDF77DFB1220FFF762
:102C6000A6FAFF2EE1D91220FFF7A1FA0022A189CE
:102C70002069FDF770FB2420FFF799FA0122A18952
:102C80002069FDF768FB1220FFF791FA1220FFF789
:102C90008EFA0022E1896069FDF75DFB0022A189BF
:102CA0002069FDF758FB2420FFF781FA0122A18952
:102CB0002069FDF750FB1220FFF779FA0122E18924
:102CC0006069FDF748FB019805700020FEBD00001B
:102CD0001800002010B5064C0122A1892069FDF7DB
:102CE0003AFB0122E1896069FDF735FB10BD000068
:102CF0001800002000B500F009F803490020087111
:102D000008624862487100BD1800002000B50748FD
:102D100064214170022181700121C1700021017084
:102D20008171C17100F024F900BD0000180000207D
:102D300070B5324E0546B07901280AD0022815D068
:102D40003078002814D0FFF731FE032812D003207A
:102D500070BD2878317A40183072A878717A40189E
:102D600070722879B17A4018B07244E0012070BDC9
:102D7000022070BD21480021204CC16108201C3474
:102D80002070A879002801D009202070287A002816
:102D900003D02078022108432070E879002803D06E
:102DA00020780421084320700020285E002803DAE0
:102DB00020781021084320700220285E002803DAC2
:102DC000207820210843207028786070A878A070AF
:102DD0002879E0700025605D1422002100F034F8AD
:102DE0006D1C032DF7DB7079002804D0E0781422E5
:102DF000002100F029F8002070BD0000180000201C
:102E000010B5FFF7D3FD0E4C0228207102D0012827
:102E100003D00BE0FFF75EFF10BD09480A21401CFC
:102E2000FFF7DAFE07496078FFF7F0FD0448083045
:102E3000FFF783FD0028EFD0FFF77AFF10BD0000F9
:102E400040000020A0020020F7B5164605460127E5
:102E5000FDF788FA454CA06107E0FDF783FAA16908
:102E6000401AB04201D30120FEBDFFF79FFD0328A9
:102E7000F3D10198002803D0AF208000FFF797F925
:102E80000022E1896069FDF766FA1220FFF78FF9E9
:102E90000022A1892069FDF75EFA2420FFF787F957
:102EA0000122A1892069FDF756FA1220FFF77FF968
:102EB0000026E80701D0012200E00022E1896069D4
:102EC000FDF749FA1220FFF772F90022A189206963
:102ED000FDF741FA2420FFF76AF90122A189206950
:102EE000FDF739FA1220FFF762F9E807C00F761CE8
:102EF00047406D08F6B2082EDBD3002F01D0012227
:102F000000E00022E1896069FDF725FA1220FFF751
:102F10004EF90022A1892069FDF71DFA2420FFF750
:102F200046F90122A1892069FDF715FA1220FFF761
:102F30003EF90122E1896069FDF70DFA1220FFF7E1
:102F400036F90022A1892069FDF705FA2420FFF750
:102F50002EF90122A1892069FDF7FDF91220FFF762
:102F600026F9C820FFF723F90020FEBD1800002035
:102F700002480021017241728172704718000020DE
:102F8000FF76161E26252E363D3E46454E55660DCD
:102F9000151D242D2C353C43444D545B5A141C1BE9
:102FA000232B34333B424B4C520E125D1A22212A02
:102FB00032313A41494A597C1129580506040C031B
:102FC0000B830A0109777E6C757D7B6B737479695D
:102FD000727A7071FFFF6178075A144AFF11FF6C13
:102FE000757D6B7469727A7071FFFFFFFFFFFFFFE1
:102FF000FFFFFFFFFFFF1F272F0000000000000062
:103000000001020304060708090000000001020392
:1030100004000000343000080000002064000000BC
:103020006A21000898300008640000204C08000065
:103030007A210008000000000201000000000000EA
:103040000000000000000000000000000000000080
:1023E000401CFDF785FE2170002070BD70B50D46C4
:1023F000044681702846FFF7A3FF60602846FFF778
:102400009FFFA060204600F02BF870BD10B5044679
:1024100081780078401CFDF76BFE6078814201D125
:10242000012010BD002010BD10B543780478A342F0
:1024300001D1012010BD4468E35C0B7081684078D5
:10244000085C1070002010BD10B50446407821785B
:10245000884204D0A178401CFDF74AFE617010BD8F
:1024600010B50446002020706070A1786068FDF708
:102470006EFEA178A068FDF76AFE10BD70B50F4D25
:102480006988A868FDF75EFF0446A988E868FDF73B
:1024900059FF012802D0002809D00AE0012C02D0FF
:1024A000002C02D005E0032070BD022070BD012C7D
:1024B00001D0002070BD012070BD0000040000208C
:1024C00010B5054CA0606180E260A38000F026F9A1
:1024D00000F034F910BD00000400002010B54E4A91
:1024E0005278002A0AD059280FD24C4A145CFF2C8B
:1024F0007ED0002904D01422002104E0012010BD68
:10250000142200217FE0204645E0632812D077287E
:1025100045D00246603A1F2A7BD8404A59321018EB
:1025200060380478FF2C65D0002965D01422002182
:10253000E02069E0002912D014220021E02000F000
:102540004DF914220121122000F048F91422012132
:10255000E02000F043F9142201217C201BE014222A
:102560000021E02000F03AF914220121F02000F0CF
:1025700035F9142201217C2000F030F914220121C8
:10258000E02000F02BF914220121F02000F026F9C0
:1025900014220121122000F021F9002010BD002991
:1025A000BBD014220021E12000F018F914220121EF
:1025B000104600F013F914220121772000F00EF9E3
:1025C00014220121E12000F009F914220121F02058
:1025D00000F004F914220121104600F0FFF8142243
:1025E0000121F02000F0FAF8142201217720D2E72F
:1025F00000E00EE0022010BD14220021E02000F0D7
:10260000EDF814220121F02000F0E8F81422012155
:1026100079E7032010BD0000040000208C2F000883
:10262000F3B581B00F4600250126FDF79BFE3A4C1D
:10263000206107E0FDF796FE2169401AB84201D3F8
:102640000120FEBDFFF71AFF0128F3D11220FFF78A
:10265000AEFD00226188A068FDF77DFE2420FFF713
:10266000A6FD01226188A068FDF775FE1220FFF724
:102670009EFDA188E068FDF765FE012800D1354385
:102680007004060C1220FFF792FD00226188A068FA
:10269000FDF761FE2420FFF78AFD01226188A06812
:1026A000FDF759FE1220FFF782FDFF2EE1D912201F
:1026B000FFF77DFD00226188A068FDF74CFE242015
:1026C000FFF775FD01226188A068FDF744FE122026
:1026D000FFF76DFD1220FFF76AFD0022A188E06878
:1026E000FDF739FE00226188A068FDF734FE242042
:1026F000FFF75DFD01226188A068FDF72CFE122026
:10270000FFF755FD0122A188E068FDF724FE01983E
:1027100005700020FEBD00000400002010B5064C2E
:1027200001226188A068FDF716FE0122A188E068F9
:10273000FDF711FE10BD0000040000200248022138
:1027400001700121417070470400002038B5FFF787
:1027500095FE1F4C0228607102D0012803D024E0AE
:10276000FFF7DCFF38BDFF21684601700A211848D9
:10277000FFF756FF69462078FFF738FD6846057871
:10278000FF2D12D020211348FDF7E1FC1148CD2187
:102790000170014620314978417001218170C57076
:1027A0000A4649030C48FDF7D6FD094A0948D21CE0
:1027B000511E6030FFF738FE0028D3D1E178A078B1
:1027C000FFF78CFE03486030FFF73EFE38BD000087
:1027D000400000203402002000080048F7B51646EB
:1027E00005460127FDF7BEFD454C206107E0FDF7DA
:1027F000B9FD2169401AB04201D30120FEBDFFF7A7
:102800003DFE0328F3D10198002803D0AF208000BB
:10281000FFF7CDFC0022A188E068FDF79CFD1220A7
:10282000FFF7C5FC00226188A068FDF794FD242015
:10283000FFF7BDFC01226188A068FDF78CFD122026
:10284000FFF7B5FC0026E80701D0012200E00022D6
:10285000A188E068FDF77FFD1220FFF7A8FC0022A9
:102860006188A068FDF777FD2420FFF7A0FC012216
:102870006188A068FDF76FFD1220FFF798FCE8075C
:10288000C00F761C47406D08F6B2082EDBD3002F30
:1028900001D0012200E00022A188E068FDF75BFD85
:1028A0001220FFF784FC00226188A068FDF753FD29
:1028B0002420FFF77CFC01226188A068FDF74BFD16
:1028C0001220FFF774FC0122A188E068FDF743FDA8
:1028D0001220FFF76CFC00226188A068FDF73BFD29
:1028E0002420FFF764FC01226188A068FDF733FD16
:1028F0001220FFF75CFCC820FFF759FC0020FEBD4A
:102900000400002070B50D46044600F020F80028B1
:1029100001D0012070BD20780C2261685043081856
:102920002946FDF7FBFB2078A178401CFDF7E0FB72
:102930002170002070BD10B5044681700C20484302
:10294000FFF7FEFC6060204600F026F810BD10B5D1
:10295000044681780078401CFDF7CAFB607881420C
:1029600001D1012010BD002010BD417802789142B4
:1029700001D10020704740680C2251434018704735
:1029800010B5044640782178884204D0A178401CD4
:10299000FDF7AEFB617010BD10B5002101704170F4
:1029A00081780C2251434068FDF7D1FB10BD000037
:1029B00010B5164CE1896069FDF7C4FC012805D10A
:1029C000A1892069FDF7BEFC012806D0E189606974
:1029D000FDF7B8FC012802D007E0032010BDA18953
:1029E0002069FDF7AFFC002806D0E1896069FDF79A
:1029F000A9FC002802D007E0022010BDA1892069AF
:102A0000FDF7A0FC0128F8D0002010BD1800002020
:102A1000F8B500250E46FF2814D0684CEC2821D0CC
:102A2000A179022920D0E63801270300FFF790FBA7
:102A300011B6BDA3726FB23E3E693E633E4227258A
:102A4000221F3E0000F058F914220121FA2000F064
:102A500001FAFA220021AA2000F0FCF91422002138
:102A6000084645E0E0794EE01422002140E000F005
:102A70004FF91BE00020207046E0277044E014224C
:102A80000121FA2000F0E6F900F078FA4B481E2107
:102A9000401C00F0A3F800282CD1484920792031AF
:102AA00062780A54072801D2401C207114220121A7
:102AB000FA201DE000F062FA14220121FA2000F051
:102AC000C9F900206071207902280ED93B492031D4
:102AD00008182038C17F502907D1817F642904D18B
:102AE000407FC82801D10320607114220021607941
:102AF00000F0B0F9F8BD00F041FAA079E071A771DB
:102B0000D4E7E1710220A07100F038FACEE7E1715C
:102B10000020F8E714220121FA2000F09BF9A079A7
:102B2000012800D140252078002801D0202005432D
:102B3000E078022801D110200543B079002801D0A7
:102B400004200543F079002801D002200543307AA3
:102B5000002800D03D4314220021284600F07AF9D5
:102B600014220021A07800F075F914220021607869
:102B700000F070F90BE014220121FA2000F06AF94C
:102B80000E481E21801C00F029F8002802D000F019
:102B9000F5F9F8BD14220121FA20E9E714220121F8
:102BA000FA2000F057F9E770F8BD14220121FA204D
:102BB00000F050F90220E070F8BD0000180000207D
:102BC00010B5054C2061A1816261E38100F094F8A9
:102BD00000F082F810BD000018000020F3B581B0AD
:102BE0000F4600250126FDF7BDFB3A4CA06107E02A
:102BF000FDF7B8FBA169401AB84201D30120FEBD20
:102C0000FFF7D6FE0128F3D11220FFF7D0FA0022F9
:102C1000A1892069FDF79FFB2420FFF7C8FA012254
:102C2000A1892069FDF797FB1220FFF7C0FAE1891F
:102C30006069FDF787FB012800D135437004060C5D
:102C40001220FFF7B4FA0022A1892069FDF783FB67
:102C50002420FFF7ACFA0122A1892069FDF77BFB54
:102C60001220FFF7A4FAFF2EE1D91220FFF79FFAF6
:102C70000022A1892069FDF76EFB2420FFF797FA57
:102C80000122A1892069FDF766FB1220FFF78FFA68
:102C90001220FFF78CFA0022E1896069FDF75BFBE7
:102CA0000022A1892069FDF756FB2420FFF77FFA57
:102CB0000122A1892069FDF74EFB1220FFF777FA68
:102CC0000122E1896069FDF746FB0198057000204B
:102CD000FEBD00001800002010B5064C0122A1899D
:102CE0002069FDF738FB0122E1896069FDF733FBBC
:102CF00010BD00001800002000B500F009F80349DD
:102D00000020087108624862487100BD1800002068
:102D100000B5074864214170022181700121C17012
:102D2000017000218171C17100F028F900BD00001F
:102D30001800002070B5324E0546B07901280AD03F
:102D4000022815D03078002814D0FFF731FE032870
:102D500012D0032070BD2878317A40183072A878DC
:102D6000717A401870722879B17A4018B07244E0D4
:102D7000012070BD022070BD21480021204CC1619E
:102D800008201C342070A879002801D00920207068
:102D9000287A002803D02078022108432070E8799F
:102DA000002803D020780421084320700020285EEA
:102DB000002803DA20781021084320700220285EC2
:102DC000002803DA207820210843207028786070DA
:102DD000A878A0702879E0700025605D1422002199
:102DE00000F038F86D1C032DF7DB7079002804D053
:102DF000E0781422002100F02DF8002070BD0000C2
:102E00001800002010B5FFF7D3FD104C02282071E8
:102E100002D0012803D00BE0FFF75EFF10BD0B4886
:102E20000A21401CFFF7DAFE09496078FFF7F0FD40
:102E300006480830FFF799FD0028EFD0FFF77AFF2A
:102E400002480830FFF79CFD10BD00004000002044
:102E5000A0020020F7B5174605460126FDF782FAC5
:102E6000454CA06107E0FDF77DFAA169401AB84220
:102E700001D30120FEBDFFF79BFD0328F3D101988C
:102E8000002803D0AF208000FFF791F90022E189EC
:102E90006069FDF760FA1220FFF789F90022A18925
:102EA0002069FDF758FA2420FFF781F90122A18952
:102EB0002069FDF750FA1220FFF779F90027E8079B
:102EC00001D0012200E00022E1896069FDF743FAA8
:102ED0001220FFF76CF90022A1892069FDF73BFA67
:102EE0002420FFF764F90122A1892069FDF733FA54
:102EF0001220FFF75CF9E807C00F46406D087F1C01
:102F0000082FDCDB002E01D0012200E00022E18945
:102F10006069FDF720FA1220FFF749F90022A18924
:102F20002069FDF718FA2420FFF741F90122A18951
:102F30002069FDF710FA1220FFF739F90122E18923
:102F40006069FDF708FA1220FFF731F90022A18924
:102F50002069FDF700FA2420FFF729F90122A18951
:102F60002069FDF7F8F91220FFF721F9C820FFF7D3
:102F70001EF90020FEBD00001800002002480021BC
:102F8000017241728172704718000020FF76161E90
:102F900026252E363D3E46454E55660D151D242DE3
:102FA0002C353C43444D545B5A141C1B232B3433A7
:102FB0003B424B4C520E125D1A22212A32313A41C9
:102FC000494A597C1129580506040C030B830A0150
:102FD00009777E6C757D7B6B73747969727A707119
:102FE000FFFF6178075A144AFF11FF6C757D6B74FF
:102FF00069727A7071FFFFFFFFFFFFFFFFFFFFFFA6
:10300000FFFF1F272F000000000000000001020347
:103010000406070809000000000102030400000084
:103020004030000800000020640000006A21000811
:10303000A4300008640000204C0800007A21000839
:10304000000000000201000000000000000000007D
:103050000000000000000000000000000000000070
:103060000000000000000000000000000000000060
:103070000000000000000000000000000000000050
:10308000000000000000000000127A0000000000B4
:08309000000000000000000038
:103080000000000000000000000000000000000040
:103090000000000000127A000000000000000000A4
:0430A000000000002C
: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: Sat Dec 11 16:32:34 2021
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Sat Dec 11 18:32:38 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="[aa]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[ac]"></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="[ab]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[ad]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[ac]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[ae]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[ad]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[af]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[ae]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[b0]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[af]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[b1]"></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="[b0]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[b2]"></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="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_is_full
<LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_get
<LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_pop
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_is_full
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_add
<LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_pop
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_is_full
<LI><a href="#[96]">&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="[9e]"></a>__aeabi_memcpy</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text))
<P><STRONG><a name="[9f]"></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,22 +216,22 @@ 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="[b1]"></a>__aeabi_memcpy8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
<P><STRONG><a name="[b3]"></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="[b2]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[b4]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[b3]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[b5]"></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="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_reset
<LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_reset
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_reset
</UL>
<P><STRONG><a name="[91]"></a>__aeabi_memclr4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text))
@@ -239,7 +239,7 @@ Global Symbols
<LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[b4]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[b6]"></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
@@ -251,7 +251,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
</UL>
<P><STRONG><a name="[b5]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[b7]"></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
@@ -278,8 +278,8 @@ Global Symbols
</UL>
<P><STRONG><a name="[9a]"></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="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<BR><BR>[Called By]<UL><LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[a2]">&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>
@@ -292,9 +292,9 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_update
<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="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_release_lines
<LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_release_lines
<LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write
<LI><a href="#[9b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_release_lines
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
@@ -306,8 +306,8 @@ 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="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
<LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_WaitFlagStateUntilTimeout
@@ -554,12 +554,12 @@ Global Symbols
</UL>
<P><STRONG><a name="[5b]"></a>HAL_TIM_ConfigClockSource</STRONG> (Thumb, 238 bytes, Stack size 24 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_ConfigClockSource))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = HAL_TIM_ConfigClockSource &rArr; TIM_TI2_ConfigInputStage
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = HAL_TIM_ConfigClockSource &rArr; TIM_ETR_SetConfig
</UL>
<BR>[Calls]<UL><LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_TI2_ConfigInputStage
<LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_TI1_ConfigInputStage
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_ITRx_SetConfig
<BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_ITRx_SetConfig
<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_ETR_SetConfig
<LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_TI2_ConfigInputStage
<LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_TI1_ConfigInputStage
</UL>
<BR>[Called By]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM2_Init
</UL>
@@ -752,7 +752,7 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[b6]"></a>__1printf$bare</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, printfb.o(i.__0printf$bare), UNUSED)
<P><STRONG><a name="[b8]"></a>__1printf$bare</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, printfb.o(i.__0printf$bare), UNUSED)
<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
@@ -763,15 +763,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="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<BR>[Called By]<UL><LI><a href="#[a3]">&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="[b7]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[b9]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[b8]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[ba]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[b9]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[bb]"></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
@@ -782,8 +782,8 @@ 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="#[a7]">&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="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
</UL>
@@ -838,7 +838,7 @@ Global Symbols
</UL>
<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
</UL>
<P><STRONG><a name="[97]"></a>malloc</STRONG> (Thumb, 92 bytes, Stack size 20 bytes, malloc.o(i.malloc))
<P><STRONG><a name="[96]"></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="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_init
@@ -858,19 +858,11 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
</UL>
<P><STRONG><a name="[96]"></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
</UL>
<BR>[Called By]<UL><LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_update
</UL>
<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="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_reset
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc
<BR>[Calls]<UL><LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_reset
<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
@@ -883,7 +875,21 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_add
</UL>
<P><STRONG><a name="[98]"></a>ps2kb_buf_reset</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.ps2kb_buf_reset))
<P><STRONG><a name="[9d]"></a>ps2kb_buf_peek</STRONG> (Thumb, 32 bytes, Stack size 8 bytes, helpers.o(i.ps2kb_buf_peek))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = ps2kb_buf_peek
</UL>
<BR>[Called By]<UL><LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_update
</UL>
<P><STRONG><a name="[98]"></a>ps2kb_buf_pop</STRONG> (Thumb, 24 bytes, Stack size 8 bytes, helpers.o(i.ps2kb_buf_pop))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = ps2kb_buf_pop &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_update
</UL>
<P><STRONG><a name="[97]"></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
@@ -945,7 +951,7 @@ Global Symbols
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;keyboard_reply
</UL>
<P><STRONG><a name="[93]"></a>ps2kb_update</STRONG> (Thumb, 138 bytes, Stack size 16 bytes, main.o(i.ps2kb_update))
<P><STRONG><a name="[93]"></a>ps2kb_update</STRONG> (Thumb, 130 bytes, Stack size 16 bytes, main.o(i.ps2kb_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = ps2kb_update &rArr; keyboard_reply &rArr; ps2kb_write &rArr; ps2kb_get_bus_status
</UL>
<BR>[Calls]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
@@ -954,7 +960,8 @@ Global Symbols
<LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_press_key
<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="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_get
<LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_pop
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_buf_peek
<LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
@@ -975,31 +982,23 @@ Global Symbols
<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="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_is_full
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<BR>[Calls]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_is_full
<LI><a href="#[9f]">&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="[9f]"></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
</UL>
<BR>[Called By]<UL><LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
</UL>
<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="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_reset
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc
<LI><a href="#[96]">&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="[9d]"></a>ps2mouse_buf_is_full</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.ps2mouse_buf_is_full))
<P><STRONG><a name="[9e]"></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
@@ -1007,6 +1006,18 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_add
</UL>
<P><STRONG><a name="[ab]"></a>ps2mouse_buf_peek</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, helpers.o(i.ps2mouse_buf_peek))
<BR><BR>[Called By]<UL><LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
</UL>
<P><STRONG><a name="[a1]"></a>ps2mouse_buf_pop</STRONG> (Thumb, 24 bytes, Stack size 8 bytes, helpers.o(i.ps2mouse_buf_pop))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = ps2mouse_buf_pop &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
</UL>
<P><STRONG><a name="[a0]"></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>
@@ -1015,25 +1026,25 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_init
</UL>
<P><STRONG><a name="[a1]"></a>ps2mouse_get_bus_status</STRONG> (Thumb, 92 bytes, Stack size 8 bytes, ps2mouse.o(i.ps2mouse_get_bus_status))
<P><STRONG><a name="[a2]"></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="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
</UL>
<BR>[Called By]<UL><LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
<LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
</UL>
<P><STRONG><a name="[a2]"></a>ps2mouse_host_req_reply</STRONG> (Thumb, 426 bytes, Stack size 24 bytes, ps2mouse.o(i.ps2mouse_host_req_reply))
<P><STRONG><a name="[a3]"></a>ps2mouse_host_req_reply</STRONG> (Thumb, 426 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="#[a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;reset_accumulators
<LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_restore_defaults
<LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_reset
<LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<BR>[Calls]<UL><LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;reset_accumulators
<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="#[a8]">&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="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
@@ -1042,26 +1053,26 @@ Global Symbols
<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_reset &rArr; ps2mouse_restore_defaults
</UL>
<BR>[Calls]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_reset
<LI><a href="#[a8]">&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="#[a9]">&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="[a7]"></a>ps2mouse_read</STRONG> (Thumb, 246 bytes, Stack size 32 bytes, ps2mouse.o(i.ps2mouse_read))
<P><STRONG><a name="[a8]"></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="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<BR>[Calls]<UL><LI><a href="#[a2]">&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="#[9a]">&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="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
<LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
</UL>
<P><STRONG><a name="[a8]"></a>ps2mouse_release_lines</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, ps2mouse.o(i.ps2mouse_release_lines))
<P><STRONG><a name="[a9]"></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
@@ -1070,61 +1081,62 @@ Global Symbols
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_init
</UL>
<P><STRONG><a name="[a3]"></a>ps2mouse_reset</STRONG> (Thumb, 20 bytes, Stack size 4 bytes, ps2mouse.o(i.ps2mouse_reset))
<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 = 8<LI>Call Chain = ps2mouse_reset &rArr; ps2mouse_restore_defaults
</UL>
<BR>[Calls]<UL><LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_restore_defaults
<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="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
</UL>
<P><STRONG><a name="[a5]"></a>ps2mouse_restore_defaults</STRONG> (Thumb, 30 bytes, Stack size 4 bytes, ps2mouse.o(i.ps2mouse_restore_defaults))
<P><STRONG><a name="[a6]"></a>ps2mouse_restore_defaults</STRONG> (Thumb, 30 bytes, Stack size 4 bytes, ps2mouse.o(i.ps2mouse_restore_defaults))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = ps2mouse_restore_defaults
</UL>
<BR>[Calls]<UL><LI><a href="#[a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;reset_accumulators
<BR>[Calls]<UL><LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;reset_accumulators
</UL>
<BR>[Called By]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_reset
<LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<BR>[Called By]<UL><LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_reset
<LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
</UL>
<P><STRONG><a name="[a9]"></a>ps2mouse_send_update</STRONG> (Thumb, 202 bytes, Stack size 16 bytes, ps2mouse.o(i.ps2mouse_send_update))
<P><STRONG><a name="[aa]"></a>ps2mouse_send_update</STRONG> (Thumb, 202 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="#[a1]">&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="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
</UL>
<BR>[Called By]<UL><LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
</UL>
<P><STRONG><a name="[94]"></a>ps2mouse_update</STRONG> (Thumb, 62 bytes, Stack size 8 bytes, main.o(i.ps2mouse_update))
<P><STRONG><a name="[94]"></a>ps2mouse_update</STRONG> (Thumb, 70 bytes, Stack size 8 bytes, main.o(i.ps2mouse_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = ps2mouse_update &rArr; ps2mouse_host_req_reply &rArr; ps2mouse_write &rArr; ps2mouse_get_bus_status
</UL>
<BR>[Calls]<UL><LI><a href="#[a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_release_lines
<LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_get
<BR>[Calls]<UL><LI><a href="#[aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<LI><a href="#[a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_release_lines
<LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_pop
<LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_buf_peek
</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, 290 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="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<BR>[Calls]<UL><LI><a href="#[a2]">&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="#[a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<BR>[Called By]<UL><LI><a href="#[aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
</UL>
<P><STRONG><a name="[a6]"></a>reset_accumulators</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, ps2mouse.o(i.reset_accumulators))
<BR><BR>[Called By]<UL><LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_restore_defaults
<LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<P><STRONG><a name="[a7]"></a>reset_accumulators</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, ps2mouse.o(i.reset_accumulators))
<BR><BR>[Called By]<UL><LI><a href="#[a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_restore_defaults
<LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
</UL>
<P>
<H3>
@@ -1158,7 +1170,7 @@ Local Symbols
</UL>
<P><STRONG><a name="[73]"></a>MX_TIM2_Init</STRONG> (Thumb, 80 bytes, Stack size 32 bytes, main.o(i.MX_TIM2_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 68<LI>Call Chain = MX_TIM2_Init &rArr; HAL_TIM_ConfigClockSource &rArr; TIM_TI2_ConfigInputStage
<BR><BR>[Stack]<UL><LI>Max Depth = 68<LI>Call Chain = MX_TIM2_Init &rArr; HAL_TIM_ConfigClockSource &rArr; TIM_ETR_SetConfig
</UL>
<BR>[Calls]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_ConfigClockSource
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Init

View File

@@ -21,18 +21,18 @@ Section Cross References
delay_us.o(i.micros) refers to delay_us.o(.data) for .data
helpers.o(i.ps2kb_buf_add) refers to helpers.o(i.ps2kb_buf_is_full) for ps2kb_buf_is_full
helpers.o(i.ps2kb_buf_add) refers to uidiv.o(.text) for __aeabi_uidivmod
helpers.o(i.ps2kb_buf_get) refers to uidiv.o(.text) for __aeabi_uidivmod
helpers.o(i.ps2kb_buf_init) refers to malloc.o(i.malloc) for malloc
helpers.o(i.ps2kb_buf_init) refers to helpers.o(i.ps2kb_buf_reset) for ps2kb_buf_reset
helpers.o(i.ps2kb_buf_is_full) refers to uidiv.o(.text) for __aeabi_uidivmod
helpers.o(i.ps2kb_buf_pop) refers to uidiv.o(.text) for __aeabi_uidivmod
helpers.o(i.ps2kb_buf_reset) refers to memseta.o(.text) for __aeabi_memclr
helpers.o(i.ps2mouse_buf_add) refers to helpers.o(i.ps2mouse_buf_is_full) for ps2mouse_buf_is_full
helpers.o(i.ps2mouse_buf_add) refers to memcpya.o(.text) for __aeabi_memcpy
helpers.o(i.ps2mouse_buf_add) refers to uidiv.o(.text) for __aeabi_uidivmod
helpers.o(i.ps2mouse_buf_get) refers to uidiv.o(.text) for __aeabi_uidivmod
helpers.o(i.ps2mouse_buf_init) refers to malloc.o(i.malloc) for malloc
helpers.o(i.ps2mouse_buf_init) refers to helpers.o(i.ps2mouse_buf_reset) for ps2mouse_buf_reset
helpers.o(i.ps2mouse_buf_is_full) refers to uidiv.o(.text) for __aeabi_uidivmod
helpers.o(i.ps2mouse_buf_pop) refers to uidiv.o(.text) for __aeabi_uidivmod
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
@@ -154,19 +154,21 @@ Section Cross References
main.o(i.ps2kb_update) refers to ps2kb.o(i.ps2kb_get_bus_status) for ps2kb_get_bus_status
main.o(i.ps2kb_update) refers to ps2kb.o(i.ps2kb_release_lines) for ps2kb_release_lines
main.o(i.ps2kb_update) refers to ps2kb.o(i.ps2kb_read) for ps2kb_read
main.o(i.ps2kb_update) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
main.o(i.ps2kb_update) refers to ps2kb.o(i.keyboard_reply) for keyboard_reply
main.o(i.ps2kb_update) refers to memseta.o(.text) for __aeabi_memclr4
main.o(i.ps2kb_update) refers to helpers.o(i.ps2kb_buf_get) for ps2kb_buf_get
main.o(i.ps2kb_update) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
main.o(i.ps2kb_update) refers to helpers.o(i.ps2kb_buf_peek) for ps2kb_buf_peek
main.o(i.ps2kb_update) refers to ps2kb.o(i.ps2kb_press_key) for ps2kb_press_key
main.o(i.ps2kb_update) refers to helpers.o(i.ps2kb_buf_pop) for ps2kb_buf_pop
main.o(i.ps2kb_update) refers to main.o(.data) for .data
main.o(i.ps2kb_update) refers to main.o(.bss) for .bss
main.o(i.ps2mouse_update) refers to ps2mouse.o(i.ps2mouse_get_bus_status) for ps2mouse_get_bus_status
main.o(i.ps2mouse_update) refers to ps2mouse.o(i.ps2mouse_release_lines) for ps2mouse_release_lines
main.o(i.ps2mouse_update) refers to ps2mouse.o(i.ps2mouse_read) for ps2mouse_read
main.o(i.ps2mouse_update) refers to ps2mouse.o(i.ps2mouse_host_req_reply) for ps2mouse_host_req_reply
main.o(i.ps2mouse_update) refers to helpers.o(i.ps2mouse_buf_get) for ps2mouse_buf_get
main.o(i.ps2mouse_update) refers to helpers.o(i.ps2mouse_buf_peek) for ps2mouse_buf_peek
main.o(i.ps2mouse_update) refers to ps2mouse.o(i.ps2mouse_send_update) for ps2mouse_send_update
main.o(i.ps2mouse_update) refers to helpers.o(i.ps2mouse_buf_pop) for ps2mouse_buf_pop
main.o(i.ps2mouse_update) refers to main.o(.data) for .data
main.o(i.ps2mouse_update) refers to main.o(.bss) for .bss
stm32f0xx_it.o(i.SPI1_IRQHandler) refers to stm32f0xx_hal_spi.o(i.HAL_SPI_IRQHandler) for HAL_SPI_IRQHandler
@@ -1623,40 +1625,40 @@ Image Symbol Table
../Src/main.c 0x00000000 Number 0 main.o ABSOLUTE
../Src/stm32f0xx_hal_msp.c 0x00000000 Number 0 stm32f0xx_hal_msp.o ABSOLUTE
../Src/stm32f0xx_it.c 0x00000000 Number 0 stm32f0xx_it.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.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 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.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 entry.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/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.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/mvars.c 0x00000000 Number 0 mvars.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.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 printfa.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.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 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE
../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE
@@ -1842,37 +1844,39 @@ Image Symbol Table
i.malloc 0x08002340 Section 0 malloc.o(i.malloc)
i.micros 0x080023ac Section 0 delay_us.o(i.micros)
i.ps2kb_buf_add 0x080023bc Section 0 helpers.o(i.ps2kb_buf_add)
i.ps2kb_buf_get 0x080023ec Section 0 helpers.o(i.ps2kb_buf_get)
i.ps2kb_buf_init 0x0800241a Section 0 helpers.o(i.ps2kb_buf_init)
i.ps2kb_buf_is_full 0x0800243a Section 0 helpers.o(i.ps2kb_buf_is_full)
i.ps2kb_buf_reset 0x08002456 Section 0 helpers.o(i.ps2kb_buf_reset)
i.ps2kb_get_bus_status 0x08002474 Section 0 ps2kb.o(i.ps2kb_get_bus_status)
i.ps2kb_init 0x080024b8 Section 0 ps2kb.o(i.ps2kb_init)
i.ps2kb_press_key 0x080024d4 Section 0 ps2kb.o(i.ps2kb_press_key)
i.ps2kb_read 0x08002618 Section 0 ps2kb.o(i.ps2kb_read)
i.ps2kb_release_lines 0x08002714 Section 0 ps2kb.o(i.ps2kb_release_lines)
i.ps2kb_reset 0x08002734 Section 0 ps2kb.o(i.ps2kb_reset)
i.ps2kb_update 0x08002744 Section 0 main.o(i.ps2kb_update)
i.ps2kb_write 0x080027e0 Section 0 ps2kb.o(i.ps2kb_write)
i.ps2mouse_buf_add 0x08002908 Section 0 helpers.o(i.ps2mouse_buf_add)
i.ps2mouse_buf_get 0x0800293a Section 0 helpers.o(i.ps2mouse_buf_get)
i.ps2mouse_buf_init 0x08002962 Section 0 helpers.o(i.ps2mouse_buf_init)
i.ps2mouse_buf_is_full 0x0800297a Section 0 helpers.o(i.ps2mouse_buf_is_full)
i.ps2mouse_buf_reset 0x08002996 Section 0 helpers.o(i.ps2mouse_buf_reset)
i.ps2mouse_get_bus_status 0x080029ac Section 0 ps2mouse.o(i.ps2mouse_get_bus_status)
i.ps2mouse_host_req_reply 0x08002a0c Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
i.ps2mouse_init 0x08002bbc Section 0 ps2mouse.o(i.ps2mouse_init)
i.ps2mouse_read 0x08002bd8 Section 0 ps2mouse.o(i.ps2mouse_read)
i.ps2mouse_release_lines 0x08002cd4 Section 0 ps2mouse.o(i.ps2mouse_release_lines)
i.ps2mouse_reset 0x08002cf4 Section 0 ps2mouse.o(i.ps2mouse_reset)
i.ps2mouse_restore_defaults 0x08002d0c Section 0 ps2mouse.o(i.ps2mouse_restore_defaults)
i.ps2mouse_send_update 0x08002d30 Section 0 ps2mouse.o(i.ps2mouse_send_update)
i.ps2mouse_update 0x08002e00 Section 0 main.o(i.ps2mouse_update)
i.ps2mouse_write 0x08002e48 Section 0 ps2mouse.o(i.ps2mouse_write)
i.reset_accumulators 0x08002f70 Section 0 ps2mouse.o(i.reset_accumulators)
.constdata 0x08002f80 Section 121 ps2kb.o(.constdata)
.constdata 0x08002ff9 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08003009 Section 8 system_stm32f0xx.o(.constdata)
i.ps2kb_buf_init 0x080023ec Section 0 helpers.o(i.ps2kb_buf_init)
i.ps2kb_buf_is_full 0x0800240c Section 0 helpers.o(i.ps2kb_buf_is_full)
i.ps2kb_buf_peek 0x08002428 Section 0 helpers.o(i.ps2kb_buf_peek)
i.ps2kb_buf_pop 0x08002448 Section 0 helpers.o(i.ps2kb_buf_pop)
i.ps2kb_buf_reset 0x08002460 Section 0 helpers.o(i.ps2kb_buf_reset)
i.ps2kb_get_bus_status 0x0800247c Section 0 ps2kb.o(i.ps2kb_get_bus_status)
i.ps2kb_init 0x080024c0 Section 0 ps2kb.o(i.ps2kb_init)
i.ps2kb_press_key 0x080024dc Section 0 ps2kb.o(i.ps2kb_press_key)
i.ps2kb_read 0x08002620 Section 0 ps2kb.o(i.ps2kb_read)
i.ps2kb_release_lines 0x0800271c Section 0 ps2kb.o(i.ps2kb_release_lines)
i.ps2kb_reset 0x0800273c Section 0 ps2kb.o(i.ps2kb_reset)
i.ps2kb_update 0x0800274c Section 0 main.o(i.ps2kb_update)
i.ps2kb_write 0x080027dc Section 0 ps2kb.o(i.ps2kb_write)
i.ps2mouse_buf_add 0x08002904 Section 0 helpers.o(i.ps2mouse_buf_add)
i.ps2mouse_buf_init 0x08002936 Section 0 helpers.o(i.ps2mouse_buf_init)
i.ps2mouse_buf_is_full 0x0800294e Section 0 helpers.o(i.ps2mouse_buf_is_full)
i.ps2mouse_buf_peek 0x0800296a Section 0 helpers.o(i.ps2mouse_buf_peek)
i.ps2mouse_buf_pop 0x08002980 Section 0 helpers.o(i.ps2mouse_buf_pop)
i.ps2mouse_buf_reset 0x08002998 Section 0 helpers.o(i.ps2mouse_buf_reset)
i.ps2mouse_get_bus_status 0x080029b0 Section 0 ps2mouse.o(i.ps2mouse_get_bus_status)
i.ps2mouse_host_req_reply 0x08002a10 Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
i.ps2mouse_init 0x08002bc0 Section 0 ps2mouse.o(i.ps2mouse_init)
i.ps2mouse_read 0x08002bdc Section 0 ps2mouse.o(i.ps2mouse_read)
i.ps2mouse_release_lines 0x08002cd8 Section 0 ps2mouse.o(i.ps2mouse_release_lines)
i.ps2mouse_reset 0x08002cf8 Section 0 ps2mouse.o(i.ps2mouse_reset)
i.ps2mouse_restore_defaults 0x08002d10 Section 0 ps2mouse.o(i.ps2mouse_restore_defaults)
i.ps2mouse_send_update 0x08002d34 Section 0 ps2mouse.o(i.ps2mouse_send_update)
i.ps2mouse_update 0x08002e04 Section 0 main.o(i.ps2mouse_update)
i.ps2mouse_write 0x08002e54 Section 0 ps2mouse.o(i.ps2mouse_write)
i.reset_accumulators 0x08002f7c Section 0 ps2mouse.o(i.reset_accumulators)
.constdata 0x08002f8c Section 121 ps2kb.o(.constdata)
.constdata 0x08003005 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08003015 Section 8 system_stm32f0xx.o(.constdata)
.data 0x20000000 Section 4 delay_us.o(.data)
.data 0x20000004 Section 20 ps2kb.o(.data)
.data 0x20000018 Section 40 ps2mouse.o(.data)
@@ -2036,40 +2040,42 @@ Image Symbol Table
malloc 0x08002341 Thumb Code 92 malloc.o(i.malloc)
micros 0x080023ad Thumb Code 10 delay_us.o(i.micros)
ps2kb_buf_add 0x080023bd Thumb Code 48 helpers.o(i.ps2kb_buf_add)
ps2kb_buf_get 0x080023ed Thumb Code 46 helpers.o(i.ps2kb_buf_get)
ps2kb_buf_init 0x0800241b Thumb Code 32 helpers.o(i.ps2kb_buf_init)
ps2kb_buf_is_full 0x0800243b Thumb Code 28 helpers.o(i.ps2kb_buf_is_full)
ps2kb_buf_reset 0x08002457 Thumb Code 28 helpers.o(i.ps2kb_buf_reset)
ps2kb_get_bus_status 0x08002475 Thumb Code 62 ps2kb.o(i.ps2kb_get_bus_status)
ps2kb_init 0x080024b9 Thumb Code 22 ps2kb.o(i.ps2kb_init)
ps2kb_press_key 0x080024d5 Thumb Code 314 ps2kb.o(i.ps2kb_press_key)
ps2kb_read 0x08002619 Thumb Code 246 ps2kb.o(i.ps2kb_read)
ps2kb_release_lines 0x08002715 Thumb Code 26 ps2kb.o(i.ps2kb_release_lines)
ps2kb_reset 0x08002735 Thumb Code 12 ps2kb.o(i.ps2kb_reset)
ps2kb_update 0x08002745 Thumb Code 138 main.o(i.ps2kb_update)
ps2kb_write 0x080027e1 Thumb Code 292 ps2kb.o(i.ps2kb_write)
ps2mouse_buf_add 0x08002909 Thumb Code 50 helpers.o(i.ps2mouse_buf_add)
ps2mouse_buf_get 0x0800293b Thumb Code 40 helpers.o(i.ps2mouse_buf_get)
ps2mouse_buf_init 0x08002963 Thumb Code 24 helpers.o(i.ps2mouse_buf_init)
ps2mouse_buf_is_full 0x0800297b Thumb Code 28 helpers.o(i.ps2mouse_buf_is_full)
ps2mouse_buf_reset 0x08002997 Thumb Code 22 helpers.o(i.ps2mouse_buf_reset)
ps2mouse_get_bus_status 0x080029ad Thumb Code 92 ps2mouse.o(i.ps2mouse_get_bus_status)
ps2mouse_host_req_reply 0x08002a0d Thumb Code 426 ps2mouse.o(i.ps2mouse_host_req_reply)
ps2mouse_init 0x08002bbd Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
ps2mouse_read 0x08002bd9 Thumb Code 246 ps2mouse.o(i.ps2mouse_read)
ps2mouse_release_lines 0x08002cd5 Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
ps2mouse_reset 0x08002cf5 Thumb Code 20 ps2mouse.o(i.ps2mouse_reset)
ps2mouse_restore_defaults 0x08002d0d Thumb Code 30 ps2mouse.o(i.ps2mouse_restore_defaults)
ps2mouse_send_update 0x08002d31 Thumb Code 202 ps2mouse.o(i.ps2mouse_send_update)
ps2mouse_update 0x08002e01 Thumb Code 62 main.o(i.ps2mouse_update)
ps2mouse_write 0x08002e49 Thumb Code 292 ps2mouse.o(i.ps2mouse_write)
reset_accumulators 0x08002f71 Thumb Code 12 ps2mouse.o(i.reset_accumulators)
linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x08002f80 Data 89 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x08002fd9 Data 32 ps2kb.o(.constdata)
AHBPrescTable 0x08002ff9 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08003009 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08003014 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08003034 Number 0 anon$$obj.o(Region$$Table)
ps2kb_buf_init 0x080023ed Thumb Code 32 helpers.o(i.ps2kb_buf_init)
ps2kb_buf_is_full 0x0800240d Thumb Code 28 helpers.o(i.ps2kb_buf_is_full)
ps2kb_buf_peek 0x08002429 Thumb Code 32 helpers.o(i.ps2kb_buf_peek)
ps2kb_buf_pop 0x08002449 Thumb Code 24 helpers.o(i.ps2kb_buf_pop)
ps2kb_buf_reset 0x08002461 Thumb Code 28 helpers.o(i.ps2kb_buf_reset)
ps2kb_get_bus_status 0x0800247d Thumb Code 62 ps2kb.o(i.ps2kb_get_bus_status)
ps2kb_init 0x080024c1 Thumb Code 22 ps2kb.o(i.ps2kb_init)
ps2kb_press_key 0x080024dd Thumb Code 314 ps2kb.o(i.ps2kb_press_key)
ps2kb_read 0x08002621 Thumb Code 246 ps2kb.o(i.ps2kb_read)
ps2kb_release_lines 0x0800271d Thumb Code 26 ps2kb.o(i.ps2kb_release_lines)
ps2kb_reset 0x0800273d Thumb Code 12 ps2kb.o(i.ps2kb_reset)
ps2kb_update 0x0800274d Thumb Code 130 main.o(i.ps2kb_update)
ps2kb_write 0x080027dd Thumb Code 292 ps2kb.o(i.ps2kb_write)
ps2mouse_buf_add 0x08002905 Thumb Code 50 helpers.o(i.ps2mouse_buf_add)
ps2mouse_buf_init 0x08002937 Thumb Code 24 helpers.o(i.ps2mouse_buf_init)
ps2mouse_buf_is_full 0x0800294f Thumb Code 28 helpers.o(i.ps2mouse_buf_is_full)
ps2mouse_buf_peek 0x0800296b Thumb Code 22 helpers.o(i.ps2mouse_buf_peek)
ps2mouse_buf_pop 0x08002981 Thumb Code 24 helpers.o(i.ps2mouse_buf_pop)
ps2mouse_buf_reset 0x08002999 Thumb Code 22 helpers.o(i.ps2mouse_buf_reset)
ps2mouse_get_bus_status 0x080029b1 Thumb Code 92 ps2mouse.o(i.ps2mouse_get_bus_status)
ps2mouse_host_req_reply 0x08002a11 Thumb Code 426 ps2mouse.o(i.ps2mouse_host_req_reply)
ps2mouse_init 0x08002bc1 Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
ps2mouse_read 0x08002bdd Thumb Code 246 ps2mouse.o(i.ps2mouse_read)
ps2mouse_release_lines 0x08002cd9 Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
ps2mouse_reset 0x08002cf9 Thumb Code 20 ps2mouse.o(i.ps2mouse_reset)
ps2mouse_restore_defaults 0x08002d11 Thumb Code 30 ps2mouse.o(i.ps2mouse_restore_defaults)
ps2mouse_send_update 0x08002d35 Thumb Code 202 ps2mouse.o(i.ps2mouse_send_update)
ps2mouse_update 0x08002e05 Thumb Code 70 main.o(i.ps2mouse_update)
ps2mouse_write 0x08002e55 Thumb Code 290 ps2mouse.o(i.ps2mouse_write)
reset_accumulators 0x08002f7d Thumb Code 12 ps2mouse.o(i.reset_accumulators)
linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x08002f8c Data 89 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x08002fe5 Data 32 ps2kb.o(.constdata)
AHBPrescTable 0x08003005 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08003015 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08003020 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08003040 Number 0 anon$$obj.o(Region$$Table)
us_timer 0x20000000 Data 4 delay_us.o(.data)
ps2kb_current_scancode_set 0x20000004 Data 1 ps2kb.o(.data)
ps2kb_data_reporting_enabled 0x20000005 Data 1 ps2kb.o(.data)
@@ -2130,193 +2136,195 @@ Memory Map of the image
Image Entry point : 0x080000c1
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00003098, Max: 0x00010000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000030a4, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00003034, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00003040, 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 3658 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
0x080000c0 0x080000c0 0x00000004 Code RO 3959 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
0x080000c4 0x080000c4 0x00000004 Code RO 3962 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3964 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3966 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
0x080000c8 0x080000c8 0x00000008 Code RO 3967 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3969 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3971 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
0x080000d0 0x080000d0 0x00000004 Code RO 3960 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
0x080000c0 0x080000c0 0x00000000 Code RO 3670 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
0x080000c0 0x080000c0 0x00000004 Code RO 3971 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
0x080000c4 0x080000c4 0x00000004 Code RO 3974 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3976 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3978 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
0x080000c8 0x080000c8 0x00000008 Code RO 3979 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3981 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3983 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
0x080000d0 0x080000d0 0x00000004 Code RO 3972 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
0x080000d4 0x080000d4 0x0000001c Code RO 4 .text startup_stm32f072xb.o
0x080000f0 0x080000f0 0x0000002c Code RO 3661 .text mc_p.l(uidiv.o)
0x0800011c 0x0800011c 0x00000024 Code RO 3665 .text mc_p.l(memcpya.o)
0x08000140 0x08000140 0x00000024 Code RO 3667 .text mc_p.l(memseta.o)
0x08000164 0x08000164 0x00000024 Code RO 3989 .text mc_p.l(init.o)
0x08000188 0x08000188 0x00000048 Code RO 3105 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x080001d0 0x080001d0 0x0000001c Code RO 2908 i.HAL_Delay stm32f0xx_hal.o
0x080001ec 0x080001ec 0x00000158 Code RO 3043 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x08000344 0x08000344 0x0000000a Code RO 3045 i.HAL_GPIO_ReadPin stm32f0xx_hal_gpio.o
0x0800034e 0x0800034e 0x00000008 Code RO 3046 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o
0x08000356 0x08000356 0x0000000c Code RO 3047 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x080000f0 0x080000f0 0x0000002c Code RO 3673 .text mc_p.l(uidiv.o)
0x0800011c 0x0800011c 0x00000024 Code RO 3677 .text mc_p.l(memcpya.o)
0x08000140 0x08000140 0x00000024 Code RO 3679 .text mc_p.l(memseta.o)
0x08000164 0x08000164 0x00000024 Code RO 4001 .text mc_p.l(init.o)
0x08000188 0x08000188 0x00000048 Code RO 3117 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x080001d0 0x080001d0 0x0000001c Code RO 2920 i.HAL_Delay stm32f0xx_hal.o
0x080001ec 0x080001ec 0x00000158 Code RO 3055 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x08000344 0x08000344 0x0000000a Code RO 3057 i.HAL_GPIO_ReadPin stm32f0xx_hal_gpio.o
0x0800034e 0x0800034e 0x00000008 Code RO 3058 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o
0x08000356 0x08000356 0x0000000c Code RO 3059 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x08000362 0x08000362 0x00000002 PAD
0x08000364 0x08000364 0x0000000c Code RO 2912 i.HAL_GetTick stm32f0xx_hal.o
0x08000370 0x08000370 0x0000004a Code RO 1052 i.HAL_I2CEx_ConfigAnalogFilter stm32f0xx_hal_i2c_ex.o
0x080003ba 0x080003ba 0x00000048 Code RO 1053 i.HAL_I2CEx_ConfigDigitalFilter stm32f0xx_hal_i2c_ex.o
0x08000364 0x08000364 0x0000000c Code RO 2924 i.HAL_GetTick stm32f0xx_hal.o
0x08000370 0x08000370 0x0000004a Code RO 1064 i.HAL_I2CEx_ConfigAnalogFilter stm32f0xx_hal_i2c_ex.o
0x080003ba 0x080003ba 0x00000048 Code RO 1065 i.HAL_I2CEx_ConfigDigitalFilter stm32f0xx_hal_i2c_ex.o
0x08000402 0x08000402 0x00000002 PAD
0x08000404 0x08000404 0x000000b4 Code RO 639 i.HAL_I2C_Init stm32f0xx_hal_i2c.o
0x080004b8 0x080004b8 0x0000004c Code RO 561 i.HAL_I2C_MspInit stm32f0xx_hal_msp.o
0x08000504 0x08000504 0x00000010 Code RO 2916 i.HAL_IncTick stm32f0xx_hal.o
0x08000514 0x08000514 0x00000020 Code RO 2917 i.HAL_Init stm32f0xx_hal.o
0x08000534 0x08000534 0x00000022 Code RO 2918 i.HAL_InitTick stm32f0xx_hal.o
0x08000404 0x08000404 0x000000b4 Code RO 651 i.HAL_I2C_Init stm32f0xx_hal_i2c.o
0x080004b8 0x080004b8 0x0000004c Code RO 573 i.HAL_I2C_MspInit stm32f0xx_hal_msp.o
0x08000504 0x08000504 0x00000010 Code RO 2928 i.HAL_IncTick stm32f0xx_hal.o
0x08000514 0x08000514 0x00000020 Code RO 2929 i.HAL_Init stm32f0xx_hal.o
0x08000534 0x08000534 0x00000022 Code RO 2930 i.HAL_InitTick stm32f0xx_hal.o
0x08000556 0x08000556 0x00000002 PAD
0x08000558 0x08000558 0x00000044 Code RO 562 i.HAL_MspInit stm32f0xx_hal_msp.o
0x0800059c 0x0800059c 0x00000014 Code RO 3200 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x080005b0 0x080005b0 0x00000008 Code RO 3204 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x080005b8 0x080005b8 0x0000001c Code RO 3205 i.HAL_NVIC_SystemReset stm32f0xx_hal_cortex.o
0x080005d4 0x080005d4 0x00000120 Code RO 2828 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o
0x080006f4 0x080006f4 0x00000154 Code RO 2726 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x08000848 0x08000848 0x0000000c Code RO 2731 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000854 0x08000854 0x00000020 Code RO 2733 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x08000874 0x08000874 0x00000088 Code RO 2734 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x080008fc 0x080008fc 0x000003d8 Code RO 2737 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000cd4 0x08000cd4 0x00000002 Code RO 1109 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x08000558 0x08000558 0x00000044 Code RO 574 i.HAL_MspInit stm32f0xx_hal_msp.o
0x0800059c 0x0800059c 0x00000014 Code RO 3212 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x080005b0 0x080005b0 0x00000008 Code RO 3216 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x080005b8 0x080005b8 0x0000001c Code RO 3217 i.HAL_NVIC_SystemReset stm32f0xx_hal_cortex.o
0x080005d4 0x080005d4 0x00000120 Code RO 2840 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o
0x080006f4 0x080006f4 0x00000154 Code RO 2738 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x08000848 0x08000848 0x0000000c Code RO 2743 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000854 0x08000854 0x00000020 Code RO 2745 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x08000874 0x08000874 0x00000088 Code RO 2746 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x080008fc 0x080008fc 0x000003d8 Code RO 2749 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000cd4 0x08000cd4 0x00000002 Code RO 1121 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x08000cd6 0x08000cd6 0x00000002 PAD
0x08000cd8 0x08000cd8 0x000000d4 Code RO 1112 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x08000dac 0x08000dac 0x000000b8 Code RO 1113 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x08000e64 0x08000e64 0x00000054 Code RO 564 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x08000eb8 0x08000eb8 0x00000002 Code RO 1119 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x08000cd8 0x08000cd8 0x000000d4 Code RO 1124 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x08000dac 0x08000dac 0x000000b8 Code RO 1125 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x08000e64 0x08000e64 0x00000054 Code RO 576 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x08000eb8 0x08000eb8 0x00000002 Code RO 1131 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x08000eba 0x08000eba 0x00000002 PAD
0x08000ebc 0x08000ebc 0x000000d4 Code RO 1124 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x08000f90 0x08000f90 0x000000dc Code RO 398 i.HAL_SPI_TxRxCpltCallback main.o
0x0800106c 0x0800106c 0x00000018 Code RO 3206 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x08001084 0x08001084 0x00000002 Code RO 3207 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x08000ebc 0x08000ebc 0x000000d4 Code RO 1136 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x08000f90 0x08000f90 0x000000dc Code RO 410 i.HAL_SPI_TxRxCpltCallback main.o
0x0800106c 0x0800106c 0x00000018 Code RO 3218 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x08001084 0x08001084 0x00000002 Code RO 3219 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x08001086 0x08001086 0x00000002 PAD
0x08001088 0x08001088 0x00000030 Code RO 3208 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x080010b8 0x080010b8 0x00000008 Code RO 3209 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x080010c0 0x080010c0 0x00000048 Code RO 2101 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x08001108 0x08001108 0x00000034 Code RO 1447 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x0800113c 0x0800113c 0x00000024 Code RO 566 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08001160 0x08001160 0x00000018 Code RO 1450 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x08001178 0x08001178 0x000000ee Code RO 1456 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x08001266 0x08001266 0x00000002 Code RO 2670 i.HAL_UARTEx_WakeupCallback stm32f0xx_hal_uart_ex.o
0x08001268 0x08001268 0x00000002 Code RO 2345 i.HAL_UART_ErrorCallback stm32f0xx_hal_uart.o
0x08001088 0x08001088 0x00000030 Code RO 3220 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x080010b8 0x080010b8 0x00000008 Code RO 3221 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x080010c0 0x080010c0 0x00000048 Code RO 2113 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x08001108 0x08001108 0x00000034 Code RO 1459 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x0800113c 0x0800113c 0x00000024 Code RO 578 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08001160 0x08001160 0x00000018 Code RO 1462 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x08001178 0x08001178 0x000000ee Code RO 1468 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x08001266 0x08001266 0x00000002 Code RO 2682 i.HAL_UARTEx_WakeupCallback stm32f0xx_hal_uart_ex.o
0x08001268 0x08001268 0x00000002 Code RO 2357 i.HAL_UART_ErrorCallback stm32f0xx_hal_uart.o
0x0800126a 0x0800126a 0x00000002 PAD
0x0800126c 0x0800126c 0x00000134 Code RO 2348 i.HAL_UART_IRQHandler stm32f0xx_hal_uart.o
0x080013a0 0x080013a0 0x0000006c Code RO 2349 i.HAL_UART_Init stm32f0xx_hal_uart.o
0x0800140c 0x0800140c 0x00000090 Code RO 568 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x0800149c 0x0800149c 0x00000002 Code RO 2355 i.HAL_UART_RxCpltCallback stm32f0xx_hal_uart.o
0x0800149e 0x0800149e 0x000000c8 Code RO 2357 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x08001566 0x08001566 0x00000002 Code RO 2360 i.HAL_UART_TxCpltCallback stm32f0xx_hal_uart.o
0x08001568 0x08001568 0x00000002 Code RO 500 i.HardFault_Handler stm32f0xx_it.o
0x0800126c 0x0800126c 0x00000134 Code RO 2360 i.HAL_UART_IRQHandler stm32f0xx_hal_uart.o
0x080013a0 0x080013a0 0x0000006c Code RO 2361 i.HAL_UART_Init stm32f0xx_hal_uart.o
0x0800140c 0x0800140c 0x00000090 Code RO 580 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x0800149c 0x0800149c 0x00000002 Code RO 2367 i.HAL_UART_RxCpltCallback stm32f0xx_hal_uart.o
0x0800149e 0x0800149e 0x000000c8 Code RO 2369 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x08001566 0x08001566 0x00000002 Code RO 2372 i.HAL_UART_TxCpltCallback stm32f0xx_hal_uart.o
0x08001568 0x08001568 0x00000002 Code RO 512 i.HardFault_Handler stm32f0xx_it.o
0x0800156a 0x0800156a 0x00000002 PAD
0x0800156c 0x0800156c 0x0000011c Code RO 399 i.MX_GPIO_Init main.o
0x08001688 0x08001688 0x00000054 Code RO 400 i.MX_I2C2_Init main.o
0x080016dc 0x080016dc 0x0000003c Code RO 401 i.MX_SPI1_Init main.o
0x08001718 0x08001718 0x00000054 Code RO 402 i.MX_TIM2_Init main.o
0x0800176c 0x0800176c 0x00000038 Code RO 403 i.MX_USART1_UART_Init main.o
0x080017a4 0x080017a4 0x00000048 Code RO 404 i.MX_USART3_UART_Init main.o
0x080017ec 0x080017ec 0x00000002 Code RO 501 i.NMI_Handler stm32f0xx_it.o
0x0800156c 0x0800156c 0x0000011c Code RO 411 i.MX_GPIO_Init main.o
0x08001688 0x08001688 0x00000054 Code RO 412 i.MX_I2C2_Init main.o
0x080016dc 0x080016dc 0x0000003c Code RO 413 i.MX_SPI1_Init main.o
0x08001718 0x08001718 0x00000054 Code RO 414 i.MX_TIM2_Init main.o
0x0800176c 0x0800176c 0x00000038 Code RO 415 i.MX_USART1_UART_Init main.o
0x080017a4 0x080017a4 0x00000048 Code RO 416 i.MX_USART3_UART_Init main.o
0x080017ec 0x080017ec 0x00000002 Code RO 513 i.NMI_Handler stm32f0xx_it.o
0x080017ee 0x080017ee 0x00000002 PAD
0x080017f0 0x080017f0 0x00000044 Code RO 3210 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08001834 0x08001834 0x00000002 Code RO 502 i.PendSV_Handler stm32f0xx_it.o
0x080017f0 0x080017f0 0x00000044 Code RO 3222 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08001834 0x08001834 0x00000002 Code RO 514 i.PendSV_Handler stm32f0xx_it.o
0x08001836 0x08001836 0x00000002 PAD
0x08001838 0x08001838 0x00000010 Code RO 503 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001848 0x08001848 0x00000036 Code RO 1131 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x0800187e 0x0800187e 0x0000005e Code RO 1132 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x080018dc 0x080018dc 0x00000034 Code RO 1133 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x08001910 0x08001910 0x00000048 Code RO 1134 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x08001958 0x08001958 0x00000052 Code RO 1137 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x080019aa 0x080019aa 0x00000012 Code RO 1140 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x080019bc 0x080019bc 0x0000004c Code RO 1151 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x08001a08 0x08001a08 0x00000096 Code RO 1156 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x08001a9e 0x08001a9e 0x0000008c Code RO 1157 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x08001b2a 0x08001b2a 0x00000002 Code RO 504 i.SVC_Handler stm32f0xx_it.o
0x08001b2c 0x08001b2c 0x0000000c Code RO 505 i.SysTick_Handler stm32f0xx_it.o
0x08001b38 0x08001b38 0x0000006a Code RO 405 i.SystemClock_Config main.o
0x08001838 0x08001838 0x00000010 Code RO 515 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001848 0x08001848 0x00000036 Code RO 1143 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x0800187e 0x0800187e 0x0000005e Code RO 1144 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x080018dc 0x080018dc 0x00000034 Code RO 1145 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x08001910 0x08001910 0x00000048 Code RO 1146 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x08001958 0x08001958 0x00000052 Code RO 1149 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x080019aa 0x080019aa 0x00000012 Code RO 1152 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x080019bc 0x080019bc 0x0000004c Code RO 1163 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x08001a08 0x08001a08 0x00000096 Code RO 1168 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x08001a9e 0x08001a9e 0x0000008c Code RO 1169 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x08001b2a 0x08001b2a 0x00000002 Code RO 516 i.SVC_Handler stm32f0xx_it.o
0x08001b2c 0x08001b2c 0x0000000c Code RO 517 i.SysTick_Handler stm32f0xx_it.o
0x08001b38 0x08001b38 0x0000006a Code RO 417 i.SystemClock_Config main.o
0x08001ba2 0x08001ba2 0x00000002 PAD
0x08001ba4 0x08001ba4 0x0000005c Code RO 3627 i.SystemInit system_stm32f0xx.o
0x08001c00 0x08001c00 0x00000094 Code RO 1533 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08001c94 0x08001c94 0x00000016 Code RO 1540 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x08001caa 0x08001caa 0x00000010 Code RO 1541 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x08001cba 0x08001cba 0x00000022 Code RO 1547 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x08001cdc 0x08001cdc 0x00000026 Code RO 1549 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x08001d02 0x08001d02 0x000000ca Code RO 2362 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08001dcc 0x08001dcc 0x00000074 Code RO 2363 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x08001e40 0x08001e40 0x00000014 Code RO 2364 i.UART_DMAAbortOnError stm32f0xx_hal_uart.o
0x08001e54 0x08001e54 0x0000001e Code RO 2374 i.UART_EndRxTransfer stm32f0xx_hal_uart.o
0x08001e72 0x08001e72 0x0000001a Code RO 2375 i.UART_EndTransmit_IT stm32f0xx_hal_uart.o
0x08001e8c 0x08001e8c 0x0000007a Code RO 2377 i.UART_Receive_IT stm32f0xx_hal_uart.o
0x08001ba4 0x08001ba4 0x0000005c Code RO 3639 i.SystemInit system_stm32f0xx.o
0x08001c00 0x08001c00 0x00000094 Code RO 1545 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08001c94 0x08001c94 0x00000016 Code RO 1552 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x08001caa 0x08001caa 0x00000010 Code RO 1553 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x08001cba 0x08001cba 0x00000022 Code RO 1559 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x08001cdc 0x08001cdc 0x00000026 Code RO 1561 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x08001d02 0x08001d02 0x000000ca Code RO 2374 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08001dcc 0x08001dcc 0x00000074 Code RO 2375 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x08001e40 0x08001e40 0x00000014 Code RO 2376 i.UART_DMAAbortOnError stm32f0xx_hal_uart.o
0x08001e54 0x08001e54 0x0000001e Code RO 2386 i.UART_EndRxTransfer stm32f0xx_hal_uart.o
0x08001e72 0x08001e72 0x0000001a Code RO 2387 i.UART_EndTransmit_IT stm32f0xx_hal_uart.o
0x08001e8c 0x08001e8c 0x0000007a Code RO 2389 i.UART_Receive_IT stm32f0xx_hal_uart.o
0x08001f06 0x08001f06 0x00000002 PAD
0x08001f08 0x08001f08 0x0000015c Code RO 2378 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08002064 0x08002064 0x00000066 Code RO 2379 i.UART_Transmit_IT stm32f0xx_hal_uart.o
0x080020ca 0x080020ca 0x00000062 Code RO 2380 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x0800212c 0x0800212c 0x00000010 Code RO 506 i.USART3_4_IRQHandler stm32f0xx_it.o
0x0800213c 0x0800213c 0x00000014 Code RO 3672 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 4001 i.__scatterload_copy mc_p.l(handlers.o)
0x08002178 0x08002178 0x00000002 Code RO 4002 i.__scatterload_null mc_p.l(handlers.o)
0x0800217a 0x0800217a 0x0000000e Code RO 4003 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08002188 0x08002188 0x0000001e Code RO 3679 i._printf_core mc_p.l(printfb.o)
0x080021a6 0x080021a6 0x00000008 Code RO 407 i.byte_to_int16_t main.o
0x08001f08 0x08001f08 0x0000015c Code RO 2390 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08002064 0x08002064 0x00000066 Code RO 2391 i.UART_Transmit_IT stm32f0xx_hal_uart.o
0x080020ca 0x080020ca 0x00000062 Code RO 2392 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x0800212c 0x0800212c 0x00000010 Code RO 518 i.USART3_4_IRQHandler stm32f0xx_it.o
0x0800213c 0x0800213c 0x00000014 Code RO 3684 i.__0printf$bare mc_p.l(printfb.o)
0x08002150 0x08002150 0x0000001a Code RO 321 i.__ARM_common_switch8 ps2kb.o
0x0800216a 0x0800216a 0x0000000e Code RO 4013 i.__scatterload_copy mc_p.l(handlers.o)
0x08002178 0x08002178 0x00000002 Code RO 4014 i.__scatterload_null mc_p.l(handlers.o)
0x0800217a 0x0800217a 0x0000000e Code RO 4015 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08002188 0x08002188 0x0000001e Code RO 3691 i._printf_core mc_p.l(printfb.o)
0x080021a6 0x080021a6 0x00000008 Code RO 419 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 408 i.fputc main.o
0x080021ec 0x080021ec 0x000000b4 Code RO 245 i.keyboard_reply ps2kb.o
0x080022a0 0x080022a0 0x000000a0 Code RO 409 i.main main.o
0x08002340 0x08002340 0x0000006c Code RO 3932 i.malloc mc_p.l(malloc.o)
0x080021d4 0x080021d4 0x00000018 Code RO 420 i.fputc main.o
0x080021ec 0x080021ec 0x000000b4 Code RO 257 i.keyboard_reply ps2kb.o
0x080022a0 0x080022a0 0x000000a0 Code RO 421 i.main main.o
0x08002340 0x08002340 0x0000006c Code RO 3944 i.malloc mc_p.l(malloc.o)
0x080023ac 0x080023ac 0x00000010 Code RO 14 i.micros delay_us.o
0x080023bc 0x080023bc 0x00000030 Code RO 149 i.ps2kb_buf_add helpers.o
0x080023ec 0x080023ec 0x0000002e Code RO 150 i.ps2kb_buf_get helpers.o
0x0800241a 0x0800241a 0x00000020 Code RO 151 i.ps2kb_buf_init helpers.o
0x0800243a 0x0800243a 0x0000001c Code RO 153 i.ps2kb_buf_is_full helpers.o
0x08002456 0x08002456 0x0000001c Code RO 154 i.ps2kb_buf_reset helpers.o
0x08002472 0x08002472 0x00000002 PAD
0x08002474 0x08002474 0x00000044 Code RO 247 i.ps2kb_get_bus_status ps2kb.o
0x080024b8 0x080024b8 0x0000001c Code RO 248 i.ps2kb_init ps2kb.o
0x080024d4 0x080024d4 0x00000144 Code RO 249 i.ps2kb_press_key ps2kb.o
0x08002618 0x08002618 0x000000fc Code RO 250 i.ps2kb_read ps2kb.o
0x08002714 0x08002714 0x00000020 Code RO 251 i.ps2kb_release_lines ps2kb.o
0x08002734 0x08002734 0x00000010 Code RO 252 i.ps2kb_reset ps2kb.o
0x08002744 0x08002744 0x0000009c Code RO 410 i.ps2kb_update main.o
0x080027e0 0x080027e0 0x00000128 Code RO 253 i.ps2kb_write ps2kb.o
0x08002908 0x08002908 0x00000032 Code RO 155 i.ps2mouse_buf_add helpers.o
0x0800293a 0x0800293a 0x00000028 Code RO 156 i.ps2mouse_buf_get helpers.o
0x08002962 0x08002962 0x00000018 Code RO 157 i.ps2mouse_buf_init helpers.o
0x0800297a 0x0800297a 0x0000001c Code RO 159 i.ps2mouse_buf_is_full helpers.o
0x08002996 0x08002996 0x00000016 Code RO 160 i.ps2mouse_buf_reset helpers.o
0x080029ac 0x080029ac 0x00000060 Code RO 320 i.ps2mouse_get_bus_status ps2mouse.o
0x08002a0c 0x08002a0c 0x000001b0 Code RO 321 i.ps2mouse_host_req_reply ps2mouse.o
0x08002bbc 0x08002bbc 0x0000001c Code RO 322 i.ps2mouse_init ps2mouse.o
0x08002bd8 0x08002bd8 0x000000fc Code RO 323 i.ps2mouse_read ps2mouse.o
0x08002cd4 0x08002cd4 0x00000020 Code RO 324 i.ps2mouse_release_lines ps2mouse.o
0x08002cf4 0x08002cf4 0x00000018 Code RO 325 i.ps2mouse_reset ps2mouse.o
0x08002d0c 0x08002d0c 0x00000024 Code RO 326 i.ps2mouse_restore_defaults ps2mouse.o
0x08002d30 0x08002d30 0x000000d0 Code RO 327 i.ps2mouse_send_update ps2mouse.o
0x08002e00 0x08002e00 0x00000048 Code RO 411 i.ps2mouse_update main.o
0x08002e48 0x08002e48 0x00000128 Code RO 328 i.ps2mouse_write ps2mouse.o
0x08002f70 0x08002f70 0x00000010 Code RO 329 i.reset_accumulators ps2mouse.o
0x08002f80 0x08002f80 0x00000079 Data RO 254 .constdata ps2kb.o
0x08002ff9 0x08002ff9 0x00000010 Data RO 3628 .constdata system_stm32f0xx.o
0x08003009 0x08003009 0x00000008 Data RO 3629 .constdata system_stm32f0xx.o
0x08003011 0x08003011 0x00000003 PAD
0x08003014 0x08003014 0x00000020 Data RO 3999 Region$$Table anon$$obj.o
0x080023ec 0x080023ec 0x00000020 Code RO 150 i.ps2kb_buf_init helpers.o
0x0800240c 0x0800240c 0x0000001c Code RO 152 i.ps2kb_buf_is_full helpers.o
0x08002428 0x08002428 0x00000020 Code RO 153 i.ps2kb_buf_peek helpers.o
0x08002448 0x08002448 0x00000018 Code RO 154 i.ps2kb_buf_pop helpers.o
0x08002460 0x08002460 0x0000001c Code RO 155 i.ps2kb_buf_reset helpers.o
0x0800247c 0x0800247c 0x00000044 Code RO 259 i.ps2kb_get_bus_status ps2kb.o
0x080024c0 0x080024c0 0x0000001c Code RO 260 i.ps2kb_init ps2kb.o
0x080024dc 0x080024dc 0x00000144 Code RO 261 i.ps2kb_press_key ps2kb.o
0x08002620 0x08002620 0x000000fc Code RO 262 i.ps2kb_read ps2kb.o
0x0800271c 0x0800271c 0x00000020 Code RO 263 i.ps2kb_release_lines ps2kb.o
0x0800273c 0x0800273c 0x00000010 Code RO 264 i.ps2kb_reset ps2kb.o
0x0800274c 0x0800274c 0x00000090 Code RO 422 i.ps2kb_update main.o
0x080027dc 0x080027dc 0x00000128 Code RO 265 i.ps2kb_write ps2kb.o
0x08002904 0x08002904 0x00000032 Code RO 156 i.ps2mouse_buf_add helpers.o
0x08002936 0x08002936 0x00000018 Code RO 157 i.ps2mouse_buf_init helpers.o
0x0800294e 0x0800294e 0x0000001c Code RO 159 i.ps2mouse_buf_is_full helpers.o
0x0800296a 0x0800296a 0x00000016 Code RO 160 i.ps2mouse_buf_peek helpers.o
0x08002980 0x08002980 0x00000018 Code RO 161 i.ps2mouse_buf_pop helpers.o
0x08002998 0x08002998 0x00000016 Code RO 162 i.ps2mouse_buf_reset helpers.o
0x080029ae 0x080029ae 0x00000002 PAD
0x080029b0 0x080029b0 0x00000060 Code RO 332 i.ps2mouse_get_bus_status ps2mouse.o
0x08002a10 0x08002a10 0x000001b0 Code RO 333 i.ps2mouse_host_req_reply ps2mouse.o
0x08002bc0 0x08002bc0 0x0000001c Code RO 334 i.ps2mouse_init ps2mouse.o
0x08002bdc 0x08002bdc 0x000000fc Code RO 335 i.ps2mouse_read ps2mouse.o
0x08002cd8 0x08002cd8 0x00000020 Code RO 336 i.ps2mouse_release_lines ps2mouse.o
0x08002cf8 0x08002cf8 0x00000018 Code RO 337 i.ps2mouse_reset ps2mouse.o
0x08002d10 0x08002d10 0x00000024 Code RO 338 i.ps2mouse_restore_defaults ps2mouse.o
0x08002d34 0x08002d34 0x000000d0 Code RO 339 i.ps2mouse_send_update ps2mouse.o
0x08002e04 0x08002e04 0x00000050 Code RO 423 i.ps2mouse_update main.o
0x08002e54 0x08002e54 0x00000128 Code RO 340 i.ps2mouse_write ps2mouse.o
0x08002f7c 0x08002f7c 0x00000010 Code RO 341 i.reset_accumulators ps2mouse.o
0x08002f8c 0x08002f8c 0x00000079 Data RO 266 .constdata ps2kb.o
0x08003005 0x08003005 0x00000010 Data RO 3640 .constdata system_stm32f0xx.o
0x08003015 0x08003015 0x00000008 Data RO 3641 .constdata system_stm32f0xx.o
0x0800301d 0x0800301d 0x00000003 PAD
0x08003020 0x08003020 0x00000020 Data RO 4011 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08003034, Size: 0x000008b0, Max: 0x00004000, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08003040, Size: 0x000008b0, Max: 0x00004000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x08003034 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x08003038 0x00000014 Data RW 255 .data ps2kb.o
0x20000018 0x0800304c 0x00000028 Data RW 330 .data ps2mouse.o
0x20000040 0x08003074 0x00000010 Data RW 413 .data main.o
0x20000050 0x08003084 0x00000004 Data RW 2923 .data stm32f0xx_hal.o
0x20000054 0x08003088 0x00000004 Data RW 3630 .data system_stm32f0xx.o
0x20000058 0x0800308c 0x00000004 Data RW 3973 .data mc_p.l(stdout.o)
0x2000005c 0x08003090 0x00000004 Data RW 3976 .data mc_p.l(mvars.o)
0x20000060 0x08003094 0x00000004 Data RW 3977 .data mc_p.l(mvars.o)
0x20000064 - 0x00000248 Zero RW 412 .bss main.o
0x200002ac 0x08003098 0x00000004 PAD
0x20000000 0x08003040 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x08003044 0x00000014 Data RW 267 .data ps2kb.o
0x20000018 0x08003058 0x00000028 Data RW 342 .data ps2mouse.o
0x20000040 0x08003080 0x00000010 Data RW 425 .data main.o
0x20000050 0x08003090 0x00000004 Data RW 2935 .data stm32f0xx_hal.o
0x20000054 0x08003094 0x00000004 Data RW 3642 .data system_stm32f0xx.o
0x20000058 0x08003098 0x00000004 Data RW 3985 .data mc_p.l(stdout.o)
0x2000005c 0x0800309c 0x00000004 Data RW 3988 .data mc_p.l(mvars.o)
0x20000060 0x080030a0 0x00000004 Data RW 3989 .data mc_p.l(mvars.o)
0x20000064 - 0x00000248 Zero RW 424 .bss main.o
0x200002ac 0x080030a4 0x00000004 PAD
0x200002b0 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
0x200004b0 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o
@@ -2329,10 +2337,10 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Object Name
52 10 0 4 0 505155 delay_us.o
346 0 0 0 0 7067 helpers.o
1386 150 0 16 584 8697 main.o
362 0 0 0 0 7952 helpers.o
1382 146 0 16 584 8689 main.o
1222 70 121 20 0 7517 ps2kb.o
1420 72 0 40 0 9150 ps2mouse.o
1420 74 0 40 0 9162 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
@@ -2352,7 +2360,7 @@ Image component sizes
92 16 24 4 0 1131 system_stm32f0xx.o
----------------------------------------------------------------------
11608 686 372 88 2124 607156 Object Totals
11620 684 372 88 2124 608045 Object Totals
0 0 32 0 0 0 (incl. Generated)
28 0 3 0 4 0 (incl. Padding)
@@ -2398,15 +2406,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
11968 726 372 100 2124 602416 Grand Totals
11968 726 372 100 2124 602416 ELF Image Totals
11968 726 372 100 0 0 ROM Totals
11980 724 372 100 2124 603217 Grand Totals
11980 724 372 100 2124 603217 ELF Image Totals
11980 724 372 100 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 12340 ( 12.05kB)
Total RO Size (Code + RO Data) 12352 ( 12.06kB)
Total RW Size (RW Data + ZI Data) 2224 ( 2.17kB)
Total ROM Size (Code + RO Data + RW Data) 12440 ( 12.15kB)
Total ROM Size (Code + RO Data + RW Data) 12452 ( 12.16kB)
==============================================================================

View File

@@ -35,11 +35,11 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x5DFA0892)
I (../Drivers/CMSIS/Include/core_cmFunc.h)(0x5DFA0892)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h)(0x5DFA0880)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_cortex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash.h)(0x5DFA0893)
@@ -76,7 +76,7 @@ F (..\Src\ps2kb.c)(0x61B4D059)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --ap
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h)(0x5DFA0893)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h)(0x5DFA0880)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h)(0x5DFA0880)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h)(0x5DFA0880)
I (../Drivers/CMSIS/Include/core_cm0.h)(0x5DFA0892)
I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5D9B4298)
I (../Drivers/CMSIS/Include/core_cmInstr.h)(0x5DFA0892)
@@ -111,11 +111,11 @@ 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)
I (C:\Keil_v5\ARM\ARMCC\include\stdlib.h)(0x5D9B429A)
I (C:\Keil_v5\ARM\ARMCC\include\stdlib.h)(0x5D9B429A)
I (../Inc/helpers.h)(0x61B4EE90)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h)(0x5DFA0893)
I (../Inc/stm32f0xx_hal_conf.h)(0x61AFDCDB)
@@ -151,11 +151,11 @@ I (../Inc/shared.h)(0x617487BD)
I (../Inc/shared.h)(0x617487BD)
I (../Inc/ps2kb.h)(0x617D9759)
I (../Inc/delay_us.h)(0x617487C7)
F (..\Src\ps2mouse.c)(0x61B4A08E)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include
F (..\Src\ps2mouse.c)(0x61B4EDF6)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include
-I.\RTE\_ibmpc
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
-IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include
@@ -190,7 +190,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_i2c.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_i2c_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_pwr.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_pwr_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_pwr_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_spi.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_spi_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim.h)(0x5DFA0893)

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -34,16 +34,21 @@ uint8_t ps2kb_buf_add(ps2kb_buf *lb, uint8_t code, uint8_t value)
return 0;
}
uint8_t ps2kb_buf_get(ps2kb_buf *lb, uint8_t* code, uint8_t* value)
uint8_t ps2kb_buf_peek(ps2kb_buf *lb, uint8_t* code, uint8_t* value)
{
if(ps2kb_buf_is_empty(lb))
return 1;
*code = lb->keycode_buf[lb->tail];
*value = lb->keyvalue_buf[lb->tail];
lb->tail = (lb->tail + 1) % lb->size;
return 0;
}
void ps2kb_buf_pop(ps2kb_buf *lb)
{
if(!ps2kb_buf_is_empty(lb))
lb->tail = (lb->tail + 1) % lb->size;;
}
void ps2kb_buf_init(ps2kb_buf *lb, uint8_t size)
{
lb->size = size;
@@ -73,14 +78,17 @@ uint8_t ps2mouse_buf_add(ps2mouse_buf *lb, mouse_event* event)
return 0;
}
mouse_event* ps2mouse_buf_get(ps2mouse_buf *lb)
mouse_event* ps2mouse_buf_peek(ps2mouse_buf *lb)
{
mouse_event* to_return = NULL;
if(ps2mouse_buf_is_empty(lb))
return to_return;
to_return = &lb->mouse_events[lb->tail];
lb->tail = (lb->tail + 1) % lb->size;
return to_return;
return NULL;
return &lb->mouse_events[lb->tail];
}
void ps2mouse_buf_pop(ps2mouse_buf *lb)
{
if(!ps2mouse_buf_is_empty(lb))
lb->tail = (lb->tail + 1) % lb->size;
}
void ps2mouse_buf_reset(ps2mouse_buf *lb)

View File

@@ -153,9 +153,12 @@ void ps2mouse_update(void)
ps2mouse_read(&ps2mouse_host_cmd, 10);
ps2mouse_host_req_reply(ps2mouse_host_cmd, &latest_mouse_event);
}
mouse_event* this_mouse_event = ps2mouse_buf_get(&my_ps2mouse_buf);
mouse_event* this_mouse_event = ps2mouse_buf_peek(&my_ps2mouse_buf);
if(this_mouse_event != NULL)
{
ps2mouse_send_update(this_mouse_event);
ps2mouse_buf_pop(&my_ps2mouse_buf);
}
}
void ps2kb_update(void)
@@ -182,8 +185,11 @@ void ps2kb_update(void)
}
}
if(ps2kb_buf_get(&my_ps2kb_buf, &buffered_code, &buffered_value) == 0)
if(ps2kb_buf_peek(&my_ps2kb_buf, &buffered_code, &buffered_value) == 0)
{
ps2kb_press_key(buffered_code, buffered_value);
ps2kb_buf_pop(&my_ps2kb_buf);
}
}
/* USER CODE END 0 */

View File

@@ -71,7 +71,7 @@ void ps2mouse_restore_defaults()
ps2mouse_sampling_rate = 100;
ps2mouse_resolution = 2;
ps2mouse_scale = 1;
ps2mouse_data_reporting_enabled = 0;
ps2mouse_data_reporting_enabled = 1;
ps2mouse_current_mode = PS2MOUSE_MODE_STREAM;
ps2mouse_prev_mode = PS2MOUSE_MODE_STREAM;
reset_accumulators();
@@ -157,7 +157,6 @@ uint8_t ps2mouse_read(uint8_t* result, uint8_t timeout_ms)
uint8_t ps2mouse_write(uint8_t data, uint8_t delay_start, uint8_t timeout_ms)
{
uint8_t i;
uint8_t parity = 1;
ps2mouse_wait_start = HAL_GetTick();
@@ -179,7 +178,7 @@ uint8_t ps2mouse_write(uint8_t data, uint8_t delay_start, uint8_t timeout_ms)
PS2MOUSE_CLK_HI();
delay_us(CLKHALF);
for (i=0; i < 8; i++)
for (int i=0; i < 8; i++)
{
if (data & 0x01)
PS2MOUSE_DATA_HI();