fixed ps/2 mouse line idle detection bug

This commit is contained in:
dekunukem
2022-05-12 22:59:11 +01:00
parent 1977603fcd
commit 32ecf689ff
15 changed files with 1537 additions and 375 deletions

View File

File diff suppressed because one or more lines are too long

View File

Binary file not shown.

View File

@@ -28,17 +28,17 @@ Project File Date: 03/28/2022
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'ibmpc'
compiling main.c...
../Src/main.c(511): warning: #188-D: enumerated type mixed with another type
../Src/main.c(517): warning: #188-D: enumerated type mixed with another type
HAL_GPIO_WritePin(GAMEPAD_B1_GPIO_Port, GAMEPAD_B1_Pin, !(this_gamepad_event->button_1));
../Src/main.c(512): warning: #188-D: enumerated type mixed with another type
../Src/main.c(518): warning: #188-D: enumerated type mixed with another type
HAL_GPIO_WritePin(GAMEPAD_B2_GPIO_Port, GAMEPAD_B2_Pin, !(this_gamepad_event->button_2));
../Src/main.c(513): warning: #188-D: enumerated type mixed with another type
../Src/main.c(519): warning: #188-D: enumerated type mixed with another type
HAL_GPIO_WritePin(GAMEPAD_B3_GPIO_Port, GAMEPAD_B3_Pin, !(this_gamepad_event->button_3));
../Src/main.c(514): warning: #188-D: enumerated type mixed with another type
../Src/main.c(520): warning: #188-D: enumerated type mixed with another type
HAL_GPIO_WritePin(GAMEPAD_B4_GPIO_Port, GAMEPAD_B4_Pin, !(this_gamepad_event->button_4));
../Src/main.c: 4 warnings, 0 errors
linking...
Program Size: Code=17196 RO-data=768 RW-data=136 ZI-data=2320
Program Size: Code=17224 RO-data=768 RW-data=136 ZI-data=2320
FromELF: creating hex file...
"ibmpc\ibmpc.axf" - 0 Error(s), 4 Warning(s).
@@ -63,7 +63,7 @@ Package Vendor: Keil
<h2>Collection of Component Files used:</h2>
* Component: ARM::CMSIS:CORE:5.3.0
Build Time Elapsed: 00:00:02
Build Time Elapsed: 00:00:01
</pre>
</body>
</html>

View File

@@ -24,8 +24,8 @@
:10016000204610BD30B504460020034600E05B1C6D
:10017000934203D2E05CCD5C401BF8D030BD000060
:10018000064C0125064E05E0E36807CC2B430C3CEA
:1001900098471034B442F7D3FFF796FF0C46000897
:1001A0002C46000810B5022000F042F810BD70B5D2
:1001900098471034B442F7D3FFF796FF284600087B
:1001A0004846000810B5022000F042F810BD70B5B6
:1001B0000024014620314A78022A03D004218163B9
:1001C000012416E0026813680E25AB431360026831
:1001D00013685B085B0013600122056C1346AB409B
@@ -181,10 +181,10 @@
:100B300009028843E9680843606000F02DF86168A5
:100B4000084A0906090F515CC8400749086000209F
:100B5000FFF790FE0020F8BD002002400010024088
:100B600088130000F1450008780000200148006863
:100B6000881300000D460008780000200148006846
:100B70007047000078000020044805490068496873
:100B8000044A4905490F515CC8407047780000206D
:100B9000001002400146000830B516A30FCB89B003
:100B9000001002401D46000830B516A30FCB89B0E7
:100BA0006C460FC417A30FCB0FC41A494A680C2018
:100BB000144604401848042C05D0184B082C04D0C7
:100BC0000C2C00D1184609B030BD9402240F6D469C
@@ -317,7 +317,7 @@
:1013B00049032648FEF7FDFF35E02248202140384A
:1013C000FEF7C5FE1F48CD2140380170617841709D
:1013D00080238370C6703978017145710521817150
:1013E000C5710822002105468D356C5C002C0DD09E
:1013E000082200210546C6718D356C5C002C0DD09D
:1013F000022C04D0012C00E00CE002D004E0815467
:1014000002E00C461C438454521CD2B2491C1029E1
:10141000EBDB08E00325605D002804D001F0E6FB6B
@@ -705,13 +705,13 @@
:102BF000C109640EC901102C2BD2254D285D002877
:102C000027D0002926D0022823D122482300FFF70D
:102C100003FE091E060D1E10161E1C191E00FF23A2
:102C200001330246590000F053FC10E001F0F0FAC5
:102C30000DE010230246202101F09CF807E000F08F
:102C200001330246590000F053FC10E001F0FEFAB7
:102C30000DE010230246202101F0AAF807E000F081
:102C4000B1FB04E000F0BAFB01E0FFF7B1FF0120A7
:102C5000285570BD0128FCD1022028552300FFF71C
:102C6000DBFD0805060B050E05051305F1E700F071
:102C7000F3FD00F001FE70BD01F01AFB70BD01F024
:102C800013F901F001F970BDFFF792FF70BD00006C
:102C7000F3FD00F001FE70BD01F028FB70BD01F016
:102C800021F901F00FF970BDFFF792FF70BD000050
:102C90008503002000040048002802D0ED2901D35C
:102CA000002070470B4882780B48012A04D0022A82
:102CB00006D0032A08D00BE08E2909D2042206E0B0
@@ -756,13 +756,13 @@
:102F200069F9FEF74FFEFEF7F9FEFEF721FFFEF707
:102F30003DFFFEF765FFFEF789FF634861490160C9
:102F4000032141606149C1608160FDF741FC0028B7
:102F500000D0FEE75C48FDF76DFC002105200191E3
:102F600000900B4622785A495AA0FFF745FC564874
:102F500000D0FEE75C48FDF76DFC012105200191E2
:102F60000090002322785A495AA0FFF745FC5648A2
:102F70007430FFF761FD00F077FAFF2501355A4EF6
:102F80006F0032462B463946104600F0A1FA324611
:102F90002B463946104601F045F9324610232021D0
:102FA000104600F0E7FE0220FFF798FE002801D04F
:102FB00001F02EF910214D48FFF7B2FE40481021D4
:102F90002B463946104601F053F9324610232021C2
:102FA000104600F0F5FE0220FFF798FE002801D041
:102FB00001F03CF910214D48FFF7B2FE40481021C6
:102FC0001C3000F0B2F93E4810212430FFF761FDBB
:102FD00000F0ECF8454820216038FDF7B8F8434A86
:102FE0003948203A1146202340391030FEF7F8F8CE
@@ -771,16 +771,16 @@
:103010003220FDF7F0F87F1C0A2FF5DB0122082192
:103020003046FDF7C6F90927FF062748FDF702FCE1
:103030000420FFF753FE002809D00121C9033046C0
:10304000FDF7AEF9002802D000F05AFF0EE005208F
:10304000FDF7AEF9002802D000F068FF0EE0052081
:10305000FFF744FE002802D000F0E2F806E0082066
:10306000FFF73CFE002801D000F0B2F90120FFF785
:1030700035FE002808D029463846FDF791F900288A
:1030800002D000F00BFC0CE00220FFF727FE002826
:1030900007D029463846FDF783F9002801D001F012
:1030A00027F90720FFF71AFE002801D0FFF72EFDB1
:1030B000607A0028B9D001F037F80000C0F7FF1F90
:1030A00035F90720FFF71AFE002801D0FFF72EFDA3
:1030B000607A0028B9D001F045F80000C0F7FF1F82
:1030C000480000200030004064010020FF0F000095
:1030D000BA45000825730A72657625642076256452
:1030D000D645000825730A72657625642076256436
:1030E0002E25642E25640A000004004858030020A1
:1030F000666C6173685F73697A653A2025640A00BB
:103100004469676974616C20706F74206E6F7420FD
@@ -799,7 +799,7 @@
:1031D00010BD00000004004803B583B0042802D3EA
:1031E000FF2005B000BD08496423085C01210007E9
:1031F000020E04A80293019100900B465821034847
:10320000FDF716FAEDE70000B645000818010020AA
:10320000FDF716FAEDE70000D2450008180100208E
:10321000024800680068406A704700000000002013
:1032200070B5334D287A0026002807D04D20E8716C
:103230000122E91D2F48FEF78AFB2E722C481C3014
@@ -876,7 +876,7 @@
:1036A00000F056F9002815D114220021772000F0EF
:1036B0004FF900280ED110BD022010BD14220121A7
:1036C00020468CE714220021E02000F041F9002878
:1036D00000D149E7082010BD032010BD3D4500087A
:1036D00000D149E7082010BD032010BD594500085E
:1036E00010B5C32801D3052010BD1A4A145CFF2C65
:1036F00003D08E2C03D3062010BD022010BD164827
:103700000129025D04D0002910D002291BD01EE03F
@@ -884,7 +884,7 @@
:10372000204600F015F900280BD110E0022A01D044
:10373000012A0CD114220021F02000F009F9002800
:10374000ECD0082010BD012AE8D0042AE6D00020E1
:1037500010BD0000EC43000888000020F3B581B0E4
:1037500010BD00000844000888000020F3B581B0C7
:103760000F4600250126FCF72BFE3A4C206107E0AE
:10377000FCF726FE2169401AB84201D30420FEBDA1
:10378000FFF784FE0128F3D11220FFF74BF9002246
@@ -904,7 +904,7 @@
:10386000A068FCF7A6FD0122E188E068FCF7A1FD55
:1038700010BD00000400002010B5054802210170B1
:10388000012141708E2203490348FCF747FC10BD1B
:1038900004000020AF4400088800002038B5FFF77E
:1038900004000020CB4400088800002038B5FFF762
:1038A000F5FD284C0228A07114D0012815D003285A
:1038B0000FD1221D511E2448FFF750FA002808D1CD
:1038C0002179E078FFF712FE082836D01E48FFF76E
@@ -916,220 +916,221 @@
:10392000C170A20700D50171620700D54171012263
:1039300051030648FCF73DFD38BD0120FCF75BFC58
:1039400038BD00004800002058030020000800484F
:10395000F8B515460E460746FCF732FD0C4C2061C3
:1039600007E0FCF72DFD2169401AA84201D3012090
:10397000F8BDFFF78BFD0328F3D1002E03D0AF2055
:103980008000FFF74FF8384600F004F8F8BD00005B
:1039900004000020F8B5474C054601260022E188C6
:1039A000E068FCF706FD1220FFF73CF80022A18832
:1039B000A068FCF7FEFC2420FFF734F80122A18860
:1039C000A068FCF7F6FC1220FFF72CF8A188A0688D
:1039D000FCF7E6FC002868D00027E80701D00122A8
:1039E00000E00022E188E068FCF7E3FC1220FFF72A
:1039F00019F80022A188A068FCF7DBFC2420FFF75F
:103A000011F80122A188A068FCF7D3FC1220FFF76F
:103A100009F8A188A068FCF7C3FC002845D0E80796
:103A2000C00F46406D087F1C082FD6DB002E01D04A
:103A3000012200E00022E188E068FCF7BAFC1220D5
:103A4000FEF7F0FF0022A188A068FCF7B2FC24205A
:103A5000FEF7E8FF0122A188A068FCF7AAFC12206B
:103A6000FEF7E0FFA188A068FCF79AFC00281CD0B4
:103A70000122E188E068FCF79CFC1220FEF7D2FFEF
:103A80000022A188A068FCF794FC2420FEF7CAFF5E
:103A90000122A188A068FCF78CFC1220FEF7C2FF6F
:103AA000C820FEF7BFFF0020F8BDFFF7D5FE0820B5
:103AB000F8BD00000400002010B5164C6189206993
:103AC000FCF76EFC012805D12189E068FCF768FC51
:103AD000012806D061892069FCF762FC012802D028
:103AE00007E0032010BD2189E068FCF759FC00289D
:103AF00006D061892069FCF753FC002802D007E05A
:103B0000022010BD2189E068FCF74AFC0128F8D0AA
:103B1000002010BD18000020F8B5374E054630785B
:103B20000C46002804D0B079002803D00620F8BD48
:103B30000120F8BD0821601CFCF709FB0320207060
:103B400008206070A879002801D009206070287AC8
:103B50000221002802D0607808436070E8790422CE
:103B6000002802D06078104360700020285E102387
:103B7000002802DA6078184360700220285E20274F
:103B8000002802DA6078384360702878A070A8783E
:103B9000E0707079032806D0042806D0002800D0F1
:103BA00022700020F8BD28791EE0687A002802D033
:103BB000207918432071A87A002802D02079384350
:103BC000207105202856002801DD207903E0002817
:103BD00003DA20790E21084320710420285600289A
:103BE00004DD2079012105E02071D9E70028D7DA2A
:103BF00020790F210843F7E718000020F8B50025C9
:103C00000E46FF2810D0E63800210127584C03004B
:103C1000FEF702FE11A0A69063619B9B9B5A9B54EA
:103C20009B331E1C1A179B0000F03EF91421FA204A
:103C300000F0D6F9FA21AA2000F0C5F914210020DD
:103C400075E000F03DF980E021707EE027707CE0B7
:103C50001421FA2000F0C4F945489621401C00F0D8
:103C600097F800282FD142492079143162780A54FC
:103C700007286AD2401C207167E01421FA2000F066
:103C8000AFF92179022916D9394814304018203863
:103C9000C17F50290FD1817F642902D0C82905D066
:103CA00009E0407FC82806D1032003E0407FC828F0
:103CB00001D1042060711421607938E01421FA20C8
:103CC00000F08EF9A771F8BD1421FA2000F088F9F0
:103CD0000220A071F8BDA17137E01421FA2000F094
:103CE0007FF9A079012800D140252078002801D053
:103CF00020200543E078022801D110200543B07947
:103D0000002801D004200543F079002801D00220CA
:103D10000543307A002800D03D431421284600F0A6
:103D200052F91421A07800F04EF91421607800F0C7
:103D30004AF9F8BD1421FA2000F052F90C489621F6
:103D4000801C00F025F80028F3D11421FA2000F09F
:103D500047F9F8BD1421FA2000F042F9E770F8BDE8
:103D60001421FA2000F03CF90220E070F8BD0000B8
:103D70001800002010B5054CE060218122616381AC
:103D800000F092F800F080F810BD0000180000204C
:103D9000F3B581B00F4600250126FCF711FB044660
:103DA00006E0FCF70DFB001BB84201D30420FEBD6A
:103DB000FFF782FE0128F4D11220FEF733FE314CCA
:103DC00000222189E068FCF7F4FA2420FEF72AFE9D
:103DD00001222189E068FCF7ECFA1220FEF722FEAE
:103DE00061892069FCF7DCFA012800D135437004B1
:103DF000060C1220FEF716FE00222189E068FCF76F
:103E0000D8FA2420FEF70EFE01222189E068FCF793
:103E1000D0FA1220FEF706FEFF2EE1D91220FEF79F
:103E200001FE00222189E068FCF7C3FA2420FEF796
:103E3000F9FD01222189E068FCF7BBFA1220FEF7A8
:103E4000F1FD1220FEF7EEFD002261892069FCF7EA
:103E5000B0FA00222189E068FCF7ABFA2420FEF7D3
:103E6000E1FD01222189E068FCF7A3FA1220FEF7A8
:103E7000D9FD012261892069FCF79BFA0198057040
:103E80000020FEBD1800002010B5064C012221893B
:103E9000E068FCF78EFA012261892069FCF789FA53
:103EA00010BD00001800002000B500F009F803491B
:103EB0000020087148618861487100BD1800002029
:103EC000054864214170022181700121C1700021E7
:103ED00001708171704700001800002070B5054620
:103EE000002407E028194078C82100F06CF8002869
:103EF00004D1641C2878A042F4DC002070BD0000CE
:103F000070B5FFF7D9FD234C0228607111D001284C
:103F100012D020461C30FFF722FA002808D01E4994
:103F2000FFF7FAFD002812D020461C30FFF722FAD6
:103F300070BDFFF7A9FF70BD16480A21801CFFF76E
:103F400027FF1549A0781839FFF758FE70BD1248B1
:103F5000FFF7C4FF002817D0104D01220821284682
:103F6000FCF727FAFCF72CFA044604E0FCF728FAE1
:103F7000001B192803D8FFF79FFD0328F6D1002264
:103F800008212846FCF715FA02481C30FFF7FEF915
:103F900070BD0000480000207C03002000040048A1
:103FA00070B50546FCF70CFA044606E0FCF708FA83
:103FB000001BA84201D3042070BDFFF77DFD03283C
:103FC000F4D1002070BD10B504460846FFF7E8FFA5
:103FD000002801D0042010BD204600F013F810BDC9
:103FE00010B504460846FFF7DBFF002801D0042087
:103FF00010BDAF208000FEF715FD204600F002F84E
:1040000010BD0000F8B5474C054601260022618925
:104010002069FCF7CEF91220FEF704FD0022218969
:10402000E068FCF7C6F92420FEF7FCFC0122218998
:10403000E068FCF7BEF91220FEF7F4FC2189E06885
:10404000FCF7AEF9002868D00027E80701D001226C
:1040500000E0002261892069FCF7ABF91220FEF72D
:10406000E1FC00222189E068FCF7A3F92420FEF797
:10407000D9FC01222189E068FCF79BF91220FEF7A8
:10408000D1FC2189E068FCF78BF9002845D0E807CE
:10409000C00F46406D087F1C082FD6DB002E01D0D4
:1040A000012200E0002261892069FCF782F91220D8
:1040B000FEF7B8FC00222189E068FCF77AF9242099
:1040C000FEF7B0FC01222189E068FCF772F91220AA
:1040D000FEF7A8FC2189E068FCF762F900281CD0F3
:1040E000012261892069FCF764F91220FEF79AFC2D
:1040F00000222189E068FCF75CF92420FEF792FC9D
:1041000001222189E068FCF754F91220FEF78AFCAD
:10411000FA20FEF787FC0020F8BDFFF7B5FE082067
:10412000F8BD00001800002011A0FEF765FB134D3C
:104130000024295D12A0FEF75FFB641C202CF8DB35
:1041400010A0FEF759FB134D002408212846FCF768
:104150002CF96420FCF74FF8641C642CF5DBBFF3EA
:104160004F8F0E490C48C860BFF34F8F00BFFDE76B
:10417000535049204552524F520A00001803002064
:10418000256420000A7265626F6F74696E672E2E57
:104190002E0A0000000400480400FA0500ED00E0CB
:1041A00070B50646FCF70CF90446084D06E0FCF72E
:1041B00007F9001BB04201D9042070BD2988686846
:1041C000FCF7EEF80028F2D0002070BD340000208B
:1041D00010B50E4C21886068FCF7E2F8012802D186
:1041E000FCF7EEF8E060FCF7EBF8E168401A142801
:1041F0000BD9C820FFF7D4FF1420FBF7FCFFAA203F
:1042000000F094F80A20FBF7F6FF10BD3400002000
:1042100010B500F05DF8FCF7D3F80149C86010BD97
:104220003400002010B5034C60602180A2606380E0
:1042300010BD00003400002070B50446663803004D
:10424000FEF7EAFA0A1406080A0C0E101216181ADB
:10425000482413E04A2411E04B240FE04E240DE0E3
:104260004F240BE0502409E0512407E0472405E0E7
:10427000522403E0532401E0532C0BD8022902D02E
:1042800000290DD00EE0FCF79BF8084D2969401A73
:10429000502801D8002070BDFCF792F8286101E099
:1042A00080200443204600F041F870BD3400002017
:1042B00010B5064C012221886068FCF77AF80122CB
:1042C0006188A068FCF775F810BD0000340000207C
:1042D00010B5064C012221886068FCF76AF80022BC
:1042E0006188A068FCF765F810BD0000340000206C
:1042F00010B5FFF76DFF0B4A0B48511EFEF72EFD60
:1043000000280AD10748001F0179C078FFF794FF01
:10431000452803D00448FEF731FD10BD0120FBF70E
:104320006AFF10BD4C0000205803002070B52E4CD1
:10433000054621886068FCF733F800282AD000225F
:1043400021886068FCF735F80520FEF76BFB012239
:104350006188A068FCF72DF86E20FEF763FB61888A
:10436000A068FCF71DF8002814D00122218860689D
:10437000FCF71FF84120FEF755FB002221886068FA
:10438000FCF717F81E20FEF74DFB0026E80705D0C6
:10439000012204E0FFF79CFF452070BD00226188E8
:1043A000A068FCF706F8012221886068FCF701F894
:1043B0004120FEF737FB002221886068FBF7F9FFF8
:1043C0001E20FEF72FFB6D08761C082EDEDB012277
:1043D00021886068FBF7EDFF00226188A068FBF789
:1043E000E8FF002070BD000034000020FF08161E0A
:1043F00026252E363D3E46454E55660D151D242D6F
:104400002C353C43444D545B5A111C1B232B343335
:104410003B424B4C520E125C1A22212A32313A4155
:10442000494A597E192914070F171F272F373F476D
:104430004F765F6C757D4E6B73747C69727A7071A8
:10444000FFFF13565EFFFFFFFFFFFFFF79584A573C
:1044500039FF6E636F616A65606D6764FFFFFFFF20
:10446000FFFFFF62FFFFFFFFFF8B8C8DFFFFFFFF52
:10447000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C
:10448000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C
:10395000F8B515460E460746144CFCF731FD2061BC
:1039600007E0FCF72DFD2169401AA84201D304208D
:10397000F8BDFFF78BFD0328F3D1FFF749FC206169
:1039800003E0FFF783FD0328E7D1FFF741FC21693E
:10399000401A3C28F5D3002E03D0AF208000FFF75B
:1039A00041F8384600F004F8F8BD0000040000209B
:1039B000F8B5474C054601260022E188E068FCF78F
:1039C000F8FC1220FFF72EF80022A188A068FCF76F
:1039D000F0FC2420FFF726F80122A188A068FCF75C
:1039E000E8FC1220FFF71EF8A188A068FCF7D8FCBD
:1039F000002868D00027E80701D0012200E000225B
:103A0000E188E068FCF7D5FC1220FFF70BF80022F4
:103A1000A188A068FCF7CDFC2420FFF703F8012261
:103A2000A188A068FCF7C5FC1220FEF7FBFFA18867
:103A3000A068FCF7B5FC002845D0E807C00F464059
:103A40006D087F1C082FD6DB002E01D0012200E07C
:103A50000022E188E068FCF7ACFC1220FEF7E2FFF0
:103A60000022A188A068FCF7A4FC2420FEF7DAFF5E
:103A70000122A188A068FCF79CFC1220FEF7D2FF6F
:103A8000A188A068FCF78CFC00281CD00122E188EA
:103A9000E068FCF78EFC1220FEF7C4FF0022A1882C
:103AA000A068FCF786FC2420FEF7BCFF0122A18859
:103AB000A068FCF77EFC1220FEF7B4FFC820FEF7DA
:103AC000B1FF0020F8BDFFF7C7FE0820F8BD0000D9
:103AD0000400002010B5164C61892069FCF760FCD9
:103AE000012805D12189E068FCF75AFC012806D09D
:103AF00061892069FCF754FC012802D007E003200B
:103B000010BD2189E068FCF74BFC002806D06189D4
:103B10002069FCF745FC002802D007E0022010BD18
:103B20002189E068FCF73CFC0128F8D0002010BD9A
:103B300018000020F8B5374E054630780C460028AE
:103B400004D0B079002803D00620F8BD0120F8BDCC
:103B50000821601CFCF7FBFA03202070082060702D
:103B6000A879002801D009206070287A0221002855
:103B700002D0607808436070E8790422002802D0FF
:103B80006078104360700020285E1023002802DA5D
:103B90006078184360700220285E2027002802DA2F
:103BA0006078384360702878A070A878E0707079E9
:103BB000032806D0042806D0002800D02270002058
:103BC000F8BD28791EE0687A002802D020791843D1
:103BD0002071A87A002802D020793843207105206E
:103BE0002856002801DD207903E0002803DA207937
:103BF0000E210843207104202856002804DD207976
:103C0000012105E02071D9E70028D7DA20790F21BA
:103C10000843F7E718000020F8B500250E46FF28F6
:103C200010D0E63800210127584C0300FEF7F4FDC0
:103C300011A0A69063619B9B9B5A9B549B331E1CB7
:103C40001A179B0000F03EF91421FA2000F0D6F973
:103C5000FA21AA2000F0C5F91421002075E000F037
:103C60003DF980E021707EE027707CE01421FA208D
:103C700000F0C4F945489621401C00F097F8002850
:103C80002FD142492079143162780A5407286AD228
:103C9000401C207167E01421FA2000F0AFF921796F
:103CA000022916D93948143040182038C17F5029CC
:103CB0000FD1817F642902D0C82905D009E0407F57
:103CC000C82806D1032003E0407FC82801D1042082
:103CD00060711421607938E01421FA2000F08EF927
:103CE000A771F8BD1421FA2000F088F90220A07114
:103CF000F8BDA17137E01421FA2000F07FF9A07916
:103D0000012800D140252078002801D0202005433B
:103D1000E078022801D110200543B079002801D0B5
:103D200004200543F079002801D002200543307AB1
:103D3000002800D03D431421284600F052F91421F8
:103D4000A07800F04EF91421607800F04AF9F8BD2F
:103D50001421FA2000F052F90C489621801C00F042
:103D600025F80028F3D11421FA2000F047F9F8BD16
:103D70001421FA2000F042F9E770F8BD1421FA206E
:103D800000F03CF90220E070F8BD000018000020AF
:103D900010B5054CE06021812261638100F092F84A
:103DA00000F080F810BD000018000020F3B581B0CD
:103DB0000F4600250126FCF703FB044606E0FCF74E
:103DC000FFFA001BB84201D30420FEBDFFF782FEBC
:103DD0000128F4D11220FEF725FE314C0022218962
:103DE000E068FCF7E6FA2420FEF71CFE0122218998
:103DF000E068FCF7DEFA1220FEF714FE6189206904
:103E0000FCF7CEFA012800D135437004060C1220CD
:103E1000FEF708FE00222189E068FCF7CAFA242098
:103E2000FEF700FE01222189E068FCF7C2FA1220A9
:103E3000FEF7F8FDFF2EE1D91220FEF7F3FD002278
:103E40002189E068FCF7B5FA2420FEF7EBFD01229A
:103E50002189E068FCF7ADFA1220FEF7E3FD12209D
:103E6000FEF7E0FD002261892069FCF7A2FA00223A
:103E70002189E068FCF79DFA2420FEF7D3FD01229A
:103E80002189E068FCF795FA1220FEF7CBFD0122AC
:103E900061892069FCF78DFA019805700020FEBD4C
:103EA0001800002010B5064C01222189E068FCF7BB
:103EB00080FA012261892069FCF77BFA10BD0000BD
:103EC0001800002000B500F009F80349002008712F
:103ED00048618861487100BD1800002005486421D0
:103EE0004170022181700121C17000210170817136
:103EF000704700001800002070B50546002407E058
:103F000028194078C82100F06CF8002804D1641CFE
:103F10002878A042F4DC002070BD000070B5FFF7E7
:103F2000D9FD234C0228607111D0012812D02046FF
:103F30001C30FFF714FA002808D01E49FFF7FAFDDD
:103F4000002812D020461C30FFF714FA70BDFFF78E
:103F5000A9FF70BD16480A21801CFFF727FF1549ED
:103F6000A0781839FFF758FE70BD1248FFF7C4FF5C
:103F7000002817D0104D012208212846FCF719FA15
:103F8000FCF71EFA044604E0FCF71AFA001B192895
:103F900003D8FFF79FFD0328F6D100220821284609
:103FA000FCF707FA02481C30FFF7F0F970BD00007B
:103FB000480000207C0300200004004870B505463E
:103FC000FCF7FEF9044606E0FCF7FAF9001BA842EC
:103FD00001D3042070BDFFF77DFD0328F4D100203C
:103FE00070BD10B504460846FFF7E8FF002801D071
:103FF000042010BD204600F013F810BD10B5044693
:104000000846FFF7DBFF002801D0042010BDAF20D9
:104010008000FEF707FD204600F002F810BD00000A
:10402000F8B5474C05460126002261892069FCF756
:10403000C0F91220FEF7F6FC00222189E068FCF7A7
:10404000B8F92420FEF7EEFC01222189E068FCF794
:10405000B0F91220FEF7E6FC2189E068FCF7A0F930
:10406000002868D00027E80701D0012200E00022E4
:1040700061892069FCF79DF91220FEF7D3FC00222C
:104080002189E068FCF795F92420FEF7CBFC01229A
:104090002189E068FCF78DF91220FEF7C3FC218925
:1040A000E068FCF77DF9002845D0E807C00F4640DE
:1040B0006D087F1C082FD6DB002E01D0012200E006
:1040C000002261892069FCF774F91220FEF7AAFC2E
:1040D00000222189E068FCF76CF92420FEF7A2FC9D
:1040E00001222189E068FCF764F91220FEF79AFCAE
:1040F0002189E068FCF754F900281CD0012261896D
:104100002069FCF756F91220FEF78CFC0022218969
:10411000E068FCF74EF92420FEF784FC0122218997
:10412000E068FCF746F91220FEF77CFCFA20FEF767
:1041300079FC0020F8BDFFF7B5FE0820F8BD0000AF
:104140001800002011A0FEF757FB134D0024295D35
:1041500012A0FEF751FB641C202CF8DB10A0FEF728
:104160004BFB134D002408212846FCF71EF9642060
:10417000FCF741F8641C642CF5DBBFF34F8F0E494C
:104180000C48C860BFF34F8F00BFFDE75350492074
:104190004552524F520A00001803002025642000A7
:1041A0000A7265626F6F74696E672E2E2E0A0000A8
:1041B000000400480400FA0500ED00E070B5064672
:1041C000FCF7FEF80446084D06E0FCF7F9F8001B82
:1041D000B04201D9042070BD29886868FCF7E0F876
:1041E0000028F2D0002070BD3400002010B50E4C25
:1041F00021886068FCF7D4F8012802D1FCF7E0F8C8
:10420000E060FCF7DDF8E168401A14280BD9C820FB
:10421000FFF7D4FF1420FBF7EEFFAA2000F094F87C
:104220000A20FBF7E8FF10BD3400002010B500F0B5
:104230005DF8FCF7C5F80149C86010BD34000020E6
:1042400010B5034C60602180A260638010BD000047
:104250003400002070B5044666380300FEF7DCFA2F
:104260000A1406080A0C0E101216181A482413E035
:104270004A2411E04B240FE04E240DE04F240BE0C4
:10428000502409E0512407E0472405E0522403E0CC
:10429000532401E0532C0BD8022902D000290DD061
:1042A0000EE0FCF78DF8084D2969401A502801D816
:1042B000002070BDFCF784F8286101E080200443F1
:1042C000204600F041F870BD3400002010B5064CC7
:1042D000012221886068FCF76CF801226188A068DF
:1042E000FCF767F810BD00003400002010B5064C44
:1042F000012221886068FCF75CF800226188A068D0
:10430000FCF757F810BD00003400002010B5FFF78F
:104310006DFF0B4A0B48511EFEF720FD00280AD105
:104320000748001F0179C078FFF794FF452803D0A4
:104330000448FEF723FD10BD0120FBF75CFF10BD14
:104340004C0000205803002070B52E4C05462188F3
:104350006068FCF725F800282AD0002221886068D0
:10436000FCF727F80520FEF75DFB01226188A068B5
:10437000FCF71FF86E20FEF755FB6188A068FCF77C
:104380000FF8002814D0012221886068FCF711F88A
:104390004120FEF747FB002221886068FCF709F8FE
:1043A0001E20FEF73FFB0026E80705D0012204E0AF
:1043B000FFF79CFF452070BD00226188A068FBF7D5
:1043C000F8FF012221886068FBF7F3FF4120FEF728
:1043D00029FB002221886068FBF7EBFF1E20FEF717
:1043E00021FB6D08761C082EDEDB01222188606827
:1043F000FBF7DFFF00226188A068FBF7DAFF0020EF
:1044000070BD000034000020FF08161E26252E3641
:104410003D3E46454E55660D151D242D2C353C431D
:10442000444D545B5A111C1B232B34333B424B4CE1
:10443000520E125C1A22212A32313A41494A597EDF
:10444000192914070F171F272F373F474F765F6C27
:10445000757D4E6B73747C69727A7071FFFF1356B1
:104460005EFFFFFFFFFFFFFF79584A5739FF6E637A
:104470006F616A65606D6764FFFFFFFFFFFFFF62AA
:10448000FFFFFFFFFF8B8C8DFFFFFFFFFFFFFFFF95
:10449000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C
:1044A000FFFFFF08101820283038404850575F01A0
:1044B00001010101010103030101010101010301E6
:1044C00002020102010103010201010101010301D4
:1044D00001010101010103010101010101010301C8
:1044E00001010101010103010301010101010301B6
:1044F00001010101010103010101010101010301A8
:104500000101010101030303020101010103030190
:104510000103010103010301030103030303030377
:104520000303030303030301030301010303010165
:1045300001010103010101010101010101FF7616E1
:104540001E26252E363D3E46454E55660D151D242C
:104550002D2C353C43444D545B5A141C1B232B34E7
:10456000333B424B4C520E125D1A22212A32313A11
:1045700041494A597C1129580506040C030B830A4A
:104580000109777E6C757D7B6B73747969727A70C3
:1045900071FFFF6178075A144AFF11FF6C757D6B3C
:1045A0007469727A7071FFFFFFFFFFFFFFFFFFFF6B
:1045B000FFFFFF1F272F00010607555342345643C4
:1045C0002050726F746F636F6C20426F6172640A67
:1045D00049424D20504320436F6D70617469626C95
:1045E000650A64656B754E756B656D2032303232CD
:1045F000000000000000000000010203040607089C
:104600000900000000010203040000002C4600081D
:10461000000000208800000032280008B44600088E
:104620008800002010090000422800080000000057
:104630000201000000000000000000000000000077
:10464000000000000000000000000000000000006A
:1044A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C
:1044B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0803
:1044C000101820283038404850575F010101010181
:1044D00001010303010101010101030102020102C3
:1044E00001010301020101010101030101010101B7
:1044F00001010301010101010101030101010101A8
:104500000101030103010101010103010101010195
:104510000101030101010101010103010101010187
:10452000010303030201010101030301010301016E
:104530000301030103010303030303030303030351
:10454000030303010303010103030101010101034B
:10455000010101010101010101FF76161E26252E30
:10456000363D3E46454E55660D151D242D2C353CD9
:1045700043444D545B5A141C1B232B34333B424B96
:104580004C520E125D1A22212A32313A41494A59BF
:104590007C1129580506040C030B830A0109777E58
:1045A0006C757D7B6B73747969727A7071FFFF61D2
:1045B00078075A144AFF11FF6C757D6B7469727A23
:1045C0007071FFFFFFFFFFFFFFFFFFFFFFFFFF1FF8
:1045D000272F000106075553423456432050726F6F
:1045E000746F636F6C20426F6172640A49424D20A0
:1045F000504320436F6D70617469626C650A646535
:104600006B754E756B656D203230323200000000E4
:104610000000000000010203040607080900000072
:1046200000010203040000004846000800000020CA
:104630008800000032280008D046000888000020CA
:1046400010090000422800080000000002010000DC
:10465000000000000000000000000000000000005A
:10466000000000000000000000000000000000004A
:10467000000000000000000000000000000000003A
:10468000000000000000000000000000000000002A
:10469000000000000000000000000000000000001A
:1046A0000000000000127A0000000000000000007E
:0446B0000000000006
:1046A000000000000000000000000000000000000A
:1046B00000000000000000000000000000000000FA
:1046C00000127A000000000000000000000000005E
:04000005080000C12E
:00000001FF

View File

@@ -3,7 +3,7 @@
<title>Static Call Graph - [ibmpc\ibmpc.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image ibmpc\ibmpc.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Tue May 10 13:07:42 2022
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Thu May 12 22:57:32 2022
<BR><P>
<H3>Maximum Stack Usage = 212 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
@@ -1160,7 +1160,8 @@ Global Symbols
</UL>
<P><STRONG><a name="[95]"></a>micros</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, delay_us.o(i.micros))
<BR><BR>[Called By]<UL><LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
<BR><BR>[Called By]<UL><LI><a href="#[b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
</UL>
<P><STRONG><a name="[be]"></a>microsoft_serial_mouse_update</STRONG> (Thumb, 206 bytes, Stack size 16 bytes, main.o(i.microsoft_serial_mouse_update))
@@ -1367,12 +1368,13 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[b3]"></a>ps2kb_write</STRONG> (Thumb, 62 bytes, Stack size 24 bytes, ps2kb.o(i.ps2kb_write))
<P><STRONG><a name="[b3]"></a>ps2kb_write</STRONG> (Thumb, 90 bytes, Stack size 24 bytes, ps2kb.o(i.ps2kb_write))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = ps2kb_write &rArr; ps2kb_write_nowait &rArr; ps2kb_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write_nowait
<LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_get_bus_status
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;micros
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
</UL>
<BR>[Called By]<UL><LI><a href="#[cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_press_key_scancode_3

View File

@@ -82,6 +82,7 @@ Section Cross References
ps2kb.o(i.ps2kb_reset) refers to ps2kb.o(.bss) for .bss
ps2kb.o(i.ps2kb_write) refers to stm32f0xx_hal.o(i.HAL_GetTick) for HAL_GetTick
ps2kb.o(i.ps2kb_write) refers to ps2kb.o(i.ps2kb_get_bus_status) for ps2kb_get_bus_status
ps2kb.o(i.ps2kb_write) refers to delay_us.o(i.micros) for micros
ps2kb.o(i.ps2kb_write) refers to delay_us.o(i.delay_us) for delay_us
ps2kb.o(i.ps2kb_write) refers to ps2kb.o(i.ps2kb_write_nowait) for ps2kb_write_nowait
ps2kb.o(i.ps2kb_write) refers to ps2kb.o(.data) for .data
@@ -2074,36 +2075,36 @@ Image Symbol Table
i.ps2kb_reset 0x08003878 Section 0 ps2kb.o(i.ps2kb_reset)
i.ps2kb_update 0x0800389c Section 0 main.o(i.ps2kb_update)
i.ps2kb_write 0x08003950 Section 0 ps2kb.o(i.ps2kb_write)
i.ps2kb_write_nowait 0x08003994 Section 0 ps2kb.o(i.ps2kb_write_nowait)
i.ps2mouse_get_bus_status 0x08003ab8 Section 0 ps2mouse.o(i.ps2mouse_get_bus_status)
i.ps2mouse_get_outgoing_data 0x08003b18 Section 0 ps2mouse.o(i.ps2mouse_get_outgoing_data)
i.ps2mouse_host_req_reply 0x08003bfc Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
i.ps2mouse_init 0x08003d74 Section 0 ps2mouse.o(i.ps2mouse_init)
i.ps2mouse_read 0x08003d90 Section 0 ps2mouse.o(i.ps2mouse_read)
i.ps2mouse_release_lines 0x08003e88 Section 0 ps2mouse.o(i.ps2mouse_release_lines)
i.ps2mouse_reset 0x08003ea8 Section 0 ps2mouse.o(i.ps2mouse_reset)
i.ps2mouse_restore_defaults 0x08003ec0 Section 0 ps2mouse.o(i.ps2mouse_restore_defaults)
i.ps2mouse_send_update 0x08003edc Section 0 ps2mouse.o(i.ps2mouse_send_update)
i.ps2mouse_update 0x08003f00 Section 0 main.o(i.ps2mouse_update)
i.ps2mouse_wait_for_idle 0x08003fa0 Section 0 ps2mouse.o(i.ps2mouse_wait_for_idle)
i.ps2mouse_write 0x08003fc6 Section 0 ps2mouse.o(i.ps2mouse_write)
i.ps2mouse_write_delay_start 0x08003fe0 Section 0 ps2mouse.o(i.ps2mouse_write_delay_start)
i.ps2mouse_write_nowait 0x08004004 Section 0 ps2mouse.o(i.ps2mouse_write_nowait)
i.spi_error_dump_reboot 0x08004128 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_for_clk_high 0x080041a0 Section 0 xt_kb.o(i.wait_for_clk_high)
i.xtkb_check_for_softreset 0x080041d0 Section 0 xt_kb.o(i.xtkb_check_for_softreset)
i.xtkb_enable 0x08004210 Section 0 xt_kb.o(i.xtkb_enable)
i.xtkb_init 0x08004224 Section 0 xt_kb.o(i.xtkb_init)
i.xtkb_press_key 0x08004238 Section 0 xt_kb.o(i.xtkb_press_key)
i.xtkb_release_lines 0x080042b0 Section 0 xt_kb.o(i.xtkb_release_lines)
i.xtkb_reset_bus 0x080042d0 Section 0 xt_kb.o(i.xtkb_reset_bus)
i.xtkb_update 0x080042f0 Section 0 main.o(i.xtkb_update)
i.xtkb_write 0x0800432c Section 0 xt_kb.o(i.xtkb_write)
.constdata 0x080043ec Section 458 ps2kb.o(.constdata)
.constdata 0x080045b6 Section 4 mcp4451.o(.constdata)
.constdata 0x080045ba Section 55 main.o(.constdata)
.constdata 0x080045f1 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08004601 Section 8 system_stm32f0xx.o(.constdata)
i.ps2kb_write_nowait 0x080039b0 Section 0 ps2kb.o(i.ps2kb_write_nowait)
i.ps2mouse_get_bus_status 0x08003ad4 Section 0 ps2mouse.o(i.ps2mouse_get_bus_status)
i.ps2mouse_get_outgoing_data 0x08003b34 Section 0 ps2mouse.o(i.ps2mouse_get_outgoing_data)
i.ps2mouse_host_req_reply 0x08003c18 Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
i.ps2mouse_init 0x08003d90 Section 0 ps2mouse.o(i.ps2mouse_init)
i.ps2mouse_read 0x08003dac Section 0 ps2mouse.o(i.ps2mouse_read)
i.ps2mouse_release_lines 0x08003ea4 Section 0 ps2mouse.o(i.ps2mouse_release_lines)
i.ps2mouse_reset 0x08003ec4 Section 0 ps2mouse.o(i.ps2mouse_reset)
i.ps2mouse_restore_defaults 0x08003edc Section 0 ps2mouse.o(i.ps2mouse_restore_defaults)
i.ps2mouse_send_update 0x08003ef8 Section 0 ps2mouse.o(i.ps2mouse_send_update)
i.ps2mouse_update 0x08003f1c Section 0 main.o(i.ps2mouse_update)
i.ps2mouse_wait_for_idle 0x08003fbc Section 0 ps2mouse.o(i.ps2mouse_wait_for_idle)
i.ps2mouse_write 0x08003fe2 Section 0 ps2mouse.o(i.ps2mouse_write)
i.ps2mouse_write_delay_start 0x08003ffc Section 0 ps2mouse.o(i.ps2mouse_write_delay_start)
i.ps2mouse_write_nowait 0x08004020 Section 0 ps2mouse.o(i.ps2mouse_write_nowait)
i.spi_error_dump_reboot 0x08004144 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_for_clk_high 0x080041bc Section 0 xt_kb.o(i.wait_for_clk_high)
i.xtkb_check_for_softreset 0x080041ec Section 0 xt_kb.o(i.xtkb_check_for_softreset)
i.xtkb_enable 0x0800422c Section 0 xt_kb.o(i.xtkb_enable)
i.xtkb_init 0x08004240 Section 0 xt_kb.o(i.xtkb_init)
i.xtkb_press_key 0x08004254 Section 0 xt_kb.o(i.xtkb_press_key)
i.xtkb_release_lines 0x080042cc Section 0 xt_kb.o(i.xtkb_release_lines)
i.xtkb_reset_bus 0x080042ec Section 0 xt_kb.o(i.xtkb_reset_bus)
i.xtkb_update 0x0800430c Section 0 main.o(i.xtkb_update)
i.xtkb_write 0x08004348 Section 0 xt_kb.o(i.xtkb_write)
.constdata 0x08004408 Section 458 ps2kb.o(.constdata)
.constdata 0x080045d2 Section 4 mcp4451.o(.constdata)
.constdata 0x080045d6 Section 55 main.o(.constdata)
.constdata 0x0800460d Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x0800461d Section 8 system_stm32f0xx.o(.constdata)
.data 0x20000000 Section 4 delay_us.o(.data)
.data 0x20000004 Section 20 ps2kb.o(.data)
.data 0x20000018 Section 28 ps2mouse.o(.data)
@@ -2357,42 +2358,42 @@ Image Symbol Table
ps2kb_release_lines 0x08003859 Thumb Code 26 ps2kb.o(i.ps2kb_release_lines)
ps2kb_reset 0x08003879 Thumb Code 24 ps2kb.o(i.ps2kb_reset)
ps2kb_update 0x0800389d Thumb Code 166 main.o(i.ps2kb_update)
ps2kb_write 0x08003951 Thumb Code 62 ps2kb.o(i.ps2kb_write)
ps2kb_write_nowait 0x08003995 Thumb Code 286 ps2kb.o(i.ps2kb_write_nowait)
ps2mouse_get_bus_status 0x08003ab9 Thumb Code 92 ps2mouse.o(i.ps2mouse_get_bus_status)
ps2mouse_get_outgoing_data 0x08003b19 Thumb Code 224 ps2mouse.o(i.ps2mouse_get_outgoing_data)
ps2mouse_host_req_reply 0x08003bfd Thumb Code 370 ps2mouse.o(i.ps2mouse_host_req_reply)
ps2mouse_init 0x08003d75 Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
ps2mouse_read 0x08003d91 Thumb Code 244 ps2mouse.o(i.ps2mouse_read)
ps2mouse_release_lines 0x08003e89 Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
ps2mouse_reset 0x08003ea9 Thumb Code 20 ps2mouse.o(i.ps2mouse_reset)
ps2mouse_restore_defaults 0x08003ec1 Thumb Code 22 ps2mouse.o(i.ps2mouse_restore_defaults)
ps2mouse_send_update 0x08003edd Thumb Code 34 ps2mouse.o(i.ps2mouse_send_update)
ps2mouse_update 0x08003f01 Thumb Code 146 main.o(i.ps2mouse_update)
ps2mouse_wait_for_idle 0x08003fa1 Thumb Code 38 ps2mouse.o(i.ps2mouse_wait_for_idle)
ps2mouse_write 0x08003fc7 Thumb Code 26 ps2mouse.o(i.ps2mouse_write)
ps2mouse_write_delay_start 0x08003fe1 Thumb Code 34 ps2mouse.o(i.ps2mouse_write_delay_start)
ps2mouse_write_nowait 0x08004005 Thumb Code 286 ps2mouse.o(i.ps2mouse_write_nowait)
spi_error_dump_reboot 0x08004129 Thumb Code 72 main.o(i.spi_error_dump_reboot)
wait_for_clk_high 0x080041a1 Thumb Code 44 xt_kb.o(i.wait_for_clk_high)
xtkb_check_for_softreset 0x080041d1 Thumb Code 60 xt_kb.o(i.xtkb_check_for_softreset)
xtkb_enable 0x08004211 Thumb Code 16 xt_kb.o(i.xtkb_enable)
xtkb_init 0x08004225 Thumb Code 14 xt_kb.o(i.xtkb_init)
xtkb_press_key 0x08004239 Thumb Code 116 xt_kb.o(i.xtkb_press_key)
xtkb_release_lines 0x080042b1 Thumb Code 26 xt_kb.o(i.xtkb_release_lines)
xtkb_reset_bus 0x080042d1 Thumb Code 26 xt_kb.o(i.xtkb_reset_bus)
xtkb_update 0x080042f1 Thumb Code 52 main.o(i.xtkb_update)
xtkb_write 0x0800432d Thumb Code 186 xt_kb.o(i.xtkb_write)
linux_keycode_to_ps3_scancode_lookup_codeset3 0x080043ec Data 195 ps2kb.o(.constdata)
scancode_set3_default_status 0x080044af Data 142 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x0800453d Data 89 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x08004596 Data 32 ps2kb.o(.constdata)
mcp4451_wiper_id_to_reg_addr_lookup 0x080045b6 Data 4 mcp4451.o(.constdata)
boot_message 0x080045ba Data 55 main.o(.constdata)
AHBPrescTable 0x080045f1 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08004601 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x0800460c Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x0800462c Number 0 anon$$obj.o(Region$$Table)
ps2kb_write 0x08003951 Thumb Code 90 ps2kb.o(i.ps2kb_write)
ps2kb_write_nowait 0x080039b1 Thumb Code 286 ps2kb.o(i.ps2kb_write_nowait)
ps2mouse_get_bus_status 0x08003ad5 Thumb Code 92 ps2mouse.o(i.ps2mouse_get_bus_status)
ps2mouse_get_outgoing_data 0x08003b35 Thumb Code 224 ps2mouse.o(i.ps2mouse_get_outgoing_data)
ps2mouse_host_req_reply 0x08003c19 Thumb Code 370 ps2mouse.o(i.ps2mouse_host_req_reply)
ps2mouse_init 0x08003d91 Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
ps2mouse_read 0x08003dad Thumb Code 244 ps2mouse.o(i.ps2mouse_read)
ps2mouse_release_lines 0x08003ea5 Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
ps2mouse_reset 0x08003ec5 Thumb Code 20 ps2mouse.o(i.ps2mouse_reset)
ps2mouse_restore_defaults 0x08003edd Thumb Code 22 ps2mouse.o(i.ps2mouse_restore_defaults)
ps2mouse_send_update 0x08003ef9 Thumb Code 34 ps2mouse.o(i.ps2mouse_send_update)
ps2mouse_update 0x08003f1d Thumb Code 146 main.o(i.ps2mouse_update)
ps2mouse_wait_for_idle 0x08003fbd Thumb Code 38 ps2mouse.o(i.ps2mouse_wait_for_idle)
ps2mouse_write 0x08003fe3 Thumb Code 26 ps2mouse.o(i.ps2mouse_write)
ps2mouse_write_delay_start 0x08003ffd Thumb Code 34 ps2mouse.o(i.ps2mouse_write_delay_start)
ps2mouse_write_nowait 0x08004021 Thumb Code 286 ps2mouse.o(i.ps2mouse_write_nowait)
spi_error_dump_reboot 0x08004145 Thumb Code 72 main.o(i.spi_error_dump_reboot)
wait_for_clk_high 0x080041bd Thumb Code 44 xt_kb.o(i.wait_for_clk_high)
xtkb_check_for_softreset 0x080041ed Thumb Code 60 xt_kb.o(i.xtkb_check_for_softreset)
xtkb_enable 0x0800422d Thumb Code 16 xt_kb.o(i.xtkb_enable)
xtkb_init 0x08004241 Thumb Code 14 xt_kb.o(i.xtkb_init)
xtkb_press_key 0x08004255 Thumb Code 116 xt_kb.o(i.xtkb_press_key)
xtkb_release_lines 0x080042cd Thumb Code 26 xt_kb.o(i.xtkb_release_lines)
xtkb_reset_bus 0x080042ed Thumb Code 26 xt_kb.o(i.xtkb_reset_bus)
xtkb_update 0x0800430d Thumb Code 52 main.o(i.xtkb_update)
xtkb_write 0x08004349 Thumb Code 186 xt_kb.o(i.xtkb_write)
linux_keycode_to_ps3_scancode_lookup_codeset3 0x08004408 Data 195 ps2kb.o(.constdata)
scancode_set3_default_status 0x080044cb Data 142 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x08004559 Data 89 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x080045b2 Data 32 ps2kb.o(.constdata)
mcp4451_wiper_id_to_reg_addr_lookup 0x080045d2 Data 4 mcp4451.o(.constdata)
boot_message 0x080045d6 Data 55 main.o(.constdata)
AHBPrescTable 0x0800460d Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x0800461d Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08004628 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08004648 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)
@@ -2469,9 +2470,9 @@ Memory Map of the image
Image Entry point : 0x080000c1
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000046b4, Max: 0x00010000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000046d0, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000462c, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00004648, Max: 0x00010000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
@@ -2663,61 +2664,61 @@ Memory Map of the image
0x08003858 0x08003858 0x00000020 Code RO 309 i.ps2kb_release_lines ps2kb.o
0x08003878 0x08003878 0x00000024 Code RO 310 i.ps2kb_reset ps2kb.o
0x0800389c 0x0800389c 0x000000b4 Code RO 631 i.ps2kb_update main.o
0x08003950 0x08003950 0x00000044 Code RO 311 i.ps2kb_write ps2kb.o
0x08003994 0x08003994 0x00000124 Code RO 312 i.ps2kb_write_nowait ps2kb.o
0x08003ab8 0x08003ab8 0x00000060 Code RO 401 i.ps2mouse_get_bus_status ps2mouse.o
0x08003b18 0x08003b18 0x000000e4 Code RO 402 i.ps2mouse_get_outgoing_data ps2mouse.o
0x08003bfc 0x08003bfc 0x00000178 Code RO 403 i.ps2mouse_host_req_reply ps2mouse.o
0x08003d74 0x08003d74 0x0000001c Code RO 404 i.ps2mouse_init ps2mouse.o
0x08003d90 0x08003d90 0x000000f8 Code RO 405 i.ps2mouse_read ps2mouse.o
0x08003e88 0x08003e88 0x00000020 Code RO 406 i.ps2mouse_release_lines ps2mouse.o
0x08003ea8 0x08003ea8 0x00000018 Code RO 407 i.ps2mouse_reset ps2mouse.o
0x08003ec0 0x08003ec0 0x0000001c Code RO 408 i.ps2mouse_restore_defaults ps2mouse.o
0x08003edc 0x08003edc 0x00000022 Code RO 410 i.ps2mouse_send_update ps2mouse.o
0x08003efe 0x08003efe 0x00000002 PAD
0x08003f00 0x08003f00 0x000000a0 Code RO 632 i.ps2mouse_update main.o
0x08003fa0 0x08003fa0 0x00000026 Code RO 411 i.ps2mouse_wait_for_idle ps2mouse.o
0x08003fc6 0x08003fc6 0x0000001a Code RO 412 i.ps2mouse_write ps2mouse.o
0x08003fe0 0x08003fe0 0x00000022 Code RO 413 i.ps2mouse_write_delay_start ps2mouse.o
0x08004002 0x08004002 0x00000002 PAD
0x08004004 0x08004004 0x00000124 Code RO 414 i.ps2mouse_write_nowait ps2mouse.o
0x08004128 0x08004128 0x00000078 Code RO 633 i.spi_error_dump_reboot main.o
0x080041a0 0x080041a0 0x00000030 Code RO 541 i.wait_for_clk_high xt_kb.o
0x080041d0 0x080041d0 0x00000040 Code RO 542 i.xtkb_check_for_softreset xt_kb.o
0x08004210 0x08004210 0x00000014 Code RO 543 i.xtkb_enable xt_kb.o
0x08004224 0x08004224 0x00000014 Code RO 544 i.xtkb_init xt_kb.o
0x08004238 0x08004238 0x00000078 Code RO 545 i.xtkb_press_key xt_kb.o
0x080042b0 0x080042b0 0x00000020 Code RO 546 i.xtkb_release_lines xt_kb.o
0x080042d0 0x080042d0 0x00000020 Code RO 547 i.xtkb_reset_bus xt_kb.o
0x080042f0 0x080042f0 0x0000003c Code RO 634 i.xtkb_update main.o
0x0800432c 0x0800432c 0x000000c0 Code RO 548 i.xtkb_write xt_kb.o
0x080043ec 0x080043ec 0x000001ca Data RO 314 .constdata ps2kb.o
0x080045b6 0x080045b6 0x00000004 Data RO 506 .constdata mcp4451.o
0x080045ba 0x080045ba 0x00000037 Data RO 640 .constdata main.o
0x080045f1 0x080045f1 0x00000010 Data RO 3949 .constdata system_stm32f0xx.o
0x08004601 0x08004601 0x00000008 Data RO 3950 .constdata system_stm32f0xx.o
0x08004609 0x08004609 0x00000003 PAD
0x0800460c 0x0800460c 0x00000020 Data RO 4323 Region$$Table anon$$obj.o
0x08003950 0x08003950 0x00000060 Code RO 311 i.ps2kb_write ps2kb.o
0x080039b0 0x080039b0 0x00000124 Code RO 312 i.ps2kb_write_nowait ps2kb.o
0x08003ad4 0x08003ad4 0x00000060 Code RO 401 i.ps2mouse_get_bus_status ps2mouse.o
0x08003b34 0x08003b34 0x000000e4 Code RO 402 i.ps2mouse_get_outgoing_data ps2mouse.o
0x08003c18 0x08003c18 0x00000178 Code RO 403 i.ps2mouse_host_req_reply ps2mouse.o
0x08003d90 0x08003d90 0x0000001c Code RO 404 i.ps2mouse_init ps2mouse.o
0x08003dac 0x08003dac 0x000000f8 Code RO 405 i.ps2mouse_read ps2mouse.o
0x08003ea4 0x08003ea4 0x00000020 Code RO 406 i.ps2mouse_release_lines ps2mouse.o
0x08003ec4 0x08003ec4 0x00000018 Code RO 407 i.ps2mouse_reset ps2mouse.o
0x08003edc 0x08003edc 0x0000001c Code RO 408 i.ps2mouse_restore_defaults ps2mouse.o
0x08003ef8 0x08003ef8 0x00000022 Code RO 410 i.ps2mouse_send_update ps2mouse.o
0x08003f1a 0x08003f1a 0x00000002 PAD
0x08003f1c 0x08003f1c 0x000000a0 Code RO 632 i.ps2mouse_update main.o
0x08003fbc 0x08003fbc 0x00000026 Code RO 411 i.ps2mouse_wait_for_idle ps2mouse.o
0x08003fe2 0x08003fe2 0x0000001a Code RO 412 i.ps2mouse_write ps2mouse.o
0x08003ffc 0x08003ffc 0x00000022 Code RO 413 i.ps2mouse_write_delay_start ps2mouse.o
0x0800401e 0x0800401e 0x00000002 PAD
0x08004020 0x08004020 0x00000124 Code RO 414 i.ps2mouse_write_nowait ps2mouse.o
0x08004144 0x08004144 0x00000078 Code RO 633 i.spi_error_dump_reboot main.o
0x080041bc 0x080041bc 0x00000030 Code RO 541 i.wait_for_clk_high xt_kb.o
0x080041ec 0x080041ec 0x00000040 Code RO 542 i.xtkb_check_for_softreset xt_kb.o
0x0800422c 0x0800422c 0x00000014 Code RO 543 i.xtkb_enable xt_kb.o
0x08004240 0x08004240 0x00000014 Code RO 544 i.xtkb_init xt_kb.o
0x08004254 0x08004254 0x00000078 Code RO 545 i.xtkb_press_key xt_kb.o
0x080042cc 0x080042cc 0x00000020 Code RO 546 i.xtkb_release_lines xt_kb.o
0x080042ec 0x080042ec 0x00000020 Code RO 547 i.xtkb_reset_bus xt_kb.o
0x0800430c 0x0800430c 0x0000003c Code RO 634 i.xtkb_update main.o
0x08004348 0x08004348 0x000000c0 Code RO 548 i.xtkb_write xt_kb.o
0x08004408 0x08004408 0x000001ca Data RO 314 .constdata ps2kb.o
0x080045d2 0x080045d2 0x00000004 Data RO 506 .constdata mcp4451.o
0x080045d6 0x080045d6 0x00000037 Data RO 640 .constdata main.o
0x0800460d 0x0800460d 0x00000010 Data RO 3949 .constdata system_stm32f0xx.o
0x0800461d 0x0800461d 0x00000008 Data RO 3950 .constdata system_stm32f0xx.o
0x08004625 0x08004625 0x00000003 PAD
0x08004628 0x08004628 0x00000020 Data RO 4323 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0800462c, Size: 0x00000998, Max: 0x00004000, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08004648, Size: 0x00000998, Max: 0x00004000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x0800462c 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x08004630 0x00000014 Data RW 315 .data ps2kb.o
0x20000018 0x08004644 0x0000001c Data RW 415 .data ps2mouse.o
0x20000034 0x08004660 0x00000014 Data RW 549 .data xt_kb.o
0x20000048 0x08004674 0x0000002c Data RW 641 .data main.o
0x20000074 0x080046a0 0x00000004 Data RW 3244 .data stm32f0xx_hal.o
0x20000078 0x080046a4 0x00000004 Data RW 3951 .data system_stm32f0xx.o
0x2000007c 0x080046a8 0x00000004 Data RW 4297 .data mc_p.l(stdout.o)
0x20000080 0x080046ac 0x00000004 Data RW 4300 .data mc_p.l(mvars.o)
0x20000084 0x080046b0 0x00000004 Data RW 4301 .data mc_p.l(mvars.o)
0x20000000 0x08004648 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x0800464c 0x00000014 Data RW 315 .data ps2kb.o
0x20000018 0x08004660 0x0000001c Data RW 415 .data ps2mouse.o
0x20000034 0x0800467c 0x00000014 Data RW 549 .data xt_kb.o
0x20000048 0x08004690 0x0000002c Data RW 641 .data main.o
0x20000074 0x080046bc 0x00000004 Data RW 3244 .data stm32f0xx_hal.o
0x20000078 0x080046c0 0x00000004 Data RW 3951 .data system_stm32f0xx.o
0x2000007c 0x080046c4 0x00000004 Data RW 4297 .data mc_p.l(stdout.o)
0x20000080 0x080046c8 0x00000004 Data RW 4300 .data mc_p.l(mvars.o)
0x20000084 0x080046cc 0x00000004 Data RW 4301 .data mc_p.l(mvars.o)
0x20000088 - 0x0000008e Zero RW 313 .bss ps2kb.o
0x20000116 0x080046b4 0x00000002 PAD
0x20000116 0x080046d0 0x00000002 PAD
0x20000118 - 0x0000027d Zero RW 635 .bss main.o
0x20000395 0x080046b4 0x00000003 PAD
0x20000395 0x080046d0 0x00000003 PAD
0x20000398 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
0x20000598 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o
@@ -2731,9 +2732,9 @@ Image component sizes
52 10 0 4 0 506987 delay_us.o
532 0 0 0 0 11924 helpers.o
3248 384 55 44 637 24395 main.o
3248 384 55 44 637 24403 main.o
132 22 4 0 0 2287 mcp4451.o
1846 108 458 20 142 12199 ps2kb.o
1874 108 458 20 142 12227 ps2kb.o
1484 66 0 28 0 10986 ps2mouse.o
28 8 192 0 1536 628 startup_stm32f072xb.o
122 18 0 4 0 3603 stm32f0xx_hal.o
@@ -2756,7 +2757,7 @@ Image component sizes
528 52 0 20 0 5894 xt_kb.o
----------------------------------------------------------------------
16366 1064 768 124 2320 654515 Object Totals
16394 1064 768 124 2320 654551 Object Totals
0 0 32 0 0 0 (incl. Generated)
34 0 3 0 5 0 (incl. Padding)
@@ -2803,15 +2804,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
17196 1108 768 136 2320 647539 Grand Totals
17196 1108 768 136 2320 647539 ELF Image Totals
17196 1108 768 136 0 0 ROM Totals
17224 1108 768 136 2320 647575 Grand Totals
17224 1108 768 136 2320 647575 ELF Image Totals
17224 1108 768 136 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 17964 ( 17.54kB)
Total RO Size (Code + RO Data) 17992 ( 17.57kB)
Total RW Size (RW Data + ZI Data) 2456 ( 2.40kB)
Total ROM Size (Code + RO Data + RW Data) 18100 ( 17.68kB)
Total ROM Size (Code + RO Data + RW Data) 18128 ( 17.70kB)
==============================================================================

View File

@@ -74,7 +74,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h)(0x5DFA0893)
I (../Inc/stm32f0xx_hal_conf.h)(0x62423606)
I (../Inc/main.h)(0x62423606)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h)(0x5DFA0893)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h)(0x5DFA0880)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h)(0x5DFA0880)
@@ -239,7 +239,7 @@ I (../Inc/shared.h)(0x61B61A00)
I (../Drivers/CMSIS/Include/core_cmFunc.h)(0x5DFA0892)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h)(0x5DFA0880)
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.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_ex.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

@@ -69,7 +69,7 @@ UART_HandleTypeDef huart3;
const uint8_t board_id = 1;
const uint8_t version_major = 0;
const uint8_t version_minor = 5;
const uint8_t version_patch = 0;
const uint8_t version_patch = 1;
uint8_t hw_revision;
uint8_t spi_transmit_buf[SPI_BUF_SIZE];
@@ -400,9 +400,15 @@ void ps2kb_update(void)
else if(ps2kb_bus_status == PS2_BUS_IDLE && (kb_buf_peek(&my_kb_buf, &buffered_code, &buffered_value) == 0))
{
if(ps2kb_press_key(buffered_code, buffered_value) == PS2_ERROR_HOST_INHIBIT) // host inhibited line during transmission
{
// HAL_GPIO_WritePin(ERR_LED_GPIO_Port, ERR_LED_Pin, GPIO_PIN_SET);
HAL_Delay(1);
// HAL_GPIO_WritePin(ERR_LED_GPIO_Port, ERR_LED_Pin, GPIO_PIN_RESET);
}
else
{
kb_buf_pop(&my_kb_buf);
}
}
}

View File

@@ -676,13 +676,23 @@ uint8_t ps2kb_write_nowait(uint8_t data)
return PS2_OK;
}
uint8_t ps2kb_write(uint8_t data, uint8_t delay_start, uint8_t timeout_ms)
{
ps2kb_write_idle_check:
ps2kb_wait_start = HAL_GetTick();
while(ps2kb_get_bus_status() != PS2_BUS_IDLE)
{
if(HAL_GetTick() - ps2kb_wait_start >= timeout_ms)
return 1;
return PS2_ERROR_TIMEOUT;
}
ps2kb_wait_start = micros();
// make sure idle is more than 50us, some PC will actually spike clock line briefly during inhibition in certain DOS games
while(micros() - ps2kb_wait_start < 60)
{
if(ps2kb_get_bus_status() != PS2_BUS_IDLE)
goto ps2kb_write_idle_check;
}
// if responding to host, wait a little while for it to get ready

View File

File diff suppressed because it is too large Load Diff

View File

@@ -2,6 +2,12 @@
## IBM PC Protocol Card
### 0.5.1
* Released 12 May 2022
* Improved PS/2 mouse line idle detection.
### 0.5.0
* Released 10 May 2022