added protocol enable/disable check

This commit is contained in:
dekunukem
2021-12-23 12:38:56 +00:00
parent bc3b0a018b
commit 23eb5c9384
11 changed files with 1019 additions and 1001 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: 12/18/2021
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'ibmpc'
compiling main.c...
../Src/main.c(453): warning: #188-D: enumerated type mixed with another type
../Src/main.c(451): 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(454): warning: #188-D: enumerated type mixed with another type
../Src/main.c(452): 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(455): warning: #188-D: enumerated type mixed with another type
../Src/main.c(453): 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(456): warning: #188-D: enumerated type mixed with another type
../Src/main.c(454): 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=15804 RO-data=428 RW-data=128 ZI-data=2160
Program Size: Code=15836 RO-data=428 RW-data=128 ZI-data=2160
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:01
Build Time Elapsed: 00:00:03
</pre>
</body>
</html>

View File

@@ -11,7 +11,7 @@
:10009000E7000008E7000008E7000008E7000008A4
:1000A000E70000080D1E0008E7000008E700000850
:1000B000E700000801270008E7000008E700000843
:1000C0000348854600F04EF800480047112D00080F
:1000C0000348854600F04EF800480047292D0008F7
:1000D000F00800200448804704480047FEE7FEE798
:1000E000FEE7FEE7FEE7FEE779210008C100000811
:1000F00030B50B46014600202022012409E00D46C0
@@ -23,7 +23,7 @@
:10015000F6E710B513460A4604461946FFF7F0FFC6
:10016000204610BD064C0125064E05E0E36807CC8D
:100170002B430C3C98471034B442F7D3FFF7A4FF4D
:10018000483F0008683F000810B5022000F042F820
:10018000683F0008883F000810B5022000F042F8E0
:1001900010BD70B50024014620314A78022A03D0F0
:1001A00004218163012416E0026813680E25AB4325
:1001B0001360026813685B085B0013600122056C22
@@ -31,7 +31,7 @@
:1001D000002900D08847204670BD31B500F0E2F814
:1001E000009C0546601C00D0641C00F0DBF8401B3E
:1001F000A042FAD338BD000000B5022807D105207F
:1002000002F0C2FC002802D001490120087200BDA2
:1002000002F0CEFC002802D001490120087200BD96
:100210003800002010B504494A69024202D0486102
:10022000FFF7EAFF10BD000000040140F8B500230D
:1002300093E0224601249C40A44622407ED04C6894
@@ -172,10 +172,10 @@
:100AA00009028843E9680843606000F02DF8616836
:100AB000084A0906090F515CC84007490860002030
:100AC000FFF790FE0020F8BD002002400010024019
:100AD00088130000303F00087000002001480068C3
:100AD00088130000503F00087000002001480068A3
:100AE000704700007000002004480549006849680C
:100AF000044A4905490F515CC84070477000002006
:100B000000100240403F000830B516A30FCB89B05B
:100B000000100240603F000830B516A30FCB89B03B
:100B10006C460FC417A30FCB0FC41A494A680C20A8
:100B2000144604401848042C05D0184B082C04D057
:100B30000C2C00D1184609B030BD9402240F6D462C
@@ -294,11 +294,11 @@
:10124000203C2078534FDE2801D07E7290E0A078B9
:1012500008280BD0092810D000250B2831D00328EE
:101260004BD0012850D0022879D081E04848A2799B
:101270002179203001F092FC7AE06179207901F047
:101270002179203001F09EFC7AE06179207901F03B
:1012800059FB434A2C321080E179A07901F052FBDE
:1012900040425080617A207A01F04CFB40429080BD
:1012A000607B9071A07B1072E07BD071207C5072CB
:1012B000607C9072364937482C31103001F054FE72
:1012B000607C9072364937482C31103001F064FE62
:1012C00056E0334821793830017061794170A17955
:1012D0008170E179C170057145718571C571217A9F
:1012E0000172617A4172A17A8172E17AC17201461A
@@ -309,7 +309,7 @@
:10133000002105468D356C5C002C0CD0022C02D0AF
:10134000012C03D005E0815403E008E00C461C4367
:101350008454521CD2B2491C1029ECDB08E003254E
:10136000605D002804D001F0AFFB6D1C202DF7DB81
:10136000605D002804D001F0CDFB6D1C202DF7DB63
:10137000074A2023114640390848FFF7E9FE0121BA
:1013800009200022C903C006FFF705F8F8BD0000D8
:10139000900200203800002000080048CC00002007
@@ -659,14 +659,14 @@
:102910000B980B990078491C0B91109A0F999047CE
:10292000761C0199481E01900029F1DC6D1C28E7F6
:10293000092801000902014308B2704700B50146A9
:1029400000F00AFB411800F007FB8842FBD300BDF2
:1029400000F01AFB411800F017FB8842FBD300BDD2
:1029500010B502490860FEF79DFD10BD0000002083
:1029600013B56423012269460248FEF732FF00983E
:102970001CBD00007001002070B50D46044600F03B
:1029800020F8002801D0012070BD20780C22616859
:10299000504308182946FDF7C1FB2078A178401C58
:1029A000FDF7A6FB2170002070BD10B504468170B4
:1029B0000C20484300F05EFA6060204600F026F8E4
:1029B0000C20484300F06EFA6060204600F026F8D4
:1029C00010BD10B5044681780078401CFDF790FBDF
:1029D0006078814201D1012010BD002010BD4178F6
:1029E0000278914201D10020704740680C22514387
@@ -679,348 +679,350 @@
:102A50002846FDF7A0FCA07800282AD000220121FA
:102A60003046FDF798FCE078002824D000220121B0
:102A700089032846FDF78FFC207AFF25291A0320B9
:102A800000F04EFA607A291A002000F049FAA07A84
:102A9000291A022000F044FAE07A291A012000F0F5
:102AA0003FFA0648FFF7A6FF70BD0122C4E70122E6
:102A800000F05EFA607A291A002000F059FAA07A64
:102A9000291A022000F054FAE07A291A012000F0E5
:102AA0004FFA0648FFF7A6FF70BD0122C4E70122D6
:102AB000CBE70122D3E70122D9E700005000002034
:102AC000001400480008004870B54406C009640EB0
:102AD000C001102C1ED2284D295D00291AD00028D3
:102AE00019D026482300FFF723FE0513040B130E0D
:102AF0001300FF2301330246590000F0BDFA07E03E
:102B000001F0ECF804E010230246202100F050FE12
:102B10000120285570BD022028552300FFF708FE2C
:102B20000805060B050E05051305F3E700F0D2FBBB
:102B300000F0E0FB70BD01F003F970BD00F0D2FEC3
:102B400000F0C0FE70BD0E4C012202212046FDF7B0
:102B500022FC0C4D0122D1032846FDF71CFC01226A
:102B600011462046FDF717FC012291032846FDF788
:102B700012FC00F0C5F970BDDD0200200004004821
:102B80000014004800080048102803D20249085CDD
:102B9000012800D000207047DD02002070B51546E6
:102BA0000E46044600F022F8002801D0012070BD36
:102BB0002178606846542178A06845542078A1782F
:102BC000401CFDF795FA2170002070BD70B50D46D0
:102BD00004468170284600F04DF96060284600F0F8
:102BE00049F9A060204600F02BF870BD10B50446EE
:102BF00081780078401CFDF77BFA6078814201D132
:102C0000012010BD002010BD10B543780478A34208
:102C100001D1012010BD4468E35C0B7081684078ED
:102C2000085C1070002010BD10B504464078217873
:102C3000884204D0A178401CFDF75AFA617010BD9B
:102C400010B50446002020706070A1786068FDF720
:102C50007EFAA178A068FDF77AFA10BD38B5ED3894
:102C60000D462A4C0300FFF763FD13413B24252446
:102C70002D251D164C242424242424244C0B24000C
:102C800014220121FA2000F08FFB00F033FBFA221E
:102C90000021AA2027E014220121FA2000F084FB61
:102CA000002005E014220121FA2000F07DFB012024
:102CB000607038BD14220121FA2000F075FB1E213E
:102CC00068461AE014220121FA2000F06DFB14225C
:102CD0000021AB2000F068FB14220021832002E0D9
:102CE00014220121EE2000F05FFB38BD14220121E7
:102CF000FA2000F059FB1E21284600F06DFA00284A
:102D0000F3D114220121FA20EDE700000400002095
:102D10001CB5FDF757FDFFF7F9F9FEF7F3FEFEF7D7
:102D20009DFFFEF7C5FFFEF7E1FFFFF709F8FFF78C
:102D300023F800200127454C019003460097227894
:102D4000434944A0FFF7E4FC4748FFF701FE00F0C9
:102D500061F9464E3D0232462B466900104600F0AE
:102D60008BF932462B466900104600F0C1FF32460F
:102D700010232021104600F01BFD0220FFF704FF66
:102D8000002801D000F0AAFF10213948FFF71EFFEC
:102D90002E481021103000F000F92C481021183076
:102DA000FFF703FE00F0ACF800F09AF8002800D11D
:102DB00027702F4820216038FDF7C9F92C4A2A488E
:102DC000203A1146202340396438FEF7C1F909271B
:102DD000FF060420FFF7D8FE002809D00121C9030F
:102DE0003046FDF7CFFA002802D000F0ADFD06E036
:102DF0000520FFF7C9FE002801D000F0A1FE012048
:102E0000FFF7C2FE002808D029463846FDF7BAFA77
:102E1000002802D000F076FA0CE00220FFF7B4FEA2
:102E2000002807D029463846FDF7ACFA002801D023
:102E300000F0A6FF0720FFF7A7FE002801D0FFF74C
:102E4000F1FD607A0028C4D000F0D4FE38000020E4
:102E5000F93E000825730A7265762564207625649C
:102E60002E25642E25640A0030010020000400484D
:102E7000B0020020F0B50B30C108C900144F002685
:102E8000144A0FE003688B420BD38B4205D95C1ABE
:102E90004318456830C3083B00E04368136002C034
:102EA00004E0021D10680028ECD13046002803D150
:102EB0003868002801D00020F0BD064A064810609E
:102EC000064A121AD208D20044C001203860D7E75F
:102ED0007C00002078000020F4020020F004002094
:102EE00010B56423012258210448FDF705FB002892
:102EF00001D0002010BD012010BD00008000002086
:102F000010B5064C002204212046FDF744FA0122A8
:102F100004212046FDF73FFA10BD000000040048E0
:102F200003B583B0042802D3FF2005B000BD0849D3
:102F30006423085C01210007020E04A8029301919A
:102F400000900B4658210348FDF764FBEDE70000B5
:102F5000F53E000880000020024800680068406AD2
:102F6000704700000000002070B50D46044600F0D8
:102F700020F8002801D0012070BD20780C22616863
:102F8000504308182946FDF7C9F82078A178401C5D
:102F9000FDF7AEF82170002070BD10B504468170B9
:102FA0000C204843FFF766FF6060204600F026F8DB
:102FB00010BD10B5044681780078401CFDF798F8E4
:102FC0006078814201D1012010BD002010BD417800
:102FD0000278914201D10020704740680C22514391
:102FE0004018704710B5044640782178884204D0D4
:102FF000A178401CFDF77CF8617010BD10B5002170
:103000000170417081780C2251434068FDF79FF8B0
:1030100010BD000010B510210548FDF798F80121FA
:10302000034802224170827001714271C17110BD6A
:10303000DD02002070B50F4D6988A868FDF7A2F980
:103040000446A988E868FDF79DF9012802D0002808
:1030500009D00AE0012C02D0002C02D005E00320A8
:1030600070BD022070BD012C01D0002070BD012078
:1030700070BD00000400002010B5054CA060618008
:10308000E260A38000F026F900F034F910BD0000E2
:103090000400002010B54E4A5278002A0AD0592860
:1030A00010D24C4A145CFF2C7ED0002904D014228C
:1030B00000211FE0012010BD14220021F02000F0AB
:1030C00073F9F4E7632817D077284AD00246603AAC
:1030D0001F2A7AD83F4A5932101860380478FF2CDA
:1030E0006BD000296BD014220021E02000F05CF9A5
:1030F00014220121204630E0002912D014220021A0
:10310000E02000F051F914220021122000F04CF9C7
:1031100014220021E02000F047F9142200217C2035
:103120001BE014220021E02000F03EF914220021CF
:10313000F02000F039F9142200217C2000F034F94D
:1031400014220021E02000F02FF914220021F020A9
:1031500000F02AF914220021122000F025F90020A5
:1031600010BD0029B6D014220021E12000F01CF986
:1031700014220021104600F017F9142200217720B4
:1031800000F012F914220021E12000F00DF91422C0
:103190000021F02000F008F914220021104600F070
:1031A00003F91422002101E007E00EE0F02000F016
:1031B000FBF8142200217720CFE7022010BD142253
:1031C0000021E02000F0F0F876E7032010BD0000B9
:1031D000040000207C3E0008F3B581B00F460025B6
:1031E0000126FDF7DFF83A4C206107E0FDF7DAF839
:1031F0002169401AB84201D30120FEBDFFF71AFF32
:103200000128F3D11220FFF799FB00226188A06802
:10321000FDF7C1F82420FFF791FB01226188A06827
:10322000FDF7B9F81220FFF789FBA188E068FDF7E8
:10323000A9F8012800D135437004060C1220FFF7CD
:103240007DFB00226188A068FDF7A5F82420FFF728
:1032500075FB01226188A068FDF79DF81220FFF739
:103260006DFBFF2EE1D91220FFF768FB0022618879
:10327000A068FDF790F82420FFF760FB0122618829
:10328000A068FDF788F81220FFF758FB1220FFF71F
:1032900055FB0022A188E068FDF77DF800226188D7
:1032A000A068FDF778F82420FFF748FB0122618829
:1032B000A068FDF770F81220FFF740FB0122A188FB
:1032C000E068FDF768F8019805700020FEBD000079
:1032D0000400002010B5064C01226188A068FDF7AB
:1032E0005AF80122A188E068FDF755F810BD0000EA
:1032F0000400002002480221017001214170704742
:103300000400002038B5FFF795FE244C0228A07178
:1033100002D0012803D02FE0FFF7DCFF38BDFF21EA
:10332000684601701D480A21401CFFF755FF694699
:103330006078FFF793FC68460578FF2D1CD02021AC
:103340001748FCF704FF1648CD21017001462031D3
:103350004978417081218170EA070121002A00D05B
:10336000C170AA0700D501716A0700D54171012219
:1033700051030C48FDF70FF8084A0948121D511E69
:103380006030FFF741FC0028C8D12179E078FFF7D1
:1033900081FE03486030FFF747FC38BD380000204D
:1033A0005002002000080048F8B515460E460746B2
:1033B000FCF7F8FF0C4C206107E0FCF7F3FF2169F4
:1033C000401AA84201D30120F8BDFFF733FE0328BD
:1033D000F3D1002E03D0AF208000FFF7AFFA3846BC
:1033E00000F004F8F8BD000004000020F8B5464CD9
:1033F000054601260022A188E068FCF7CCFF1220D8
:10340000FFF79CFA00226188A068FCF7C4FF242023
:10341000FFF794FA01226188A068FCF7BCFF122034
:10342000FFF78CFA6188A068FCF7ACFF002868D031
:103430000027E80701D0012200E00022A188E0680F
:10344000FCF7A9FF1220FFF779FA00226188A06833
:10345000FCF7A1FF2420FFF771FA01226188A06820
:10346000FCF799FF1220FFF769FA6188A068FCF762
:1034700089FF002845D0E807C00F46406D087F1C33
:10348000082FD6DB002E01D0012200E00022A18807
:10349000E068FCF780FF1220FFF750FA00226188F5
:1034A000A068FCF778FF2420FFF748FA0122618822
:1034B000A068FCF770FF1220FFF740FA6188A0684F
:1034C000FCF760FF00281CD00122A188E068FCF70F
:1034D00062FF1220FFF732FA00226188A068FCF731
:1034E0005AFF2420FFF72AFA01226188A068FCF71E
:1034F00052FF1220FFF722FAC820FFF71FFA002020
:10350000F8BD0120F8BD00000400002010B5164CE5
:10351000E1896069FCF736FF012805D1A18920699E
:10352000FCF730FF012806D0E1896069FCF72AFF2B
:10353000012802D007E0032010BDA1892069FCF713
:1035400021FF002806D0E1896069FCF71BFF0028F5
:1035500002D007E0022010BDA1892069FCF712FF0C
:103560000128F8D0002010BD1800002070B5294EA9
:103570000546B0790C4601283BD0022838D0307877
:10358000002844D00821601CFCF7E1FD03202070D6
:1035900008206070A879002801D009206070287A7E
:1035A000002803D06078022108436070E979042084
:1035B000002902D06178014361700021695E002911
:1035C00003DA61781022114361700221695E0029DB
:1035D00003DA61782022114361702978A170A978FB
:1035E000E170297921717179002900D020700020C3
:1035F00070BD2878317A40183072A878717A4018F6
:1036000070722879B17A4018B072012070BD032021
:1036100070BD000018000020F8B500250E46FF28F8
:1036200014D0624CEC281ED0A17902291DD0E638B6
:1036300001270300FFF77CF811ACB29E716E69643C
:10364000645F6459643A23211E1B640000F04AF948
:103650001421FA2000F0CAF9FA21AA2000F0B9F9E1
:10366000142100203EE0E07947E014213AE000F028
:1036700045F945E00020207040E027703EE014212D
:10368000FA2000F0B3F900F053FA48489621401CA4
:1036900000F09CF8002827D144492079183162783D
:1036A0000A5407282CD2401C207129E000F040FA6F
:1036B0001421FA2000F09AF9002060712179022982
:1036C0000ED93A48183040182038C17F502907D108
:1036D000817F642904D1407FC82801D10320607113
:1036E0001421607900F075F9F8BD00F021FAA07995
:1036F000E071A77104E0E1710220A07100F018FAF6
:103700001421FA2000F072F9F8BD1421FA2000F01B
:103710006DF93AE0E1710020EFE71421FA2000F0A2
:1037200065F9A079012800D140252078002801D032
:1037300020200543E078022801D110200543B0790C
:10374000002801D004200543F079002801D0022090
:103750000543307A002800D03D431421284600F06C
:1037600038F91421A07800F034F91421607800F0C1
:1037700030F90AE01421FA2000F038F90B489621BC
:10378000801C00F023F80028BFD000F0D1F9F8BD6C
:103790001421FA2000F02AF9E770F8BD1421FA206C
:1037A00000F024F90220E070F8BD000018000020AD
:1037B00010B5054C2061A1816261E38100F092F8AF
:1037C00000F080F810BD000018000020F3B581B0B3
:1037D0000F4600250126FCF7E5FD044606E0FCF750
:1037E000E1FD001BB84201D30120FEBDFFF78EFEB4
:1037F0000128F4D11220FFF7A1F8314C0022A18951
:103800002069FCF7C8FD2420FFF798F80122A18960
:103810002069FCF7C0FD1220FFF790F8E18960698C
:10382000FCF7B0FD012800D135437004060C1220CE
:10383000FFF784F80022A1892069FCF7ACFD242061
:10384000FFF77CF80122A1892069FCF7A4FD122072
:10385000FFF774F8FF2EE1D91220FFF76FF800226E
:10386000A1892069FCF797FD2420FFF767F8012262
:10387000A1892069FCF78FFD1220FFF75FF8122065
:10388000FFF75CF80022E1896069FCF784FD002203
:10389000A1892069FCF77FFD2420FFF74FF8012262
:1038A000A1892069FCF777FD1220FFF747F8012274
:1038B000E1896069FCF76FFD019805700020FEBD8D
:1038C0001800002010B5064C0122A1892069FCF7E0
:1038D00062FD0122E1896069FCF75DFD10BD000019
:1038E0001800002000B500F009F803490020087115
:1038F0008861C861487100BD1800002000B5074804
:1039000064214170022181700121C1700021017088
:103910008171C17100F00CF900BD00001800002099
:1039200070B50546002409E028194078022100F00E
:1039300050F8002801D0012070BD641C2878A042F6
:10394000F2DC002070BD000010B5FFF7DFFD154C64
:10395000022860710DD001280ED020461030FFF7EC
:1039600036FB002807D01049FFF700FE002813D1CE
:103970000DE0FFF7A7FF10BD0A480A21801CFFF7E2
:1039800025FF0949A0781839FFF746FE10BD064803
:10399000FFF7C6FF0028F9D102481030FFF722FBDD
:1039A00010BD000038000020D402002070B505468C
:1039B000FCF7F8FC044606E0FCF7F4FC001BA84208
:1039C00001D3012070BDFFF7A1FD0328F4D1002031
:1039D00070BD10B504460846FFF7E8FF002801D087
:1039E000012010BD204600F013F810BD10B50446AC
:1039F0000846FFF7DBFF002801D0012010BDAF20F3
:103A00008000FEF79BFF204600F002F810BD00008A
:103A1000F8B5464C054601260022E1896069FCF7AD
:103A2000BAFC1220FEF78AFF0022A1892069FCF768
:103A3000B2FC2420FEF782FF0122A1892069FCF755
:103A4000AAFC1220FEF77AFFA1892069FCF79AFCF4
:103A5000002868D00027E80701D0012200E00022FA
:103A6000E1896069FCF797FC1220FEF767FF0022EE
:103A7000A1892069FCF78FFC2420FEF75FFF01225B
:103A8000A1892069FCF787FC1220FEF757FFA18966
:103A90002069FCF777FC002845D0E807C00F4640B6
:103AA0006D087F1C082FD6DB002E01D0012200E01C
:103AB0000022E1896069FCF76EFC1220FEF73EFFF0
:103AC0000022A1892069FCF766FC2420FEF736FF5E
:103AD0000122A1892069FCF75EFC1220FEF72EFF6F
:103AE000A1892069FCF74EFC00281CD00122E18945
:103AF0006069FCF750FC1220FEF720FF0022A1892C
:103B00002069FCF748FC2420FEF718FF0122A18958
:103B10002069FCF740FC1220FEF710FFFA20FEF7A8
:103B20000DFF0020F8BD0120F8BD000018000020A6
:103B30000248002101724172817270471800002012
:103B400070B52A4D287A0024002807D04D20E8714E
:103B50000122E91D2648FDF7A0FE2C7223481030F3
:103B6000FFF735FA00283FD02049C0220A310C80E7
:103B70008C700A708279002A01D0E0220A70027AE1
:103B8000002A03D00A7810231A430A70827852421E
:103B900052B2130603D50B78082423430B70530647
:103BA00003D50B78042423430B7003781B0603D53D
:103BB0000B78022423430B7003785B0603D50B7844
:103BC000012423430B7000788006800E4870900615
:103BD000800E887005481030FFF704FA034903226D
:103BE0000A310348FDF759FE70BD0000380000207F
:103BF000E001002011A0FEF78BFD134D0024295D8C
:103C000012A0FEF785FD641C202CF8DB10A0FEF747
:103C10007FFD134D002408212846FCF7B8FB6420E3
:103C2000FCF7DBFA641C642CF5DBBFF34F8F0E4905
:103C30000C48C860BFF34F8F00BFFDE753504920C9
:103C40004552524F520A00007002002025642000A5
:103C50000A7265626F6F74696E672E2E2E0A0000FD
:103C6000000400480400FA0500ED00E070B50646C7
:103C7000FCF798FB0446084D06E0FCF793FB001B9D
:103C8000B04201D9012070BD29886868FCF77AFB31
:103C90000028F2D0002070BD5800002010B50E4C56
:103CA00021886068FCF76EFB012802D1FCF77AFBE3
:103CB000E060FCF777FBE168401A14280BD9C820B4
:103CC000FFF7D4FF1420FCF788FAAA2000F076F85A
:103CD0000A20FCF782FA10BD5800002010B500F051
:103CE0003FF8FCF75FFB0149C86010BD5800002099
:103CF00010B5034C60602180A260638010BD00009D
:103D00005800002070B5044653280BD8022902D071
:103D100000290DD00EE0FCF745FB084D2969401A3B
:103D2000502801D8002070BDFCF73CFB286101E061
:103D300080200443204600F041F870BD5800002068
:103D400010B5064C012221886068FCF724FB012293
:103D50006188A068FCF71FFB10BD00005800002020
:103D600010B5064C012221886068FCF714FB002284
:102AC000001400480008004870B50C4C0122022197
:102AD0002046FDF760FC0A4D0122D1032846FDF790
:102AE0005AFC012211462046FDF755FC01229103B4
:102AF0002846FDF750FC00F013FA70BD00140048A2
:102B00000008004870B54406C109640EC901102CC4
:102B100024D2214D285D002820D000291FD0022872
:102B20001CD11E482300FFF703FE0817050C170FE2
:102B300017171517FF2301330246590000F0ACFAAE
:102B40000AE001F0DBF807E010230246202100F044
:102B50003FFE01E0FFF7B8FF0120285570BD0128B6
:102B6000FCD1022028552300FFF7E2FD0805060BE3
:102B7000050E05051305F1E700F0BCFB00F0CAFBEC
:102B800070BD01F0EDF870BD00F0BCFE00F0AAFED3
:102B900070BDFFF799FF70BDDD0200200004004802
:102BA000102803D20249085C012800D00020704799
:102BB000DD02002070B515460E46044600F022F8EE
:102BC000002801D0012070BD21786068465421782A
:102BD000A06845542078A178401CFDF789FA21703F
:102BE000002070BD70B50D4604468170284600F087
:102BF00051F96060284600F04DF9A060204600F0D1
:102C00002BF870BD10B5044681780078401CFDF7A4
:102C10006FFA6078814201D1012010BD002010BD03
:102C200010B543780478A34201D1012010BD446857
:102C3000E35C0B7081684078085C1070002010BD68
:102C400010B5044640782178884204D0A178401C11
:102C5000FDF74EFA617010BD10B5044600202070DB
:102C60006070A1786068FDF772FAA178A068FDF73E
:102C70006EFA10BD38B5ED380D462A4C0300FFF74B
:102C800057FD13413B2425242D251D164C242424B7
:102C9000242424244C0B240014220121FA2000F0C7
:102CA00093FB00F037FBFA220021AA2027E0142230
:102CB0000121FA2000F088FB002005E01422012108
:102CC000FA2000F081FB0120607038BD1422012140
:102CD000FA2000F079FB1E2168461AE01422012137
:102CE000FA2000F071FB14220021AB2000F06CFBF5
:102CF00014220021832002E014220121EE2000F0A2
:102D000063FB38BD14220121FA2000F05DFB1E2177
:102D1000284600F071FA0028F3D114220121FA208C
:102D2000EDE70000040000201CB5FDF74BFDFFF7A8
:102D3000EDF9FEF7E7FEFEF791FFFEF7B9FFFEF7AC
:102D4000D5FFFEF7FDFFFFF717F800200127474CDE
:102D50000190034600972278454946A0FFF7D8FC2A
:102D60004948FFF7F5FD00F065F9484E3D0232464F
:102D70002B466900104600F08FF932462B46690059
:102D8000104600F0C5FF324610232021104600F007
:102D90001FFD0220FFF704FF002801D000F0AEFF66
:102DA00010213B48FFF71EFF30481021103000F083
:102DB00004F92E4810211830FFF7F7FD00F0B0F8A5
:102DC0000120FDF70AFA00F09BF8002800D12770D7
:102DD0002F4820216038FDF7BAF92D4A2A48203AB9
:102DE0001146202340396438FEF7B2F90927FF065F
:102DF0000420FFF7D5FE002809D00121C903304681
:102E0000FDF7C0FA002802D000F0AEFD06E0052074
:102E1000FFF7C6FE002801D000F0A2FE0120FFF758
:102E2000BFFE002808D029463846FDF7ABFA002837
:102E300002D000F077FA0CE00220FFF7B1FE002884
:102E400007D029463846FDF79DFA002801D000F04A
:102E5000A7FF0720FFF7A4FE002801D0FFF7E2FD3F
:102E6000607A0028C4D000F0D5FE000038000020B1
:102E7000193F000825730A7265762564207625645B
:102E80002E25642E25640A0030010020000400482D
:102E9000B0020020F0B50B30C108C900144F002665
:102EA000144A0FE003688B420BD38B4205D95C1A9E
:102EB0004318456830C3083B00E04368136002C014
:102EC00004E0021D10680028ECD13046002803D130
:102ED0003868002801D00020F0BD064A064810607E
:102EE000064A121AD208D20044C001203860D7E73F
:102EF0007C00002078000020F4020020F004002074
:102F000010B56423012258210448FDF7F5FA002882
:102F100001D0002010BD012010BD00008000002065
:102F200010B5064C002204212046FDF734FA012298
:102F300004212046FDF72FFA10BD000000040048D0
:102F400003B583B0042802D3FF2005B000BD0849B3
:102F50006423085C01210007020E04A8029301917A
:102F600000900B4658210348FDF754FBEDE70000A5
:102F7000153F000880000020024800680068406A91
:102F8000704700000000002070B50D46044600F0B8
:102F900020F8002801D0012070BD20780C22616843
:102FA000504308182946FDF7B9F82078A178401C4D
:102FB000FDF79EF82170002070BD10B504468170A9
:102FC0000C204843FFF766FF6060204600F026F8BB
:102FD00010BD10B5044681780078401CFDF788F8D4
:102FE0006078814201D1012010BD002010BD4178E0
:102FF0000278914201D10020704740680C22514371
:103000004018704710B5044640782178884204D0B3
:10301000A178401CFDF76CF8617010BD10B500215F
:103020000170417081780C2251434068FDF78FF8A0
:1030300010BD000010B510210548FDF788F80121EA
:10304000034802224170827001714271C17110BD4A
:10305000DD02002070B50F4D6988A868FDF792F970
:103060000446A988E868FDF78DF9012802D00028F8
:1030700009D00AE0012C02D0002C02D005E0032088
:1030800070BD022070BD012C01D0002070BD012058
:1030900070BD00000400002010B5054CA0606180E8
:1030A000E260A38000F026F900F034F910BD0000C2
:1030B0000400002010B54E4A5278002A0AD0592840
:1030C00010D24C4A145CFF2C7ED0002904D014226C
:1030D00000211FE0012010BD14220021F02000F08B
:1030E00073F9F4E7632817D077284AD00246603A8C
:1030F0001F2A7AD83F4A5932101860380478FF2CBA
:103100006BD000296BD014220021E02000F05CF984
:1031100014220121204630E0002912D0142200217F
:10312000E02000F051F914220021122000F04CF9A7
:1031300014220021E02000F047F9142200217C2015
:103140001BE014220021E02000F03EF914220021AF
:10315000F02000F039F9142200217C2000F034F92D
:1031600014220021E02000F02FF914220021F02089
:1031700000F02AF914220021122000F025F9002085
:1031800010BD0029B6D014220021E12000F01CF966
:1031900014220021104600F017F914220021772094
:1031A00000F012F914220021E12000F00DF91422A0
:1031B0000021F02000F008F914220021104600F050
:1031C00003F91422002101E007E00EE0F02000F0F6
:1031D000FBF8142200217720CFE7022010BD142233
:1031E0000021E02000F0F0F876E7032010BD000099
:1031F000040000209C3E0008F3B581B00F46002576
:103200000126FDF7CFF83A4C206107E0FDF7CAF838
:103210002169401AB84201D30120FEBDFFF71AFF11
:103220000128F3D11220FFF789FB00226188A068F2
:10323000FDF7B1F82420FFF781FB01226188A06827
:10324000FDF7A9F81220FFF779FBA188E068FDF7E8
:1032500099F8012800D135437004060C1220FFF7BD
:103260006DFB00226188A068FDF795F82420FFF728
:1032700065FB01226188A068FDF78DF81220FFF739
:103280005DFBFF2EE1D91220FFF758FB0022618879
:10329000A068FDF780F82420FFF750FB0122618829
:1032A000A068FDF778F81220FFF748FB1220FFF71F
:1032B00045FB0022A188E068FDF76DF800226188D7
:1032C000A068FDF768F82420FFF738FB0122618829
:1032D000A068FDF760F81220FFF730FB0122A188FB
:1032E000E068FDF758F8019805700020FEBD000069
:1032F0000400002010B5064C01226188A068FDF78B
:103300004AF80122A188E068FDF745F810BD0000E9
:103310000400002002480221017001214170704721
:103320000400002038B5FFF795FE244C0228A07158
:1033300002D0012803D02FE0FFF7DCFF38BDFF21CA
:10334000684601701D480A21401CFFF755FF694679
:103350006078FFF78FFC68460578FF2D1CD0202190
:103360001748FCF7F4FE1648CD21017001462031C4
:103370004978417081218170EA070121002A00D03B
:10338000C170AA0700D501716A0700D541710122F9
:1033900051030C48FCF7FFFF084A0948121D511E53
:1033A0006030FFF73DFC0028C8D12179E078FFF7B5
:1033B00081FE03486030FFF743FC38BD3800002031
:1033C0005002002000080048F8B515460E46074692
:1033D000FCF7E8FF0C4C206107E0FCF7E3FF2169F4
:1033E000401AA84201D30120F8BDFFF733FE03289D
:1033F000F3D1002E03D0AF208000FFF79FFA3846AC
:1034000000F004F8F8BD000004000020F8B5464CB8
:10341000054601260022A188E068FCF7BCFF1220C7
:10342000FFF78CFA00226188A068FCF7B4FF242023
:10343000FFF784FA01226188A068FCF7ACFF122034
:10344000FFF77CFA6188A068FCF79CFF002868D031
:103450000027E80701D0012200E00022A188E068EF
:10346000FCF799FF1220FFF769FA00226188A06833
:10347000FCF791FF2420FFF761FA01226188A06820
:10348000FCF789FF1220FFF759FA6188A068FCF762
:1034900079FF002845D0E807C00F46406D087F1C23
:1034A000082FD6DB002E01D0012200E00022A188E7
:1034B000E068FCF770FF1220FFF740FA00226188F5
:1034C000A068FCF768FF2420FFF738FA0122618822
:1034D000A068FCF760FF1220FFF730FA6188A0684F
:1034E000FCF750FF00281CD00122A188E068FCF7FF
:1034F00052FF1220FFF722FA00226188A068FCF731
:103500004AFF2420FFF71AFA01226188A068FCF71D
:1035100042FF1220FFF712FAC820FFF70FFA00202F
:10352000F8BD0120F8BD00000400002010B5164CC5
:10353000E1896069FCF726FF012805D1A18920698E
:10354000FCF720FF012806D0E1896069FCF71AFF2B
:10355000012802D007E0032010BDA1892069FCF7F3
:1035600011FF002806D0E1896069FCF70BFF0028F5
:1035700002D007E0022010BDA1892069FCF702FFFC
:103580000128F8D0002010BD1800002070B5294E89
:103590000546B0790C4601283BD0022838D0307857
:1035A000002844D00821601CFCF7D1FD03202070C6
:1035B00008206070A879002801D009206070287A5E
:1035C000002803D06078022108436070E979042064
:1035D000002902D06178014361700021695E0029F1
:1035E00003DA61781022114361700221695E0029BB
:1035F00003DA61782022114361702978A170A978DB
:10360000E170297921717179002900D020700020A2
:1036100070BD2878317A40183072A878717A4018D5
:1036200070722879B17A4018B072012070BD032001
:1036300070BD000018000020F8B500250E46FF28D8
:1036400014D0624CEC281ED0A17902291DD0E63896
:1036500001270300FFF76CF811ACB29E716E69642C
:10366000645F6459643A23211E1B640000F04AF928
:103670001421FA2000F0CAF9FA21AA2000F0B9F9C1
:10368000142100203EE0E07947E014213AE000F008
:1036900045F945E00020207040E027703EE014210D
:1036A000FA2000F0B3F900F053FA48489621401C84
:1036B00000F09CF8002827D144492079183162781D
:1036C0000A5407282CD2401C207129E000F040FA4F
:1036D0001421FA2000F09AF9002060712179022962
:1036E0000ED93A48183040182038C17F502907D1E8
:1036F000817F642904D1407FC82801D103206071F3
:103700001421607900F075F9F8BD00F021FAA07974
:10371000E071A77104E0E1710220A07100F018FAD5
:103720001421FA2000F072F9F8BD1421FA2000F0FB
:103730006DF93AE0E1710020EFE71421FA2000F082
:1037400065F9A079012800D140252078002801D012
:1037500020200543E078022801D110200543B079EC
:10376000002801D004200543F079002801D0022070
:103770000543307A002800D03D431421284600F04C
:1037800038F91421A07800F034F91421607800F0A1
:1037900030F90AE01421FA2000F038F90B4896219C
:1037A000801C00F023F80028BFD000F0D1F9F8BD4C
:1037B0001421FA2000F02AF9E770F8BD1421FA204C
:1037C00000F024F90220E070F8BD0000180000208D
:1037D00010B5054C2061A1816261E38100F092F88F
:1037E00000F080F810BD000018000020F3B581B093
:1037F0000F4600250126FCF7D5FD044606E0FCF740
:10380000D1FD001BB84201D30120FEBDFFF78EFEA3
:103810000128F4D11220FFF791F8314C0022A18940
:103820002069FCF7B8FD2420FFF788F80122A18960
:103830002069FCF7B0FD1220FFF780F8E18960698C
:10384000FCF7A0FD012800D135437004060C1220BE
:10385000FFF774F80022A1892069FCF79CFD242061
:10386000FFF76CF80122A1892069FCF794FD122072
:10387000FFF764F8FF2EE1D91220FFF75FF800226E
:10388000A1892069FCF787FD2420FFF757F8012262
:10389000A1892069FCF77FFD1220FFF74FF8122065
:1038A000FFF74CF80022E1896069FCF774FD002203
:1038B000A1892069FCF76FFD2420FFF73FF8012262
:1038C000A1892069FCF767FD1220FFF737F8012274
:1038D000E1896069FCF75FFD019805700020FEBD7D
:1038E0001800002010B5064C0122A1892069FCF7C0
:1038F00052FD0122E1896069FCF74DFD10BD000019
:103900001800002000B500F009F8034900200871F4
:103910008861C861487100BD1800002000B50748E3
:1039200064214170022181700121C1700021017068
:103930008171C17100F00CF900BD00001800002079
:1039400070B50546002409E028194078022100F0EE
:1039500050F8002801D0012070BD641C2878A042D6
:10396000F2DC002070BD000010B5FFF7DFFD154C44
:10397000022860710DD001280ED020461030FFF7CC
:1039800036FB002807D01049FFF700FE002813D1AE
:103990000DE0FFF7A7FF10BD0A480A21801CFFF7C2
:1039A00025FF0949A0781839FFF746FE10BD0648E3
:1039B000FFF7C6FF0028F9D102481030FFF722FBBD
:1039C00010BD000038000020D402002070B505466C
:1039D000FCF7E8FC044606E0FCF7E4FC001BA84208
:1039E00001D3012070BDFFF7A1FD0328F4D1002011
:1039F00070BD10B504460846FFF7E8FF002801D067
:103A0000012010BD204600F013F810BD10B504468B
:103A10000846FFF7DBFF002801D0012010BDAF20D2
:103A20008000FEF78BFF204600F002F810BD00007A
:103A3000F8B5464C054601260022E1896069FCF78D
:103A4000AAFC1220FEF77AFF0022A1892069FCF768
:103A5000A2FC2420FEF772FF0122A1892069FCF755
:103A60009AFC1220FEF76AFFA1892069FCF78AFC04
:103A7000002868D00027E80701D0012200E00022DA
:103A8000E1896069FCF787FC1220FEF757FF0022EE
:103A9000A1892069FCF77FFC2420FEF74FFF01225B
:103AA000A1892069FCF777FC1220FEF747FFA18966
:103AB0002069FCF767FC002845D0E807C00F4640A6
:103AC0006D087F1C082FD6DB002E01D0012200E0FC
:103AD0000022E1896069FCF75EFC1220FEF72EFFF0
:103AE0000022A1892069FCF756FC2420FEF726FF5E
:103AF0000122A1892069FCF74EFC1220FEF71EFF6F
:103B0000A1892069FCF73EFC00281CD00122E18934
:103B10006069FCF740FC1220FEF710FF0022A1892B
:103B20002069FCF738FC2420FEF708FF0122A18958
:103B30002069FCF730FC1220FEF700FFFA20FEF7A8
:103B4000FDFE0020F8BD0120F8BD00001800002097
:103B500002480021017241728172704718000020F2
:103B600070B52A4D287A0024002807D04D20E8712E
:103B70000122E91D2648FDF790FE2C7223481030E3
:103B8000FFF735FA00283FD02049C0220A310C80C7
:103B90008C700A708279002A01D0E0220A70027AC1
:103BA000002A03D00A7810231A430A7082785242FE
:103BB00052B2130603D50B78082423430B70530627
:103BC00003D50B78042423430B7003781B0603D51D
:103BD0000B78022423430B7003785B0603D50B7824
:103BE000012423430B7000788006800E48709006F5
:103BF000800E887005481030FFF704FA034903224D
:103C00000A310348FDF749FE70BD0000380000206E
:103C1000E001002011A0FEF77BFD134D0024295D7B
:103C200012A0FEF775FD641C202CF8DB10A0FEF737
:103C30006FFD134D002408212846FCF7A8FB6420E3
:103C4000FCF7CBFA641C642CF5DBBFF34F8F0E49F5
:103C50000C48C860BFF34F8F00BFFDE753504920A9
:103C60004552524F520A0000700200202564200085
:103C70000A7265626F6F74696E672E2E2E0A0000DD
:103C8000000400480400FA0500ED00E070B50646A7
:103C9000FCF788FB0446084D06E0FCF783FB001B9D
:103CA000B04201D9012070BD29886868FCF76AFB21
:103CB0000028F2D0002070BD5800002010B50E4C36
:103CC00021886068FCF75EFB012802D1FCF76AFBE3
:103CD000E060FCF767FBE168401A14280BD9C820A4
:103CE000FFF7D4FF1420FCF778FAAA2000F076F84A
:103CF0000A20FCF772FA10BD5800002010B500F041
:103D00003FF8FCF74FFB0149C86010BD5800002088
:103D100010B5034C60602180A260638010BD00007C
:103D20005800002070B5044653280BD8022902D051
:103D300000290DD00EE0FCF735FB084D2969401A2B
:103D4000502801D8002070BDFCF72CFB286101E051
:103D500080200443204600F041F870BD5800002048
:103D600010B5064C012221886068FCF714FB012283
:103D70006188A068FCF70FFB10BD00005800002010
:103D800010B5FFF78BFF0B4A0B48511EFEF73CFFA7
:103D9000002809D10748001F0179C078FFF7B2FF5A
:103DA000002802D0FFF7DCFF10BD0348FEF73CFF00
:103DB00010BD00003C000020B002002070B52E4C69
:103DC000054621886068FCF7DDFA00282AD0002229
:103DD00021886068FCF7DFFA0520FEF7AFFD0122BD
:103DE0006188A068FCF7D7FA6E20FEF7A7FD61880E
:103DF000A068FCF7C7FA002816D001222188606865
:103E0000FCF7C9FA4120FEF799FD0022218860687D
:103E1000FCF7C1FA1E20FEF791FD0026E80705D049
:103E2000012204E0012070BD022070BD00226188E3
:103E3000A068FCF7B0FA012221886068FCF7ABFAB1
:103E40004120FEF77BFD002221886068FCF7A3FA81
:103E50001E20FEF773FD6D08761C082EDEDB0122A6
:103E600021886068FCF797FA00226188A068FCF757
:103E700092FA002070BD000058000020FF76161E48
:103E800026252E363D3E46454E55660D151D242DE4
:103E90002C353C43444D545B5A141C1B232B3433A8
:103EA0003B424B4C520E125D1A22212A32313A41CA
:103EB000494A597C1129580506040C030B830A0151
:103EC00009777E6C757D7B6B73747969727A70711A
:103ED000FFFF6178075A144AFF11FF6C757D6B7400
:103EE00069727A7071FFFFFFFFFFFFFFFFFFFFFFA7
:103EF000FFFF1F272F00010607555342345643206A
:103F000050726F746F636F6C20426F6172640A4904
:103F1000424D20504320436F6D70617469626C653F
:103F20000A64656B754E756B656D203230323200F8
:103F30000000000000000000010203040607080959
:103F40000000000001020304683F00080000002098
:103F5000800000004A270008E83F00088000002099
:103F6000700800005A27000800000000020100004D
:103F70000000000000000000000000000000000041
:103F80000000000000000000000000000000000031
:103D800010B5064C012221886068FCF704FB002274
:103D90006188A068FCF7FFFA10BD00005800002001
:103DA00010B5FFF78BFF0B4A0B48511EFEF738FF8B
:103DB000002809D10748001F0179C078FFF7B2FF3A
:103DC000002802D0FFF7DCFF10BD0348FEF738FFE4
:103DD00010BD00003C000020B002002070B52E4C49
:103DE000054621886068FCF7CDFA00282AD0002219
:103DF00021886068FCF7CFFA0520FEF79FFD0122BD
:103E00006188A068FCF7C7FA6E20FEF797FD61880D
:103E1000A068FCF7B7FA002816D001222188606854
:103E2000FCF7B9FA4120FEF789FD0022218860687D
:103E3000FCF7B1FA1E20FEF781FD0026E80705D049
:103E4000012204E0012070BD022070BD00226188C3
:103E5000A068FCF7A0FA012221886068FCF79BFAB1
:103E60004120FEF76BFD002221886068FCF793FA81
:103E70001E20FEF763FD6D08761C082EDEDB012296
:103E800021886068FCF787FA00226188A068FCF747
:103E900082FA002070BD000058000020FF76161E38
:103EA00026252E363D3E46454E55660D151D242DC4
:103EB0002C353C43444D545B5A141C1B232B343388
:103EC0003B424B4C520E125D1A22212A32313A41AA
:103ED000494A597C1129580506040C030B830A0131
:103EE00009777E6C757D7B6B73747969727A7071FA
:103EF000FFFF6178075A144AFF11FF6C757D6B74E0
:103F000069727A7071FFFFFFFFFFFFFFFFFFFFFF86
:103F1000FFFF1F272F000106075553423456432049
:103F200050726F746F636F6C20426F6172640A49E4
:103F3000424D20504320436F6D70617469626C651F
:103F40000A64656B754E756B656D203230323200D8
:103F50000000000000000000010203040607080939
:103F60000000000001020304883F00080000002058
:103F7000800000004A270008084000088000002058
:103F8000700800005A27000800000000020100002D
:103F90000000000000000000000000000000000021
:103FA0000000000000000000000000000000000011
:103FB0000000000000000000000000000000000001
:103FC00000000000000000000000000000000000F1
:103FD000000000000000000000127A000000000055
:083FE0000000000000000000D9
:103FD00000000000000000000000000000000000E1
:103FE00000000000000000000000000000000000D1
:103FF000000000000000000000127A000000000035
:084000000000000000000000B8
:04000005080000C12E
:00000001FF

View File

File diff suppressed because it is too large Load Diff

View File

@@ -166,17 +166,18 @@ Section Cross References
main.o(i.gamepad_update) refers to mcp4451.o(i.mcp4451_write_wiper) for mcp4451_write_wiper
main.o(i.gamepad_update) refers to helpers.o(i.gamepad_buf_pop) for gamepad_buf_pop
main.o(i.gamepad_update) refers to main.o(.data) for .data
main.o(i.gameport_init) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
main.o(i.gameport_init) refers to mcp4451.o(i.mcp4451_reset) for mcp4451_reset
main.o(i.handle_protocol_switch) refers to ps2kb.o(i.__ARM_common_switch8) for __ARM_common_switch8
main.o(i.handle_protocol_switch) refers to ps2kb.o(i.ps2kb_init) for ps2kb_init
main.o(i.handle_protocol_switch) refers to xt_kb.o(i.xtkb_enable) for xtkb_enable
main.o(i.handle_protocol_switch) refers to ps2mouse.o(i.ps2mouse_init) for ps2mouse_init
main.o(i.handle_protocol_switch) refers to main.o(i.gameport_init) for gameport_init
main.o(i.handle_protocol_switch) refers to ps2kb.o(i.ps2kb_release_lines) for ps2kb_release_lines
main.o(i.handle_protocol_switch) refers to ps2kb.o(i.ps2kb_reset) for ps2kb_reset
main.o(i.handle_protocol_switch) refers to xt_kb.o(i.xtkb_release_lines) for xtkb_release_lines
main.o(i.handle_protocol_switch) refers to ps2mouse.o(i.ps2mouse_reset) for ps2mouse_reset
main.o(i.handle_protocol_switch) refers to ps2mouse.o(i.ps2mouse_release_lines) for ps2mouse_release_lines
main.o(i.handle_protocol_switch) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
main.o(i.handle_protocol_switch) refers to mcp4451.o(i.mcp4451_reset) for mcp4451_reset
main.o(i.handle_protocol_switch) refers to main.o(.bss) for .bss
main.o(i.is_protocol_enabled) refers to main.o(.bss) for .bss
main.o(i.main) refers to stm32f0xx_hal.o(i.HAL_Init) for HAL_Init
@@ -199,6 +200,7 @@ Section Cross References
main.o(i.main) refers to helpers.o(i.mouse_buf_init) for mouse_buf_init
main.o(i.main) refers to helpers.o(i.gamepad_buf_init) for gamepad_buf_init
main.o(i.main) refers to mcp4451.o(i.mcp4451_reset) for mcp4451_reset
main.o(i.main) refers to stm32f0xx_hal.o(i.HAL_Delay) for HAL_Delay
main.o(i.main) refers to mcp4451.o(i.mcp4451_is_available) for mcp4451_is_available
main.o(i.main) refers to memseta.o(.text) for __aeabi_memclr4
main.o(i.main) refers to stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT) for HAL_SPI_TransmitReceive_IT
@@ -1730,40 +1732,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/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.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 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.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 printf1.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 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.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 printf0.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE
../clib/microlib/printf/stubs.s 0x00000000 Number 0 stubs.o ABSOLUTE
../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE
@@ -1975,68 +1977,69 @@ Image Symbol Table
i.gamepad_buf_pop 0x080029f4 Section 0 helpers.o(i.gamepad_buf_pop)
i.gamepad_buf_reset 0x08002a0c Section 0 helpers.o(i.gamepad_buf_reset)
i.gamepad_update 0x08002a24 Section 0 main.o(i.gamepad_update)
i.handle_protocol_switch 0x08002ac8 Section 0 main.o(i.handle_protocol_switch)
i.is_protocol_enabled 0x08002b88 Section 0 main.o(i.is_protocol_enabled)
i.kb_buf_add 0x08002b9c Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x08002bcc Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_is_full 0x08002bec Section 0 helpers.o(i.kb_buf_is_full)
i.kb_buf_peek 0x08002c08 Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x08002c28 Section 0 helpers.o(i.kb_buf_pop)
i.kb_buf_reset 0x08002c40 Section 0 helpers.o(i.kb_buf_reset)
i.keyboard_reply 0x08002c5c Section 0 ps2kb.o(i.keyboard_reply)
i.main 0x08002d10 Section 0 main.o(i.main)
i.malloc 0x08002e74 Section 0 malloc.o(i.malloc)
i.mcp4451_is_available 0x08002ee0 Section 0 mcp4451.o(i.mcp4451_is_available)
i.mcp4451_reset 0x08002f00 Section 0 mcp4451.o(i.mcp4451_reset)
i.mcp4451_write_wiper 0x08002f20 Section 0 mcp4451.o(i.mcp4451_write_wiper)
i.micros 0x08002f58 Section 0 delay_us.o(i.micros)
i.mouse_buf_add 0x08002f68 Section 0 helpers.o(i.mouse_buf_add)
i.mouse_buf_init 0x08002f9a Section 0 helpers.o(i.mouse_buf_init)
i.mouse_buf_is_full 0x08002fb2 Section 0 helpers.o(i.mouse_buf_is_full)
i.mouse_buf_peek 0x08002fce Section 0 helpers.o(i.mouse_buf_peek)
i.mouse_buf_pop 0x08002fe4 Section 0 helpers.o(i.mouse_buf_pop)
i.mouse_buf_reset 0x08002ffc Section 0 helpers.o(i.mouse_buf_reset)
i.protocol_status_lookup_init 0x08003014 Section 0 main.o(i.protocol_status_lookup_init)
i.ps2kb_get_bus_status 0x08003034 Section 0 ps2kb.o(i.ps2kb_get_bus_status)
i.ps2kb_init 0x08003078 Section 0 ps2kb.o(i.ps2kb_init)
i.ps2kb_press_key 0x08003094 Section 0 ps2kb.o(i.ps2kb_press_key)
i.ps2kb_read 0x080031d8 Section 0 ps2kb.o(i.ps2kb_read)
i.ps2kb_release_lines 0x080032d4 Section 0 ps2kb.o(i.ps2kb_release_lines)
i.ps2kb_reset 0x080032f4 Section 0 ps2kb.o(i.ps2kb_reset)
i.ps2kb_update 0x08003304 Section 0 main.o(i.ps2kb_update)
i.ps2kb_write 0x080033a8 Section 0 ps2kb.o(i.ps2kb_write)
i.ps2kb_write_nowait 0x080033ec Section 0 ps2kb.o(i.ps2kb_write_nowait)
i.ps2mouse_get_bus_status 0x0800350c Section 0 ps2mouse.o(i.ps2mouse_get_bus_status)
i.ps2mouse_get_outgoing_data 0x0800356c Section 0 ps2mouse.o(i.ps2mouse_get_outgoing_data)
i.ps2mouse_host_req_reply 0x08003618 Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
i.ps2mouse_init 0x080037b0 Section 0 ps2mouse.o(i.ps2mouse_init)
i.ps2mouse_read 0x080037cc Section 0 ps2mouse.o(i.ps2mouse_read)
i.ps2mouse_release_lines 0x080038c4 Section 0 ps2mouse.o(i.ps2mouse_release_lines)
i.ps2mouse_reset 0x080038e4 Section 0 ps2mouse.o(i.ps2mouse_reset)
i.ps2mouse_restore_defaults 0x080038fc Section 0 ps2mouse.o(i.ps2mouse_restore_defaults)
i.ps2mouse_send_update 0x08003920 Section 0 ps2mouse.o(i.ps2mouse_send_update)
i.ps2mouse_update 0x08003948 Section 0 main.o(i.ps2mouse_update)
i.ps2mouse_wait_for_idle 0x080039ac Section 0 ps2mouse.o(i.ps2mouse_wait_for_idle)
i.ps2mouse_write 0x080039d2 Section 0 ps2mouse.o(i.ps2mouse_write)
i.ps2mouse_write_delay_start 0x080039ec Section 0 ps2mouse.o(i.ps2mouse_write_delay_start)
i.ps2mouse_write_nowait 0x08003a10 Section 0 ps2mouse.o(i.ps2mouse_write_nowait)
i.reset_accumulators 0x08003b30 Section 0 ps2mouse.o(i.reset_accumulators)
i.serial_mouse_update 0x08003b40 Section 0 main.o(i.serial_mouse_update)
i.spi_error_dump_reboot 0x08003bf4 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_for_clk_high 0x08003c6c Section 0 xt_kb.o(i.wait_for_clk_high)
i.xtkb_check_for_softreset 0x08003c9c Section 0 xt_kb.o(i.xtkb_check_for_softreset)
i.xtkb_enable 0x08003cdc Section 0 xt_kb.o(i.xtkb_enable)
i.xtkb_init 0x08003cf0 Section 0 xt_kb.o(i.xtkb_init)
i.xtkb_press_key 0x08003d04 Section 0 xt_kb.o(i.xtkb_press_key)
i.xtkb_release_lines 0x08003d40 Section 0 xt_kb.o(i.xtkb_release_lines)
i.xtkb_reset_bus 0x08003d60 Section 0 xt_kb.o(i.xtkb_reset_bus)
i.xtkb_update 0x08003d80 Section 0 main.o(i.xtkb_update)
i.xtkb_write 0x08003dbc Section 0 xt_kb.o(i.xtkb_write)
.constdata 0x08003e7c Section 121 ps2kb.o(.constdata)
.constdata 0x08003ef5 Section 4 mcp4451.o(.constdata)
.constdata 0x08003ef9 Section 55 main.o(.constdata)
.constdata 0x08003f30 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08003f40 Section 8 system_stm32f0xx.o(.constdata)
i.gameport_init 0x08002ac8 Section 0 main.o(i.gameport_init)
i.handle_protocol_switch 0x08002b04 Section 0 main.o(i.handle_protocol_switch)
i.is_protocol_enabled 0x08002ba0 Section 0 main.o(i.is_protocol_enabled)
i.kb_buf_add 0x08002bb4 Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x08002be4 Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_is_full 0x08002c04 Section 0 helpers.o(i.kb_buf_is_full)
i.kb_buf_peek 0x08002c20 Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x08002c40 Section 0 helpers.o(i.kb_buf_pop)
i.kb_buf_reset 0x08002c58 Section 0 helpers.o(i.kb_buf_reset)
i.keyboard_reply 0x08002c74 Section 0 ps2kb.o(i.keyboard_reply)
i.main 0x08002d28 Section 0 main.o(i.main)
i.malloc 0x08002e94 Section 0 malloc.o(i.malloc)
i.mcp4451_is_available 0x08002f00 Section 0 mcp4451.o(i.mcp4451_is_available)
i.mcp4451_reset 0x08002f20 Section 0 mcp4451.o(i.mcp4451_reset)
i.mcp4451_write_wiper 0x08002f40 Section 0 mcp4451.o(i.mcp4451_write_wiper)
i.micros 0x08002f78 Section 0 delay_us.o(i.micros)
i.mouse_buf_add 0x08002f88 Section 0 helpers.o(i.mouse_buf_add)
i.mouse_buf_init 0x08002fba Section 0 helpers.o(i.mouse_buf_init)
i.mouse_buf_is_full 0x08002fd2 Section 0 helpers.o(i.mouse_buf_is_full)
i.mouse_buf_peek 0x08002fee Section 0 helpers.o(i.mouse_buf_peek)
i.mouse_buf_pop 0x08003004 Section 0 helpers.o(i.mouse_buf_pop)
i.mouse_buf_reset 0x0800301c Section 0 helpers.o(i.mouse_buf_reset)
i.protocol_status_lookup_init 0x08003034 Section 0 main.o(i.protocol_status_lookup_init)
i.ps2kb_get_bus_status 0x08003054 Section 0 ps2kb.o(i.ps2kb_get_bus_status)
i.ps2kb_init 0x08003098 Section 0 ps2kb.o(i.ps2kb_init)
i.ps2kb_press_key 0x080030b4 Section 0 ps2kb.o(i.ps2kb_press_key)
i.ps2kb_read 0x080031f8 Section 0 ps2kb.o(i.ps2kb_read)
i.ps2kb_release_lines 0x080032f4 Section 0 ps2kb.o(i.ps2kb_release_lines)
i.ps2kb_reset 0x08003314 Section 0 ps2kb.o(i.ps2kb_reset)
i.ps2kb_update 0x08003324 Section 0 main.o(i.ps2kb_update)
i.ps2kb_write 0x080033c8 Section 0 ps2kb.o(i.ps2kb_write)
i.ps2kb_write_nowait 0x0800340c Section 0 ps2kb.o(i.ps2kb_write_nowait)
i.ps2mouse_get_bus_status 0x0800352c Section 0 ps2mouse.o(i.ps2mouse_get_bus_status)
i.ps2mouse_get_outgoing_data 0x0800358c Section 0 ps2mouse.o(i.ps2mouse_get_outgoing_data)
i.ps2mouse_host_req_reply 0x08003638 Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
i.ps2mouse_init 0x080037d0 Section 0 ps2mouse.o(i.ps2mouse_init)
i.ps2mouse_read 0x080037ec Section 0 ps2mouse.o(i.ps2mouse_read)
i.ps2mouse_release_lines 0x080038e4 Section 0 ps2mouse.o(i.ps2mouse_release_lines)
i.ps2mouse_reset 0x08003904 Section 0 ps2mouse.o(i.ps2mouse_reset)
i.ps2mouse_restore_defaults 0x0800391c Section 0 ps2mouse.o(i.ps2mouse_restore_defaults)
i.ps2mouse_send_update 0x08003940 Section 0 ps2mouse.o(i.ps2mouse_send_update)
i.ps2mouse_update 0x08003968 Section 0 main.o(i.ps2mouse_update)
i.ps2mouse_wait_for_idle 0x080039cc Section 0 ps2mouse.o(i.ps2mouse_wait_for_idle)
i.ps2mouse_write 0x080039f2 Section 0 ps2mouse.o(i.ps2mouse_write)
i.ps2mouse_write_delay_start 0x08003a0c Section 0 ps2mouse.o(i.ps2mouse_write_delay_start)
i.ps2mouse_write_nowait 0x08003a30 Section 0 ps2mouse.o(i.ps2mouse_write_nowait)
i.reset_accumulators 0x08003b50 Section 0 ps2mouse.o(i.reset_accumulators)
i.serial_mouse_update 0x08003b60 Section 0 main.o(i.serial_mouse_update)
i.spi_error_dump_reboot 0x08003c14 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_for_clk_high 0x08003c8c Section 0 xt_kb.o(i.wait_for_clk_high)
i.xtkb_check_for_softreset 0x08003cbc Section 0 xt_kb.o(i.xtkb_check_for_softreset)
i.xtkb_enable 0x08003cfc Section 0 xt_kb.o(i.xtkb_enable)
i.xtkb_init 0x08003d10 Section 0 xt_kb.o(i.xtkb_init)
i.xtkb_press_key 0x08003d24 Section 0 xt_kb.o(i.xtkb_press_key)
i.xtkb_release_lines 0x08003d60 Section 0 xt_kb.o(i.xtkb_release_lines)
i.xtkb_reset_bus 0x08003d80 Section 0 xt_kb.o(i.xtkb_reset_bus)
i.xtkb_update 0x08003da0 Section 0 main.o(i.xtkb_update)
i.xtkb_write 0x08003ddc Section 0 xt_kb.o(i.xtkb_write)
.constdata 0x08003e9c Section 121 ps2kb.o(.constdata)
.constdata 0x08003f15 Section 4 mcp4451.o(.constdata)
.constdata 0x08003f19 Section 55 main.o(.constdata)
.constdata 0x08003f50 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08003f60 Section 8 system_stm32f0xx.o(.constdata)
.data 0x20000000 Section 4 delay_us.o(.data)
.data 0x20000004 Section 20 ps2kb.o(.data)
.data 0x20000018 Section 32 ps2mouse.o(.data)
@@ -2248,71 +2251,72 @@ Image Symbol Table
gamepad_buf_pop 0x080029f5 Thumb Code 24 helpers.o(i.gamepad_buf_pop)
gamepad_buf_reset 0x08002a0d Thumb Code 22 helpers.o(i.gamepad_buf_reset)
gamepad_update 0x08002a25 Thumb Code 150 main.o(i.gamepad_update)
handle_protocol_switch 0x08002ac9 Thumb Code 176 main.o(i.handle_protocol_switch)
is_protocol_enabled 0x08002b89 Thumb Code 16 main.o(i.is_protocol_enabled)
kb_buf_add 0x08002b9d Thumb Code 48 helpers.o(i.kb_buf_add)
kb_buf_init 0x08002bcd Thumb Code 32 helpers.o(i.kb_buf_init)
kb_buf_is_full 0x08002bed Thumb Code 28 helpers.o(i.kb_buf_is_full)
kb_buf_peek 0x08002c09 Thumb Code 32 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x08002c29 Thumb Code 24 helpers.o(i.kb_buf_pop)
kb_buf_reset 0x08002c41 Thumb Code 28 helpers.o(i.kb_buf_reset)
keyboard_reply 0x08002c5d Thumb Code 174 ps2kb.o(i.keyboard_reply)
main 0x08002d11 Thumb Code 316 main.o(i.main)
malloc 0x08002e75 Thumb Code 92 malloc.o(i.malloc)
mcp4451_is_available 0x08002ee1 Thumb Code 26 mcp4451.o(i.mcp4451_is_available)
mcp4451_reset 0x08002f01 Thumb Code 26 mcp4451.o(i.mcp4451_reset)
mcp4451_write_wiper 0x08002f21 Thumb Code 46 mcp4451.o(i.mcp4451_write_wiper)
micros 0x08002f59 Thumb Code 10 delay_us.o(i.micros)
mouse_buf_add 0x08002f69 Thumb Code 50 helpers.o(i.mouse_buf_add)
mouse_buf_init 0x08002f9b Thumb Code 24 helpers.o(i.mouse_buf_init)
mouse_buf_is_full 0x08002fb3 Thumb Code 28 helpers.o(i.mouse_buf_is_full)
mouse_buf_peek 0x08002fcf Thumb Code 22 helpers.o(i.mouse_buf_peek)
mouse_buf_pop 0x08002fe5 Thumb Code 24 helpers.o(i.mouse_buf_pop)
mouse_buf_reset 0x08002ffd Thumb Code 22 helpers.o(i.mouse_buf_reset)
protocol_status_lookup_init 0x08003015 Thumb Code 28 main.o(i.protocol_status_lookup_init)
ps2kb_get_bus_status 0x08003035 Thumb Code 62 ps2kb.o(i.ps2kb_get_bus_status)
ps2kb_init 0x08003079 Thumb Code 22 ps2kb.o(i.ps2kb_init)
ps2kb_press_key 0x08003095 Thumb Code 314 ps2kb.o(i.ps2kb_press_key)
ps2kb_read 0x080031d9 Thumb Code 246 ps2kb.o(i.ps2kb_read)
ps2kb_release_lines 0x080032d5 Thumb Code 26 ps2kb.o(i.ps2kb_release_lines)
ps2kb_reset 0x080032f5 Thumb Code 12 ps2kb.o(i.ps2kb_reset)
ps2kb_update 0x08003305 Thumb Code 152 main.o(i.ps2kb_update)
ps2kb_write 0x080033a9 Thumb Code 62 ps2kb.o(i.ps2kb_write)
ps2kb_write_nowait 0x080033ed Thumb Code 282 ps2kb.o(i.ps2kb_write_nowait)
ps2mouse_get_bus_status 0x0800350d Thumb Code 92 ps2mouse.o(i.ps2mouse_get_bus_status)
ps2mouse_get_outgoing_data 0x0800356d Thumb Code 166 ps2mouse.o(i.ps2mouse_get_outgoing_data)
ps2mouse_host_req_reply 0x08003619 Thumb Code 402 ps2mouse.o(i.ps2mouse_host_req_reply)
ps2mouse_init 0x080037b1 Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
ps2mouse_read 0x080037cd Thumb Code 244 ps2mouse.o(i.ps2mouse_read)
ps2mouse_release_lines 0x080038c5 Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
ps2mouse_reset 0x080038e5 Thumb Code 20 ps2mouse.o(i.ps2mouse_reset)
ps2mouse_restore_defaults 0x080038fd Thumb Code 30 ps2mouse.o(i.ps2mouse_restore_defaults)
ps2mouse_send_update 0x08003921 Thumb Code 38 ps2mouse.o(i.ps2mouse_send_update)
ps2mouse_update 0x08003949 Thumb Code 90 main.o(i.ps2mouse_update)
ps2mouse_wait_for_idle 0x080039ad Thumb Code 38 ps2mouse.o(i.ps2mouse_wait_for_idle)
ps2mouse_write 0x080039d3 Thumb Code 26 ps2mouse.o(i.ps2mouse_write)
ps2mouse_write_delay_start 0x080039ed Thumb Code 34 ps2mouse.o(i.ps2mouse_write_delay_start)
ps2mouse_write_nowait 0x08003a11 Thumb Code 282 ps2mouse.o(i.ps2mouse_write_nowait)
reset_accumulators 0x08003b31 Thumb Code 12 ps2mouse.o(i.reset_accumulators)
serial_mouse_update 0x08003b41 Thumb Code 170 main.o(i.serial_mouse_update)
spi_error_dump_reboot 0x08003bf5 Thumb Code 72 main.o(i.spi_error_dump_reboot)
wait_for_clk_high 0x08003c6d Thumb Code 44 xt_kb.o(i.wait_for_clk_high)
xtkb_check_for_softreset 0x08003c9d Thumb Code 60 xt_kb.o(i.xtkb_check_for_softreset)
xtkb_enable 0x08003cdd Thumb Code 16 xt_kb.o(i.xtkb_enable)
xtkb_init 0x08003cf1 Thumb Code 14 xt_kb.o(i.xtkb_init)
xtkb_press_key 0x08003d05 Thumb Code 56 xt_kb.o(i.xtkb_press_key)
xtkb_release_lines 0x08003d41 Thumb Code 26 xt_kb.o(i.xtkb_release_lines)
xtkb_reset_bus 0x08003d61 Thumb Code 26 xt_kb.o(i.xtkb_reset_bus)
xtkb_update 0x08003d81 Thumb Code 50 main.o(i.xtkb_update)
xtkb_write 0x08003dbd Thumb Code 186 xt_kb.o(i.xtkb_write)
linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x08003e7c Data 89 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x08003ed5 Data 32 ps2kb.o(.constdata)
mcp4451_wiper_id_to_reg_addr_lookup 0x08003ef5 Data 4 mcp4451.o(.constdata)
boot_message 0x08003ef9 Data 55 main.o(.constdata)
AHBPrescTable 0x08003f30 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08003f40 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08003f48 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08003f68 Number 0 anon$$obj.o(Region$$Table)
gameport_init 0x08002ac9 Thumb Code 52 main.o(i.gameport_init)
handle_protocol_switch 0x08002b05 Thumb Code 148 main.o(i.handle_protocol_switch)
is_protocol_enabled 0x08002ba1 Thumb Code 16 main.o(i.is_protocol_enabled)
kb_buf_add 0x08002bb5 Thumb Code 48 helpers.o(i.kb_buf_add)
kb_buf_init 0x08002be5 Thumb Code 32 helpers.o(i.kb_buf_init)
kb_buf_is_full 0x08002c05 Thumb Code 28 helpers.o(i.kb_buf_is_full)
kb_buf_peek 0x08002c21 Thumb Code 32 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x08002c41 Thumb Code 24 helpers.o(i.kb_buf_pop)
kb_buf_reset 0x08002c59 Thumb Code 28 helpers.o(i.kb_buf_reset)
keyboard_reply 0x08002c75 Thumb Code 174 ps2kb.o(i.keyboard_reply)
main 0x08002d29 Thumb Code 322 main.o(i.main)
malloc 0x08002e95 Thumb Code 92 malloc.o(i.malloc)
mcp4451_is_available 0x08002f01 Thumb Code 26 mcp4451.o(i.mcp4451_is_available)
mcp4451_reset 0x08002f21 Thumb Code 26 mcp4451.o(i.mcp4451_reset)
mcp4451_write_wiper 0x08002f41 Thumb Code 46 mcp4451.o(i.mcp4451_write_wiper)
micros 0x08002f79 Thumb Code 10 delay_us.o(i.micros)
mouse_buf_add 0x08002f89 Thumb Code 50 helpers.o(i.mouse_buf_add)
mouse_buf_init 0x08002fbb Thumb Code 24 helpers.o(i.mouse_buf_init)
mouse_buf_is_full 0x08002fd3 Thumb Code 28 helpers.o(i.mouse_buf_is_full)
mouse_buf_peek 0x08002fef Thumb Code 22 helpers.o(i.mouse_buf_peek)
mouse_buf_pop 0x08003005 Thumb Code 24 helpers.o(i.mouse_buf_pop)
mouse_buf_reset 0x0800301d Thumb Code 22 helpers.o(i.mouse_buf_reset)
protocol_status_lookup_init 0x08003035 Thumb Code 28 main.o(i.protocol_status_lookup_init)
ps2kb_get_bus_status 0x08003055 Thumb Code 62 ps2kb.o(i.ps2kb_get_bus_status)
ps2kb_init 0x08003099 Thumb Code 22 ps2kb.o(i.ps2kb_init)
ps2kb_press_key 0x080030b5 Thumb Code 314 ps2kb.o(i.ps2kb_press_key)
ps2kb_read 0x080031f9 Thumb Code 246 ps2kb.o(i.ps2kb_read)
ps2kb_release_lines 0x080032f5 Thumb Code 26 ps2kb.o(i.ps2kb_release_lines)
ps2kb_reset 0x08003315 Thumb Code 12 ps2kb.o(i.ps2kb_reset)
ps2kb_update 0x08003325 Thumb Code 152 main.o(i.ps2kb_update)
ps2kb_write 0x080033c9 Thumb Code 62 ps2kb.o(i.ps2kb_write)
ps2kb_write_nowait 0x0800340d Thumb Code 282 ps2kb.o(i.ps2kb_write_nowait)
ps2mouse_get_bus_status 0x0800352d Thumb Code 92 ps2mouse.o(i.ps2mouse_get_bus_status)
ps2mouse_get_outgoing_data 0x0800358d Thumb Code 166 ps2mouse.o(i.ps2mouse_get_outgoing_data)
ps2mouse_host_req_reply 0x08003639 Thumb Code 402 ps2mouse.o(i.ps2mouse_host_req_reply)
ps2mouse_init 0x080037d1 Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
ps2mouse_read 0x080037ed Thumb Code 244 ps2mouse.o(i.ps2mouse_read)
ps2mouse_release_lines 0x080038e5 Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
ps2mouse_reset 0x08003905 Thumb Code 20 ps2mouse.o(i.ps2mouse_reset)
ps2mouse_restore_defaults 0x0800391d Thumb Code 30 ps2mouse.o(i.ps2mouse_restore_defaults)
ps2mouse_send_update 0x08003941 Thumb Code 38 ps2mouse.o(i.ps2mouse_send_update)
ps2mouse_update 0x08003969 Thumb Code 90 main.o(i.ps2mouse_update)
ps2mouse_wait_for_idle 0x080039cd Thumb Code 38 ps2mouse.o(i.ps2mouse_wait_for_idle)
ps2mouse_write 0x080039f3 Thumb Code 26 ps2mouse.o(i.ps2mouse_write)
ps2mouse_write_delay_start 0x08003a0d Thumb Code 34 ps2mouse.o(i.ps2mouse_write_delay_start)
ps2mouse_write_nowait 0x08003a31 Thumb Code 282 ps2mouse.o(i.ps2mouse_write_nowait)
reset_accumulators 0x08003b51 Thumb Code 12 ps2mouse.o(i.reset_accumulators)
serial_mouse_update 0x08003b61 Thumb Code 170 main.o(i.serial_mouse_update)
spi_error_dump_reboot 0x08003c15 Thumb Code 72 main.o(i.spi_error_dump_reboot)
wait_for_clk_high 0x08003c8d Thumb Code 44 xt_kb.o(i.wait_for_clk_high)
xtkb_check_for_softreset 0x08003cbd Thumb Code 60 xt_kb.o(i.xtkb_check_for_softreset)
xtkb_enable 0x08003cfd Thumb Code 16 xt_kb.o(i.xtkb_enable)
xtkb_init 0x08003d11 Thumb Code 14 xt_kb.o(i.xtkb_init)
xtkb_press_key 0x08003d25 Thumb Code 56 xt_kb.o(i.xtkb_press_key)
xtkb_release_lines 0x08003d61 Thumb Code 26 xt_kb.o(i.xtkb_release_lines)
xtkb_reset_bus 0x08003d81 Thumb Code 26 xt_kb.o(i.xtkb_reset_bus)
xtkb_update 0x08003da1 Thumb Code 50 main.o(i.xtkb_update)
xtkb_write 0x08003ddd Thumb Code 186 xt_kb.o(i.xtkb_write)
linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x08003e9c Data 89 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x08003ef5 Data 32 ps2kb.o(.constdata)
mcp4451_wiper_id_to_reg_addr_lookup 0x08003f15 Data 4 mcp4451.o(.constdata)
boot_message 0x08003f19 Data 55 main.o(.constdata)
AHBPrescTable 0x08003f50 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08003f60 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08003f68 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08003f88 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)
@@ -2386,145 +2390,145 @@ Memory Map of the image
Image Entry point : 0x080000c1
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00003fe8, Max: 0x00010000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00004008, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00003f68, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00003f88, 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 3909 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
0x080000c0 0x080000c0 0x00000004 Code RO 4211 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
0x080000c4 0x080000c4 0x00000004 Code RO 4214 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
0x080000c8 0x080000c8 0x00000000 Code RO 4216 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
0x080000c8 0x080000c8 0x00000000 Code RO 4218 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
0x080000c8 0x080000c8 0x00000008 Code RO 4219 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 4221 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 4223 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
0x080000d0 0x080000d0 0x00000004 Code RO 4212 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
0x080000c0 0x080000c0 0x00000000 Code RO 3915 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
0x080000c0 0x080000c0 0x00000004 Code RO 4217 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
0x080000c4 0x080000c4 0x00000004 Code RO 4220 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
0x080000c8 0x080000c8 0x00000000 Code RO 4222 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
0x080000c8 0x080000c8 0x00000000 Code RO 4224 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
0x080000c8 0x080000c8 0x00000008 Code RO 4225 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 4227 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 4229 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
0x080000d0 0x080000d0 0x00000004 Code RO 4218 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
0x080000d4 0x080000d4 0x0000001c Code RO 4 .text startup_stm32f072xb.o
0x080000f0 0x080000f0 0x0000002c Code RO 3912 .text mc_p.l(uidiv.o)
0x0800011c 0x0800011c 0x00000024 Code RO 3916 .text mc_p.l(memcpya.o)
0x08000140 0x08000140 0x00000024 Code RO 3918 .text mc_p.l(memseta.o)
0x08000164 0x08000164 0x00000024 Code RO 4241 .text mc_p.l(init.o)
0x08000188 0x08000188 0x0000000a Code RO 681 i.EXTI0_1_IRQHandler stm32f0xx_it.o
0x08000192 0x08000192 0x00000048 Code RO 3356 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x080001da 0x080001da 0x0000001c Code RO 3159 i.HAL_Delay stm32f0xx_hal.o
0x080000f0 0x080000f0 0x0000002c Code RO 3918 .text mc_p.l(uidiv.o)
0x0800011c 0x0800011c 0x00000024 Code RO 3922 .text mc_p.l(memcpya.o)
0x08000140 0x08000140 0x00000024 Code RO 3924 .text mc_p.l(memseta.o)
0x08000164 0x08000164 0x00000024 Code RO 4247 .text mc_p.l(init.o)
0x08000188 0x08000188 0x0000000a Code RO 687 i.EXTI0_1_IRQHandler stm32f0xx_it.o
0x08000192 0x08000192 0x00000048 Code RO 3362 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x080001da 0x080001da 0x0000001c Code RO 3165 i.HAL_Delay stm32f0xx_hal.o
0x080001f6 0x080001f6 0x00000002 PAD
0x080001f8 0x080001f8 0x0000001c Code RO 515 i.HAL_GPIO_EXTI_Callback main.o
0x08000214 0x08000214 0x00000018 Code RO 3293 i.HAL_GPIO_EXTI_IRQHandler stm32f0xx_hal_gpio.o
0x0800022c 0x0800022c 0x00000158 Code RO 3294 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x08000384 0x08000384 0x0000000a Code RO 3296 i.HAL_GPIO_ReadPin stm32f0xx_hal_gpio.o
0x0800038e 0x0800038e 0x00000008 Code RO 3297 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o
0x08000396 0x08000396 0x0000000c Code RO 3298 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x08000214 0x08000214 0x00000018 Code RO 3299 i.HAL_GPIO_EXTI_IRQHandler stm32f0xx_hal_gpio.o
0x0800022c 0x0800022c 0x00000158 Code RO 3300 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x08000384 0x08000384 0x0000000a Code RO 3302 i.HAL_GPIO_ReadPin stm32f0xx_hal_gpio.o
0x0800038e 0x0800038e 0x00000008 Code RO 3303 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o
0x08000396 0x08000396 0x0000000c Code RO 3304 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x080003a2 0x080003a2 0x00000002 PAD
0x080003a4 0x080003a4 0x0000000c Code RO 3163 i.HAL_GetTick stm32f0xx_hal.o
0x080003b0 0x080003b0 0x0000004a Code RO 1303 i.HAL_I2CEx_ConfigAnalogFilter stm32f0xx_hal_i2c_ex.o
0x080003fa 0x080003fa 0x00000048 Code RO 1304 i.HAL_I2CEx_ConfigDigitalFilter stm32f0xx_hal_i2c_ex.o
0x080003a4 0x080003a4 0x0000000c Code RO 3169 i.HAL_GetTick stm32f0xx_hal.o
0x080003b0 0x080003b0 0x0000004a Code RO 1309 i.HAL_I2CEx_ConfigAnalogFilter stm32f0xx_hal_i2c_ex.o
0x080003fa 0x080003fa 0x00000048 Code RO 1310 i.HAL_I2CEx_ConfigDigitalFilter stm32f0xx_hal_i2c_ex.o
0x08000442 0x08000442 0x00000002 PAD
0x08000444 0x08000444 0x000000b4 Code RO 890 i.HAL_I2C_Init stm32f0xx_hal_i2c.o
0x080004f8 0x080004f8 0x0000011c Code RO 891 i.HAL_I2C_IsDeviceReady stm32f0xx_hal_i2c.o
0x08000614 0x08000614 0x00000154 Code RO 909 i.HAL_I2C_Mem_Write stm32f0xx_hal_i2c.o
0x08000768 0x08000768 0x0000004c Code RO 748 i.HAL_I2C_MspInit stm32f0xx_hal_msp.o
0x080007b4 0x080007b4 0x00000010 Code RO 3167 i.HAL_IncTick stm32f0xx_hal.o
0x080007c4 0x080007c4 0x00000020 Code RO 3168 i.HAL_Init stm32f0xx_hal.o
0x080007e4 0x080007e4 0x00000022 Code RO 3169 i.HAL_InitTick stm32f0xx_hal.o
0x08000444 0x08000444 0x000000b4 Code RO 896 i.HAL_I2C_Init stm32f0xx_hal_i2c.o
0x080004f8 0x080004f8 0x0000011c Code RO 897 i.HAL_I2C_IsDeviceReady stm32f0xx_hal_i2c.o
0x08000614 0x08000614 0x00000154 Code RO 915 i.HAL_I2C_Mem_Write stm32f0xx_hal_i2c.o
0x08000768 0x08000768 0x0000004c Code RO 754 i.HAL_I2C_MspInit stm32f0xx_hal_msp.o
0x080007b4 0x080007b4 0x00000010 Code RO 3173 i.HAL_IncTick stm32f0xx_hal.o
0x080007c4 0x080007c4 0x00000020 Code RO 3174 i.HAL_Init stm32f0xx_hal.o
0x080007e4 0x080007e4 0x00000022 Code RO 3175 i.HAL_InitTick stm32f0xx_hal.o
0x08000806 0x08000806 0x00000002 PAD
0x08000808 0x08000808 0x00000044 Code RO 749 i.HAL_MspInit stm32f0xx_hal_msp.o
0x0800084c 0x0800084c 0x00000014 Code RO 3451 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x08000860 0x08000860 0x00000008 Code RO 3455 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08000868 0x08000868 0x00000120 Code RO 3079 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o
0x08000988 0x08000988 0x00000154 Code RO 2977 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x08000adc 0x08000adc 0x0000000c Code RO 2982 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000ae8 0x08000ae8 0x00000020 Code RO 2984 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x08000b08 0x08000b08 0x00000088 Code RO 2985 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x08000b90 0x08000b90 0x000003d8 Code RO 2988 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000f68 0x08000f68 0x00000002 Code RO 1360 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x08000808 0x08000808 0x00000044 Code RO 755 i.HAL_MspInit stm32f0xx_hal_msp.o
0x0800084c 0x0800084c 0x00000014 Code RO 3457 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x08000860 0x08000860 0x00000008 Code RO 3461 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08000868 0x08000868 0x00000120 Code RO 3085 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o
0x08000988 0x08000988 0x00000154 Code RO 2983 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x08000adc 0x08000adc 0x0000000c Code RO 2988 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000ae8 0x08000ae8 0x00000020 Code RO 2990 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x08000b08 0x08000b08 0x00000088 Code RO 2991 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x08000b90 0x08000b90 0x000003d8 Code RO 2994 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000f68 0x08000f68 0x00000002 Code RO 1366 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x08000f6a 0x08000f6a 0x00000002 PAD
0x08000f6c 0x08000f6c 0x000000d4 Code RO 1363 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x08001040 0x08001040 0x000000b8 Code RO 1364 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x080010f8 0x080010f8 0x00000054 Code RO 751 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x0800114c 0x0800114c 0x00000002 Code RO 1370 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x08000f6c 0x08000f6c 0x000000d4 Code RO 1369 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x08001040 0x08001040 0x000000b8 Code RO 1370 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x080010f8 0x080010f8 0x00000054 Code RO 757 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x0800114c 0x0800114c 0x00000002 Code RO 1376 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x0800114e 0x0800114e 0x00000002 PAD
0x08001150 0x08001150 0x000000d4 Code RO 1375 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x08001150 0x08001150 0x000000d4 Code RO 1381 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x08001224 0x08001224 0x0000017c Code RO 516 i.HAL_SPI_TxRxCpltCallback main.o
0x080013a0 0x080013a0 0x00000018 Code RO 3457 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x080013b8 0x080013b8 0x00000002 Code RO 3458 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x080013a0 0x080013a0 0x00000018 Code RO 3463 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x080013b8 0x080013b8 0x00000002 Code RO 3464 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x080013ba 0x080013ba 0x00000002 PAD
0x080013bc 0x080013bc 0x00000030 Code RO 3459 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x080013ec 0x080013ec 0x00000008 Code RO 3460 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x080013f4 0x080013f4 0x00000048 Code RO 2352 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x0800143c 0x0800143c 0x00000034 Code RO 1698 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x08001470 0x08001470 0x00000024 Code RO 753 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08001494 0x08001494 0x00000018 Code RO 1701 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x080014ac 0x080014ac 0x000000ee Code RO 1707 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x0800159a 0x0800159a 0x00000002 Code RO 2921 i.HAL_UARTEx_WakeupCallback stm32f0xx_hal_uart_ex.o
0x0800159c 0x0800159c 0x00000002 Code RO 2596 i.HAL_UART_ErrorCallback stm32f0xx_hal_uart.o
0x080013bc 0x080013bc 0x00000030 Code RO 3465 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x080013ec 0x080013ec 0x00000008 Code RO 3466 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x080013f4 0x080013f4 0x00000048 Code RO 2358 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x0800143c 0x0800143c 0x00000034 Code RO 1704 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x08001470 0x08001470 0x00000024 Code RO 759 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08001494 0x08001494 0x00000018 Code RO 1707 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x080014ac 0x080014ac 0x000000ee Code RO 1713 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x0800159a 0x0800159a 0x00000002 Code RO 2927 i.HAL_UARTEx_WakeupCallback stm32f0xx_hal_uart_ex.o
0x0800159c 0x0800159c 0x00000002 Code RO 2602 i.HAL_UART_ErrorCallback stm32f0xx_hal_uart.o
0x0800159e 0x0800159e 0x00000002 PAD
0x080015a0 0x080015a0 0x00000134 Code RO 2599 i.HAL_UART_IRQHandler stm32f0xx_hal_uart.o
0x080016d4 0x080016d4 0x0000006c Code RO 2600 i.HAL_UART_Init stm32f0xx_hal_uart.o
0x08001740 0x08001740 0x00000090 Code RO 755 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x080017d0 0x080017d0 0x00000002 Code RO 2606 i.HAL_UART_RxCpltCallback stm32f0xx_hal_uart.o
0x080017d2 0x080017d2 0x000000c8 Code RO 2608 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x0800189a 0x0800189a 0x00000058 Code RO 2610 i.HAL_UART_Transmit_IT stm32f0xx_hal_uart.o
0x080015a0 0x080015a0 0x00000134 Code RO 2605 i.HAL_UART_IRQHandler stm32f0xx_hal_uart.o
0x080016d4 0x080016d4 0x0000006c Code RO 2606 i.HAL_UART_Init stm32f0xx_hal_uart.o
0x08001740 0x08001740 0x00000090 Code RO 761 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x080017d0 0x080017d0 0x00000002 Code RO 2612 i.HAL_UART_RxCpltCallback stm32f0xx_hal_uart.o
0x080017d2 0x080017d2 0x000000c8 Code RO 2614 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x0800189a 0x0800189a 0x00000058 Code RO 2616 i.HAL_UART_Transmit_IT stm32f0xx_hal_uart.o
0x080018f2 0x080018f2 0x00000002 Code RO 517 i.HAL_UART_TxCpltCallback main.o
0x080018f4 0x080018f4 0x00000002 Code RO 682 i.HardFault_Handler stm32f0xx_it.o
0x080018f6 0x080018f6 0x00000022 Code RO 932 i.I2C_Flush_TXDR stm32f0xx_hal_i2c.o
0x08001918 0x08001918 0x00000074 Code RO 940 i.I2C_IsAcknowledgeFailed stm32f0xx_hal_i2c.o
0x0800198c 0x0800198c 0x0000006a Code RO 944 i.I2C_RequestMemoryWrite stm32f0xx_hal_i2c.o
0x080018f4 0x080018f4 0x00000002 Code RO 688 i.HardFault_Handler stm32f0xx_it.o
0x080018f6 0x080018f6 0x00000022 Code RO 938 i.I2C_Flush_TXDR stm32f0xx_hal_i2c.o
0x08001918 0x08001918 0x00000074 Code RO 946 i.I2C_IsAcknowledgeFailed stm32f0xx_hal_i2c.o
0x0800198c 0x0800198c 0x0000006a Code RO 950 i.I2C_RequestMemoryWrite stm32f0xx_hal_i2c.o
0x080019f6 0x080019f6 0x00000002 PAD
0x080019f8 0x080019f8 0x00000024 Code RO 947 i.I2C_TransferConfig stm32f0xx_hal_i2c.o
0x08001a1c 0x08001a1c 0x00000048 Code RO 948 i.I2C_WaitOnFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001a64 0x08001a64 0x0000004e Code RO 950 i.I2C_WaitOnSTOPFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001ab2 0x08001ab2 0x00000052 Code RO 951 i.I2C_WaitOnTXISFlagUntilTimeout stm32f0xx_hal_i2c.o
0x080019f8 0x080019f8 0x00000024 Code RO 953 i.I2C_TransferConfig stm32f0xx_hal_i2c.o
0x08001a1c 0x08001a1c 0x00000048 Code RO 954 i.I2C_WaitOnFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001a64 0x08001a64 0x0000004e Code RO 956 i.I2C_WaitOnSTOPFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001ab2 0x08001ab2 0x00000052 Code RO 957 i.I2C_WaitOnTXISFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001b04 0x08001b04 0x00000158 Code RO 518 i.MX_GPIO_Init main.o
0x08001c5c 0x08001c5c 0x00000054 Code RO 519 i.MX_I2C2_Init main.o
0x08001cb0 0x08001cb0 0x0000003c Code RO 520 i.MX_SPI1_Init main.o
0x08001cec 0x08001cec 0x00000054 Code RO 521 i.MX_TIM2_Init main.o
0x08001d40 0x08001d40 0x00000038 Code RO 522 i.MX_USART1_UART_Init main.o
0x08001d78 0x08001d78 0x00000048 Code RO 523 i.MX_USART3_UART_Init main.o
0x08001dc0 0x08001dc0 0x00000002 Code RO 683 i.NMI_Handler stm32f0xx_it.o
0x08001dc0 0x08001dc0 0x00000002 Code RO 689 i.NMI_Handler stm32f0xx_it.o
0x08001dc2 0x08001dc2 0x00000002 PAD
0x08001dc4 0x08001dc4 0x00000044 Code RO 3461 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08001e08 0x08001e08 0x00000002 Code RO 684 i.PendSV_Handler stm32f0xx_it.o
0x08001dc4 0x08001dc4 0x00000044 Code RO 3467 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08001e08 0x08001e08 0x00000002 Code RO 690 i.PendSV_Handler stm32f0xx_it.o
0x08001e0a 0x08001e0a 0x00000002 PAD
0x08001e0c 0x08001e0c 0x00000010 Code RO 685 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001e1c 0x08001e1c 0x00000036 Code RO 1382 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x08001e52 0x08001e52 0x0000005e Code RO 1383 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x08001eb0 0x08001eb0 0x00000034 Code RO 1384 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x08001ee4 0x08001ee4 0x00000048 Code RO 1385 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x08001f2c 0x08001f2c 0x00000052 Code RO 1388 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x08001f7e 0x08001f7e 0x00000012 Code RO 1391 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x08001f90 0x08001f90 0x0000004c Code RO 1402 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x08001fdc 0x08001fdc 0x00000096 Code RO 1407 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x08002072 0x08002072 0x0000008c Code RO 1408 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x080020fe 0x080020fe 0x00000002 Code RO 686 i.SVC_Handler stm32f0xx_it.o
0x08002100 0x08002100 0x0000000c Code RO 687 i.SysTick_Handler stm32f0xx_it.o
0x08001e0c 0x08001e0c 0x00000010 Code RO 691 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001e1c 0x08001e1c 0x00000036 Code RO 1388 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x08001e52 0x08001e52 0x0000005e Code RO 1389 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x08001eb0 0x08001eb0 0x00000034 Code RO 1390 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x08001ee4 0x08001ee4 0x00000048 Code RO 1391 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x08001f2c 0x08001f2c 0x00000052 Code RO 1394 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x08001f7e 0x08001f7e 0x00000012 Code RO 1397 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x08001f90 0x08001f90 0x0000004c Code RO 1408 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x08001fdc 0x08001fdc 0x00000096 Code RO 1413 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x08002072 0x08002072 0x0000008c Code RO 1414 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x080020fe 0x080020fe 0x00000002 Code RO 692 i.SVC_Handler stm32f0xx_it.o
0x08002100 0x08002100 0x0000000c Code RO 693 i.SysTick_Handler stm32f0xx_it.o
0x0800210c 0x0800210c 0x0000006a Code RO 524 i.SystemClock_Config main.o
0x08002176 0x08002176 0x00000002 PAD
0x08002178 0x08002178 0x0000005c Code RO 3878 i.SystemInit system_stm32f0xx.o
0x080021d4 0x080021d4 0x00000094 Code RO 1784 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08002268 0x08002268 0x00000016 Code RO 1791 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x0800227e 0x0800227e 0x00000010 Code RO 1792 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x0800228e 0x0800228e 0x00000022 Code RO 1798 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x080022b0 0x080022b0 0x00000026 Code RO 1800 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x080022d6 0x080022d6 0x000000ca Code RO 2613 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x080023a0 0x080023a0 0x00000074 Code RO 2614 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x08002414 0x08002414 0x00000014 Code RO 2615 i.UART_DMAAbortOnError stm32f0xx_hal_uart.o
0x08002428 0x08002428 0x0000001e Code RO 2625 i.UART_EndRxTransfer stm32f0xx_hal_uart.o
0x08002446 0x08002446 0x0000001a Code RO 2626 i.UART_EndTransmit_IT stm32f0xx_hal_uart.o
0x08002460 0x08002460 0x0000007a Code RO 2628 i.UART_Receive_IT stm32f0xx_hal_uart.o
0x08002178 0x08002178 0x0000005c Code RO 3884 i.SystemInit system_stm32f0xx.o
0x080021d4 0x080021d4 0x00000094 Code RO 1790 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08002268 0x08002268 0x00000016 Code RO 1797 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x0800227e 0x0800227e 0x00000010 Code RO 1798 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x0800228e 0x0800228e 0x00000022 Code RO 1804 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x080022b0 0x080022b0 0x00000026 Code RO 1806 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x080022d6 0x080022d6 0x000000ca Code RO 2619 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x080023a0 0x080023a0 0x00000074 Code RO 2620 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x08002414 0x08002414 0x00000014 Code RO 2621 i.UART_DMAAbortOnError stm32f0xx_hal_uart.o
0x08002428 0x08002428 0x0000001e Code RO 2631 i.UART_EndRxTransfer stm32f0xx_hal_uart.o
0x08002446 0x08002446 0x0000001a Code RO 2632 i.UART_EndTransmit_IT stm32f0xx_hal_uart.o
0x08002460 0x08002460 0x0000007a Code RO 2634 i.UART_Receive_IT stm32f0xx_hal_uart.o
0x080024da 0x080024da 0x00000002 PAD
0x080024dc 0x080024dc 0x0000015c Code RO 2629 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08002638 0x08002638 0x00000066 Code RO 2630 i.UART_Transmit_IT stm32f0xx_hal_uart.o
0x0800269e 0x0800269e 0x00000062 Code RO 2631 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x08002700 0x08002700 0x00000010 Code RO 688 i.USART3_4_IRQHandler stm32f0xx_it.o
0x08002710 0x08002710 0x00000020 Code RO 4011 i.__0printf$3 mc_p.l(printf3.o)
0x080024dc 0x080024dc 0x0000015c Code RO 2635 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08002638 0x08002638 0x00000066 Code RO 2636 i.UART_Transmit_IT stm32f0xx_hal_uart.o
0x0800269e 0x0800269e 0x00000062 Code RO 2637 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x08002700 0x08002700 0x00000010 Code RO 694 i.USART3_4_IRQHandler stm32f0xx_it.o
0x08002710 0x08002710 0x00000020 Code RO 4017 i.__0printf$3 mc_p.l(printf3.o)
0x08002730 0x08002730 0x0000001a Code RO 367 i.__ARM_common_switch8 ps2kb.o
0x0800274a 0x0800274a 0x0000000e Code RO 4253 i.__scatterload_copy mc_p.l(handlers.o)
0x08002758 0x08002758 0x00000002 Code RO 4254 i.__scatterload_null mc_p.l(handlers.o)
0x0800275a 0x0800275a 0x0000000e Code RO 4255 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08002768 0x08002768 0x000001cc Code RO 4018 i._printf_core mc_p.l(printf3.o)
0x0800274a 0x0800274a 0x0000000e Code RO 4259 i.__scatterload_copy mc_p.l(handlers.o)
0x08002758 0x08002758 0x00000002 Code RO 4260 i.__scatterload_null mc_p.l(handlers.o)
0x0800275a 0x0800275a 0x0000000e Code RO 4261 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08002768 0x08002768 0x000001cc Code RO 4024 i._printf_core mc_p.l(printf3.o)
0x08002934 0x08002934 0x00000008 Code RO 526 i.byte_to_int16_t main.o
0x0800293c 0x0800293c 0x00000014 Code RO 12 i.delay_us delay_us.o
0x08002950 0x08002950 0x00000010 Code RO 13 i.delay_us_init delay_us.o
@@ -2537,90 +2541,91 @@ Memory Map of the image
0x08002a0c 0x08002a0c 0x00000016 Code RO 155 i.gamepad_buf_reset helpers.o
0x08002a22 0x08002a22 0x00000002 PAD
0x08002a24 0x08002a24 0x000000a4 Code RO 528 i.gamepad_update main.o
0x08002ac8 0x08002ac8 0x000000c0 Code RO 529 i.handle_protocol_switch main.o
0x08002b88 0x08002b88 0x00000014 Code RO 530 i.is_protocol_enabled main.o
0x08002b9c 0x08002b9c 0x00000030 Code RO 156 i.kb_buf_add helpers.o
0x08002bcc 0x08002bcc 0x00000020 Code RO 157 i.kb_buf_init helpers.o
0x08002bec 0x08002bec 0x0000001c Code RO 159 i.kb_buf_is_full helpers.o
0x08002c08 0x08002c08 0x00000020 Code RO 160 i.kb_buf_peek helpers.o
0x08002c28 0x08002c28 0x00000018 Code RO 161 i.kb_buf_pop helpers.o
0x08002c40 0x08002c40 0x0000001c Code RO 162 i.kb_buf_reset helpers.o
0x08002c5c 0x08002c5c 0x000000b4 Code RO 297 i.keyboard_reply ps2kb.o
0x08002d10 0x08002d10 0x00000164 Code RO 531 i.main main.o
0x08002e74 0x08002e74 0x0000006c Code RO 4184 i.malloc mc_p.l(malloc.o)
0x08002ee0 0x08002ee0 0x00000020 Code RO 477 i.mcp4451_is_available mcp4451.o
0x08002f00 0x08002f00 0x00000020 Code RO 478 i.mcp4451_reset mcp4451.o
0x08002f20 0x08002f20 0x00000038 Code RO 479 i.mcp4451_write_wiper mcp4451.o
0x08002f58 0x08002f58 0x00000010 Code RO 14 i.micros delay_us.o
0x08002f68 0x08002f68 0x00000032 Code RO 163 i.mouse_buf_add helpers.o
0x08002f9a 0x08002f9a 0x00000018 Code RO 164 i.mouse_buf_init helpers.o
0x08002fb2 0x08002fb2 0x0000001c Code RO 166 i.mouse_buf_is_full helpers.o
0x08002fce 0x08002fce 0x00000016 Code RO 167 i.mouse_buf_peek helpers.o
0x08002fe4 0x08002fe4 0x00000018 Code RO 168 i.mouse_buf_pop helpers.o
0x08002ffc 0x08002ffc 0x00000016 Code RO 169 i.mouse_buf_reset helpers.o
0x08003012 0x08003012 0x00000002 PAD
0x08003014 0x08003014 0x00000020 Code RO 532 i.protocol_status_lookup_init main.o
0x08003034 0x08003034 0x00000044 Code RO 299 i.ps2kb_get_bus_status ps2kb.o
0x08003078 0x08003078 0x0000001c Code RO 300 i.ps2kb_init ps2kb.o
0x08003094 0x08003094 0x00000144 Code RO 301 i.ps2kb_press_key ps2kb.o
0x080031d8 0x080031d8 0x000000fc Code RO 302 i.ps2kb_read ps2kb.o
0x080032d4 0x080032d4 0x00000020 Code RO 303 i.ps2kb_release_lines ps2kb.o
0x080032f4 0x080032f4 0x00000010 Code RO 304 i.ps2kb_reset ps2kb.o
0x08003304 0x08003304 0x000000a4 Code RO 533 i.ps2kb_update main.o
0x080033a8 0x080033a8 0x00000044 Code RO 305 i.ps2kb_write ps2kb.o
0x080033ec 0x080033ec 0x00000120 Code RO 306 i.ps2kb_write_nowait ps2kb.o
0x0800350c 0x0800350c 0x00000060 Code RO 378 i.ps2mouse_get_bus_status ps2mouse.o
0x0800356c 0x0800356c 0x000000ac Code RO 379 i.ps2mouse_get_outgoing_data ps2mouse.o
0x08003618 0x08003618 0x00000198 Code RO 380 i.ps2mouse_host_req_reply ps2mouse.o
0x080037b0 0x080037b0 0x0000001c Code RO 381 i.ps2mouse_init ps2mouse.o
0x080037cc 0x080037cc 0x000000f8 Code RO 382 i.ps2mouse_read ps2mouse.o
0x080038c4 0x080038c4 0x00000020 Code RO 383 i.ps2mouse_release_lines ps2mouse.o
0x080038e4 0x080038e4 0x00000018 Code RO 384 i.ps2mouse_reset ps2mouse.o
0x080038fc 0x080038fc 0x00000024 Code RO 385 i.ps2mouse_restore_defaults ps2mouse.o
0x08003920 0x08003920 0x00000026 Code RO 386 i.ps2mouse_send_update ps2mouse.o
0x08003946 0x08003946 0x00000002 PAD
0x08003948 0x08003948 0x00000064 Code RO 534 i.ps2mouse_update main.o
0x080039ac 0x080039ac 0x00000026 Code RO 387 i.ps2mouse_wait_for_idle ps2mouse.o
0x080039d2 0x080039d2 0x0000001a Code RO 388 i.ps2mouse_write ps2mouse.o
0x080039ec 0x080039ec 0x00000022 Code RO 389 i.ps2mouse_write_delay_start ps2mouse.o
0x08003a0e 0x08003a0e 0x00000002 PAD
0x08003a10 0x08003a10 0x00000120 Code RO 390 i.ps2mouse_write_nowait ps2mouse.o
0x08003b30 0x08003b30 0x00000010 Code RO 391 i.reset_accumulators ps2mouse.o
0x08003b40 0x08003b40 0x000000b4 Code RO 535 i.serial_mouse_update main.o
0x08003bf4 0x08003bf4 0x00000078 Code RO 536 i.spi_error_dump_reboot main.o
0x08003c6c 0x08003c6c 0x00000030 Code RO 815 i.wait_for_clk_high xt_kb.o
0x08003c9c 0x08003c9c 0x00000040 Code RO 816 i.xtkb_check_for_softreset xt_kb.o
0x08003cdc 0x08003cdc 0x00000014 Code RO 817 i.xtkb_enable xt_kb.o
0x08003cf0 0x08003cf0 0x00000014 Code RO 818 i.xtkb_init xt_kb.o
0x08003d04 0x08003d04 0x0000003c Code RO 819 i.xtkb_press_key xt_kb.o
0x08003d40 0x08003d40 0x00000020 Code RO 820 i.xtkb_release_lines xt_kb.o
0x08003d60 0x08003d60 0x00000020 Code RO 821 i.xtkb_reset_bus xt_kb.o
0x08003d80 0x08003d80 0x0000003c Code RO 537 i.xtkb_update main.o
0x08003dbc 0x08003dbc 0x000000c0 Code RO 822 i.xtkb_write xt_kb.o
0x08003e7c 0x08003e7c 0x00000079 Data RO 307 .constdata ps2kb.o
0x08003ef5 0x08003ef5 0x00000004 Data RO 480 .constdata mcp4451.o
0x08003ef9 0x08003ef9 0x00000037 Data RO 543 .constdata main.o
0x08003f30 0x08003f30 0x00000010 Data RO 3879 .constdata system_stm32f0xx.o
0x08003f40 0x08003f40 0x00000008 Data RO 3880 .constdata system_stm32f0xx.o
0x08003f48 0x08003f48 0x00000020 Data RO 4251 Region$$Table anon$$obj.o
0x08002ac8 0x08002ac8 0x0000003c Code RO 529 i.gameport_init main.o
0x08002b04 0x08002b04 0x0000009c Code RO 530 i.handle_protocol_switch main.o
0x08002ba0 0x08002ba0 0x00000014 Code RO 531 i.is_protocol_enabled main.o
0x08002bb4 0x08002bb4 0x00000030 Code RO 156 i.kb_buf_add helpers.o
0x08002be4 0x08002be4 0x00000020 Code RO 157 i.kb_buf_init helpers.o
0x08002c04 0x08002c04 0x0000001c Code RO 159 i.kb_buf_is_full helpers.o
0x08002c20 0x08002c20 0x00000020 Code RO 160 i.kb_buf_peek helpers.o
0x08002c40 0x08002c40 0x00000018 Code RO 161 i.kb_buf_pop helpers.o
0x08002c58 0x08002c58 0x0000001c Code RO 162 i.kb_buf_reset helpers.o
0x08002c74 0x08002c74 0x000000b4 Code RO 297 i.keyboard_reply ps2kb.o
0x08002d28 0x08002d28 0x0000016c Code RO 532 i.main main.o
0x08002e94 0x08002e94 0x0000006c Code RO 4190 i.malloc mc_p.l(malloc.o)
0x08002f00 0x08002f00 0x00000020 Code RO 477 i.mcp4451_is_available mcp4451.o
0x08002f20 0x08002f20 0x00000020 Code RO 478 i.mcp4451_reset mcp4451.o
0x08002f40 0x08002f40 0x00000038 Code RO 479 i.mcp4451_write_wiper mcp4451.o
0x08002f78 0x08002f78 0x00000010 Code RO 14 i.micros delay_us.o
0x08002f88 0x08002f88 0x00000032 Code RO 163 i.mouse_buf_add helpers.o
0x08002fba 0x08002fba 0x00000018 Code RO 164 i.mouse_buf_init helpers.o
0x08002fd2 0x08002fd2 0x0000001c Code RO 166 i.mouse_buf_is_full helpers.o
0x08002fee 0x08002fee 0x00000016 Code RO 167 i.mouse_buf_peek helpers.o
0x08003004 0x08003004 0x00000018 Code RO 168 i.mouse_buf_pop helpers.o
0x0800301c 0x0800301c 0x00000016 Code RO 169 i.mouse_buf_reset helpers.o
0x08003032 0x08003032 0x00000002 PAD
0x08003034 0x08003034 0x00000020 Code RO 533 i.protocol_status_lookup_init main.o
0x08003054 0x08003054 0x00000044 Code RO 299 i.ps2kb_get_bus_status ps2kb.o
0x08003098 0x08003098 0x0000001c Code RO 300 i.ps2kb_init ps2kb.o
0x080030b4 0x080030b4 0x00000144 Code RO 301 i.ps2kb_press_key ps2kb.o
0x080031f8 0x080031f8 0x000000fc Code RO 302 i.ps2kb_read ps2kb.o
0x080032f4 0x080032f4 0x00000020 Code RO 303 i.ps2kb_release_lines ps2kb.o
0x08003314 0x08003314 0x00000010 Code RO 304 i.ps2kb_reset ps2kb.o
0x08003324 0x08003324 0x000000a4 Code RO 534 i.ps2kb_update main.o
0x080033c8 0x080033c8 0x00000044 Code RO 305 i.ps2kb_write ps2kb.o
0x0800340c 0x0800340c 0x00000120 Code RO 306 i.ps2kb_write_nowait ps2kb.o
0x0800352c 0x0800352c 0x00000060 Code RO 378 i.ps2mouse_get_bus_status ps2mouse.o
0x0800358c 0x0800358c 0x000000ac Code RO 379 i.ps2mouse_get_outgoing_data ps2mouse.o
0x08003638 0x08003638 0x00000198 Code RO 380 i.ps2mouse_host_req_reply ps2mouse.o
0x080037d0 0x080037d0 0x0000001c Code RO 381 i.ps2mouse_init ps2mouse.o
0x080037ec 0x080037ec 0x000000f8 Code RO 382 i.ps2mouse_read ps2mouse.o
0x080038e4 0x080038e4 0x00000020 Code RO 383 i.ps2mouse_release_lines ps2mouse.o
0x08003904 0x08003904 0x00000018 Code RO 384 i.ps2mouse_reset ps2mouse.o
0x0800391c 0x0800391c 0x00000024 Code RO 385 i.ps2mouse_restore_defaults ps2mouse.o
0x08003940 0x08003940 0x00000026 Code RO 386 i.ps2mouse_send_update ps2mouse.o
0x08003966 0x08003966 0x00000002 PAD
0x08003968 0x08003968 0x00000064 Code RO 535 i.ps2mouse_update main.o
0x080039cc 0x080039cc 0x00000026 Code RO 387 i.ps2mouse_wait_for_idle ps2mouse.o
0x080039f2 0x080039f2 0x0000001a Code RO 388 i.ps2mouse_write ps2mouse.o
0x08003a0c 0x08003a0c 0x00000022 Code RO 389 i.ps2mouse_write_delay_start ps2mouse.o
0x08003a2e 0x08003a2e 0x00000002 PAD
0x08003a30 0x08003a30 0x00000120 Code RO 390 i.ps2mouse_write_nowait ps2mouse.o
0x08003b50 0x08003b50 0x00000010 Code RO 391 i.reset_accumulators ps2mouse.o
0x08003b60 0x08003b60 0x000000b4 Code RO 536 i.serial_mouse_update main.o
0x08003c14 0x08003c14 0x00000078 Code RO 537 i.spi_error_dump_reboot main.o
0x08003c8c 0x08003c8c 0x00000030 Code RO 821 i.wait_for_clk_high xt_kb.o
0x08003cbc 0x08003cbc 0x00000040 Code RO 822 i.xtkb_check_for_softreset xt_kb.o
0x08003cfc 0x08003cfc 0x00000014 Code RO 823 i.xtkb_enable xt_kb.o
0x08003d10 0x08003d10 0x00000014 Code RO 824 i.xtkb_init xt_kb.o
0x08003d24 0x08003d24 0x0000003c Code RO 825 i.xtkb_press_key xt_kb.o
0x08003d60 0x08003d60 0x00000020 Code RO 826 i.xtkb_release_lines xt_kb.o
0x08003d80 0x08003d80 0x00000020 Code RO 827 i.xtkb_reset_bus xt_kb.o
0x08003da0 0x08003da0 0x0000003c Code RO 538 i.xtkb_update main.o
0x08003ddc 0x08003ddc 0x000000c0 Code RO 828 i.xtkb_write xt_kb.o
0x08003e9c 0x08003e9c 0x00000079 Data RO 307 .constdata ps2kb.o
0x08003f15 0x08003f15 0x00000004 Data RO 480 .constdata mcp4451.o
0x08003f19 0x08003f19 0x00000037 Data RO 544 .constdata main.o
0x08003f50 0x08003f50 0x00000010 Data RO 3885 .constdata system_stm32f0xx.o
0x08003f60 0x08003f60 0x00000008 Data RO 3886 .constdata system_stm32f0xx.o
0x08003f68 0x08003f68 0x00000020 Data RO 4257 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08003f68, Size: 0x000008f0, Max: 0x00004000, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08003f88, Size: 0x000008f0, Max: 0x00004000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x08003f68 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x08003f6c 0x00000014 Data RW 308 .data ps2kb.o
0x20000018 0x08003f80 0x00000020 Data RW 392 .data ps2mouse.o
0x20000038 0x08003fa0 0x00000020 Data RW 544 .data main.o
0x20000058 0x08003fc0 0x00000014 Data RW 823 .data xt_kb.o
0x2000006c 0x08003fd4 0x00000004 Data RW 3174 .data stm32f0xx_hal.o
0x20000070 0x08003fd8 0x00000004 Data RW 3881 .data system_stm32f0xx.o
0x20000074 0x08003fdc 0x00000004 Data RW 4225 .data mc_p.l(stdout.o)
0x20000078 0x08003fe0 0x00000004 Data RW 4228 .data mc_p.l(mvars.o)
0x2000007c 0x08003fe4 0x00000004 Data RW 4229 .data mc_p.l(mvars.o)
0x20000080 - 0x0000026d Zero RW 538 .bss main.o
0x200002ed 0x08003fe8 0x00000003 PAD
0x20000000 0x08003f88 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x08003f8c 0x00000014 Data RW 308 .data ps2kb.o
0x20000018 0x08003fa0 0x00000020 Data RW 392 .data ps2mouse.o
0x20000038 0x08003fc0 0x00000020 Data RW 545 .data main.o
0x20000058 0x08003fe0 0x00000014 Data RW 829 .data xt_kb.o
0x2000006c 0x08003ff4 0x00000004 Data RW 3180 .data stm32f0xx_hal.o
0x20000070 0x08003ff8 0x00000004 Data RW 3887 .data system_stm32f0xx.o
0x20000074 0x08003ffc 0x00000004 Data RW 4231 .data mc_p.l(stdout.o)
0x20000078 0x08004000 0x00000004 Data RW 4234 .data mc_p.l(mvars.o)
0x2000007c 0x08004004 0x00000004 Data RW 4235 .data mc_p.l(mvars.o)
0x20000080 - 0x0000026d Zero RW 539 .bss main.o
0x200002ed 0x08004008 0x00000003 PAD
0x200002f0 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
0x200004f0 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o
@@ -2634,7 +2639,7 @@ Image component sizes
52 10 0 4 0 505155 delay_us.o
532 0 0 0 0 11904 helpers.o
2636 280 55 32 621 21474 main.o
2668 284 55 32 621 21918 main.o
120 22 4 0 0 2279 mcp4451.o
1282 78 121 20 0 8086 ps2kb.o
1484 72 0 32 0 11410 ps2mouse.o
@@ -2658,7 +2663,7 @@ Image component sizes
468 40 0 20 0 5698 xt_kb.o
----------------------------------------------------------------------
15002 904 428 116 2160 644146 Object Totals
15034 908 428 116 2160 644590 Object Totals
0 0 32 0 0 0 (incl. Generated)
34 0 0 0 3 0 (incl. Padding)
@@ -2704,15 +2709,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
15804 948 428 128 2160 637538 Grand Totals
15804 948 428 128 2160 637538 ELF Image Totals
15804 948 428 128 0 0 ROM Totals
15836 952 428 128 2160 637938 Grand Totals
15836 952 428 128 2160 637938 ELF Image Totals
15836 952 428 128 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 16232 ( 15.85kB)
Total RO Size (Code + RO Data) 16264 ( 15.88kB)
Total RW Size (RW Data + ZI Data) 2288 ( 2.23kB)
Total ROM Size (Code + RO Data + RW Data) 16360 ( 15.98kB)
Total ROM Size (Code + RO Data + RW Data) 16392 ( 16.01kB)
==============================================================================

View File

@@ -193,7 +193,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_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)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart_ex.h)(0x5DFA0893)

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -132,6 +132,16 @@ uint8_t is_protocol_enabled(uint8_t this_protocol)
return protocol_status_lookup[this_protocol] == PROTOCOL_STATUS_ENABLED;
}
void gameport_init()
{
// release all buttons, reset digital pot
HAL_GPIO_WritePin(GAMEPAD_B1_GPIO_Port, GAMEPAD_B1_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(GAMEPAD_B2_GPIO_Port, GAMEPAD_B2_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(GAMEPAD_B3_GPIO_Port, GAMEPAD_B3_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(GAMEPAD_B4_GPIO_Port, GAMEPAD_B4_Pin, GPIO_PIN_SET);
mcp4451_reset();
}
void handle_protocol_switch(uint8_t spi_byte)
{
uint8_t index = spi_byte & 0x7f;
@@ -142,69 +152,57 @@ void handle_protocol_switch(uint8_t spi_byte)
// trying to change a protocol that is not available on this board
if(protocol_status_lookup[index] == PROTOCOL_STATUS_NOT_AVAILABLE)
return;
if(onoff)
// switching protocol ON
if(onoff && protocol_status_lookup[index] == PROTOCOL_STATUS_DISABLED)
{
switch(index)
switch(index)
{
case PROTOCOL_AT_PS2_KB:
// printf("PS2KB on\n");
ps2kb_init(PS2KB_CLK_GPIO_Port, PS2KB_CLK_Pin, PS2KB_DATA_GPIO_Port, PS2KB_DATA_Pin);
break;
case PROTOCOL_XT_KB:
// printf("XTKB on\n");
xtkb_enable();
break;
case PROTOCOL_PS2_MOUSE:
// printf("PS2MOUSE on\n");
ps2mouse_init(PS2MOUSE_CLK_GPIO_Port, PS2MOUSE_CLK_Pin, PS2MOUSE_DATA_GPIO_Port, PS2MOUSE_DATA_Pin);
break;
case PROTOCOL_MICROSOFT_SERIAL_MOUSE:
// printf("SERMOUSE on\n");
break;
case PROTOCOL_GENERIC_GAMEPORT_GAMEPAD:
// printf("GGP on\n");
gameport_init();
break;
}
protocol_status_lookup[index] = PROTOCOL_STATUS_ENABLED;
}
else
// switching protocol OFF
else if((onoff == 0) && protocol_status_lookup[index] == PROTOCOL_STATUS_ENABLED)
{
protocol_status_lookup[index] = PROTOCOL_STATUS_DISABLED;
switch(index)
{
case PROTOCOL_AT_PS2_KB:
// printf("PS2KB off\n");
ps2kb_release_lines();
ps2kb_reset();
break;
case PROTOCOL_XT_KB:
// printf("XTKB off\n");
xtkb_release_lines();
break;
case PROTOCOL_PS2_MOUSE:
// printf("PS2MOUSE off\n");
ps2mouse_reset();
ps2mouse_release_lines();
break;
case PROTOCOL_MICROSOFT_SERIAL_MOUSE:
// printf("SERIAL MOUSE off\n");
break;
case PROTOCOL_GENERIC_GAMEPORT_GAMEPAD:
// printf("GGP off\n");
// release all buttons, reset digital pot
HAL_GPIO_WritePin(GAMEPAD_B1_GPIO_Port, GAMEPAD_B1_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(GAMEPAD_B2_GPIO_Port, GAMEPAD_B2_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(GAMEPAD_B3_GPIO_Port, GAMEPAD_B3_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(GAMEPAD_B4_GPIO_Port, GAMEPAD_B4_Pin, GPIO_PIN_SET);
mcp4451_reset();
gameport_init();
break;
}
}
@@ -530,6 +528,7 @@ int main(void)
gamepad_buf_init(&my_gamepad_buf, 16);
mcp4451_reset();
HAL_Delay(1);
if(mcp4451_is_available() == 0)
hw_revision = 1;

View File

@@ -282,6 +282,8 @@ def raw_input_event_worker():
if data[0] == EV_SYN and data[2] == SYN_REPORT and len(mouse_status_dict) > 0:
to_transfer = make_mouse_spi_packet(mouse_status_dict, mouse_opened_device_dict[key][1])
pcard_spi.xfer(to_transfer)
mouse_status_dict['x'] = [0, 0]
mouse_status_dict['y'] = [0, 0]
mouse_status_dict['scroll'] = [0, 0]
# ----------------- GAMEPAD PARSING -----------------