added inhibit handling in xt keyboard

This commit is contained in:
dekunukem
2022-05-01 22:55:36 +01:00
parent df97e6b7e7
commit 3cf8447376
17 changed files with 499 additions and 452 deletions

View File

@@ -14,6 +14,14 @@ void xtkb_reset_bus(void);
void xtkb_release_lines(void);
void xtkb_enable(void);
#define XTKB_OK 0
#define XTKB_ERROR_SCAN_DISABLED 1
#define XTKB_ERROR_UNKNOWN_CODE_SET 9
#define XTKB_ERROR_HOST_INHIBIT 69
#define XTKB_ERROR_UNUSED_CODE 2
#define XTKB_ERROR_UNKNOWN 3
#define XTKB_ERROR_TIMEOUT 4
#ifdef __cplusplus
}
#endif

View File

Binary file not shown.

View File

@@ -27,11 +27,22 @@ Project File Date: 03/28/2022
<h2>Output:</h2>
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'ibmpc'
compiling xt_kb.c...
compiling ps2kb.c...
compiling main.c...
../Src/main.c(467): 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(468): 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(469): 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(470): 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=16496 RO-data=428 RW-data=132 ZI-data=2180
Program Size: Code=16500 RO-data=428 RW-data=132 ZI-data=2180
FromELF: creating hex file...
"ibmpc\ibmpc.axf" - 0 Error(s), 0 Warning(s).
"ibmpc\ibmpc.axf" - 0 Error(s), 4 Warning(s).
<h2>Software Packages used:</h2>

View File

@@ -23,7 +23,7 @@
:10015000F6E710B513460A4604461946FFF7F0FFC6
:10016000204610BD064C0125064E05E0E36807CC8D
:100170002B430C3C98471034B442F7D3FFF7A4FF4D
:10018000FC4100081C42000810B5022000F042F8B3
:10018000004200082042000810B5022000F042F8AA
:1001900010BD70B50024014620314A78022A03D0F0
:1001A00004218163012416E0026813680E25AB4325
:1001B0001360026813685B085B0013600122056C22
@@ -179,10 +179,10 @@
:100B10006068072109028843E9680843606000F0C3
:100B20002DF86168084A0906090F515CC840074959
:100B300008600020FFF790FE0020F8BD0020024072
:100B40000010024088130000E441000874000020F7
:100B40000010024088130000E841000874000020F3
:100B500001480068704700007400002004480549FF
:100B600000684968044A4905490F515CC84070470C
:100B70007400002000100240F441000830B516A3B4
:100B70007400002000100240F841000830B516A3B0
:100B80000FCB89B06C460FC417A30FCB0FC41A4903
:100B90004A680C20144604401848042C05D0184B11
:100BA000082C04D00C2C00D1184609B030BD94029A
@@ -701,12 +701,12 @@
:102BB000C109640EC901102C24D2214D285D0028C2
:102BC00020D000291FD002281CD11E482300FFF767
:102BD00003FE0817050C170F17171517FF230133EE
:102BE0000246590000F084FB0AE001F0B3F907E067
:102BF00010230246202100F071FF01E0FFF7B8FF2B
:102BE0000246590000F084FB0AE001F0B5F907E065
:102BF00010230246202100F073FF01E0FFF7B8FF29
:102C00000120285570BD0128FCD102202855230041
:102C1000FFF7E2FD0805060B050E05051305F1E7B4
:102C200000F0E4FC00F0F2FC70BD01F0E3F970BDCF
:102C300000F0EEFF00F0DCFF70BDFFF799FF70BD04
:102C200000F0E6FC00F0F4FC70BD01F0E5F970BDC9
:102C300000F0F0FF00F0DEFF70BDFFF799FF70BD00
:102C4000F102002000040048102803D20249085C69
:102C5000012800D000207047F102002070B5154611
:102C60000E46044600F022F8002801D0012070BD75
@@ -723,19 +723,19 @@
:102D10001EFAA178A068FDF71AFA10BD38B50D4665
:102D2000FF216A46ED3811703B4C0300FFF754FD5C
:102D300013645E2B422B342C241D6F161616162B93
:102D40002B2B6F0B2B0014220121FA2000F0C0FC6A
:102D500000F05CFCFA220021AA204AE02078032837
:102D40002B2B6F0B2B0014220121FA2000F0C2FC68
:102D500000F05EFCFA220021AA204AE02078032835
:102D600055D014220121FE2043E014220121FA2033
:102D700000F0AEFC002005E014220121FA2000F052
:102D8000A7FC0120607038BD14220121FA2000F058
:102D90009FFC1E21684636E014220121FA2000F033
:102DA00097FC14220021AB2000F092FC1422002199
:102DB00083201EE014220121FA2000F089FC1E214C
:102DC000684600F095FB0028DDD114220121FA208D
:102DD00000F07EFC68460078002803D00328D2D893
:102D700000F0B0FC002005E014220121FA2000F050
:102D8000A9FC0120607038BD14220121FA2000F056
:102D9000A1FC1E21684636E014220121FA2000F031
:102DA00099FC14220021AB2000F094FC1422002195
:102DB00083201EE014220121FA2000F08BFC1E214A
:102DC000684600F097FB0028DDD114220121FA208B
:102DD00000F080FC68460078002803D00328D2D891
:102DE000207038BD14220021207802E01422012135
:102DF000EE2000F06DFC38BD14220121FA2000F015
:102E000067FC1E21284600F073FB0028F3D1142232
:102DF000EE2000F06FFC38BD14220121FA2000F013
:102E000069FC1E21284600F075FB0028F3D114222E
:102E10000121FA20EDE70000040000201CB56648FF
:102E2000664C8089A081FDF707FDFFF7C3F9FEF727
:102E3000A9FEFEF753FFFEF77BFFFEF797FFFEF7B5
@@ -745,8 +745,8 @@
:102E70002278564956A0FFF79FFC52487430FFF75E
:102E8000BBFD00F003FAFF250135564E6F003246B8
:102E90002B463946104600F02BFA32462B4639466F
:102EA000104601F061F8324610232021104600F050
:102EB00015FE0220FFF7C8FE002801D001F04AF8F5
:102EA000104601F063F8324610232021104600F04E
:102EB00017FE0220FFF7C8FE002801D001F04CF8F1
:102EC00010214948FFF7E2FE3C481021143000F081
:102ED000A0F93A4810211C30FFF7BBFD00F0E4F8E0
:102EE000414820216038FDF732F93F4A3548203A01
@@ -756,14 +756,14 @@
:102F20005CF97F1C0A2FF5DB012208213046FDF7F2
:102F300032FA0927FF062348FDF76EFC0420FFF74D
:102F400083FE002809D00121C9033046FDF71AFA93
:102F5000002802D000F08EFE06E00520FFF774FE88
:102F5000002802D000F090FE06E00520FFF774FE86
:102F6000002801D000F0DAF80120FFF76DFE0028FC
:102F700008D029463846FDF705FA002802D000F0AF
:102F80004DFB0CE00220FFF75FFE002807D029462A
:102F90003846FDF7F7F9002801D001F04BF807207B
:102F80004FFB0CE00220FFF75FFE002807D0294628
:102F90003846FDF7F7F9002801D001F04DF8072079
:102FA000FFF752FE002801D0FFF790FD607A00285D
:102FB000C1D000F05BFF0000C0F7FF1F4C000020F5
:102FC00000300040D0000020FF0F0000AD4100089D
:102FB000C1D000F05DFF0000C0F7FF1F4C000020F3
:102FC00000300040D0000020FF0F0000B141000899
:102FD00025730A7265762564207625642E25642E75
:102FE00025640A0000040048C4020020666C617376
:102FF000685F73697A653A2025640A0044696769E5
@@ -783,7 +783,7 @@
:1030D0000004004803B583B0042802D3FF2005B0E4
:1030E00000BD08496423085C01210007020E04A802
:1030F0000293019100900B4658210348FDF78AFA8C
:10310000EDE70000A94100088400002002480068A3
:10310000EDE70000AD41000884000020024800689F
:103110000068406A704700000000002070B52E4C27
:10312000207A0025002807D04D20E0710122E11D02
:103130002A48FEF7ECFB25722748143000F083F88C
@@ -814,256 +814,257 @@
:1032C00061F8012802D0002809D00AE0012C02D0C0
:1032D000002C02D005E0032070BD022070BD012C3F
:1032E00001D0002070BD012070BD0000040000204E
:1032F00010B5054CA0606180E260A38000F076F913
:1033000000F084F910BD00000400002010B5094A47
:1032F00010B5054CA0606180E260A38000F078F911
:1033000000F086F910BD00000400002010B5094A45
:103310005378002B06D01278012A05D0022A06D055
:10332000092010BD012010BD00F006F810BD00F00E
:1033300017F810BD0400002010B5532805D95728F0
:1033400003D0582801D0032010BD002905D0142235
:10335000002100F0BDF9002010BD80210843F6E7F0
:1033600010B5592810D2614A145CFF2C7ED0002978
:1033700002D014220021ABE014220021F02000F042
:10338000A7F9002873D1F4E7632816D077285AD01C
:103390000246603A1F2A6BD8544A593210186038D6
:1033A0000478FF2C62D000297ED014220021E02076
:1033B00000F08EF900285AD188E000291CD0142290
:1033C0000021E02000F084F9002850D114220021CF
:1033D000122000F07DF9002849D114220021E020BC
:1033E00000F076F900287DD1142200217C2000F025
:1033F0006FF9002876D110BD14220021E02000F0E2
:1034000067F900286ED114220021F02000F060F945
:10341000002867D1142200217C2000F059F90028EF
:1034200060D114220021E02000F052F9002859D187
:1034300014220021F02000F04BF9002852D1142270
:1034400000211220D3E70029A6D014220021E12078
:1034500000F03EF9002845D114220021104600F06A
:1034600037F900283ED11422002102E02CE039E097
:103470003AE0772000F02CF9002833D11422002103
:10348000E12000F025F900282CD114220021F020A1
:1034900000F01EF9002825D114220021104600F06A
:1034A00017F900281ED100E014E014220021F020BA
:1034B00000F00EF9002815D114220021772000F029
:1034C00007F900280ED110BD022010BD14220121E1
:1034D00020468CE714220021E02000F0F9F80028B3
:1034E00000D149E7452010BD032010BD3041000840
:1034F000F3B581B00F4600250126FCF753FF3A4C87
:10350000206107E0FCF74EFF2169401AB84201D361
:103510000420FEBDFFF7CAFE0128F3D11220FFF7F9
:1035200061FA00226188A068FCF735FF2420FFF7CC
:1035300059FA01226188A068FCF72DFF1220FFF7DD
:1035400051FAA188E068FCF71DFF012800D135433E
:103550007004060C1220FFF745FA00226188A0686B
:10356000FCF719FF2420FFF73DFA01226188A068CB
:10357000FCF711FF1220FFF735FAFF2EE1D91220D8
:10358000FFF730FA00226188A068FCF704FF2420CE
:10359000FFF728FA01226188A068FCF7FCFE1220E0
:1035A000FFF720FA1220FFF71DFA0022A188E06839
:1035B000FCF7F1FE00226188A068FCF7ECFE2420F5
:1035C000FFF710FA01226188A068FCF7E4FE1220E0
:1035D000FFF708FA0122A188E068FCF7DCFE0198F9
:1035E00005700020FEBD00000400002010B5064C50
:1035F00001226188A068FCF7CEFE0122A188E06864
:10360000FCF7C9FE10BD00000400002002480221A2
:1036100001700121417070470400002038B5FFF7A8
:1036200045FE284C0228A07114D0012815D003288B
:103630000FD1221D511E2448FFF746FB002808D158
:103640002179E078FFF762FE452836D01E48FFF763
:103650004BFB38BDFFF7CAFF38BDFF21684601703C
:1036600018480A21401CFFF743FF69466078FFF7BE
:1036700055FB68460478FF2CEED0134820216038B3
:10368000FCF765FD1048CD216038017001462031FE
:103690004978417081218170E2070121002A00D020
:1036A000C170A20700D50171620700D541710122E6
:1036B00051030648FCF76FFE38BD0120FCF78DFD75
:1036C00038BD00004C000020C40200200008004863
:1036D000F8B515460E460746FCF764FE0C4C206113
:1036E00007E0FCF75FFE2169401AA84201D30120E0
:1036F000F8BDFFF7DBFD0328F3D1002E03D0AF2088
:103700008000FFF76FF9384600F004F8F8BD0000BC
:1037100004000020F8B5474C054601260022A18888
:10372000E068FCF738FE1220FFF75CF900226188A0
:10373000A068FCF730FE2420FFF754F901226188CD
:10374000A068FCF728FE1220FFF74CF96188A068FA
:10375000FCF718FE002868D00027E80701D00122F6
:1037600000E00022A188E068FCF715FE1220FFF7B8
:1037700039F900226188A068FCF70DFE2420FFF7CC
:1037800031F901226188A068FCF705FE1220FFF7DD
:1037900029F96188A068FCF7F5FD002845D0E80705
:1037A000C00F46406D087F1C082FD6DB002E01D0CD
:1037B000012200E00022A188E068FCF7ECFD122065
:1037C000FFF710F900226188A068FCF7E4FD2420CF
:1037D000FFF708F901226188A068FCF7DCFD1220E0
:1037E000FFF700F96188A068FCF7CCFD00281CD029
:1037F0000122A188E068FCF7CEFD1220FFF7F2F865
:1038000000226188A068FCF7C6FD2420FFF7EAF8D3
:1038100001226188A068FCF7BEFD1220FFF7E2F8E4
:10382000C820FFF7DFF80020F8BDFFF7DFFE4520D6
:10383000F8BD00000400002010B5164CE189606955
:10384000FCF7A0FD012805D1A1892069FCF79AFDAC
:10385000012806D0E1896069FCF794FD012802D0B7
:1038600007E0032010BDA1892069FCF78BFD00282B
:1038700006D0E1896069FCF785FD002802D007E0E9
:10388000022010BDA1892069FCF77CFD0128F8D039
:10389000002010BD1800002070B5294E0546B079F3
:1038A0000C4601283BD0022838D03078002844D07C
:1038B0000821601CFCF74BFC03202070082060707E
:1038C000A879002801D009206070287A002803D048
:1038D0006078022108436070E9790420002902D051
:1038E0006178014361700021695E002903DA617823
:1038F0001022114361700221695E002903DA6178A8
:103900002022114361702978A170A978E17029798A
:1039100021717179002900D02070002070BD2878B5
:10392000317A40183072A878717A4018707228790C
:10393000B17A4018B072012070BD032070BD000044
:1039400018000020F8B500250E46FF2814D0624C60
:10395000EC281ED0A17902291DD0E63801270300EA
:10396000FEF73AFF11ACB29E716E6964645F6459F0
:10397000643A23211E1B640000F04AF91421FA2046
:1039800000F0CAF9FA21AA2000F0B9F914210020A8
:103990003EE0E07947E014213AE000F045F945E0E7
:1039A0000020207040E027703EE01421FA2000F053
:1039B000B3F900F053FA48489621401C00F09CF8F7
:1039C000002827D144492079183162780A54072801
:1039D0002CD2401C207129E000F040FA1421FA207A
:1039E00000F09AF900206071217902290ED93A4835
:1039F000183040182038C17F502907D1817F6429B1
:103A000004D1407FC82801D103206071142160795E
:103A100000F075F9F8BD00F021FAA079E071A77106
:103A200004E0E1710220A07100F018FA1421FA20DC
:103A300000F072F9F8BD1421FA2000F06DF93AE0B7
:103A4000E1710020EFE71421FA2000F065F9A07978
:103A5000012800D140252078002801D020200543EE
:103A6000E078022801D110200543B079002801D068
:103A700004200543F079002801D002200543307A64
:103A8000002800D03D431421284600F038F91421C5
:103A9000A07800F034F91421607800F030F90AE0E1
:103AA0001421FA2000F038F90B489621801C00F010
:103AB00023F80028BFD000F0D1F9F8BD1421FA2076
:103AC00000F02AF9E770F8BD1421FA2000F024F97B
:103AD0000220E070F8BD00001800002010B5054C71
:103AE0002061A1816261E38100F092F800F080F82A
:103AF00010BD000018000020F3B581B00F4600256E
:103B00000126FCF74FFC044606E0FCF74BFC001BCB
:103B1000B84201D30120FEBDFFF78EFE0128F4D18B
:103B20001220FEF75FFF314C0022A1892069FCF7CB
:103B300032FC2420FEF756FF0122A1892069FCF700
:103B40002AFC1220FEF74EFFE1896069FCF71AFC9F
:103B5000012800D135437004060C1220FEF742FF05
:103B60000022A1892069FCF716FC2420FEF73AFF09
:103B70000122A1892069FCF70EFC1220FEF732FF1A
:103B8000FF2EE1D91220FEF72DFF0022A189206926
:103B9000FCF701FC2420FEF725FF0122A189206902
:103BA000FCF7F9FB1220FEF71DFF1220FEF71AFFAB
:103BB0000022E1896069FCF7EEFB0022A1892069FF
:103BC000FCF7E9FB2420FEF70DFF0122A189206903
:103BD000FCF7E1FB1220FEF705FF0122E189606995
:103BE000FCF7D9FB019805700020FEBD18000020ED
:103BF00010B5064C0122A1892069FCF7CCFB0122FB
:103C0000E1896069FCF7C7FB10BD000018000020C7
:103C100000B500F009F80349002008718861C86107
:103C2000487100BD1800002000B5074864214170AC
:103C3000022181700121C170002101708171C17167
:103C400000F00CF900BD00001800002070B505461A
:103C5000002409E028194078FF2100F050F80028DE
:103C600001D0012070BD641C2878A042F2DC002045
:103C700070BD000010B5FFF7DFFD154C0228607124
:103C80000DD001280ED020461430FFF7DCFA0028B2
:103C900007D01049FFF700FE002813D10DE0FFF711
:103CA000A7FF10BD0A480A21801CFFF725FF09491C
:103CB000A0781839FFF746FE10BD0648FFF7C6FF8B
:103CC0000028F9D102481430FFF7C8FA10BD0000EF
:103CD0004C000020E802002070B50546FCF762FBAE
:103CE000044606E0FCF75EFB001BA84201D301205E
:103CF00070BDFFF7A1FD0328F4D1002070BD10B501
:103D000004460846FFF7E8FF002801D0012010BD57
:103D1000204600F013F810BD10B504460846FFF722
:103D2000DBFF002801D0012010BDAF208000FEF78E
:103D300059FE204600F002F810BD0000F8B5464CD0
:103D4000054601260022E1896069FCF724FB122068
:103D5000FEF748FE0022A1892069FCF71CFB242005
:103D6000FEF740FE0122A1892069FCF714FB122016
:103D7000FEF738FEA1892069FCF704FB002868D013
:103D80000027E80701D0012200E00022E1896069F4
:103D9000FCF701FB1220FEF725FE0022A189206915
:103DA000FCF7F9FA2420FEF71DFE0122A189206903
:103DB000FCF7F1FA1220FEF715FEA1892069FCF745
:103DC000E1FA002845D0E807C00F46406D087F1C87
:103DD000082FD6DB002E01D0012200E00022E1896D
:103DE0006069FCF7D8FA1220FEF7FCFD0022A189D9
:103DF0002069FCF7D0FA2420FEF7F4FD0122A18906
:103E00002069FCF7C8FA1220FEF7ECFDA1892069B1
:103E1000FCF7B8FA00281CD00122E1896069FCF7A0
:103E2000BAFA1220FEF7DEFD0022A1892069FCF714
:103E3000B2FA2420FEF7D6FD0122A1892069FCF701
:103E4000AAFA1220FEF7CEFDFA20FEF7CBFD0020E5
:103E5000F8BD0120F8BD0000180000200248002134
:103E600001724172817270471800002011A0FEF7A4
:103E7000A3FC134D0024295D12A0FEF79DFC641CD9
:103E8000202CF8DB10A0FEF797FC134D002408212E
:103E90002846FCF77CFA6420FCF79FF9641C642C2C
:103EA000F5DBBFF34F8F0E490C48C860BFF34F8F4F
:103EB00000BFFDE7535049204552524F520A0000BF
:103EC00084020020256420000A7265626F6F7469A5
:103ED0006E672E2E2E0A0000000400480400FA052A
:103EE00000ED00E070B50646FCF75CFA0446084DAC
:103EF00006E0FCF757FA001BB04201D9012070BD63
:103F000029886868FCF73EFA0028F2D0002070BDCE
:103F10003800002010B50E4C21886068FCF732FA9A
:103F2000012802D1FCF73EFAE060FCF73BFAE168B9
:103F3000401A14280BD9C820FFF7D4FF1420FCF72F
:103F40004CF9AA2000F094F80A20FCF746F910BDBD
:103F50003800002010B500F05DF8FCF723FA0149A5
:103F6000C86010BD3800002010B5034C606021808F
:103F7000A260638010BD00003800002070B50446C8
:103F800066380300FEF728FC0A1406080A0C0E1017
:103F90001216181A482413E04A2411E04B240FE0AB
:103FA0004E240DE04F240BE0502409E0512407E09B
:103FB000472405E0522403E0532401E0532C0BD89E
:103FC000022902D000290DD00EE0FCF7EBF9084DD4
:103FD0002969401A502801D8002070BDFCF7E2F989
:103FE000286101E080200443204600F041F870BDC4
:103FF0003800002010B5064C012221886068FCF7CB
:10400000CAF901226188A068FCF7C5F910BD00005B
:104010003800002010B5064C012221886068FCF7AA
:10402000BAF900226188A068FCF7B5F910BD00005C
:104030003800002010B5FFF76DFF0B4A0B48511EEA
:10404000FEF742FE002809D10748001F0179C07819
:10405000FFF794FF002802D0FFF7DCFF10BD0348F4
:10406000FEF742FE10BD000050000020C4020020F8
:1040700070B52E4C054621886068FCF783F900284E
:104080002AD0002221886068FCF785F90520FEF718
:10409000A9FC01226188A068FCF77DF96E20FEF77B
:1040A000A1FC6188A068FCF76DF9002816D00122F8
:1040B00021886068FCF76FF94120FEF793FC00222D
:1040C00021886068FCF767F91E20FEF78BFC00264C
:1040D000E80705D0012204E0012070BD022070BD78
:1040E00000226188A068FCF756F9012221886068E7
:1040F000FCF751F94120FEF775FC00222188606829
:10410000FCF749F91E20FEF76DFC6D08761C082EA1
:10411000DEDB012221886068FCF73DF9002261881E
:10412000A068FCF738F9002070BD000038000020BE
:10413000FF76161E26252E363D3E46454E55660D0B
:10414000151D242D2C353C43444D545B5A141C1B27
:10415000232B34333B424B4C520E125D1A22212A40
:1041600032313A41494A597C1129580506040C0359
:104170000B830A0109777E6C757D7B6B737479699B
:10418000727A7071FFFF6178075A144AFF11FF6C51
:10419000757D6B7469727A7071FFFFFFFFFFFFFF1F
:1041A000FFFFFFFFFFFF1F272F00010607555342A8
:1041B0003456432050726F746F636F6C20426F618E
:1041C00072640A49424D20504320436F6D70617400
:1041D00069626C650A64656B754E756B656D20323E
:1041E0003032320000000000000000000102030431
:1041F0000607080900000000010203041C42000831
:104200000000002084000000F2270008A0420008FF
:10421000840000208408000002280008000000003C
:10422000020100000000000000000000000000008B
:1033300019F810BD0400002010B5532805D95728EE
:1033400003D0582801D0032010BD002907D0142233
:10335000002100F0BFF90028F6D0452010BD8021E3
:103360000843F4E710B5592810D2614A145CFF2CC9
:103370007ED0002902D014220021ABE014220021CB
:10338000F02000F0A7F9002873D1F4E7632816D0E5
:1033900077285AD00246603A1F2A6BD8544A5932CD
:1033A000101860380478FF2C62D000297ED01422D7
:1033B0000021E02000F08EF900285AD188E0002991
:1033C0001CD014220021E02000F084F9002850D104
:1033D00014220021122000F07DF9002849D1142286
:1033E0000021E02000F076F900287DD11422002190
:1033F0007C2000F06FF9002876D110BD1422002146
:10340000E02000F067F900286ED114220021F0209E
:1034100000F060F9002867D1142200217C2000F020
:1034200059F9002860D114220021E02000F052F95F
:10343000002859D114220021F02000F04BF9002877
:1034400052D1142200211220D3E70029A6D0142241
:103450000021E12000F03EF9002845D1142200218E
:10346000104600F037F900283ED11422002102E076
:103470002CE039E03AE0772000F02CF9002833D135
:1034800014220021E12000F025F900282CD114227B
:103490000021F02000F01EF9002825D1142200217F
:1034A000104600F017F900281ED100E014E01422A5
:1034B0000021F02000F00EF9002815D1142200217F
:1034C000772000F007F900280ED110BD022010BDB2
:1034D0001422012120468CE714220021E02000F074
:1034E000F9F8002800D149E7452010BD032010BDA0
:1034F00034410008F3B581B00F4600250126FCF7E2
:1035000051FF3A4C206107E0FCF74CFF2169401A5B
:10351000B84201D30420FEBDFFF7C8FE0128F3D155
:103520001220FFF75FFA00226188A068FCF733FFE2
:103530002420FFF757FA01226188A068FCF72BFFCF
:103540001220FFF74FFAA188E068FCF71BFF012863
:1035500000D135437004060C1220FFF743FA002215
:103560006188A068FCF717FF2420FFF73BFA0122CF
:103570006188A068FCF70FFF1220FFF733FAFF2ED7
:10358000E1D91220FFF72EFA00226188A068FCF72B
:1035900002FF2420FFF726FA01226188A068FCF7C9
:1035A000FAFE1220FFF71EFA1220FFF71BFA002284
:1035B000A188E068FCF7EFFE00226188A068FCF7B4
:1035C000EAFE2420FFF70EFA01226188A068FCF7CA
:1035D000E2FE1220FFF706FA0122A188E068FCF75C
:1035E000DAFE019805700020FEBD000004000020F6
:1035F00010B5064C01226188A068FCF7CCFE0122C0
:10360000A188E068FCF7C7FE10BD000004000020A0
:10361000024802210170012141707047040000201E
:1036200038B5FFF743FE284C0228A07114D00128BA
:1036300015D003280FD1221D511E2448FFF744FB4B
:10364000002808D12179E078FFF760FE452836D0C0
:103650001E48FFF749FB38BDFFF7CAFF38BDFF2101
:103660006846017018480A21401CFFF743FF69466D
:103670006078FFF753FB68460478FF2CEED01348C0
:1036800020216038FCF763FD1048CD2160380170BF
:10369000014620314978417081218170E207012182
:1036A000002A00D0C170A20700D50171620700D5C1
:1036B0004171012251030648FCF76DFE38BD01201F
:1036C000FCF78BFD38BD00004C000020C402002038
:1036D00000080048F8B515460E460746FCF762FE9E
:1036E0000C4C206107E0FCF75DFE2169401AA842FE
:1036F00001D30120F8BDFFF7D9FD0328F3D1002E37
:1037000003D0AF208000FFF76DF9384600F004F8D1
:10371000F8BD000004000020F8B5474C054601261E
:103720000022A188E068FCF736FE1220FFF75AF964
:1037300000226188A068FCF72EFE2420FFF752F9D2
:1037400001226188A068FCF726FE1220FFF74AF9E3
:103750006188A068FCF716FE002868D00027E807FB
:1037600001D0012200E00022A188E068FCF713FEEE
:103770001220FFF737F900226188A068FCF70BFEE2
:103780002420FFF72FF901226188A068FCF703FECF
:103790001220FFF727F96188A068FCF7F3FD0028E5
:1037A00045D0E807C00F46406D087F1C082FD6DBC8
:1037B000002E01D0012200E00022A188E068FCF781
:1037C000EAFD1220FFF70EF900226188A068FCF7DD
:1037D000E2FD2420FFF706F901226188A068FCF7CA
:1037E000DAFD1220FFF7FEF86188A068FCF7CAFD39
:1037F00000281CD00122A188E068FCF7CCFD122033
:10380000FFF7F0F800226188A068FCF7C4FD2420CF
:10381000FFF7E8F801226188A068FCF7BCFD1220E0
:10382000FFF7E0F8C820FFF7DDF80020F8BDFFF74C
:10383000DFFE4520F8BD00000400002010B5164C46
:10384000E1896069FCF79EFD012805D1A189206905
:10385000FCF798FD012806D0E1896069FCF792FD2C
:10386000012802D007E0032010BDA1892069FCF7E0
:1038700089FD002806D0E1896069FCF783FD0028F6
:1038800002D007E0022010BDA1892069FCF77AFD73
:103890000128F8D0002010BD1800002070B5294E76
:1038A0000546B0790C4601283BD0022838D0307844
:1038B000002844D00821601CFCF749FC032020703C
:1038C00008206070A879002801D009206070287A4B
:1038D000002803D06078022108436070E979042051
:1038E000002902D06178014361700021695E0029DE
:1038F00003DA61781022114361700221695E0029A8
:1039000003DA61782022114361702978A170A978C7
:10391000E170297921717179002900D0207000208F
:1039200070BD2878317A40183072A878717A4018C2
:1039300070722879B17A4018B072012070BD0320EE
:1039400070BD000018000020F8B500250E46FF28C5
:1039500014D0624CEC281ED0A17902291DD0E63883
:1039600001270300FEF738FF11ACB29E716E696447
:10397000645F6459643A23211E1B640000F04AF915
:103980001421FA2000F0CAF9FA21AA2000F0B9F9AE
:10399000142100203EE0E07947E014213AE000F0F5
:1039A00045F945E00020207040E027703EE01421FA
:1039B000FA2000F0B3F900F053FA48489621401C71
:1039C00000F09CF8002827D144492079183162780A
:1039D0000A5407282CD2401C207129E000F040FA3C
:1039E0001421FA2000F09AF900206071217902294F
:1039F0000ED93A48183040182038C17F502907D1D5
:103A0000817F642904D1407FC82801D103206071DF
:103A10001421607900F075F9F8BD00F021FAA07961
:103A2000E071A77104E0E1710220A07100F018FAC2
:103A30001421FA2000F072F9F8BD1421FA2000F0E8
:103A40006DF93AE0E1710020EFE71421FA2000F06F
:103A500065F9A079012800D140252078002801D0FF
:103A600020200543E078022801D110200543B079D9
:103A7000002801D004200543F079002801D002205D
:103A80000543307A002800D03D431421284600F039
:103A900038F91421A07800F034F91421607800F08E
:103AA00030F90AE01421FA2000F038F90B48962189
:103AB000801C00F023F80028BFD000F0D1F9F8BD39
:103AC0001421FA2000F02AF9E770F8BD1421FA2039
:103AD00000F024F90220E070F8BD0000180000207A
:103AE00010B5054C2061A1816261E38100F092F87C
:103AF00000F080F810BD000018000020F3B581B080
:103B00000F4600250126FCF74DFC044606E0FCF7B5
:103B100049FC001BB84201D30120FEBDFFF78EFE19
:103B20000128F4D11220FEF75DFF314C0022A1895B
:103B30002069FCF730FC2420FEF754FF0122A18904
:103B40002069FCF728FC1220FEF74CFFE189606930
:103B5000FCF718FC012800D135437004060C122034
:103B6000FEF740FF0022A1892069FCF714FC242005
:103B7000FEF738FF0122A1892069FCF70CFC122016
:103B8000FEF730FFFF2EE1D91220FEF72BFF0022B7
:103B9000A1892069FCF7FFFB2420FEF723FF012207
:103BA000A1892069FCF7F7FB1220FEF71BFF12200A
:103BB000FEF718FF0022E1896069FCF7ECFB0022A8
:103BC000A1892069FCF7E7FB2420FEF70BFF012207
:103BD000A1892069FCF7DFFB1220FEF703FF012219
:103BE000E1896069FCF7D7FB019805700020FEBDF4
:103BF0001800002010B5064C0122A1892069FCF7AD
:103C0000CAFB0122E1896069FCF7C5FB10BD000019
:103C10001800002000B500F009F8034900200871E1
:103C20008861C861487100BD1800002000B50748D0
:103C300064214170022181700121C1700021017055
:103C40008171C17100F00CF900BD00001800002066
:103C500070B50546002409E028194078FF2100F0DE
:103C600050F8002801D0012070BD641C2878A042C3
:103C7000F2DC002070BD000010B5FFF7DFFD154C31
:103C8000022860710DD001280ED020461430FFF7B5
:103C9000DAFA002807D01049FFF700FE002813D1F8
:103CA0000DE0FFF7A7FF10BD0A480A21801CFFF7AF
:103CB00025FF0949A0781839FFF746FE10BD0648D0
:103CC000FFF7C6FF0028F9D102481430FFF7C6FA03
:103CD00010BD00004C000020E802002070B5054631
:103CE000FCF760FB044606E0FCF75CFB001BA84207
:103CF00001D3012070BDFFF7A1FD0328F4D10020FE
:103D000070BD10B504460846FFF7E8FF002801D053
:103D1000012010BD204600F013F810BD10B5044678
:103D20000846FFF7DBFF002801D0012010BDAF20BF
:103D30008000FEF757FE204600F002F810BD00009C
:103D4000F8B5464C054601260022E1896069FCF77A
:103D500022FB1220FEF746FE0022A1892069FCF713
:103D60001AFB2420FEF73EFE0122A1892069FCF700
:103D700012FB1220FEF736FEA1892069FCF702FB38
:103D8000002868D00027E80701D0012200E00022C7
:103D9000E1896069FCF7FFFA1220FEF723FE00229A
:103DA000A1892069FCF7F7FA2420FEF71BFE012207
:103DB000A1892069FCF7EFFA1220FEF713FEA18912
:103DC0002069FCF7DFFA002845D0E807C00F46401D
:103DD0006D087F1C082FD6DB002E01D0012200E0E9
:103DE0000022E1896069FCF7D6FA1220FEF7FAFD9D
:103DF0000022A1892069FCF7CEFA2420FEF7F2FD0B
:103E00000122A1892069FCF7C6FA1220FEF7EAFD1B
:103E1000A1892069FCF7B6FA00281CD00122E189AB
:103E20006069FCF7B8FA1220FEF7DCFD0022A189D8
:103E30002069FCF7B0FA2420FEF7D4FD0122A18905
:103E40002069FCF7A8FA1220FEF7CCFDFA20FEF755
:103E5000C9FD0020F8BD0120F8BD000018000020B9
:103E600002480021017241728172704718000020DF
:103E700011A0FEF7A1FC134D0024295D12A0FEF74E
:103E80009BFC641C202CF8DB10A0FEF795FC134D66
:103E9000002408212846FCF77AFA6420FCF79DF9F3
:103EA000641C642CF5DBBFF34F8F0E490C48C860CF
:103EB000BFF34F8F00BFFDE7535049204552524F8B
:103EC000520A000084020020256420000A72656204
:103ED0006F6F74696E672E2E2E0A00000004004872
:103EE0000400FA0500ED00E070B50646FCF75AFA4A
:103EF0000446084D06E0FCF755FA001BB04201D914
:103F0000042070BD29886868FCF73CFA0028F2D0CC
:103F1000002070BD3800002010B50E4C218860686C
:103F2000FCF730FA012802D1FCF73CFAE060FCF71C
:103F300039FAE168401A14280BD9C820FFF7D4FFDA
:103F40001420FCF74AF9AA2000F094F80A20FCF7A4
:103F500044F910BD3800002010B500F05DF8FCF702
:103F600021FA0149C86010BD3800002010B5034C8B
:103F700060602180A260638010BD000038000020D6
:103F800070B5044666380300FEF726FC0A140608DE
:103F90000A0C0E101216181A482413E04A2411E0D5
:103FA0004B240FE04E240DE04F240BE0502409E099
:103FB000512407E0472405E0522403E0532401E0A4
:103FC000532C0BD8022902D000290DD00EE0FCF7AB
:103FD000E9F9084D2969401A502801D8002070BD20
:103FE000FCF7E0F9286101E080200443204600F05E
:103FF00041F870BD3800002010B5064C0122218820
:104000006068FCF7C8F901226188A068FCF7C3F971
:1040100010BD00003800002010B5064C0122218898
:104020006068FCF7B8F900226188A068FCF7B3F972
:1040300010BD00003800002010B5FFF76DFF0B4ADF
:104040000B48511EFEF740FE00280AD10748001F0A
:104050000179C078FFF794FF452803D00448FEF7A4
:1040600043FE10BD0120FCF7B8F810BD5000002041
:10407000C402002070B52E4C054621886068FCF70C
:1040800081F900282AD0002221886068FCF783F992
:104090000520FEF7A7FC01226188A068FCF77BF9E8
:1040A0006E20FEF79FFC6188A068FCF76BF9002882
:1040B00014D0012221886068FCF76DF94120FEF7D9
:1040C00091FC002221886068FCF765F91E20FEF74C
:1040D00089FC0026E80705D0012204E0FFF79CFFD9
:1040E000452070BD00226188A068FCF754F90122C8
:1040F00021886068FCF74FF94120FEF773FC00222D
:1041000021886068FCF747F91E20FEF76BFC6D08FC
:10411000761C082EDEDB012221886068FCF73BF963
:1041200000226188A068FCF736F9002070BD00000D
:1041300038000020FF76161E26252E363D3E4645C9
:104140004E55660D151D242D2C353C43444D545BB6
:104150005A141C1B232B34333B424B4C520E125D22
:104160001A22212A32313A41494A597C11295805EB
:1041700006040C030B830A0109777E6C757D7B6B4B
:1041800073747969727A7071FFFF6178075A144A03
:10419000FF11FF6C757D6B7469727A7071FFFFFFA0
:1041A000FFFFFFFFFFFFFFFFFFFF1F272F0001069D
:1041B000075553423456432050726F746F636F6CCF
:1041C00020426F6172640A49424D20504320436F80
:1041D0006D70617469626C650A64656B754E756BB0
:1041E000656D203230323200000000000000000017
:1041F000010203040607080900000000010203048D
:10420000204200080000002084000000F22700087F
:10421000A44200088400002084080000022800084E
:10422000000000000201000000000000000000008B
:10423000000000000000000000000000000000007E
:10424000000000000000000000000000000000006E
:10425000000000000000000000000000000000005E
:10426000000000000000000000000000000000004E
:10427000000000000000000000000000000000003E
:10428000000000000000000000000000000000002E
:1042900000127A0000000000000000000000000092
:104290000000000000127A00000000000000000092
:0442A000000000001A
:04000005080000C12E
:00000001FF

View File

@@ -3,7 +3,7 @@
<title>Static Call Graph - [ibmpc\ibmpc.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image ibmpc\ibmpc.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Sun May 01 17:15:29 2022
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Sun May 01 22:54:56 2022
<BR><P>
<H3>Maximum Stack Usage = 212 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
@@ -280,6 +280,7 @@ Global Symbols
</UL>
<BR>[Called By]<UL><LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mcp4451_reset
<LI><a href="#[bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_update
<LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<LI><a href="#[bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_update
<LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
@@ -1230,7 +1231,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_update
</UL>
<P><STRONG><a name="[c5]"></a>ps2kb_press_key_scancode_1</STRONG> (Thumb, 40 bytes, Stack size 8 bytes, ps2kb.o(i.ps2kb_press_key_scancode_1))
<P><STRONG><a name="[c5]"></a>ps2kb_press_key_scancode_1</STRONG> (Thumb, 44 bytes, Stack size 8 bytes, ps2kb.o(i.ps2kb_press_key_scancode_1))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = ps2kb_press_key_scancode_1 &rArr; ps2kb_write &rArr; ps2kb_write_nowait &rArr; ps2kb_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write
@@ -1490,7 +1491,7 @@ Global Symbols
</UL>
<P><STRONG><a name="[d5]"></a>xtkb_check_for_softreset</STRONG> (Thumb, 60 bytes, Stack size 8 bytes, xt_kb.o(i.xtkb_check_for_softreset))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = xtkb_check_for_softreset &rArr; xtkb_write &rArr; delay_us
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = xtkb_check_for_softreset &rArr; xtkb_write &rArr; xtkb_reset_bus
</UL>
<BR>[Calls]<UL><LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_for_clk_high
@@ -1518,7 +1519,7 @@ Global Symbols
</UL>
<P><STRONG><a name="[d8]"></a>xtkb_press_key</STRONG> (Thumb, 116 bytes, Stack size 16 bytes, xt_kb.o(i.xtkb_press_key))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = xtkb_press_key &rArr; xtkb_write &rArr; delay_us
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = xtkb_press_key &rArr; xtkb_write &rArr; xtkb_reset_bus
</UL>
<BR>[Calls]<UL><LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
@@ -1540,16 +1541,16 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
</UL>
<BR>[Called By]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_enable
<LI><a href="#[bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_update
<BR>[Called By]<UL><LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_enable
</UL>
<P><STRONG><a name="[bc]"></a>xtkb_update</STRONG> (Thumb, 50 bytes, Stack size 8 bytes, main.o(i.xtkb_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 44<LI>Call Chain = xtkb_update &rArr; xtkb_press_key &rArr; xtkb_write &rArr; delay_us
<P><STRONG><a name="[bc]"></a>xtkb_update</STRONG> (Thumb, 52 bytes, Stack size 8 bytes, main.o(i.xtkb_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = xtkb_update &rArr; xtkb_press_key &rArr; xtkb_write &rArr; xtkb_reset_bus
</UL>
<BR>[Calls]<UL><LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_reset_bus
<LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<BR>[Calls]<UL><LI><a href="#[d8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_pop
<LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_peek
</UL>
@@ -1557,9 +1558,10 @@ Global Symbols
</UL>
<P><STRONG><a name="[d6]"></a>xtkb_write</STRONG> (Thumb, 186 bytes, Stack size 16 bytes, xt_kb.o(i.xtkb_write))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = xtkb_write &rArr; delay_us
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = xtkb_write &rArr; xtkb_reset_bus
</UL>
<BR>[Calls]<UL><LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<BR>[Calls]<UL><LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_reset_bus
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
</UL>

View File

@@ -149,6 +149,7 @@ Section Cross References
xt_kb.o(i.xtkb_write) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_ReadPin) for HAL_GPIO_ReadPin
xt_kb.o(i.xtkb_write) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
xt_kb.o(i.xtkb_write) refers to delay_us.o(i.delay_us) for delay_us
xt_kb.o(i.xtkb_write) refers to xt_kb.o(i.xtkb_reset_bus) for xtkb_reset_bus
xt_kb.o(i.xtkb_write) refers to xt_kb.o(.data) for .data
main.o(i.HAL_GPIO_EXTI_Callback) refers to main.o(i.is_protocol_enabled) for is_protocol_enabled
main.o(i.HAL_GPIO_EXTI_Callback) refers to main.o(.data) for .data
@@ -287,8 +288,8 @@ Section Cross References
main.o(i.xtkb_update) refers to xt_kb.o(i.xtkb_check_for_softreset) for xtkb_check_for_softreset
main.o(i.xtkb_update) refers to helpers.o(i.kb_buf_peek) for kb_buf_peek
main.o(i.xtkb_update) refers to xt_kb.o(i.xtkb_press_key) for xtkb_press_key
main.o(i.xtkb_update) refers to xt_kb.o(i.xtkb_reset_bus) for xtkb_reset_bus
main.o(i.xtkb_update) refers to helpers.o(i.kb_buf_pop) for kb_buf_pop
main.o(i.xtkb_update) refers to stm32f0xx_hal.o(i.HAL_Delay) for HAL_Delay
main.o(i.xtkb_update) refers to main.o(.data) for .data
main.o(i.xtkb_update) refers to main.o(.bss) for .bss
stm32f0xx_it.o(i.EXTI0_1_IRQHandler) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler) for HAL_GPIO_EXTI_IRQHandler
@@ -2025,43 +2026,43 @@ Image Symbol Table
i.ps2kb_init 0x080032f0 Section 0 ps2kb.o(i.ps2kb_init)
i.ps2kb_press_key 0x0800330c Section 0 ps2kb.o(i.ps2kb_press_key)
i.ps2kb_press_key_scancode_1 0x08003338 Section 0 ps2kb.o(i.ps2kb_press_key_scancode_1)
i.ps2kb_press_key_scancode_2 0x08003360 Section 0 ps2kb.o(i.ps2kb_press_key_scancode_2)
i.ps2kb_read 0x080034f0 Section 0 ps2kb.o(i.ps2kb_read)
i.ps2kb_release_lines 0x080035ec Section 0 ps2kb.o(i.ps2kb_release_lines)
i.ps2kb_reset 0x0800360c Section 0 ps2kb.o(i.ps2kb_reset)
i.ps2kb_update 0x0800361c Section 0 main.o(i.ps2kb_update)
i.ps2kb_write 0x080036d0 Section 0 ps2kb.o(i.ps2kb_write)
i.ps2kb_write_nowait 0x08003714 Section 0 ps2kb.o(i.ps2kb_write_nowait)
i.ps2mouse_get_bus_status 0x08003838 Section 0 ps2mouse.o(i.ps2mouse_get_bus_status)
i.ps2mouse_get_outgoing_data 0x08003898 Section 0 ps2mouse.o(i.ps2mouse_get_outgoing_data)
i.ps2mouse_host_req_reply 0x08003944 Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
i.ps2mouse_init 0x08003adc Section 0 ps2mouse.o(i.ps2mouse_init)
i.ps2mouse_read 0x08003af8 Section 0 ps2mouse.o(i.ps2mouse_read)
i.ps2mouse_release_lines 0x08003bf0 Section 0 ps2mouse.o(i.ps2mouse_release_lines)
i.ps2mouse_reset 0x08003c10 Section 0 ps2mouse.o(i.ps2mouse_reset)
i.ps2mouse_restore_defaults 0x08003c28 Section 0 ps2mouse.o(i.ps2mouse_restore_defaults)
i.ps2mouse_send_update 0x08003c4c Section 0 ps2mouse.o(i.ps2mouse_send_update)
i.ps2mouse_update 0x08003c74 Section 0 main.o(i.ps2mouse_update)
i.ps2mouse_wait_for_idle 0x08003cd8 Section 0 ps2mouse.o(i.ps2mouse_wait_for_idle)
i.ps2mouse_write 0x08003cfe Section 0 ps2mouse.o(i.ps2mouse_write)
i.ps2mouse_write_delay_start 0x08003d18 Section 0 ps2mouse.o(i.ps2mouse_write_delay_start)
i.ps2mouse_write_nowait 0x08003d3c Section 0 ps2mouse.o(i.ps2mouse_write_nowait)
i.reset_accumulators 0x08003e5c Section 0 ps2mouse.o(i.reset_accumulators)
i.spi_error_dump_reboot 0x08003e6c Section 0 main.o(i.spi_error_dump_reboot)
i.wait_for_clk_high 0x08003ee4 Section 0 xt_kb.o(i.wait_for_clk_high)
i.xtkb_check_for_softreset 0x08003f14 Section 0 xt_kb.o(i.xtkb_check_for_softreset)
i.xtkb_enable 0x08003f54 Section 0 xt_kb.o(i.xtkb_enable)
i.xtkb_init 0x08003f68 Section 0 xt_kb.o(i.xtkb_init)
i.xtkb_press_key 0x08003f7c Section 0 xt_kb.o(i.xtkb_press_key)
i.xtkb_release_lines 0x08003ff4 Section 0 xt_kb.o(i.xtkb_release_lines)
i.xtkb_reset_bus 0x08004014 Section 0 xt_kb.o(i.xtkb_reset_bus)
i.xtkb_update 0x08004034 Section 0 main.o(i.xtkb_update)
i.xtkb_write 0x08004070 Section 0 xt_kb.o(i.xtkb_write)
.constdata 0x08004130 Section 121 ps2kb.o(.constdata)
.constdata 0x080041a9 Section 4 mcp4451.o(.constdata)
.constdata 0x080041ad Section 55 main.o(.constdata)
.constdata 0x080041e4 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x080041f4 Section 8 system_stm32f0xx.o(.constdata)
i.ps2kb_press_key_scancode_2 0x08003364 Section 0 ps2kb.o(i.ps2kb_press_key_scancode_2)
i.ps2kb_read 0x080034f4 Section 0 ps2kb.o(i.ps2kb_read)
i.ps2kb_release_lines 0x080035f0 Section 0 ps2kb.o(i.ps2kb_release_lines)
i.ps2kb_reset 0x08003610 Section 0 ps2kb.o(i.ps2kb_reset)
i.ps2kb_update 0x08003620 Section 0 main.o(i.ps2kb_update)
i.ps2kb_write 0x080036d4 Section 0 ps2kb.o(i.ps2kb_write)
i.ps2kb_write_nowait 0x08003718 Section 0 ps2kb.o(i.ps2kb_write_nowait)
i.ps2mouse_get_bus_status 0x0800383c Section 0 ps2mouse.o(i.ps2mouse_get_bus_status)
i.ps2mouse_get_outgoing_data 0x0800389c Section 0 ps2mouse.o(i.ps2mouse_get_outgoing_data)
i.ps2mouse_host_req_reply 0x08003948 Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
i.ps2mouse_init 0x08003ae0 Section 0 ps2mouse.o(i.ps2mouse_init)
i.ps2mouse_read 0x08003afc Section 0 ps2mouse.o(i.ps2mouse_read)
i.ps2mouse_release_lines 0x08003bf4 Section 0 ps2mouse.o(i.ps2mouse_release_lines)
i.ps2mouse_reset 0x08003c14 Section 0 ps2mouse.o(i.ps2mouse_reset)
i.ps2mouse_restore_defaults 0x08003c2c Section 0 ps2mouse.o(i.ps2mouse_restore_defaults)
i.ps2mouse_send_update 0x08003c50 Section 0 ps2mouse.o(i.ps2mouse_send_update)
i.ps2mouse_update 0x08003c78 Section 0 main.o(i.ps2mouse_update)
i.ps2mouse_wait_for_idle 0x08003cdc Section 0 ps2mouse.o(i.ps2mouse_wait_for_idle)
i.ps2mouse_write 0x08003d02 Section 0 ps2mouse.o(i.ps2mouse_write)
i.ps2mouse_write_delay_start 0x08003d1c Section 0 ps2mouse.o(i.ps2mouse_write_delay_start)
i.ps2mouse_write_nowait 0x08003d40 Section 0 ps2mouse.o(i.ps2mouse_write_nowait)
i.reset_accumulators 0x08003e60 Section 0 ps2mouse.o(i.reset_accumulators)
i.spi_error_dump_reboot 0x08003e70 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_for_clk_high 0x08003ee8 Section 0 xt_kb.o(i.wait_for_clk_high)
i.xtkb_check_for_softreset 0x08003f18 Section 0 xt_kb.o(i.xtkb_check_for_softreset)
i.xtkb_enable 0x08003f58 Section 0 xt_kb.o(i.xtkb_enable)
i.xtkb_init 0x08003f6c Section 0 xt_kb.o(i.xtkb_init)
i.xtkb_press_key 0x08003f80 Section 0 xt_kb.o(i.xtkb_press_key)
i.xtkb_release_lines 0x08003ff8 Section 0 xt_kb.o(i.xtkb_release_lines)
i.xtkb_reset_bus 0x08004018 Section 0 xt_kb.o(i.xtkb_reset_bus)
i.xtkb_update 0x08004038 Section 0 main.o(i.xtkb_update)
i.xtkb_write 0x08004074 Section 0 xt_kb.o(i.xtkb_write)
.constdata 0x08004134 Section 121 ps2kb.o(.constdata)
.constdata 0x080041ad Section 4 mcp4451.o(.constdata)
.constdata 0x080041b1 Section 55 main.o(.constdata)
.constdata 0x080041e8 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x080041f8 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)
@@ -2302,47 +2303,47 @@ Image Symbol Table
ps2kb_get_bus_status 0x080032ad Thumb Code 62 ps2kb.o(i.ps2kb_get_bus_status)
ps2kb_init 0x080032f1 Thumb Code 22 ps2kb.o(i.ps2kb_init)
ps2kb_press_key 0x0800330d Thumb Code 40 ps2kb.o(i.ps2kb_press_key)
ps2kb_press_key_scancode_1 0x08003339 Thumb Code 40 ps2kb.o(i.ps2kb_press_key_scancode_1)
ps2kb_press_key_scancode_2 0x08003361 Thumb Code 396 ps2kb.o(i.ps2kb_press_key_scancode_2)
ps2kb_read 0x080034f1 Thumb Code 246 ps2kb.o(i.ps2kb_read)
ps2kb_release_lines 0x080035ed Thumb Code 26 ps2kb.o(i.ps2kb_release_lines)
ps2kb_reset 0x0800360d Thumb Code 12 ps2kb.o(i.ps2kb_reset)
ps2kb_update 0x0800361d Thumb Code 166 main.o(i.ps2kb_update)
ps2kb_write 0x080036d1 Thumb Code 62 ps2kb.o(i.ps2kb_write)
ps2kb_write_nowait 0x08003715 Thumb Code 286 ps2kb.o(i.ps2kb_write_nowait)
ps2mouse_get_bus_status 0x08003839 Thumb Code 92 ps2mouse.o(i.ps2mouse_get_bus_status)
ps2mouse_get_outgoing_data 0x08003899 Thumb Code 166 ps2mouse.o(i.ps2mouse_get_outgoing_data)
ps2mouse_host_req_reply 0x08003945 Thumb Code 402 ps2mouse.o(i.ps2mouse_host_req_reply)
ps2mouse_init 0x08003add Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
ps2mouse_read 0x08003af9 Thumb Code 244 ps2mouse.o(i.ps2mouse_read)
ps2mouse_release_lines 0x08003bf1 Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
ps2mouse_reset 0x08003c11 Thumb Code 20 ps2mouse.o(i.ps2mouse_reset)
ps2mouse_restore_defaults 0x08003c29 Thumb Code 30 ps2mouse.o(i.ps2mouse_restore_defaults)
ps2mouse_send_update 0x08003c4d Thumb Code 38 ps2mouse.o(i.ps2mouse_send_update)
ps2mouse_update 0x08003c75 Thumb Code 90 main.o(i.ps2mouse_update)
ps2mouse_wait_for_idle 0x08003cd9 Thumb Code 38 ps2mouse.o(i.ps2mouse_wait_for_idle)
ps2mouse_write 0x08003cff Thumb Code 26 ps2mouse.o(i.ps2mouse_write)
ps2mouse_write_delay_start 0x08003d19 Thumb Code 34 ps2mouse.o(i.ps2mouse_write_delay_start)
ps2mouse_write_nowait 0x08003d3d Thumb Code 282 ps2mouse.o(i.ps2mouse_write_nowait)
reset_accumulators 0x08003e5d Thumb Code 12 ps2mouse.o(i.reset_accumulators)
spi_error_dump_reboot 0x08003e6d Thumb Code 72 main.o(i.spi_error_dump_reboot)
wait_for_clk_high 0x08003ee5 Thumb Code 44 xt_kb.o(i.wait_for_clk_high)
xtkb_check_for_softreset 0x08003f15 Thumb Code 60 xt_kb.o(i.xtkb_check_for_softreset)
xtkb_enable 0x08003f55 Thumb Code 16 xt_kb.o(i.xtkb_enable)
xtkb_init 0x08003f69 Thumb Code 14 xt_kb.o(i.xtkb_init)
xtkb_press_key 0x08003f7d Thumb Code 116 xt_kb.o(i.xtkb_press_key)
xtkb_release_lines 0x08003ff5 Thumb Code 26 xt_kb.o(i.xtkb_release_lines)
xtkb_reset_bus 0x08004015 Thumb Code 26 xt_kb.o(i.xtkb_reset_bus)
xtkb_update 0x08004035 Thumb Code 50 main.o(i.xtkb_update)
xtkb_write 0x08004071 Thumb Code 186 xt_kb.o(i.xtkb_write)
linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x08004130 Data 89 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x08004189 Data 32 ps2kb.o(.constdata)
mcp4451_wiper_id_to_reg_addr_lookup 0x080041a9 Data 4 mcp4451.o(.constdata)
boot_message 0x080041ad Data 55 main.o(.constdata)
AHBPrescTable 0x080041e4 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x080041f4 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x080041fc Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x0800421c Number 0 anon$$obj.o(Region$$Table)
ps2kb_press_key_scancode_1 0x08003339 Thumb Code 44 ps2kb.o(i.ps2kb_press_key_scancode_1)
ps2kb_press_key_scancode_2 0x08003365 Thumb Code 396 ps2kb.o(i.ps2kb_press_key_scancode_2)
ps2kb_read 0x080034f5 Thumb Code 246 ps2kb.o(i.ps2kb_read)
ps2kb_release_lines 0x080035f1 Thumb Code 26 ps2kb.o(i.ps2kb_release_lines)
ps2kb_reset 0x08003611 Thumb Code 12 ps2kb.o(i.ps2kb_reset)
ps2kb_update 0x08003621 Thumb Code 166 main.o(i.ps2kb_update)
ps2kb_write 0x080036d5 Thumb Code 62 ps2kb.o(i.ps2kb_write)
ps2kb_write_nowait 0x08003719 Thumb Code 286 ps2kb.o(i.ps2kb_write_nowait)
ps2mouse_get_bus_status 0x0800383d Thumb Code 92 ps2mouse.o(i.ps2mouse_get_bus_status)
ps2mouse_get_outgoing_data 0x0800389d Thumb Code 166 ps2mouse.o(i.ps2mouse_get_outgoing_data)
ps2mouse_host_req_reply 0x08003949 Thumb Code 402 ps2mouse.o(i.ps2mouse_host_req_reply)
ps2mouse_init 0x08003ae1 Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
ps2mouse_read 0x08003afd Thumb Code 244 ps2mouse.o(i.ps2mouse_read)
ps2mouse_release_lines 0x08003bf5 Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
ps2mouse_reset 0x08003c15 Thumb Code 20 ps2mouse.o(i.ps2mouse_reset)
ps2mouse_restore_defaults 0x08003c2d Thumb Code 30 ps2mouse.o(i.ps2mouse_restore_defaults)
ps2mouse_send_update 0x08003c51 Thumb Code 38 ps2mouse.o(i.ps2mouse_send_update)
ps2mouse_update 0x08003c79 Thumb Code 90 main.o(i.ps2mouse_update)
ps2mouse_wait_for_idle 0x08003cdd Thumb Code 38 ps2mouse.o(i.ps2mouse_wait_for_idle)
ps2mouse_write 0x08003d03 Thumb Code 26 ps2mouse.o(i.ps2mouse_write)
ps2mouse_write_delay_start 0x08003d1d Thumb Code 34 ps2mouse.o(i.ps2mouse_write_delay_start)
ps2mouse_write_nowait 0x08003d41 Thumb Code 282 ps2mouse.o(i.ps2mouse_write_nowait)
reset_accumulators 0x08003e61 Thumb Code 12 ps2mouse.o(i.reset_accumulators)
spi_error_dump_reboot 0x08003e71 Thumb Code 72 main.o(i.spi_error_dump_reboot)
wait_for_clk_high 0x08003ee9 Thumb Code 44 xt_kb.o(i.wait_for_clk_high)
xtkb_check_for_softreset 0x08003f19 Thumb Code 60 xt_kb.o(i.xtkb_check_for_softreset)
xtkb_enable 0x08003f59 Thumb Code 16 xt_kb.o(i.xtkb_enable)
xtkb_init 0x08003f6d Thumb Code 14 xt_kb.o(i.xtkb_init)
xtkb_press_key 0x08003f81 Thumb Code 116 xt_kb.o(i.xtkb_press_key)
xtkb_release_lines 0x08003ff9 Thumb Code 26 xt_kb.o(i.xtkb_release_lines)
xtkb_reset_bus 0x08004019 Thumb Code 26 xt_kb.o(i.xtkb_reset_bus)
xtkb_update 0x08004039 Thumb Code 52 main.o(i.xtkb_update)
xtkb_write 0x08004075 Thumb Code 186 xt_kb.o(i.xtkb_write)
linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x08004134 Data 89 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x0800418d Data 32 ps2kb.o(.constdata)
mcp4451_wiper_id_to_reg_addr_lookup 0x080041ad Data 4 mcp4451.o(.constdata)
boot_message 0x080041b1 Data 55 main.o(.constdata)
AHBPrescTable 0x080041e8 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x080041f8 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08004200 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08004220 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)
@@ -2419,9 +2420,9 @@ Memory Map of the image
Image Entry point : 0x080000c1
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000042a0, Max: 0x00010000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000042a4, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000421c, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00004220, Max: 0x00010000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
@@ -2600,65 +2601,65 @@ Memory Map of the image
0x080032ac 0x080032ac 0x00000044 Code RO 301 i.ps2kb_get_bus_status ps2kb.o
0x080032f0 0x080032f0 0x0000001c Code RO 302 i.ps2kb_init ps2kb.o
0x0800330c 0x0800330c 0x0000002c Code RO 303 i.ps2kb_press_key ps2kb.o
0x08003338 0x08003338 0x00000028 Code RO 304 i.ps2kb_press_key_scancode_1 ps2kb.o
0x08003360 0x08003360 0x00000190 Code RO 305 i.ps2kb_press_key_scancode_2 ps2kb.o
0x080034f0 0x080034f0 0x000000fc Code RO 306 i.ps2kb_read ps2kb.o
0x080035ec 0x080035ec 0x00000020 Code RO 307 i.ps2kb_release_lines ps2kb.o
0x0800360c 0x0800360c 0x00000010 Code RO 308 i.ps2kb_reset ps2kb.o
0x0800361c 0x0800361c 0x000000b4 Code RO 612 i.ps2kb_update main.o
0x080036d0 0x080036d0 0x00000044 Code RO 309 i.ps2kb_write ps2kb.o
0x08003714 0x08003714 0x00000124 Code RO 310 i.ps2kb_write_nowait ps2kb.o
0x08003838 0x08003838 0x00000060 Code RO 388 i.ps2mouse_get_bus_status ps2mouse.o
0x08003898 0x08003898 0x000000ac Code RO 389 i.ps2mouse_get_outgoing_data ps2mouse.o
0x08003944 0x08003944 0x00000198 Code RO 390 i.ps2mouse_host_req_reply ps2mouse.o
0x08003adc 0x08003adc 0x0000001c Code RO 391 i.ps2mouse_init ps2mouse.o
0x08003af8 0x08003af8 0x000000f8 Code RO 392 i.ps2mouse_read ps2mouse.o
0x08003bf0 0x08003bf0 0x00000020 Code RO 393 i.ps2mouse_release_lines ps2mouse.o
0x08003c10 0x08003c10 0x00000018 Code RO 394 i.ps2mouse_reset ps2mouse.o
0x08003c28 0x08003c28 0x00000024 Code RO 395 i.ps2mouse_restore_defaults ps2mouse.o
0x08003c4c 0x08003c4c 0x00000026 Code RO 396 i.ps2mouse_send_update ps2mouse.o
0x08003c72 0x08003c72 0x00000002 PAD
0x08003c74 0x08003c74 0x00000064 Code RO 613 i.ps2mouse_update main.o
0x08003cd8 0x08003cd8 0x00000026 Code RO 397 i.ps2mouse_wait_for_idle ps2mouse.o
0x08003cfe 0x08003cfe 0x0000001a Code RO 398 i.ps2mouse_write ps2mouse.o
0x08003d18 0x08003d18 0x00000022 Code RO 399 i.ps2mouse_write_delay_start ps2mouse.o
0x08003d3a 0x08003d3a 0x00000002 PAD
0x08003d3c 0x08003d3c 0x00000120 Code RO 400 i.ps2mouse_write_nowait ps2mouse.o
0x08003e5c 0x08003e5c 0x00000010 Code RO 401 i.reset_accumulators ps2mouse.o
0x08003e6c 0x08003e6c 0x00000078 Code RO 614 i.spi_error_dump_reboot main.o
0x08003ee4 0x08003ee4 0x00000030 Code RO 525 i.wait_for_clk_high xt_kb.o
0x08003f14 0x08003f14 0x00000040 Code RO 526 i.xtkb_check_for_softreset xt_kb.o
0x08003f54 0x08003f54 0x00000014 Code RO 527 i.xtkb_enable xt_kb.o
0x08003f68 0x08003f68 0x00000014 Code RO 528 i.xtkb_init xt_kb.o
0x08003f7c 0x08003f7c 0x00000078 Code RO 529 i.xtkb_press_key xt_kb.o
0x08003ff4 0x08003ff4 0x00000020 Code RO 530 i.xtkb_release_lines xt_kb.o
0x08004014 0x08004014 0x00000020 Code RO 531 i.xtkb_reset_bus xt_kb.o
0x08004034 0x08004034 0x0000003c Code RO 615 i.xtkb_update main.o
0x08004070 0x08004070 0x000000c0 Code RO 532 i.xtkb_write xt_kb.o
0x08004130 0x08004130 0x00000079 Data RO 311 .constdata ps2kb.o
0x080041a9 0x080041a9 0x00000004 Data RO 490 .constdata mcp4451.o
0x080041ad 0x080041ad 0x00000037 Data RO 621 .constdata main.o
0x080041e4 0x080041e4 0x00000010 Data RO 3921 .constdata system_stm32f0xx.o
0x080041f4 0x080041f4 0x00000008 Data RO 3922 .constdata system_stm32f0xx.o
0x080041fc 0x080041fc 0x00000020 Data RO 4293 Region$$Table anon$$obj.o
0x08003338 0x08003338 0x0000002c Code RO 304 i.ps2kb_press_key_scancode_1 ps2kb.o
0x08003364 0x08003364 0x00000190 Code RO 305 i.ps2kb_press_key_scancode_2 ps2kb.o
0x080034f4 0x080034f4 0x000000fc Code RO 306 i.ps2kb_read ps2kb.o
0x080035f0 0x080035f0 0x00000020 Code RO 307 i.ps2kb_release_lines ps2kb.o
0x08003610 0x08003610 0x00000010 Code RO 308 i.ps2kb_reset ps2kb.o
0x08003620 0x08003620 0x000000b4 Code RO 612 i.ps2kb_update main.o
0x080036d4 0x080036d4 0x00000044 Code RO 309 i.ps2kb_write ps2kb.o
0x08003718 0x08003718 0x00000124 Code RO 310 i.ps2kb_write_nowait ps2kb.o
0x0800383c 0x0800383c 0x00000060 Code RO 388 i.ps2mouse_get_bus_status ps2mouse.o
0x0800389c 0x0800389c 0x000000ac Code RO 389 i.ps2mouse_get_outgoing_data ps2mouse.o
0x08003948 0x08003948 0x00000198 Code RO 390 i.ps2mouse_host_req_reply ps2mouse.o
0x08003ae0 0x08003ae0 0x0000001c Code RO 391 i.ps2mouse_init ps2mouse.o
0x08003afc 0x08003afc 0x000000f8 Code RO 392 i.ps2mouse_read ps2mouse.o
0x08003bf4 0x08003bf4 0x00000020 Code RO 393 i.ps2mouse_release_lines ps2mouse.o
0x08003c14 0x08003c14 0x00000018 Code RO 394 i.ps2mouse_reset ps2mouse.o
0x08003c2c 0x08003c2c 0x00000024 Code RO 395 i.ps2mouse_restore_defaults ps2mouse.o
0x08003c50 0x08003c50 0x00000026 Code RO 396 i.ps2mouse_send_update ps2mouse.o
0x08003c76 0x08003c76 0x00000002 PAD
0x08003c78 0x08003c78 0x00000064 Code RO 613 i.ps2mouse_update main.o
0x08003cdc 0x08003cdc 0x00000026 Code RO 397 i.ps2mouse_wait_for_idle ps2mouse.o
0x08003d02 0x08003d02 0x0000001a Code RO 398 i.ps2mouse_write ps2mouse.o
0x08003d1c 0x08003d1c 0x00000022 Code RO 399 i.ps2mouse_write_delay_start ps2mouse.o
0x08003d3e 0x08003d3e 0x00000002 PAD
0x08003d40 0x08003d40 0x00000120 Code RO 400 i.ps2mouse_write_nowait ps2mouse.o
0x08003e60 0x08003e60 0x00000010 Code RO 401 i.reset_accumulators ps2mouse.o
0x08003e70 0x08003e70 0x00000078 Code RO 614 i.spi_error_dump_reboot main.o
0x08003ee8 0x08003ee8 0x00000030 Code RO 525 i.wait_for_clk_high xt_kb.o
0x08003f18 0x08003f18 0x00000040 Code RO 526 i.xtkb_check_for_softreset xt_kb.o
0x08003f58 0x08003f58 0x00000014 Code RO 527 i.xtkb_enable xt_kb.o
0x08003f6c 0x08003f6c 0x00000014 Code RO 528 i.xtkb_init xt_kb.o
0x08003f80 0x08003f80 0x00000078 Code RO 529 i.xtkb_press_key xt_kb.o
0x08003ff8 0x08003ff8 0x00000020 Code RO 530 i.xtkb_release_lines xt_kb.o
0x08004018 0x08004018 0x00000020 Code RO 531 i.xtkb_reset_bus xt_kb.o
0x08004038 0x08004038 0x0000003c Code RO 615 i.xtkb_update main.o
0x08004074 0x08004074 0x000000c0 Code RO 532 i.xtkb_write xt_kb.o
0x08004134 0x08004134 0x00000079 Data RO 311 .constdata ps2kb.o
0x080041ad 0x080041ad 0x00000004 Data RO 490 .constdata mcp4451.o
0x080041b1 0x080041b1 0x00000037 Data RO 621 .constdata main.o
0x080041e8 0x080041e8 0x00000010 Data RO 3921 .constdata system_stm32f0xx.o
0x080041f8 0x080041f8 0x00000008 Data RO 3922 .constdata system_stm32f0xx.o
0x08004200 0x08004200 0x00000020 Data RO 4293 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0800421c, Size: 0x00000908, Max: 0x00004000, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08004220, Size: 0x00000908, Max: 0x00004000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x0800421c 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x08004220 0x00000014 Data RW 312 .data ps2kb.o
0x20000018 0x08004234 0x00000020 Data RW 402 .data ps2mouse.o
0x20000038 0x08004254 0x00000014 Data RW 533 .data xt_kb.o
0x2000004c 0x08004268 0x00000024 Data RW 622 .data main.o
0x20000070 0x0800428c 0x00000004 Data RW 3216 .data stm32f0xx_hal.o
0x20000074 0x08004290 0x00000004 Data RW 3923 .data system_stm32f0xx.o
0x20000078 0x08004294 0x00000004 Data RW 4267 .data mc_p.l(stdout.o)
0x2000007c 0x08004298 0x00000004 Data RW 4270 .data mc_p.l(mvars.o)
0x20000080 0x0800429c 0x00000004 Data RW 4271 .data mc_p.l(mvars.o)
0x20000000 0x08004220 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x08004224 0x00000014 Data RW 312 .data ps2kb.o
0x20000018 0x08004238 0x00000020 Data RW 402 .data ps2mouse.o
0x20000038 0x08004258 0x00000014 Data RW 533 .data xt_kb.o
0x2000004c 0x0800426c 0x00000024 Data RW 622 .data main.o
0x20000070 0x08004290 0x00000004 Data RW 3216 .data stm32f0xx_hal.o
0x20000074 0x08004294 0x00000004 Data RW 3923 .data system_stm32f0xx.o
0x20000078 0x08004298 0x00000004 Data RW 4267 .data mc_p.l(stdout.o)
0x2000007c 0x0800429c 0x00000004 Data RW 4270 .data mc_p.l(mvars.o)
0x20000080 0x080042a0 0x00000004 Data RW 4271 .data mc_p.l(mvars.o)
0x20000084 - 0x0000027d Zero RW 616 .bss main.o
0x20000301 0x080042a0 0x00000007 PAD
0x20000301 0x080042a4 0x00000007 PAD
0x20000308 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
0x20000508 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o
@@ -2672,9 +2673,9 @@ Image component sizes
52 10 0 4 0 506987 delay_us.o
532 0 0 0 0 11932 helpers.o
2900 358 55 36 637 22444 main.o
2900 356 55 36 637 22444 main.o
132 22 4 0 0 2287 mcp4451.o
1522 76 121 20 0 9442 ps2kb.o
1526 76 121 20 0 9446 ps2kb.o
1484 72 0 32 0 11410 ps2mouse.o
28 8 192 0 1536 628 startup_stm32f072xb.o
122 18 0 4 0 3603 stm32f0xx_hal.o
@@ -2694,10 +2695,10 @@ Image component sizes
2 0 0 0 0 976 stm32f0xx_hal_uart_ex.o
62 12 0 0 0 3420 stm32f0xx_it.o
92 16 24 4 0 1131 system_stm32f0xx.o
528 52 0 20 0 5910 xt_kb.o
528 52 0 20 0 5894 xt_kb.o
----------------------------------------------------------------------
15694 1012 428 120 2180 650255 Object Totals
15698 1010 428 120 2180 650243 Object Totals
0 0 32 0 0 0 (incl. Generated)
34 0 0 0 7 0 (incl. Padding)
@@ -2743,15 +2744,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
16496 1056 428 132 2180 643427 Grand Totals
16496 1056 428 132 2180 643427 ELF Image Totals
16496 1056 428 132 0 0 ROM Totals
16500 1054 428 132 2180 643415 Grand Totals
16500 1054 428 132 2180 643415 ELF Image Totals
16500 1054 428 132 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 16924 ( 16.53kB)
Total RO Size (Code + RO Data) 16928 ( 16.53kB)
Total RW Size (RW Data + ZI Data) 2312 ( 2.26kB)
Total ROM Size (Code + RO Data + RW Data) 17056 ( 16.66kB)
Total ROM Size (Code + RO Data + RW Data) 17060 ( 16.66kB)
==============================================================================

View File

@@ -74,7 +74,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h)(0x5DFA0893)
I (../Inc/stm32f0xx_hal_conf.h)(0x62423606)
I (../Inc/main.h)(0x62423606)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h)(0x5DFA0893)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h)(0x5DFA0880)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h)(0x5DFA0880)
@@ -112,7 +112,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
-IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB
-o ibmpc\ps2kb.o --omf_browse ibmpc\ps2kb.crf --depend ibmpc\ps2kb.d)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A)
@@ -156,7 +156,7 @@ I (../Inc/ps2mouse.h)(0x61BC59D5)
I (../Inc/delay_us.h)(0x617487C7)
F (..\Src\ps2mouse.c)(0x62423712)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include
-I.\RTE\_ibmpc
-I.\RTE\_ibmpc
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
@@ -198,7 +198,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_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_ex.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)
I (../Inc/shared.h)(0x61B61A00)
@@ -236,10 +236,10 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5D9B4298)
I (../Drivers/CMSIS/Include/core_cmInstr.h)(0x5DFA0892)
I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x5DFA0892)
I (../Drivers/CMSIS/Include/core_cmFunc.h)(0x5DFA0892)
I (../Drivers/CMSIS/Include/core_cmFunc.h)(0x5DFA0892)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h)(0x5DFA0880)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma_ex.h)(0x5DFA0893)
@@ -276,11 +276,11 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h)(0x5DFA0893)
I (../Inc/stm32f0xx_hal_conf.h)(0x62423606)
I (../Inc/main.h)(0x62423606)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h)(0x5DFA0893)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h)(0x5DFA0880)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h)(0x5DFA0880)
I (../Drivers/CMSIS/Include/core_cm0.h)(0x5DFA0892)
I (../Drivers/CMSIS/Include/core_cm0.h)(0x5DFA0892)
I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5D9B4298)
I (../Drivers/CMSIS/Include/core_cmInstr.h)(0x5DFA0892)
I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x5DFA0892)

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -479,15 +479,12 @@ void gamepad_update(void)
void xtkb_update(void)
{
xtkb_check_for_softreset();
if(kb_buf_peek(&my_kb_buf, &buffered_code, &buffered_value) == 0)
{
if(xtkb_press_key(buffered_code, buffered_value) != 0)
{
xtkb_reset_bus();
return;
}
kb_buf_pop(&my_kb_buf);
if(xtkb_press_key(buffered_code, buffered_value) == XTKB_ERROR_HOST_INHIBIT)
HAL_Delay(1);
else
kb_buf_pop(&my_kb_buf);
}
}

View File

@@ -406,9 +406,15 @@ uint8_t ps2kb_press_key_scancode_1(uint8_t linux_keycode, uint8_t linux_keyvalue
if(linux_keycode <= 83 || linux_keycode == LINUX_KEYCODE_F11 || linux_keycode == LINUX_KEYCODE_F12)
{
if(linux_keyvalue)
ps2kb_write(linux_keycode, 0, PS2KB_WRITE_DEFAULT_TIMEOUT_MS);
{
if(ps2kb_write(linux_keycode, 0, PS2KB_WRITE_DEFAULT_TIMEOUT_MS))
return PS2_ERROR_HOST_INHIBIT;
}
else
ps2kb_write(linux_keycode | 0x80, 0, PS2KB_WRITE_DEFAULT_TIMEOUT_MS);
{
if(ps2kb_write(linux_keycode | 0x80, 0, PS2KB_WRITE_DEFAULT_TIMEOUT_MS))
return PS2_ERROR_HOST_INHIBIT;
}
return PS2_OK;
}
return PS2_ERROR_UNKNOWN;

View File

@@ -58,15 +58,20 @@ uint8_t xtkb_write(uint8_t data)
{
// if clk is low, then host is holding it, inhibiting transmission
if(XTKB_READ_CLK_PIN() == GPIO_PIN_RESET)
return 1;
{
xtkb_reset_bus();
return XTKB_ERROR_HOST_INHIBIT;
}
XTKB_CLK_LOW();
delay_us(5);
XTKB_DATA_HI();
delay_us(CLK_RTS_DURATION_US);
// if data pin is still low, host is inhibiting transmission
if(XTKB_READ_DATA_PIN() == GPIO_PIN_RESET)
return 2;
{
xtkb_reset_bus();
return XTKB_ERROR_HOST_INHIBIT;
}
XTKB_CLK_HI();
delay_us(CLK_HI_DURATION_US);
XTKB_CLK_LOW();
@@ -89,7 +94,7 @@ uint8_t xtkb_write(uint8_t data)
XTKB_CLK_HI();
XTKB_DATA_LOW();
return 0;
return XTKB_OK;
}
uint8_t wait_for_clk_high(uint32_t timeout_ms)
@@ -98,9 +103,9 @@ uint8_t wait_for_clk_high(uint32_t timeout_ms)
while(XTKB_READ_CLK_PIN() == GPIO_PIN_RESET)
{
if(HAL_GetTick() - start_time > timeout_ms)
return 1;
return XTKB_ERROR_TIMEOUT;
}
return 0;
return XTKB_OK;
}
void xtkb_check_for_softreset(void)
@@ -167,11 +172,11 @@ uint8_t xtkb_press_key(uint8_t code, uint8_t status)
}
if(code > 83) // not on XT keyboard
return 0;
return XTKB_OK;
if(status == 2) // typematic, XT can't handle fast repeats, so slow it down a bit
{
if(HAL_GetTick() - last_typematic <= 80)
return 0;
return XTKB_OK;
last_typematic = HAL_GetTick();
}
if(!status)

View File

@@ -1,3 +1,19 @@
void xtkb_update(void)
{
xtkb_check_for_softreset();
if(kb_buf_peek(&my_kb_buf, &buffered_code, &buffered_value) == 0)
{
if(xtkb_press_key(buffered_code, buffered_value) != 0)
{
xtkb_reset_bus();
return;
}
kb_buf_pop(&my_kb_buf);
}
}
uint8_t ps2_write_result = ps2kb_press_key(buffered_code, buffered_value);
if(ps2_write_result)
HAL_GPIO_WritePin(ERR_LED_GPIO_Port, ERR_LED_Pin, GPIO_PIN_SET);