removed remote and wrap modes, added duel scroll wheel 5 button intellimouse support

This commit is contained in:
dekunukem
2022-05-02 21:53:00 +01:00
parent a8fd9fb21a
commit 46cdcbf7ad
13 changed files with 660 additions and 706 deletions

View File

@@ -26,12 +26,10 @@ void ps2mouse_restore_defaults(void);
#define PS2_OK 0
#define PS2_ERROR_SCAN_DISABLED 1
#define PS2_ERROR_UNKNOWN_CODE_SET 9
#define PS2_ERROR_REPORTING_DISABLED 1
#define PS2_ERROR_HOST_INHIBIT 69
#define PS2_ERROR_UNUSED_CODE 2
#define PS2_ERROR_UNKNOWN 3
#define PS2_ERROR_TIMEOUT 4
#define PS2_ERROR_UNIMPLEMENTED_MODE 3
#ifdef __cplusplus
}

View File

@@ -3606,9 +3606,9 @@
<ActiveTab>0</ActiveTab>
<Doc>
<Name>../Src/main.c</Name>
<ColumnNumber>19</ColumnNumber>
<TopLine>301</TopLine>
<CurrentLine>327</CurrentLine>
<ColumnNumber>39</ColumnNumber>
<TopLine>687</TopLine>
<CurrentLine>714</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>

View File

Binary file not shown.

View File

@@ -29,7 +29,7 @@ Project File Date: 03/28/2022
Build target 'ibmpc'
compiling ps2mouse.c...
linking...
Program Size: Code=16428 RO-data=428 RW-data=132 ZI-data=2164
Program Size: Code=16468 RO-data=428 RW-data=128 ZI-data=2160
FromELF: creating hex file...
"ibmpc\ibmpc.axf" - 0 Error(s), 0 Warning(s).

View File

@@ -1,5 +1,5 @@
:020000040800F2
:10000000F8080020D5000008F51D000801190008B7
:10000000F0080020D5000008F51D000801190008BF
:1000100000000000000000000000000000000000E0
:100020000000000000000000000000003321000874
:1000300000000000000000003D1E000835210008FF
@@ -12,7 +12,7 @@
:1000A000E7000008411E0008E7000008E70000081C
:1000B000E700000835270008E7000008E70000080F
:1000C0000348854600F04EF800480047A92D000877
:1000D000F80800200448804704480047FEE7FEE790
:1000D000F00800200448804704480047FEE7FEE798
:1000E000FEE7FEE7FEE7FEE7AD210008C1000008DD
:1000F00030B50B46014600202022012409E00D46C0
:10010000D5409D4205D31D469540491B2546954047
@@ -23,7 +23,7 @@
:10015000F6E710B513460A4604461946FFF7F0FFC6
:10016000204610BD064C0125064E05E0E36807CC8D
:100170002B430C3C98471034B442F7D3FFF7A4FF4D
:10018000B8410008D841000810B5022000F042F83C
:10018000E04100080042000810B5022000F042F8EB
:1001900010BD70B50024014620314A78022A03D0F0
:1001A00004218163012416E0026813680E25AB4325
:1001B0001360026813685B085B0013600122056C22
@@ -32,7 +32,7 @@
:1001E000009C0546601C00D0641C00F0DBF8401B3E
:1001F000A042FAD338BD000000B5022807D105207F
:1002000002F0E8FC002802D001490120087200BD7C
:100210004C00002010B504494A69024202D04861EE
:100210004800002010B504494A69024202D04861F2
:10022000FFF7EAFF10BD000000040140F8B500230D
:1002300093E0224601249C40A44622407ED04C6894
:10024000022C01D0122C0CD1DC08A40027183C6A27
@@ -57,7 +57,7 @@
:100370000004004800080048000C00480010004835
:10038000000401400069084000D001207047426924
:100390004A4042617047002A01D081617047816202
:1003A000704700000148006870470000700000209E
:1003A0007047000001480068704700006C000020A2
:1003B00070B5024640325378202B1CD11378012BA4
:1003C00019D00123137024245470046825689D43B8
:1003D0002560046825681E03B54325600468256808
@@ -123,7 +123,7 @@
:100790004DFD0748C269012189050A43C261C0694C
:1007A0000840059007B000BD005800400004004814
:1007B0000010024002480168491C016070470000B7
:1007C0007000002010B50648016810221143016036
:1007C0006C00002010B5064801681022114301603A
:1007D000002000F007F800F017F8002010BD00001E
:1007E0000020024010B5044600F078F97D21C900D0
:1007F000FFF77EFC00F0E2FD00222146501E00F0D3
@@ -172,10 +172,10 @@
:100AA00009028843E9680843606000F02DF8616836
:100AB000084A0906090F515CC84007490860002030
:100AC000FFF790FE0020F8BD002002400010024019
:100AD00088130000A041000874000020014800684D
:100AE0007047000074000020044805490068496808
:100AF000044A4905490F515CC84070477400002002
:100B000000100240B041000830B516A30FCB89B0E9
:100AD00088130000C8410008700000200148006829
:100AE000704700007000002004480549006849680C
:100AF000044A4905490F515CC84070477000002006
:100B000000100240D841000830B516A30FCB89B0C1
:100B10006C460FC417A30FCB0FC41A494A680C20A8
:100B2000144604401848042C05D0184B082C04D057
:100B30000C2C00D1184609B030BD9402240F6D462C
@@ -312,7 +312,7 @@
:10136000605D002804D001F0E7FB6D1C202DF7DB49
:10137000074A2023114640390848FFF7E9FE0121BA
:1013800009200022C903C006FFF705F8F8BD0000D8
:10139000940200204C00002000080048D0000020EB
:10139000900200204800002000080048CC000020F7
:1013A000042204490428086902D090430861704768
:1013B0001043FBE700E000E070470000094910B56A
:1013C000401E884201D9012010BD074C60610321F5
@@ -398,7 +398,7 @@
:1018C00001D0012030BD1C7A012C10D0C16401462A
:1018D00040310A824A820021C16621225A7219725D
:1018E00000680168802211430160002030BD0220A1
:1018F00030BD000001490020C87270474C00002034
:1018F00030BD000001490020C87270474800002038
:10190000FEE701688A69D243920701D400228A6205
:1019100000688169C943C90703D081690122114365
:1019200081617047F7B5044600680E468069C04380
@@ -458,32 +458,32 @@
:101C8000C161C2600162FEF7DDFB002800D0FEE703
:101C900000210848FEF78CFB002800D0FEE7002159
:101CA0000448FEF7AAFB002800D0FEE710BD0000A4
:101CB00000580040840000205D3E302010B50D48E3
:101CB00000580040800000205D3E302010B50D48E7
:101CC0000B490160002141608160016141618161D6
:101CD0000722016212024162C2608162072201632F
:101CE000C2624163FFF7ACF9002800D0FEE710BDE7
:101CF00000300140D000002010B50121124886B00C
:101CF00000300140CC00002010B50121124886B010
:101D00008907016000242F21846041600461611E05
:101D10008461C160FFF792FB002800D0FEE701203C
:101D20000003009069460848FFF7C0FB002800D078
:101D3000FEE7049404A904480594FFF75BFB002820
:101D400000D0FEE706B010BD3401002010B50F48EA
:101D400000D0FEE706B010BD3001002010B50F48EE
:101D50000D490160E121490241600D49898940290D
:101D600001D00C49416000218160C1600161816145
:101D7000C1610C220162426141620448FFF7AAFC82
:101D8000002800D0FEE710BD00380140740100209B
:101D90004C0000203EFA020010B5144812490160C0
:101D8000002800D0FEE710BD00380140700100209F
:101D9000480000203EFA020010B5144812490160C4
:101DA0004B210901416012498989402902D07F21D4
:101DB00009014160002101221207C16082600161B6
:101DC00081610C22C16142610162302141620121C5
:101DD000090381634900C1630448FFF77BFC0028C5
:101DE00000D0FEE710BD000000480040E4010020E4
:101DF0004C000020704700008307FF22DB0E9A4052
:101DE00000D0FEE710BD000000480040E0010020E8
:101DF00048000020704700008307FF22DB0E9A4056
:101E00008907090E994000280BDA0007000F0838EF
:101E1000830808489B001818C36993430B43C361A8
:101E20007047830804489B001B18186890430843B8
:101E30001860704700ED00E000E400E0704700002B
:101E400010B50248FFF792F810BD0000D000002046
:101E400010B50248FFF792F810BD0000CC0000204A
:101E500010B50168C968026C1180016C891C0164AD
:101E600001464031CA88521ECA80C988002909D15A
:101E700001684A6840239A434A60C18F002901D112
@@ -627,9 +627,9 @@
:10271000A07200202072032005B0F0BD2068C169BE
:102720003046884304D00020B842D9D00020F3E7D7
:102730000120F9E710B50248FEF732FF10BD000096
:10274000E40100200FB410B503A9044B044A029819
:10274000E00100200FB410B503A9044B044A02981D
:1027500000F024F810BC08BC04B018479529000804
:102760007800002030B47446641E2578641CAB42A7
:102760007400002030B47446641E2578641CAB42AB
:1027700000D21D46635D5B00E31830BC184702E0E1
:1027800008C8121F08C1002AFAD1704770470020FC
:1027900001E001C1121F002AFBD17047FFB58DB0C7
@@ -665,7 +665,7 @@
:1029700000B5014600F080FB411800F07DFB884265
:10298000FBD300BD10B502490860FEF783FD10BD02
:102990000000002013B56423012269460248FEF7B7
:1029A00018FF00981CBD00007401002070B50D4692
:1029A00018FF00981CBD00007001002070B50D4696
:1029B000044600F020F8002801D0012070BD2078E6
:1029C0000C226168504308182946FDF7A7FB2078C0
:1029D000A178401CFDF78CFB2170002070BD10B564
@@ -686,7 +686,7 @@
:102AC000BFFAA07A291A022000F0BAFAE07A291A8D
:102AD000012000F0B5FA0648FFF7A6FF70BD0122FD
:102AE000C4E70122CBE70122D3E70122D9E70000A6
:102AF00068000020001400480008004870B50C4C25
:102AF00064000020001400480008004870B50C4C29
:102B0000012202212046FDF746FC0A4D0122D10395
:102B10002846FDF740FC012211462046FDF73BFC0C
:102B2000012291032846FDF736FC00F073FA70BDD0
@@ -694,14 +694,14 @@
:102B4000C901102C24D2214D285D002820D0002955
:102B50001FD002281CD11E482300FFF703FE0817D0
:102B6000050C170F17171517FF23013302465900DD
:102B700000F074FB0AE001F0CBF907E010230246F5
:102B8000202100F04FFF01E0FFF7B8FF012028559A
:102B700000F074FB0AE001F0DFF907E010230246E1
:102B8000202100F06FFF01E0FFF7B8FF012028557A
:102B900070BD0128FCD1022028552300FFF7E2FD7B
:102BA0000805060B050E05051305F1E700F0D6FC38
:102BB00000F0E4FC70BD01F0FBF970BD00F0CCFF4B
:102BC00000F0BAFF70BDFFF799FF70BDE102002071
:102BB00000F0E4FC70BD01F00FFA70BD00F0ECFF16
:102BC00000F0DAFF70BDFFF799FF70BDDD02002055
:102BD00000040048102803D20249085C012800D0F4
:102BE00000207047E102002070B515460E460446ED
:102BE00000207047DD02002070B515460E460446F1
:102BF00000F022F8002801D0012070BD2178606823
:102C000046542178A06845542078A178401CFDF7EF
:102C10006FFA2170002070BD70B50D4604468170BA
@@ -735,9 +735,9 @@
:102DD000E3FF00210220019100900B462278554923
:102DE00055A0FFF7AFFC5948FFF7CCFD00F004FAFF
:102DF000FF250135564E6F0032462B4639461046A8
:102E000000F02CFA32462B463946104601F08AF87B
:102E1000324610232021104600F004FE0220FFF766
:102E2000D9FE002801D001F073F810214948FFF7BE
:102E000000F02CFA32462B463946104601F09EF867
:102E1000324610232021104600F024FE0220FFF746
:102E2000D9FE002801D001F087F810214948FFF7AA
:102E3000F3FE3F481021143000F0A1F93C48102166
:102E40001C30FFF7CCFD00F0E5F842482021603847
:102E5000FDF77DF93F4A3D48203A1146202340398D
@@ -745,18 +745,18 @@
:102E7000C1F8002812D13CA0FFF764FC002708210C
:102E80003046FDF784FA3220FDF7A7F97F1C0A2FA0
:102E9000F5DB012208213046FDF77DFA6421AA20E6
:102EA00000F009FF6421002000F005FF0927FF065C
:102EA00000F025FF6421002000F021FF0927FF0624
:102EB0000420FFF78FFE002809D00121C903304606
:102EC000FDF760FA002802D000F076FE06E005204B
:102EC000FDF760FA002802D000F092FE06E005202F
:102ED000FFF780FE002801D000F0D6F80120FFF7B0
:102EE00079FE002808D029463846FDF74BFA00281D
:102EF00002D000F04BFB0CE00220FFF76BFE002835
:102F000007D029463846FDF73DFA002801D001F0E8
:102F10006FF80720FFF75EFE002801D0FFF79CFD49
:102F2000607A0028C4D000F07FFF0000C0F7FF1FC8
:102F30004C0000206941000825730A7265762564FB
:102F4000207625642E25642E25640A003401002095
:102F500000040048B4020020666C6173685F736906
:102F100083F80720FFF75EFE002801D0FFF79CFD35
:102F2000607A0028C4D000F093FF0000C0F7FF1FB4
:102F3000480000209141000825730A7265762564D7
:102F4000207625642E25642E25640A003001002099
:102F500000040048B0020020666C6173685F73690A
:102F60007A653A2025640A004469676974616C20B7
:102F7000706F74206E6F7420726573706F6E646909
:102F80006E67210A00000000F0B50B30C108C900CF
@@ -765,16 +765,16 @@
:102FB000136002C004E0021D10680028ECD1304606
:102FC000002803D13868002801D00020F0BD064A4F
:102FD00006481060064A121AD208D20044C00120E6
:102FE0003860D7E7800000207C000020FC02002031
:102FF000F804002010B56423012258210448FDF78D
:102FE0003860D7E77C00002078000020F402002041
:102FF000F004002010B56423012258210448FDF795
:103000007BFA002801D0002010BD012010BD000077
:103010008400002010B5094C002204212046FDF751
:103010008000002010B5094C002204212046FDF755
:10302000BAF90120FDF7D9F8012204212046FDF765
:10303000B2F90120FDF7D1F810BD000000040048EE
:1030400003B583B0042802D3FF2005B000BD0849B2
:103050006423085C01210007020E04A80293019179
:1030600000900B4658210348FDF7D4FAEDE7000025
:103070006541000884000020024800680068406A3A
:103070008D41000880000020024800680068406A16
:10308000704700000000002070B52E4C207A00250B
:10309000002807D04D20E0710122E11D2A48FEF7EB
:1030A000FCFB25722748143000F083F8002806D076
@@ -787,7 +787,7 @@
:103110000B7053060125002B02DA0B782B430B7042
:103120009206920E80064A70800E88700548143010
:1031300000F04AF8034903220E310348FEF7ADFBC5
:10314000E57270BD4C000020E401002070B50D4612
:10314000E57270BD48000020E001002070B50D461A
:10315000044600F020F8002801D0012070BD20783E
:103160000C226168504308182946FCF7D7FF2078E5
:10317000A178401CFCF7BCFF2170002070BD10B589
@@ -800,7 +800,7 @@
:1031E00010B500210170417081780C225143406874
:1031F000FCF7ADFF10BD000010B510210548FCF72D
:10320000A6FF0121034802224170827001714271C0
:10321000C17110BDE102002070B50F4D6988A8682A
:10321000C17110BDDD02002070B50F4D6988A8682E
:10322000FDF7B0F80446A988E868FDF7ABF8012877
:1032300002D0002809D00AE0012C02D0002C02D0D4
:1032400005E0032070BD022070BD012C01D00020DC
@@ -836,7 +836,7 @@
:1034200000F00EF9002815D114220021772000F0B9
:1034300007F900280ED110BD022010BD1422012171
:1034400020468CE714220021E02000F0F9F8002843
:1034500000D149E7452010BD032010BDEC40000815
:1034500000D149E7452010BD032010BD14410008EC
:10346000F3B581B00F4600250126FCF79BFF3A4CCF
:10347000206107E0FCF796FF2169401AB84201D3AA
:103480000420FEBDFFF7C8FE0128F3D11220FFF78C
@@ -866,7 +866,7 @@
:103600004978417081218170E2070121002A00D0B0
:10361000C170A20700D50171620700D54171012276
:1036200051030648FCF7B7FE38BD0120FCF7D5FD75
:1036300038BD00004C000020B40200200008004803
:1036300038BD000048000020B0020020000800480B
:10364000F8B515460E460746FCF7ACFE0C4C20615B
:1036500007E0FCF7A7FE2169401AA84201D3012028
:10366000F8BDFFF7D9FD0328F3D1002E03D0AF201A
@@ -889,177 +889,179 @@
:1037700000226188A068FCF70EFE2420FFF7F8F80D
:1037800001226188A068FCF706FE1220FFF7F0F81E
:10379000C820FFF7EDF80020F8BDFFF7DFFE452059
:1037A000F8BD00000400002010B5164CE1896069E6
:1037B000FCF7E8FD012805D1A1892069FCF7E2FDAD
:1037C000012806D0E1896069FCF7DCFD012802D000
:1037D00007E0032010BDA1892069FCF7D3FD002874
:1037E00006D0E1896069FCF7CDFD002802D007E032
:1037F000022010BDA1892069FCF7C4FD0128F8D082
:10380000002010BD1800002070B5294E0546B07983
:103810000C4601283BD0022838D03078002844D00C
:103820000821601CFCF793FC0320207008206070C6
:10383000A879002801D009206070287A002803D0D8
:103840006078022108436070E9790420002902D0E1
:103850006178014361700021695E002903DA6178B3
:103860001022114361700221695E002903DA617838
:103870002022114361702978A170A978E17029791B
:1038800021717179002900D02070002070BD287846
:10389000317A40183072A878717A4018707228799D
:1038A000B17A4018B072012070BD032070BD0000D5
:1038B00018000020F8B500250E46FF2814D0584CFB
:1038C000EC281ED0A17902291DD0E638012703007B
:1038D000FEF748FF11989E8A5D5A5550504B50454F
:1038E000503C2523201D500000F036F91421FA2009
:1038F00000F0EEF9FA21AA2000F0DDF914210020F1
:1039000002E0E07933E0142100F0D5F9F8BD00F0D1
:103910002FF92FE0002020702AE0277028E01421E2
:10392000FA2000F0D5F900F077FA3D489621401CC6
:1039300000F086F80028E9D1394A207918326178F8
:103940001154072816D2401C207113E000F064FACD
:103950001421FA2000F0BCF900206071D3E700F0D8
:103960005BFAA079E071A77104E0E1710220A07117
:1039700000F052FA1421FA2000F0AAF9F8BD14213F
:10398000FA2000F0A5F93AE0E1710020EFE71421F8
:10399000FA2000F09DF9A079012800D14025207877
:1039A000002801D020200543E078022801D1102012
:1039B0000543B079002801D004200543F0790028A0
:1039C00001D002200543307A002800D03D43142165
:1039D000284600F070F91421A07800F06CF9142149
:1039E000607800F068F90AE01421FA2000F070F91C
:1039F0000B489621801C00F023F80028BFD000F06F
:103A00000BFAF8BD1421FA2000F062F9E770F8BD56
:103A10001421FA2000F05CF90220E070F8BD0000EB
:103A20001800002010B5054C2061A1816261E3817E
:103A300000F092F800F080F810BD0000180000209F
:103A4000F3B581B00F4600250126FCF7ABFC044618
:103A500006E0FCF7A7FC001BB84201D30420FEBD22
:103A6000FFF7A2FE0128F4D11220FEF781FF314CAE
:103A70000022A1892069FCF78EFC2420FEF778FF44
:103A80000122A1892069FCF786FC1220FEF770FF55
:103A9000E1896069FCF776FC012800D135437004A8
:103AA000060C1220FEF764FF0022A1892069FCF7B2
:103AB00072FC2420FEF75CFF0122A1892069FCF73B
:103AC0006AFC1220FEF754FFFF2EE1D91220FEF708
:103AD0004FFF0022A1892069FCF75DFC2420FEF73E
:103AE00047FF0122A1892069FCF755FC1220FEF74F
:103AF0003FFF1220FEF73CFF0022E1896069FCF7DE
:103B00004AFC0022A1892069FCF745FC2420FEF72D
:103B10002FFF0122A1892069FCF73DFC1220FEF74E
:103B200027FF0122E1896069FCF735FC01980570E7
:103B30000020FEBD1800002010B5064C0122A1890E
:103B40002069FCF728FC0122E1896069FCF723FC6D
:103B500010BD00001800002000B500F009F803496E
:103B6000002008718861C861487100BD18000020FC
:103B700000B5074864214170022181700121C170A4
:103B8000017000218171C17100F046F900BD000093
:103B90001800002070B50546002407E02819407879
:103BA000032100F088F8002804D1641C2878A04282
:103BB000F4DC002070BD0000F8B5324F0121C903CC
:103BC0003846FCF7DFFB00262F4C0546012808D1BC
:103BD000A07A002805D101263220FCF7FEFAFFF773
:103BE000C7FFA572FFF7E0FD607102281BD0012816
:103BF0001CD0002E07D06421AA2000F05CF86421BC
:103C0000002000F058F820481430FFF7D2FA0028BE
:103C100008D01E49FFF7F8FD002812D01A481430CA
:103C2000FFF7D2FAF8BDFFF787FFF8BD16480A2163
:103C3000801CFFF705FF1549A0781839FFF73AFEF9
:103C4000F8BD1248FFF7A6FF002816D00122082170
:103C50003846FCF7A0FBFCF7A5FB044604E0FCF7A4
:103C6000A1FB001B192803D8FFF79EFD0328F6D1FE
:103C7000002208213846FCF78EFB03481430FFF77A
:103C8000AFFAF8BD000400484C000020D802002024
:103C900070B50546FCF786FB044606E0FCF782FBA0
:103CA000001BA84201D3042070BDFFF77DFD03284F
:103CB000F4D1002070BD10B504460846FFF7E8FFB8
:103CC000002801D0042010BD204600F013F810BDDC
:103CD00010B504460846FFF7DBFF002801D004209A
:103CE00010BDAF208000FEF743FE204600F002F832
:103CF00010BD0000F8B5474C054601260022E189B9
:103D00006069FCF748FB1220FEF732FE0022A18911
:103D10002069FCF740FB2420FEF72AFE0122A1893E
:103D20002069FCF738FB1220FEF722FEA1892069EA
:103D3000FCF728FB002868D00027E80701D0012203
:103D400000E00022E1896069FCF725FB1220FEF704
:103D50000FFE0022A1892069FCF71DFB2420FEF73D
:103D600007FE0122A1892069FCF715FB1220FEF74E
:103D7000FFFDA1892069FCF705FB002845D0E80775
:103D8000C00F46406D087F1C082FD6DB002E01D0E7
:103D9000012200E00022E1896069FCF7FCFA1220B0
:103DA000FEF7E6FD0022A1892069FCF7F4FA242041
:103DB000FEF7DEFD0122A1892069FCF7ECFA122052
:103DC000FEF7D6FDA1892069FCF7DCFA00281CD09B
:103DD0000122E1896069FCF7DEFA1220FEF7C8FDD6
:103DE0000022A1892069FCF7D6FA2420FEF7C0FD45
:103DF0000122A1892069FCF7CEFA1220FEF7B8FD56
:103E0000FA20FEF7B5FD0020F8BDFFF795FE45202E
:103E1000F8BD000018000020024800210172417224
:103E2000817270471800002011A0FEF78BFC134D23
:103E30000024295D12A0FEF785FC641C202CF8DB11
:103E400010A0FEF77FFC134D002408212846FCF744
:103E50009EFA6420FCF7C1F9641C642CF5DBBFF307
:103E60004F8F0E490C48C860BFF34F8F00BFFDE76E
:103E7000535049204552524F520A0000740200200C
:103E8000256420000A7265626F6F74696E672E2E5A
:103E90002E0A0000000400480400FA0500ED00E0CE
:103EA00070B50646FCF77EFA0446084D06E0FCF7BE
:103EB00079FA001BB04201D9042070BD29886868D6
:103EC000FCF760FA0028F2D0002070BD3800002016
:103ED00010B50E4C21886068FCF754FA012802D115
:103EE000FCF760FAE060FCF75DFAE168401A14281C
:103EF0000BD9C820FFF7D4FF1420FCF76EF9AA20D5
:103F000000F094F80A20FCF768F910BD3800002092
:103F100010B500F05DF8FCF745FA0149C86010BD26
:103F20003800002010B5034C60602180A2606380DF
:103F300010BD00003800002070B50446663803004C
:103F4000FEF710FC0A1406080A0C0E101216181AB6
:103F5000482413E04A2411E04B240FE04E240DE0E6
:103F60004F240BE0502409E0512407E0472405E0EA
:103F7000522403E0532401E0532C0BD8022902D031
:103F800000290DD00EE0FCF70DFA084D2969401A02
:103F9000502801D8002070BDFCF704FA286101E028
:103FA00080200443204600F041F870BD3800002016
:103FB00010B5064C012221886068FCF7ECF901225B
:103FC0006188A068FCF7E7F910BD00003800002008
:103FD00010B5064C012221886068FCF7DCF900224C
:103FE0006188A068FCF7D7F910BD000038000020F8
:103FF00010B5FFF76DFF0B4A0B48511EFEF72AFE66
:1040000000280AD10748001F0179C078FFF794FF04
:10401000452803D00448FEF72DFE10BD0120FCF713
:10402000DCF810BD50000020B402002070B52E4C0A
:10403000054621886068FCF7A5F900282AD00022EF
:1040400021886068FCF7A7F90520FEF791FC0122A2
:104050006188A068FCF79FF96E20FEF789FC6188F3
:10406000A068FCF78FF9002814D00122218860682D
:10407000FCF791F94120FEF77BFC00222188606863
:10408000FCF789F91E20FEF773FC0026E80705D02F
:10409000012204E0FFF79CFF452070BD00226188EB
:1040A000A068FCF778F9012221886068FCF773F9B1
:1040B0004120FEF75DFC002221886068FCF76BF967
:1040C0001E20FEF755FC6D08761C082EDEDB012253
:1040D00021886068FCF75FF900226188A068FCF71E
:1040E0005AF9002070BD000038000020FF76161E2F
:1040F00026252E363D3E46454E55660D151D242D72
:104100002C353C43444D545B5A141C1B232B343335
:104110003B424B4C520E125D1A22212A32313A4157
:10412000494A597C1129580506040C030B830A01DE
:1041300009777E6C757D7B6B73747969727A7071A7
:10414000FFFF6178075A144AFF11FF6C757D6B748D
:1041500069727A7071FFFFFFFFFFFFFFFFFFFFFF34
:10416000FFFF1F272F0001060755534234564320F7
:1041700050726F746F636F6C20426F6172640A4992
:10418000424D20504320436F6D70617469626C65CD
:104190000A64656B754E756B656D20323032320086
:1041A00000000000000000000102030406070809E7
:1041B0000000000001020304D841000800000020B4
:1041C000840000007E2700085C4200088400002074
:1041D000740800008E2700080000000002010000A3
:1041E00000000000000000000000000000000000CF
:1041F00000000000000000000000000000000000BF
:1042000000000000000000000000000000000000AE
:1037A000F8BD00000400002010B5164C61892069A6
:1037B000FCF7E8FD012805D12189E068FCF7E2FD6E
:1037C000012806D061892069FCF7DCFD012802D0C0
:1037D00007E0032010BD2189E068FCF7D3FD002835
:1037E00006D061892069FCF7CDFD002802D007E0F2
:1037F000022010BD2189E068FCF7C4FD0128F8D043
:10380000002010BD18000020F8B5374E054630786E
:103810000C46002804D0B079002803D00320F8BD5E
:103820000120F8BD0821601CFCF791FC03202070EA
:1038300008206070A879002801D009206070287ADB
:103840000221002802D0607808436070E8790422E1
:10385000002802D06078104360700020285E10239A
:10386000002802DA6078184360700220285E202762
:10387000002802DA6078384360702878A070A87851
:10388000E0707079032806D0042806D0002800D004
:1038900022700020F8BD28791EE0687A002802D046
:1038A000207918432071A87A002802D02079384363
:1038B000207105202856002801DD207903E000282A
:1038C00003DA20790E2108432071042028560028AD
:1038D00004DD2079012105E02071D9E70028D7DA3D
:1038E00020790F210843F7E718000020F8B50025DC
:1038F0000E46FF2810D0E63800210127584C03005F
:10390000FEF730FF11A0A69063619B9B9B5A9B54CE
:103910009B331E1C1A179B0000F03EF91421FA205D
:1039200000F0F2F9FA21AA2000F0E1F914210020B8
:1039300075E000F03DF980E021707EE027707CE0CA
:103940001421FA2000F0E0F945489621401C00F0CF
:1039500097F800282FD142492079143162780A540F
:1039600007286AD2401C207167E01421FA2000F079
:10397000CBF92179022916D939481430401820385A
:10398000C17F50290FD1817F642902D0C82905D079
:1039900009E0407FC82806D1032003E0407FC82803
:1039A00001D1042060711421607938E01421FA20DB
:1039B00000F0AAF9A771F8BD1421FA2000F0A4F9CB
:1039C0000220A071F8BDA17137E01421FA2000F0A7
:1039D0009BF9A079012800D140252078002801D04A
:1039E00020200543E078022801D110200543B0795A
:1039F000002801D004200543F079002801D00220DE
:103A00000543307A002800D03D431421284600F0B9
:103A10006EF91421A07800F06AF91421607800F0A2
:103A200066F9F8BD1421FA2000F06EF90C489621D1
:103A3000801C00F025F80028F3D11421FA2000F0B2
:103A400063F9F8BD1421FA2000F05EF9E770F8BDC3
:103A50001421FA2000F058F90220E070F8BD0000AF
:103A60001800002010B5054CE060218122616381BF
:103A700000F092F800F080F810BD0000180000205F
:103A8000F3B581B00F4600250126FCF78BFC0446F8
:103A900006E0FCF787FC001BB84201D30420FEBD02
:103AA000FFF782FE0128F4D11220FEF761FF314CAE
:103AB00000222189E068FCF76EFC2420FEF758FF05
:103AC00001222189E068FCF766FC1220FEF750FF16
:103AD00061892069FCF756FC012800D13543700448
:103AE000060C1220FEF744FF00222189E068FCF753
:103AF00052FC2420FEF73CFF01222189E068FCF7FC
:103B00004AFC1220FEF734FFFF2EE1D91220FEF707
:103B10002FFF00222189E068FCF73DFC2420FEF7FE
:103B200027FF01222189E068FCF735FC1220FEF70F
:103B30001FFF1220FEF71CFF002261892069FCF79D
:103B40002AFC00222189E068FCF725FC2420FEF7EE
:103B50000FFF01222189E068FCF71DFC1220FEF70F
:103B600007FF012261892069FCF715FC01980570A7
:103B70000020FEBD1800002010B5064C012221894E
:103B8000E068FCF708FC012261892069FCF703FC6E
:103B900010BD00001800002000B500F009F803492E
:103BA0000020087148618861487100BD180000203C
:103BB000054864214170022181700121C1700021FA
:103BC00001708171704700001800002070B5054633
:103BD000002407E028194078032100F088F8002825
:103BE00004D1641C2878A042F4DC002070BD0000E1
:103BF000F8B5324F0121C9033846FCF7C3FB002654
:103C00002F4C0546012808D1A07A002805D10126AD
:103C10003220FCF7E2FAFFF7CBFFA572FFF7C4FDF5
:103C2000607102281BD001281CD0002E07D064210F
:103C3000AA2000F05CF86421002000F058F8204829
:103C40001430FFF7B6FA002808D01E49FFF7DCFD54
:103C5000002812D01A481430FFF7B6FAF8BDFFF763
:103C60008BFFF8BD16480A21801CFFF709FF154994
:103C7000A0781839FFF73AFEF8BD1248FFF7A6FF03
:103C8000002816D0012208213846FCF784FBFCF7F7
:103C900089FB044604E0FCF785FB001B192803D8C8
:103CA000FFF782FD0328F6D1002208213846FCF7F1
:103CB00072FB03481430FFF793FAF8BD0004004884
:103CC00048000020D402002070B50546FCF76AFBCE
:103CD000044606E0FCF766FB001BA84201D3042063
:103CE00070BDFFF761FD0328F4D1002070BD10B551
:103CF00004460846FFF7E8FF002801D0042010BD65
:103D0000204600F013F810BD10B504460846FFF732
:103D1000DBFF002801D0042010BDAF208000FEF79B
:103D200027FE204600F002F810BD0000F8B5474C11
:103D300005460126002261892069FCF72CFB122030
:103D4000FEF716FE00222189E068FCF724FB242000
:103D5000FEF70EFE01222189E068FCF71CFB122011
:103D6000FEF706FE2189E068FCF70CFB002868D00E
:103D70000027E80701D0012200E0002261892069C4
:103D8000FCF709FB1220FEF7F3FD00222189E06811
:103D9000FCF701FB2420FEF7EBFD01222189E068FE
:103DA000FCF7F9FA1220FEF7E3FD2189E068FCF741
:103DB000E9FA002845D0E807C00F46406D087F1C8F
:103DC000082FD6DB002E01D0012200E000226189FD
:103DD0002069FCF7E0FA1220FEF7CAFD00222189D3
:103DE000E068FCF7D8FA2420FEF7C2FD0122218901
:103DF000E068FCF7D0FA1220FEF7BAFD2189E068EE
:103E0000FCF7C0FA00281CD0012261892069FCF768
:103E1000C2FA1220FEF7ACFD00222189E068FCF70F
:103E2000BAFA2420FEF7A4FD01222189E068FCF7FC
:103E3000B2FA1220FEF79CFDFA20FEF799FD002051
:103E4000F8BDFFF799FE4520F8BD000018000020DE
:103E500011A0FEF777FC134D0024295D12A0FEF798
:103E600071FC641C202CF8DB10A0FEF76BFC134DDA
:103E7000002408212846FCF78AFA6420FCF7ADF9F3
:103E8000641C642CF5DBBFF34F8F0E490C48C860EF
:103E9000BFF34F8F00BFFDE7535049204552524FAB
:103EA000520A000070020020256420000A72656238
:103EB0006F6F74696E672E2E2E0A00000004004892
:103EC0000400FA0500ED00E070B50646FCF76AFA5A
:103ED0000446084D06E0FCF765FA001BB04201D924
:103EE000042070BD29886868FCF74CFA0028F2D0DD
:103EF000002070BD3400002010B50E4C2188606891
:103F0000FCF740FA012802D1FCF74CFAE060FCF71C
:103F100049FAE168401A14280BD9C820FFF7D4FFEA
:103F20001420FCF75AF9AA2000F094F80A20FCF7B4
:103F300054F910BD3400002010B500F05DF8FCF716
:103F400031FA0149C86010BD3400002010B5034C9F
:103F500060602180A260638010BD000034000020FA
:103F600070B5044666380300FEF7FCFB0A14060829
:103F70000A0C0E101216181A482413E04A2411E0F5
:103F80004B240FE04E240DE04F240BE0502409E0B9
:103F9000512407E0472405E0522403E0532401E0C4
:103FA000532C0BD8022902D000290DD00EE0FCF7CB
:103FB000F9F9084D2969401A502801D8002070BD30
:103FC000FCF7F0F9286101E080200443204600F06E
:103FD00041F870BD3400002010B5064C0122218844
:103FE0006068FCF7D8F901226188A068FCF7D3F972
:103FF00010BD00003400002010B5064C01222188BD
:104000006068FCF7C8F900226188A068FCF7C3F972
:1040100010BD00003400002010B5FFF76DFF0B4A03
:104020000B48511EFEF716FE00280AD10748001F54
:104030000179C078FFF794FF452803D00448FEF7C4
:1040400019FE10BD0120FCF7C8F810BD4C0000207F
:10405000B002002070B52E4C054621886068FCF740
:1040600091F900282AD0002221886068FCF793F992
:104070000520FEF77DFC01226188A068FCF78BF922
:104080006E20FEF775FC6188A068FCF77BF90028BC
:1040900014D0012221886068FCF77DF94120FEF7E9
:1040A00067FC002221886068FCF775F91E20FEF786
:1040B0005FFC0026E80705D0012204E0FFF79CFF23
:1040C000452070BD00226188A068FCF764F90122D8
:1040D00021886068FCF75FF94120FEF749FC002267
:1040E00021886068FCF757F91E20FEF741FC6D0837
:1040F000761C082EDEDB012221886068FCF74BF974
:1041000000226188A068FCF746F9002070BD00001D
:1041100034000020FF76161E26252E363D3E4645ED
:104120004E55660D151D242D2C353C43444D545BD6
:104130005A141C1B232B34333B424B4C520E125D42
:104140001A22212A32313A41494A597C112958050B
:1041500006040C030B830A0109777E6C757D7B6B6B
:1041600073747969727A7071FFFF6178075A144A23
:10417000FF11FF6C757D6B7469727A7071FFFFFFC0
:10418000FFFFFFFFFFFFFFFFFFFF1F272F000106BD
:10419000075553423456432050726F746F636F6CEF
:1041A00020426F6172640A49424D20504320436FA0
:1041B0006D70617469626C650A64656B754E756BD0
:1041C000656D203230323200000000000000000037
:1041D00001020304060708090000000001020304AD
:1041E0000042000800000020800000007E27000838
:1041F0008042000880000020700800008E27000820
:1042000000000000020100000000000000000000AB
:10421000000000000000000000000000000000009E
:10422000000000000000000000000000000000008E
:10423000000000000000000000000000000000007E
:1042400000000000000000000000000000127A00E2
:0C42500000000000000000000000000062
:10424000000000000000000000000000000000006E
:10425000000000000000000000000000000000005E
:10426000000000000000000000000000000000004E
:1042700000127A00000000000000000000000000B2
: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: Mon May 02 18:00:00 2022
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Mon May 02 21:48:01 2022
<BR><P>
<H3>Maximum Stack Usage = 212 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
@@ -74,7 +74,7 @@ Global Symbols
<P><STRONG><a name="[28]"></a>__main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f072xb.o(.text)
</UL>
<P><STRONG><a name="[d7]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[d6]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[30]"></a>_main_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
@@ -84,15 +84,15 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL>
<P><STRONG><a name="[d8]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[d7]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[d9]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[d8]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[da]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[d9]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[db]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[da]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[dc]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[db]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[0]"></a>Reset_Handler</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f072xb.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f072xb.o(RESET)
@@ -188,7 +188,7 @@ Global Symbols
<P><STRONG><a name="[6]"></a>WWDG_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f072xb.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f072xb.o(RESET)
</UL>
<P><STRONG><a name="[dd]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[dc]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[49]"></a>__aeabi_uidivmod</STRONG> (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = __aeabi_uidivmod
@@ -218,16 +218,16 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
</UL>
<P><STRONG><a name="[de]"></a>__aeabi_memcpy8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
<P><STRONG><a name="[dd]"></a>__aeabi_memcpy8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
<P><STRONG><a name="[33]"></a>__aeabi_memset</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[34]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_memset$wrapper
<LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<P><STRONG><a name="[df]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[de]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[e0]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[df]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[32]"></a>__aeabi_memclr</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[33]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
@@ -245,7 +245,7 @@ Global Symbols
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
</UL>
<P><STRONG><a name="[e1]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[e0]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[34]"></a>_memset$wrapper</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[33]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
@@ -257,7 +257,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
</UL>
<P><STRONG><a name="[e2]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[e1]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[b]"></a>EXTI0_1_IRQHandler</STRONG> (Thumb, 10 bytes, Stack size 8 bytes, stm32f0xx_it.o(i.EXTI0_1_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = EXTI0_1_IRQHandler &rArr; HAL_GPIO_EXTI_IRQHandler &rArr; HAL_GPIO_EXTI_Callback
@@ -278,7 +278,7 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL>
<BR>[Called By]<UL><LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<BR>[Called By]<UL><LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mcp4451_reset
<LI><a href="#[bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_update
<LI><a href="#[bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
@@ -313,11 +313,11 @@ Global Symbols
</UL>
<P><STRONG><a name="[b7]"></a>HAL_GPIO_ReadPin</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_ReadPin))
<BR><BR>[Called By]<UL><LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_for_clk_high
<LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<BR><BR>[Called By]<UL><LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_for_clk_high
<LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
<LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write_nowait
<LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
@@ -333,13 +333,13 @@ Global Symbols
<P><STRONG><a name="[58]"></a>HAL_GPIO_WritePin</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin))
<BR><BR>[Called By]<UL><LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_reset_bus
<LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_reset_bus
<LI><a href="#[a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_release_lines
<LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mcp4451_reset
<LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_release_lines
<LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write_nowait
<LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_release_lines
<LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
@@ -352,15 +352,15 @@ Global Symbols
</UL>
<P><STRONG><a name="[38]"></a>HAL_GetTick</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, stm32f0xx_hal.o(i.HAL_GetTick))
<BR><BR>[Called By]<UL><LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<BR><BR>[Called By]<UL><LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_enable
<LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_for_clk_high
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_for_clk_high
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_I2C_Mem_Write
<LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_I2C_IsDeviceReady
<LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
<LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
<LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write
<LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_WaitFlagStateUntilTimeout
@@ -809,9 +809,9 @@ Global Symbols
<P><STRONG><a name="[74]"></a>UART_SetConfig</STRONG> (Thumb, 316 bytes, Stack size 24 bytes, stm32f0xx_hal_uart.o(i.UART_SetConfig))
<BR><BR>[Stack]<UL><LI>Max Depth = 84<LI>Call Chain = UART_SetConfig &rArr; HAL_RCC_GetSysClockFreq &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetSysClockFreq
<BR>[Calls]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetSysClockFreq
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetPCLK1Freq
<LI><a href="#[49]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init
</UL>
@@ -840,7 +840,7 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[e3]"></a>__1printf$3</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)
<P><STRONG><a name="[e2]"></a>__1printf$3</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)
<P><STRONG><a name="[b0]"></a>__2printf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = __2printf
@@ -852,17 +852,17 @@ Global Symbols
<P><STRONG><a name="[a0]"></a>__ARM_common_switch8</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, ps2kb.o(i.__ARM_common_switch8))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __ARM_common_switch8
</UL>
<BR>[Called By]<UL><LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<BR>[Called By]<UL><LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;keyboard_reply
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;handle_protocol_switch
</UL>
<P><STRONG><a name="[e4]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[e3]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[e5]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[e4]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[e6]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[e5]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[5b]"></a>byte_to_int16_t</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, main.o(i.byte_to_int16_t))
<BR><BR>[Called By]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
@@ -873,10 +873,10 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;micros
</UL>
<BR>[Called By]<UL><LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<BR>[Called By]<UL><LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_delay_start
<LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write_nowait
<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_write
<LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2kb_read
@@ -1314,35 +1314,34 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
</UL>
<BR>[Called By]<UL><LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
<LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<BR>[Called By]<UL><LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
<LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
</UL>
<P><STRONG><a name="[c9]"></a>ps2mouse_get_outgoing_data</STRONG> (Thumb, 166 bytes, Stack size 16 bytes, ps2mouse.o(i.ps2mouse_get_outgoing_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = ps2mouse_get_outgoing_data
<P><STRONG><a name="[c9]"></a>ps2mouse_get_outgoing_data</STRONG> (Thumb, 224 bytes, Stack size 24 bytes, ps2mouse.o(i.ps2mouse_get_outgoing_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = ps2mouse_get_outgoing_data
</UL>
<BR>[Calls]<UL><LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
</UL>
<P><STRONG><a name="[ca]"></a>ps2mouse_host_req_reply</STRONG> (Thumb, 362 bytes, Stack size 24 bytes, ps2mouse.o(i.ps2mouse_host_req_reply))
<P><STRONG><a name="[ca]"></a>ps2mouse_host_req_reply</STRONG> (Thumb, 370 bytes, Stack size 24 bytes, ps2mouse.o(i.ps2mouse_host_req_reply))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = ps2mouse_host_req_reply &rArr; ps2mouse_write_delay_start &rArr; ps2mouse_write_nowait &rArr; ps2mouse_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;reset_accumulators
<LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_delay_start
<BR>[Calls]<UL><LI><a href="#[cb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_delay_start
<LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_restore_defaults
<LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_reset
<LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8
</UL>
<BR>[Called By]<UL><LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
</UL>
<P><STRONG><a name="[a3]"></a>ps2mouse_init</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, ps2mouse.o(i.ps2mouse_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = ps2mouse_init &rArr; ps2mouse_reset &rArr; ps2mouse_restore_defaults
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = ps2mouse_init &rArr; ps2mouse_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_reset
<LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_release_lines
@@ -1351,7 +1350,7 @@ Global Symbols
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;handle_protocol_switch
</UL>
<P><STRONG><a name="[ce]"></a>ps2mouse_read</STRONG> (Thumb, 244 bytes, Stack size 32 bytes, ps2mouse.o(i.ps2mouse_read))
<P><STRONG><a name="[cd]"></a>ps2mouse_read</STRONG> (Thumb, 244 bytes, Stack size 32 bytes, ps2mouse.o(i.ps2mouse_read))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = ps2mouse_read &rArr; ps2mouse_get_bus_status
</UL>
<BR>[Calls]<UL><LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
@@ -1369,14 +1368,14 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
</UL>
<BR>[Called By]<UL><LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<BR>[Called By]<UL><LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_init
<LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;handle_protocol_switch
</UL>
<P><STRONG><a name="[a7]"></a>ps2mouse_reset</STRONG> (Thumb, 20 bytes, Stack size 4 bytes, ps2mouse.o(i.ps2mouse_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = ps2mouse_reset &rArr; ps2mouse_restore_defaults
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = ps2mouse_reset
</UL>
<BR>[Calls]<UL><LI><a href="#[cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_restore_defaults
</UL>
@@ -1385,17 +1384,13 @@ Global Symbols
<LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;handle_protocol_switch
</UL>
<P><STRONG><a name="[cc]"></a>ps2mouse_restore_defaults</STRONG> (Thumb, 30 bytes, Stack size 4 bytes, ps2mouse.o(i.ps2mouse_restore_defaults))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = ps2mouse_restore_defaults
</UL>
<BR>[Calls]<UL><LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;reset_accumulators
</UL>
<BR>[Called By]<UL><LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_reset
<P><STRONG><a name="[cc]"></a>ps2mouse_restore_defaults</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, ps2mouse.o(i.ps2mouse_restore_defaults))
<BR><BR>[Called By]<UL><LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_reset
<LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
</UL>
<P><STRONG><a name="[cf]"></a>ps2mouse_send_update</STRONG> (Thumb, 34 bytes, Stack size 16 bytes, ps2mouse.o(i.ps2mouse_send_update))
<P><STRONG><a name="[ce]"></a>ps2mouse_send_update</STRONG> (Thumb, 34 bytes, Stack size 16 bytes, ps2mouse.o(i.ps2mouse_send_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = ps2mouse_send_update &rArr; ps2mouse_write &rArr; ps2mouse_write_nowait &rArr; ps2mouse_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
@@ -1408,10 +1403,10 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
<LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<LI><a href="#[cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_restore_defaults
<LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_release_lines
<LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[cd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_read
<LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_outgoing_data
<LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
@@ -1425,7 +1420,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[d0]"></a>ps2mouse_wait_for_idle</STRONG> (Thumb, 38 bytes, Stack size 16 bytes, ps2mouse.o(i.ps2mouse_wait_for_idle))
<P><STRONG><a name="[cf]"></a>ps2mouse_wait_for_idle</STRONG> (Thumb, 38 bytes, Stack size 16 bytes, ps2mouse.o(i.ps2mouse_wait_for_idle))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = ps2mouse_wait_for_idle &rArr; ps2mouse_get_bus_status
</UL>
<BR>[Calls]<UL><LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_get_bus_status
@@ -1438,10 +1433,10 @@ Global Symbols
<P><STRONG><a name="[b6]"></a>ps2mouse_write</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, ps2mouse.o(i.ps2mouse_write))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = ps2mouse_write &rArr; ps2mouse_write_nowait &rArr; ps2mouse_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
<BR>[Calls]<UL><LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
</UL>
<BR>[Called By]<UL><LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<BR>[Called By]<UL><LI><a href="#[ce]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_send_update
<LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
<LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_update
<LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
@@ -1450,14 +1445,14 @@ Global Symbols
<P><STRONG><a name="[cb]"></a>ps2mouse_write_delay_start</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, ps2mouse.o(i.ps2mouse_write_delay_start))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = ps2mouse_write_delay_start &rArr; ps2mouse_write_nowait &rArr; ps2mouse_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
<BR>[Calls]<UL><LI><a href="#[d0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write_nowait
<LI><a href="#[cf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_wait_for_idle
<LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
</UL>
<BR>[Called By]<UL><LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
</UL>
<P><STRONG><a name="[d1]"></a>ps2mouse_write_nowait</STRONG> (Thumb, 286 bytes, Stack size 24 bytes, ps2mouse.o(i.ps2mouse_write_nowait))
<P><STRONG><a name="[d0]"></a>ps2mouse_write_nowait</STRONG> (Thumb, 286 bytes, Stack size 24 bytes, ps2mouse.o(i.ps2mouse_write_nowait))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = ps2mouse_write_nowait &rArr; ps2mouse_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_release_lines
@@ -1469,11 +1464,6 @@ Global Symbols
<LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_write
</UL>
<P><STRONG><a name="[cd]"></a>reset_accumulators</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, ps2mouse.o(i.reset_accumulators))
<BR><BR>[Called By]<UL><LI><a href="#[cc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_restore_defaults
<LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ps2mouse_host_req_reply
</UL>
<P><STRONG><a name="[bc]"></a>spi_error_dump_reboot</STRONG> (Thumb, 72 bytes, Stack size 0 bytes, main.o(i.spi_error_dump_reboot))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = spi_error_dump_reboot &rArr; __2printf
</UL>
@@ -1484,20 +1474,20 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[d2]"></a>wait_for_clk_high</STRONG> (Thumb, 44 bytes, Stack size 16 bytes, xt_kb.o(i.wait_for_clk_high))
<P><STRONG><a name="[d1]"></a>wait_for_clk_high</STRONG> (Thumb, 44 bytes, Stack size 16 bytes, xt_kb.o(i.wait_for_clk_high))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = wait_for_clk_high
</UL>
<BR>[Calls]<UL><LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
</UL>
<BR>[Called By]<UL><LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<BR>[Called By]<UL><LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
</UL>
<P><STRONG><a name="[d3]"></a>xtkb_check_for_softreset</STRONG> (Thumb, 60 bytes, Stack size 8 bytes, xt_kb.o(i.xtkb_check_for_softreset))
<P><STRONG><a name="[d2]"></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 = 32<LI>Call Chain = xtkb_check_for_softreset &rArr; xtkb_write &rArr; xtkb_reset_bus
</UL>
<BR>[Calls]<UL><LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_for_clk_high
<BR>[Calls]<UL><LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[d1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_for_clk_high
<LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
@@ -1508,7 +1498,7 @@ Global Symbols
<P><STRONG><a name="[a2]"></a>xtkb_enable</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, xt_kb.o(i.xtkb_enable))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = xtkb_enable &rArr; xtkb_reset_bus
</UL>
<BR>[Calls]<UL><LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_reset_bus
<BR>[Calls]<UL><LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_reset_bus
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
@@ -1521,10 +1511,10 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[d6]"></a>xtkb_press_key</STRONG> (Thumb, 116 bytes, Stack size 16 bytes, xt_kb.o(i.xtkb_press_key))
<P><STRONG><a name="[d5]"></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 = 40<LI>Call Chain = xtkb_press_key &rArr; xtkb_write &rArr; xtkb_reset_bus
</UL>
<BR>[Calls]<UL><LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<BR>[Calls]<UL><LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_common_switch8
</UL>
@@ -1539,20 +1529,20 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;handle_protocol_switch
</UL>
<P><STRONG><a name="[d5]"></a>xtkb_reset_bus</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, xt_kb.o(i.xtkb_reset_bus))
<P><STRONG><a name="[d4]"></a>xtkb_reset_bus</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, xt_kb.o(i.xtkb_reset_bus))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = xtkb_reset_bus
</UL>
<BR>[Calls]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
</UL>
<BR>[Called By]<UL><LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<BR>[Called By]<UL><LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_write
<LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_enable
</UL>
<P><STRONG><a name="[bb]"></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="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<BR>[Calls]<UL><LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<LI><a href="#[d2]">&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="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_pop
<LI><a href="#[c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_peek
@@ -1560,16 +1550,16 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[d4]"></a>xtkb_write</STRONG> (Thumb, 186 bytes, Stack size 16 bytes, xt_kb.o(i.xtkb_write))
<P><STRONG><a name="[d3]"></a>xtkb_write</STRONG> (Thumb, 186 bytes, Stack size 16 bytes, xt_kb.o(i.xtkb_write))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = xtkb_write &rArr; xtkb_reset_bus
</UL>
<BR>[Calls]<UL><LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_reset_bus
<BR>[Calls]<UL><LI><a href="#[d4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_reset_bus
<LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
</UL>
<BR>[Called By]<UL><LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
<BR>[Called By]<UL><LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_press_key
<LI><a href="#[d2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;xtkb_check_for_softreset
</UL>
<P>
<H3>

View File

@@ -87,7 +87,6 @@ Section Cross References
ps2mouse.o(i.ps2mouse_host_req_reply) refers to ps2mouse.o(i.ps2mouse_write_delay_start) for ps2mouse_write_delay_start
ps2mouse.o(i.ps2mouse_host_req_reply) refers to ps2mouse.o(i.ps2mouse_write) for ps2mouse_write
ps2mouse.o(i.ps2mouse_host_req_reply) refers to ps2mouse.o(i.ps2mouse_restore_defaults) for ps2mouse_restore_defaults
ps2mouse.o(i.ps2mouse_host_req_reply) refers to ps2mouse.o(i.reset_accumulators) for reset_accumulators
ps2mouse.o(i.ps2mouse_host_req_reply) refers to ps2mouse.o(i.ps2mouse_read) for ps2mouse_read
ps2mouse.o(i.ps2mouse_host_req_reply) refers to ps2mouse.o(.data) for .data
ps2mouse.o(i.ps2mouse_init) refers to ps2mouse.o(i.ps2mouse_reset) for ps2mouse_reset
@@ -103,7 +102,6 @@ Section Cross References
ps2mouse.o(i.ps2mouse_release_lines) refers to ps2mouse.o(.data) for .data
ps2mouse.o(i.ps2mouse_reset) refers to ps2mouse.o(i.ps2mouse_restore_defaults) for ps2mouse_restore_defaults
ps2mouse.o(i.ps2mouse_reset) refers to ps2mouse.o(.data) for .data
ps2mouse.o(i.ps2mouse_restore_defaults) refers to ps2mouse.o(i.reset_accumulators) for reset_accumulators
ps2mouse.o(i.ps2mouse_restore_defaults) refers to ps2mouse.o(.data) for .data
ps2mouse.o(i.ps2mouse_send_update) refers to ps2mouse.o(i.ps2mouse_write) for ps2mouse_write
ps2mouse.o(i.ps2mouse_wait_for_idle) refers to stm32f0xx_hal.o(i.HAL_GetTick) for HAL_GetTick
@@ -118,7 +116,6 @@ Section Cross References
ps2mouse.o(i.ps2mouse_write_nowait) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_ReadPin) for HAL_GPIO_ReadPin
ps2mouse.o(i.ps2mouse_write_nowait) refers to ps2mouse.o(i.ps2mouse_release_lines) for ps2mouse_release_lines
ps2mouse.o(i.ps2mouse_write_nowait) refers to ps2mouse.o(.data) for .data
ps2mouse.o(i.reset_accumulators) refers to ps2mouse.o(.data) for .data
mcp4451.o(i.mcp4451_is_available) refers to stm32f0xx_hal_i2c.o(i.HAL_I2C_IsDeviceReady) for HAL_I2C_IsDeviceReady
mcp4451.o(i.mcp4451_is_available) refers to main.o(.bss) for hi2c2
mcp4451.o(i.mcp4451_reset) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
@@ -1259,6 +1256,9 @@ Removing Unused input sections from the image.
Removing ps2kb.o(.revsh_text), (4 bytes).
Removing ps2mouse.o(.rev16_text), (4 bytes).
Removing ps2mouse.o(.revsh_text), (4 bytes).
Removing ps2mouse.o(.data), (1 bytes).
Removing ps2mouse.o(.data), (1 bytes).
Removing ps2mouse.o(.data), (1 bytes).
Removing mcp4451.o(.rev16_text), (4 bytes).
Removing mcp4451.o(.revsh_text), (4 bytes).
Removing xt_kb.o(.rev16_text), (4 bytes).
@@ -1727,7 +1727,7 @@ Removing Unused input sections from the image.
Removing depilogue.o(.text), (190 bytes).
Removing depilogue.o(i.__ARM_clz), (46 bytes).
478 unused section(s) (total 33216 bytes) removed from the image.
481 unused section(s) (total 33219 bytes) removed from the image.
==============================================================================
@@ -1760,44 +1760,44 @@ Image Symbol Table
../Src/main.c 0x00000000 Number 0 main.o ABSOLUTE
../Src/stm32f0xx_hal_msp.c 0x00000000 Number 0 stm32f0xx_hal_msp.o ABSOLUTE
../Src/stm32f0xx_it.c 0x00000000 Number 0 stm32f0xx_it.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.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 mallocra.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/malloc/mvars.c 0x00000000 Number 0 mvars.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 printf2.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 printf8.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 printfa.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/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 memcpyb.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE
../clib/microlib/string/memset.c 0x00000000 Number 0 memseta.o ABSOLUTE
../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE
../fplib/microlib/fpadd.c 0x00000000 Number 0 dadd.o ABSOLUTE
@@ -2043,47 +2043,46 @@ Image Symbol Table
i.ps2kb_write_nowait 0x08003684 Section 0 ps2kb.o(i.ps2kb_write_nowait)
i.ps2mouse_get_bus_status 0x080037a8 Section 0 ps2mouse.o(i.ps2mouse_get_bus_status)
i.ps2mouse_get_outgoing_data 0x08003808 Section 0 ps2mouse.o(i.ps2mouse_get_outgoing_data)
i.ps2mouse_host_req_reply 0x080038b4 Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
i.ps2mouse_init 0x08003a24 Section 0 ps2mouse.o(i.ps2mouse_init)
i.ps2mouse_read 0x08003a40 Section 0 ps2mouse.o(i.ps2mouse_read)
i.ps2mouse_release_lines 0x08003b38 Section 0 ps2mouse.o(i.ps2mouse_release_lines)
i.ps2mouse_reset 0x08003b58 Section 0 ps2mouse.o(i.ps2mouse_reset)
i.ps2mouse_restore_defaults 0x08003b70 Section 0 ps2mouse.o(i.ps2mouse_restore_defaults)
i.ps2mouse_send_update 0x08003b94 Section 0 ps2mouse.o(i.ps2mouse_send_update)
i.ps2mouse_update 0x08003bb8 Section 0 main.o(i.ps2mouse_update)
i.ps2mouse_wait_for_idle 0x08003c90 Section 0 ps2mouse.o(i.ps2mouse_wait_for_idle)
i.ps2mouse_write 0x08003cb6 Section 0 ps2mouse.o(i.ps2mouse_write)
i.ps2mouse_write_delay_start 0x08003cd0 Section 0 ps2mouse.o(i.ps2mouse_write_delay_start)
i.ps2mouse_write_nowait 0x08003cf4 Section 0 ps2mouse.o(i.ps2mouse_write_nowait)
i.reset_accumulators 0x08003e18 Section 0 ps2mouse.o(i.reset_accumulators)
i.spi_error_dump_reboot 0x08003e28 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_for_clk_high 0x08003ea0 Section 0 xt_kb.o(i.wait_for_clk_high)
i.xtkb_check_for_softreset 0x08003ed0 Section 0 xt_kb.o(i.xtkb_check_for_softreset)
i.xtkb_enable 0x08003f10 Section 0 xt_kb.o(i.xtkb_enable)
i.xtkb_init 0x08003f24 Section 0 xt_kb.o(i.xtkb_init)
i.xtkb_press_key 0x08003f38 Section 0 xt_kb.o(i.xtkb_press_key)
i.xtkb_release_lines 0x08003fb0 Section 0 xt_kb.o(i.xtkb_release_lines)
i.xtkb_reset_bus 0x08003fd0 Section 0 xt_kb.o(i.xtkb_reset_bus)
i.xtkb_update 0x08003ff0 Section 0 main.o(i.xtkb_update)
i.xtkb_write 0x0800402c Section 0 xt_kb.o(i.xtkb_write)
.constdata 0x080040ec Section 121 ps2kb.o(.constdata)
.constdata 0x08004165 Section 4 mcp4451.o(.constdata)
.constdata 0x08004169 Section 55 main.o(.constdata)
.constdata 0x080041a0 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x080041b0 Section 8 system_stm32f0xx.o(.constdata)
i.ps2mouse_host_req_reply 0x080038ec Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
i.ps2mouse_init 0x08003a64 Section 0 ps2mouse.o(i.ps2mouse_init)
i.ps2mouse_read 0x08003a80 Section 0 ps2mouse.o(i.ps2mouse_read)
i.ps2mouse_release_lines 0x08003b78 Section 0 ps2mouse.o(i.ps2mouse_release_lines)
i.ps2mouse_reset 0x08003b98 Section 0 ps2mouse.o(i.ps2mouse_reset)
i.ps2mouse_restore_defaults 0x08003bb0 Section 0 ps2mouse.o(i.ps2mouse_restore_defaults)
i.ps2mouse_send_update 0x08003bcc Section 0 ps2mouse.o(i.ps2mouse_send_update)
i.ps2mouse_update 0x08003bf0 Section 0 main.o(i.ps2mouse_update)
i.ps2mouse_wait_for_idle 0x08003cc8 Section 0 ps2mouse.o(i.ps2mouse_wait_for_idle)
i.ps2mouse_write 0x08003cee Section 0 ps2mouse.o(i.ps2mouse_write)
i.ps2mouse_write_delay_start 0x08003d08 Section 0 ps2mouse.o(i.ps2mouse_write_delay_start)
i.ps2mouse_write_nowait 0x08003d2c Section 0 ps2mouse.o(i.ps2mouse_write_nowait)
i.spi_error_dump_reboot 0x08003e50 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_for_clk_high 0x08003ec8 Section 0 xt_kb.o(i.wait_for_clk_high)
i.xtkb_check_for_softreset 0x08003ef8 Section 0 xt_kb.o(i.xtkb_check_for_softreset)
i.xtkb_enable 0x08003f38 Section 0 xt_kb.o(i.xtkb_enable)
i.xtkb_init 0x08003f4c Section 0 xt_kb.o(i.xtkb_init)
i.xtkb_press_key 0x08003f60 Section 0 xt_kb.o(i.xtkb_press_key)
i.xtkb_release_lines 0x08003fd8 Section 0 xt_kb.o(i.xtkb_release_lines)
i.xtkb_reset_bus 0x08003ff8 Section 0 xt_kb.o(i.xtkb_reset_bus)
i.xtkb_update 0x08004018 Section 0 main.o(i.xtkb_update)
i.xtkb_write 0x08004054 Section 0 xt_kb.o(i.xtkb_write)
.constdata 0x08004114 Section 121 ps2kb.o(.constdata)
.constdata 0x0800418d Section 4 mcp4451.o(.constdata)
.constdata 0x08004191 Section 55 main.o(.constdata)
.constdata 0x080041c8 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x080041d8 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)
.data 0x20000038 Section 20 xt_kb.o(.data)
.data 0x2000004c Section 36 main.o(.data)
.data 0x20000070 Section 4 stm32f0xx_hal.o(.data)
.data 0x20000074 Section 4 system_stm32f0xx.o(.data)
.data 0x20000078 Section 4 stdout.o(.data)
.data 0x20000018 Section 28 ps2mouse.o(.data)
.data 0x20000034 Section 20 xt_kb.o(.data)
.data 0x20000048 Section 36 main.o(.data)
.data 0x2000006c Section 4 stm32f0xx_hal.o(.data)
.data 0x20000070 Section 4 system_stm32f0xx.o(.data)
.data 0x20000074 Section 4 stdout.o(.data)
.data 0x20000078 Section 4 mvars.o(.data)
.data 0x2000007c Section 4 mvars.o(.data)
.data 0x20000080 Section 4 mvars.o(.data)
.bss 0x20000084 Section 621 main.o(.bss)
HEAP 0x200002f8 Section 512 startup_stm32f072xb.o(HEAP)
STACK 0x200004f8 Section 1024 startup_stm32f072xb.o(STACK)
.bss 0x20000080 Section 621 main.o(.bss)
HEAP 0x200002f0 Section 512 startup_stm32f072xb.o(HEAP)
STACK 0x200004f0 Section 1024 startup_stm32f072xb.o(STACK)
Global Symbols
@@ -2318,38 +2317,37 @@ Image Symbol Table
ps2kb_write 0x08003641 Thumb Code 62 ps2kb.o(i.ps2kb_write)
ps2kb_write_nowait 0x08003685 Thumb Code 286 ps2kb.o(i.ps2kb_write_nowait)
ps2mouse_get_bus_status 0x080037a9 Thumb Code 92 ps2mouse.o(i.ps2mouse_get_bus_status)
ps2mouse_get_outgoing_data 0x08003809 Thumb Code 166 ps2mouse.o(i.ps2mouse_get_outgoing_data)
ps2mouse_host_req_reply 0x080038b5 Thumb Code 362 ps2mouse.o(i.ps2mouse_host_req_reply)
ps2mouse_init 0x08003a25 Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
ps2mouse_read 0x08003a41 Thumb Code 244 ps2mouse.o(i.ps2mouse_read)
ps2mouse_release_lines 0x08003b39 Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
ps2mouse_reset 0x08003b59 Thumb Code 20 ps2mouse.o(i.ps2mouse_reset)
ps2mouse_restore_defaults 0x08003b71 Thumb Code 30 ps2mouse.o(i.ps2mouse_restore_defaults)
ps2mouse_send_update 0x08003b95 Thumb Code 34 ps2mouse.o(i.ps2mouse_send_update)
ps2mouse_update 0x08003bb9 Thumb Code 204 main.o(i.ps2mouse_update)
ps2mouse_wait_for_idle 0x08003c91 Thumb Code 38 ps2mouse.o(i.ps2mouse_wait_for_idle)
ps2mouse_write 0x08003cb7 Thumb Code 26 ps2mouse.o(i.ps2mouse_write)
ps2mouse_write_delay_start 0x08003cd1 Thumb Code 34 ps2mouse.o(i.ps2mouse_write_delay_start)
ps2mouse_write_nowait 0x08003cf5 Thumb Code 286 ps2mouse.o(i.ps2mouse_write_nowait)
reset_accumulators 0x08003e19 Thumb Code 12 ps2mouse.o(i.reset_accumulators)
spi_error_dump_reboot 0x08003e29 Thumb Code 72 main.o(i.spi_error_dump_reboot)
wait_for_clk_high 0x08003ea1 Thumb Code 44 xt_kb.o(i.wait_for_clk_high)
xtkb_check_for_softreset 0x08003ed1 Thumb Code 60 xt_kb.o(i.xtkb_check_for_softreset)
xtkb_enable 0x08003f11 Thumb Code 16 xt_kb.o(i.xtkb_enable)
xtkb_init 0x08003f25 Thumb Code 14 xt_kb.o(i.xtkb_init)
xtkb_press_key 0x08003f39 Thumb Code 116 xt_kb.o(i.xtkb_press_key)
xtkb_release_lines 0x08003fb1 Thumb Code 26 xt_kb.o(i.xtkb_release_lines)
xtkb_reset_bus 0x08003fd1 Thumb Code 26 xt_kb.o(i.xtkb_reset_bus)
xtkb_update 0x08003ff1 Thumb Code 52 main.o(i.xtkb_update)
xtkb_write 0x0800402d Thumb Code 186 xt_kb.o(i.xtkb_write)
linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x080040ec Data 89 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x08004145 Data 32 ps2kb.o(.constdata)
mcp4451_wiper_id_to_reg_addr_lookup 0x08004165 Data 4 mcp4451.o(.constdata)
boot_message 0x08004169 Data 55 main.o(.constdata)
AHBPrescTable 0x080041a0 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x080041b0 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x080041b8 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x080041d8 Number 0 anon$$obj.o(Region$$Table)
ps2mouse_get_outgoing_data 0x08003809 Thumb Code 224 ps2mouse.o(i.ps2mouse_get_outgoing_data)
ps2mouse_host_req_reply 0x080038ed Thumb Code 370 ps2mouse.o(i.ps2mouse_host_req_reply)
ps2mouse_init 0x08003a65 Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
ps2mouse_read 0x08003a81 Thumb Code 244 ps2mouse.o(i.ps2mouse_read)
ps2mouse_release_lines 0x08003b79 Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
ps2mouse_reset 0x08003b99 Thumb Code 20 ps2mouse.o(i.ps2mouse_reset)
ps2mouse_restore_defaults 0x08003bb1 Thumb Code 22 ps2mouse.o(i.ps2mouse_restore_defaults)
ps2mouse_send_update 0x08003bcd Thumb Code 34 ps2mouse.o(i.ps2mouse_send_update)
ps2mouse_update 0x08003bf1 Thumb Code 204 main.o(i.ps2mouse_update)
ps2mouse_wait_for_idle 0x08003cc9 Thumb Code 38 ps2mouse.o(i.ps2mouse_wait_for_idle)
ps2mouse_write 0x08003cef Thumb Code 26 ps2mouse.o(i.ps2mouse_write)
ps2mouse_write_delay_start 0x08003d09 Thumb Code 34 ps2mouse.o(i.ps2mouse_write_delay_start)
ps2mouse_write_nowait 0x08003d2d Thumb Code 286 ps2mouse.o(i.ps2mouse_write_nowait)
spi_error_dump_reboot 0x08003e51 Thumb Code 72 main.o(i.spi_error_dump_reboot)
wait_for_clk_high 0x08003ec9 Thumb Code 44 xt_kb.o(i.wait_for_clk_high)
xtkb_check_for_softreset 0x08003ef9 Thumb Code 60 xt_kb.o(i.xtkb_check_for_softreset)
xtkb_enable 0x08003f39 Thumb Code 16 xt_kb.o(i.xtkb_enable)
xtkb_init 0x08003f4d Thumb Code 14 xt_kb.o(i.xtkb_init)
xtkb_press_key 0x08003f61 Thumb Code 116 xt_kb.o(i.xtkb_press_key)
xtkb_release_lines 0x08003fd9 Thumb Code 26 xt_kb.o(i.xtkb_release_lines)
xtkb_reset_bus 0x08003ff9 Thumb Code 26 xt_kb.o(i.xtkb_reset_bus)
xtkb_update 0x08004019 Thumb Code 52 main.o(i.xtkb_update)
xtkb_write 0x08004055 Thumb Code 186 xt_kb.o(i.xtkb_write)
linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x08004114 Data 89 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x0800416d Data 32 ps2kb.o(.constdata)
mcp4451_wiper_id_to_reg_addr_lookup 0x0800418d Data 4 mcp4451.o(.constdata)
boot_message 0x08004191 Data 55 main.o(.constdata)
AHBPrescTable 0x080041c8 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x080041d8 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x080041e0 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08004200 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)
@@ -2365,58 +2363,54 @@ Image Symbol Table
sample_rate_history_index 0x2000001c Data 1 ps2mouse.o(.data)
mouse_device_id 0x2000001d Data 1 ps2mouse.o(.data)
ps2mouse_current_mode 0x2000001e Data 1 ps2mouse.o(.data)
ps2mouse_prev_mode 0x2000001f Data 1 ps2mouse.o(.data)
x_accumulator 0x20000020 Data 1 ps2mouse.o(.data)
y_accumulator 0x20000021 Data 1 ps2mouse.o(.data)
scroll_accumulator 0x20000022 Data 1 ps2mouse.o(.data)
ps2mouse_clk_pin 0x20000024 Data 2 ps2mouse.o(.data)
ps2mouse_data_pin 0x20000026 Data 2 ps2mouse.o(.data)
ps2mouse_clk_port 0x20000028 Data 4 ps2mouse.o(.data)
ps2mouse_data_port 0x2000002c Data 4 ps2mouse.o(.data)
sample_rate_history 0x20000030 Data 8 ps2mouse.o(.data)
xtkb_clk_pin 0x20000038 Data 2 xt_kb.o(.data)
xtkb_data_pin 0x2000003a Data 2 xt_kb.o(.data)
xtkb_clk_port 0x2000003c Data 4 xt_kb.o(.data)
xtkb_data_port 0x20000040 Data 4 xt_kb.o(.data)
last_clk_high 0x20000044 Data 4 xt_kb.o(.data)
last_typematic 0x20000048 Data 4 xt_kb.o(.data)
hw_revision 0x2000004c Data 1 main.o(.data)
ps2kb_host_cmd 0x2000004d Data 1 main.o(.data)
ps2mouse_host_cmd 0x2000004e Data 1 main.o(.data)
buffered_code 0x2000004f Data 1 main.o(.data)
buffered_value 0x20000050 Data 1 main.o(.data)
ps2mouse_bus_status 0x20000051 Data 1 main.o(.data)
ps2kb_bus_status 0x20000052 Data 1 main.o(.data)
serial_mouse_rts_response 0x20000053 Data 1 main.o(.data)
rts_active 0x20000054 Data 1 main.o(.data)
spi_error_occured 0x20000055 Data 1 main.o(.data)
is_ps2_mouse_connected_prev 0x20000056 Data 1 main.o(.data)
serial_mouse_is_tx_in_progress 0x20000057 Data 1 main.o(.data)
flash_size 0x20000058 Data 2 main.o(.data)
serial_mouse_output_buf 0x2000005a Data 3 main.o(.data)
my_mouse_buf 0x20000060 Data 8 main.o(.data)
my_gamepad_buf 0x20000068 Data 8 main.o(.data)
uwTick 0x20000070 Data 4 stm32f0xx_hal.o(.data)
SystemCoreClock 0x20000074 Data 4 system_stm32f0xx.o(.data)
__stdout 0x20000078 Data 4 stdout.o(.data)
__microlib_freelist 0x2000007c Data 4 mvars.o(.data)
__microlib_freelist_initialised 0x20000080 Data 4 mvars.o(.data)
hi2c2 0x20000084 Data 76 main.o(.bss)
hspi1 0x200000d0 Data 100 main.o(.bss)
htim2 0x20000134 Data 64 main.o(.bss)
huart1 0x20000174 Data 112 main.o(.bss)
huart3 0x200001e4 Data 112 main.o(.bss)
spi_transmit_buf 0x20000254 Data 32 main.o(.bss)
backup_spi1_recv_buf 0x20000274 Data 32 main.o(.bss)
spi_recv_buf 0x20000294 Data 32 main.o(.bss)
my_kb_buf 0x200002b4 Data 12 main.o(.bss)
latest_mouse_event 0x200002c0 Data 12 main.o(.bss)
latest_gamepad_event 0x200002cc Data 12 main.o(.bss)
my_ps2_outbuf 0x200002d8 Data 9 main.o(.bss)
protocol_status_lookup 0x200002e1 Data 16 main.o(.bss)
__heap_base 0x200002f8 Data 0 startup_stm32f072xb.o(HEAP)
__heap_limit 0x200004f8 Data 0 startup_stm32f072xb.o(HEAP)
__initial_sp 0x200008f8 Data 0 startup_stm32f072xb.o(STACK)
ps2mouse_clk_pin 0x20000020 Data 2 ps2mouse.o(.data)
ps2mouse_data_pin 0x20000022 Data 2 ps2mouse.o(.data)
ps2mouse_clk_port 0x20000024 Data 4 ps2mouse.o(.data)
ps2mouse_data_port 0x20000028 Data 4 ps2mouse.o(.data)
sample_rate_history 0x2000002c Data 8 ps2mouse.o(.data)
xtkb_clk_pin 0x20000034 Data 2 xt_kb.o(.data)
xtkb_data_pin 0x20000036 Data 2 xt_kb.o(.data)
xtkb_clk_port 0x20000038 Data 4 xt_kb.o(.data)
xtkb_data_port 0x2000003c Data 4 xt_kb.o(.data)
last_clk_high 0x20000040 Data 4 xt_kb.o(.data)
last_typematic 0x20000044 Data 4 xt_kb.o(.data)
hw_revision 0x20000048 Data 1 main.o(.data)
ps2kb_host_cmd 0x20000049 Data 1 main.o(.data)
ps2mouse_host_cmd 0x2000004a Data 1 main.o(.data)
buffered_code 0x2000004b Data 1 main.o(.data)
buffered_value 0x2000004c Data 1 main.o(.data)
ps2mouse_bus_status 0x2000004d Data 1 main.o(.data)
ps2kb_bus_status 0x2000004e Data 1 main.o(.data)
serial_mouse_rts_response 0x2000004f Data 1 main.o(.data)
rts_active 0x20000050 Data 1 main.o(.data)
spi_error_occured 0x20000051 Data 1 main.o(.data)
is_ps2_mouse_connected_prev 0x20000052 Data 1 main.o(.data)
serial_mouse_is_tx_in_progress 0x20000053 Data 1 main.o(.data)
flash_size 0x20000054 Data 2 main.o(.data)
serial_mouse_output_buf 0x20000056 Data 3 main.o(.data)
my_mouse_buf 0x2000005c Data 8 main.o(.data)
my_gamepad_buf 0x20000064 Data 8 main.o(.data)
uwTick 0x2000006c Data 4 stm32f0xx_hal.o(.data)
SystemCoreClock 0x20000070 Data 4 system_stm32f0xx.o(.data)
__stdout 0x20000074 Data 4 stdout.o(.data)
__microlib_freelist 0x20000078 Data 4 mvars.o(.data)
__microlib_freelist_initialised 0x2000007c Data 4 mvars.o(.data)
hi2c2 0x20000080 Data 76 main.o(.bss)
hspi1 0x200000cc Data 100 main.o(.bss)
htim2 0x20000130 Data 64 main.o(.bss)
huart1 0x20000170 Data 112 main.o(.bss)
huart3 0x200001e0 Data 112 main.o(.bss)
spi_transmit_buf 0x20000250 Data 32 main.o(.bss)
backup_spi1_recv_buf 0x20000270 Data 32 main.o(.bss)
spi_recv_buf 0x20000290 Data 32 main.o(.bss)
my_kb_buf 0x200002b0 Data 12 main.o(.bss)
latest_mouse_event 0x200002bc Data 12 main.o(.bss)
latest_gamepad_event 0x200002c8 Data 12 main.o(.bss)
my_ps2_outbuf 0x200002d4 Data 9 main.o(.bss)
protocol_status_lookup 0x200002dd Data 16 main.o(.bss)
__heap_base 0x200002f0 Data 0 startup_stm32f072xb.o(HEAP)
__heap_limit 0x200004f0 Data 0 startup_stm32f072xb.o(HEAP)
__initial_sp 0x200008f0 Data 0 startup_stm32f072xb.o(STACK)
@@ -2426,149 +2420,149 @@ Memory Map of the image
Image Entry point : 0x080000c1
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x0000425c, Max: 0x00010000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00004280, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000041d8, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00004200, 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 3952 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
0x080000c0 0x080000c0 0x00000004 Code RO 4254 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
0x080000c4 0x080000c4 0x00000004 Code RO 4257 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
0x080000c8 0x080000c8 0x00000000 Code RO 4259 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
0x080000c8 0x080000c8 0x00000000 Code RO 4261 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
0x080000c8 0x080000c8 0x00000008 Code RO 4262 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 4264 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 4266 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
0x080000d0 0x080000d0 0x00000004 Code RO 4255 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
0x080000c0 0x080000c0 0x00000000 Code RO 3949 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
0x080000c0 0x080000c0 0x00000004 Code RO 4251 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
0x080000c4 0x080000c4 0x00000004 Code RO 4254 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
0x080000c8 0x080000c8 0x00000000 Code RO 4256 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
0x080000c8 0x080000c8 0x00000000 Code RO 4258 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
0x080000c8 0x080000c8 0x00000008 Code RO 4259 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 4261 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 4263 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
0x080000d0 0x080000d0 0x00000004 Code RO 4252 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
0x080000d4 0x080000d4 0x0000001c Code RO 4 .text startup_stm32f072xb.o
0x080000f0 0x080000f0 0x0000002c Code RO 3955 .text mc_p.l(uidiv.o)
0x0800011c 0x0800011c 0x00000024 Code RO 3959 .text mc_p.l(memcpya.o)
0x08000140 0x08000140 0x00000024 Code RO 3961 .text mc_p.l(memseta.o)
0x08000164 0x08000164 0x00000024 Code RO 4284 .text mc_p.l(init.o)
0x08000188 0x08000188 0x0000000a Code RO 762 i.EXTI0_1_IRQHandler stm32f0xx_it.o
0x08000192 0x08000192 0x00000048 Code RO 3399 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x080001da 0x080001da 0x0000001c Code RO 3202 i.HAL_Delay stm32f0xx_hal.o
0x080000f0 0x080000f0 0x0000002c Code RO 3952 .text mc_p.l(uidiv.o)
0x0800011c 0x0800011c 0x00000024 Code RO 3956 .text mc_p.l(memcpya.o)
0x08000140 0x08000140 0x00000024 Code RO 3958 .text mc_p.l(memseta.o)
0x08000164 0x08000164 0x00000024 Code RO 4281 .text mc_p.l(init.o)
0x08000188 0x08000188 0x0000000a Code RO 759 i.EXTI0_1_IRQHandler stm32f0xx_it.o
0x08000192 0x08000192 0x00000048 Code RO 3396 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x080001da 0x080001da 0x0000001c Code RO 3199 i.HAL_Delay stm32f0xx_hal.o
0x080001f6 0x080001f6 0x00000002 PAD
0x080001f8 0x080001f8 0x0000001c Code RO 592 i.HAL_GPIO_EXTI_Callback main.o
0x08000214 0x08000214 0x00000018 Code RO 3336 i.HAL_GPIO_EXTI_IRQHandler stm32f0xx_hal_gpio.o
0x0800022c 0x0800022c 0x00000158 Code RO 3337 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x08000384 0x08000384 0x0000000a Code RO 3339 i.HAL_GPIO_ReadPin stm32f0xx_hal_gpio.o
0x0800038e 0x0800038e 0x00000008 Code RO 3340 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o
0x08000396 0x08000396 0x0000000c Code RO 3341 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x080001f8 0x080001f8 0x0000001c Code RO 589 i.HAL_GPIO_EXTI_Callback main.o
0x08000214 0x08000214 0x00000018 Code RO 3333 i.HAL_GPIO_EXTI_IRQHandler stm32f0xx_hal_gpio.o
0x0800022c 0x0800022c 0x00000158 Code RO 3334 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x08000384 0x08000384 0x0000000a Code RO 3336 i.HAL_GPIO_ReadPin stm32f0xx_hal_gpio.o
0x0800038e 0x0800038e 0x00000008 Code RO 3337 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o
0x08000396 0x08000396 0x0000000c Code RO 3338 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x080003a2 0x080003a2 0x00000002 PAD
0x080003a4 0x080003a4 0x0000000c Code RO 3206 i.HAL_GetTick stm32f0xx_hal.o
0x080003b0 0x080003b0 0x0000004a Code RO 1320 i.HAL_I2CEx_ConfigAnalogFilter stm32f0xx_hal_i2c_ex.o
0x080003fa 0x080003fa 0x00000048 Code RO 1321 i.HAL_I2CEx_ConfigDigitalFilter stm32f0xx_hal_i2c_ex.o
0x080003a4 0x080003a4 0x0000000c Code RO 3203 i.HAL_GetTick stm32f0xx_hal.o
0x080003b0 0x080003b0 0x0000004a Code RO 1317 i.HAL_I2CEx_ConfigAnalogFilter stm32f0xx_hal_i2c_ex.o
0x080003fa 0x080003fa 0x00000048 Code RO 1318 i.HAL_I2CEx_ConfigDigitalFilter stm32f0xx_hal_i2c_ex.o
0x08000442 0x08000442 0x00000002 PAD
0x08000444 0x08000444 0x000000b4 Code RO 907 i.HAL_I2C_Init stm32f0xx_hal_i2c.o
0x080004f8 0x080004f8 0x0000011c Code RO 908 i.HAL_I2C_IsDeviceReady stm32f0xx_hal_i2c.o
0x08000614 0x08000614 0x00000154 Code RO 926 i.HAL_I2C_Mem_Write stm32f0xx_hal_i2c.o
0x08000768 0x08000768 0x0000004c Code RO 829 i.HAL_I2C_MspInit stm32f0xx_hal_msp.o
0x080007b4 0x080007b4 0x00000010 Code RO 3210 i.HAL_IncTick stm32f0xx_hal.o
0x080007c4 0x080007c4 0x00000020 Code RO 3211 i.HAL_Init stm32f0xx_hal.o
0x080007e4 0x080007e4 0x00000022 Code RO 3212 i.HAL_InitTick stm32f0xx_hal.o
0x08000444 0x08000444 0x000000b4 Code RO 904 i.HAL_I2C_Init stm32f0xx_hal_i2c.o
0x080004f8 0x080004f8 0x0000011c Code RO 905 i.HAL_I2C_IsDeviceReady stm32f0xx_hal_i2c.o
0x08000614 0x08000614 0x00000154 Code RO 923 i.HAL_I2C_Mem_Write stm32f0xx_hal_i2c.o
0x08000768 0x08000768 0x0000004c Code RO 826 i.HAL_I2C_MspInit stm32f0xx_hal_msp.o
0x080007b4 0x080007b4 0x00000010 Code RO 3207 i.HAL_IncTick stm32f0xx_hal.o
0x080007c4 0x080007c4 0x00000020 Code RO 3208 i.HAL_Init stm32f0xx_hal.o
0x080007e4 0x080007e4 0x00000022 Code RO 3209 i.HAL_InitTick stm32f0xx_hal.o
0x08000806 0x08000806 0x00000002 PAD
0x08000808 0x08000808 0x00000044 Code RO 830 i.HAL_MspInit stm32f0xx_hal_msp.o
0x0800084c 0x0800084c 0x00000014 Code RO 3494 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x08000860 0x08000860 0x00000008 Code RO 3498 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08000868 0x08000868 0x00000120 Code RO 3122 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o
0x08000988 0x08000988 0x00000154 Code RO 3020 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x08000adc 0x08000adc 0x0000000c Code RO 3025 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000ae8 0x08000ae8 0x00000020 Code RO 3027 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x08000b08 0x08000b08 0x00000088 Code RO 3028 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x08000b90 0x08000b90 0x000003d8 Code RO 3031 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000f68 0x08000f68 0x00000002 Code RO 1403 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x08000808 0x08000808 0x00000044 Code RO 827 i.HAL_MspInit stm32f0xx_hal_msp.o
0x0800084c 0x0800084c 0x00000014 Code RO 3491 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x08000860 0x08000860 0x00000008 Code RO 3495 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08000868 0x08000868 0x00000120 Code RO 3119 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o
0x08000988 0x08000988 0x00000154 Code RO 3017 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x08000adc 0x08000adc 0x0000000c Code RO 3022 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000ae8 0x08000ae8 0x00000020 Code RO 3024 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x08000b08 0x08000b08 0x00000088 Code RO 3025 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x08000b90 0x08000b90 0x000003d8 Code RO 3028 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000f68 0x08000f68 0x00000002 Code RO 1400 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x08000f6a 0x08000f6a 0x00000002 PAD
0x08000f6c 0x08000f6c 0x000000d4 Code RO 1406 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x08001040 0x08001040 0x000000b8 Code RO 1407 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x080010f8 0x080010f8 0x00000054 Code RO 832 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x0800114c 0x0800114c 0x00000002 Code RO 1413 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x08000f6c 0x08000f6c 0x000000d4 Code RO 1403 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x08001040 0x08001040 0x000000b8 Code RO 1404 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x080010f8 0x080010f8 0x00000054 Code RO 829 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x0800114c 0x0800114c 0x00000002 Code RO 1410 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x0800114e 0x0800114e 0x00000002 PAD
0x08001150 0x08001150 0x000000d4 Code RO 1418 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x08001224 0x08001224 0x0000017c Code RO 593 i.HAL_SPI_TxRxCpltCallback main.o
0x080013a0 0x080013a0 0x00000018 Code RO 3500 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x080013b8 0x080013b8 0x00000002 Code RO 3501 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x08001150 0x08001150 0x000000d4 Code RO 1415 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x08001224 0x08001224 0x0000017c Code RO 590 i.HAL_SPI_TxRxCpltCallback main.o
0x080013a0 0x080013a0 0x00000018 Code RO 3497 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x080013b8 0x080013b8 0x00000002 Code RO 3498 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x080013ba 0x080013ba 0x00000002 PAD
0x080013bc 0x080013bc 0x00000030 Code RO 3502 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x080013ec 0x080013ec 0x00000008 Code RO 3503 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x080013f4 0x080013f4 0x00000048 Code RO 2395 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x0800143c 0x0800143c 0x00000034 Code RO 1741 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x08001470 0x08001470 0x00000024 Code RO 834 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08001494 0x08001494 0x00000018 Code RO 1744 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x080014ac 0x080014ac 0x000000ee Code RO 1750 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x0800159a 0x0800159a 0x00000002 Code RO 2964 i.HAL_UARTEx_WakeupCallback stm32f0xx_hal_uart_ex.o
0x0800159c 0x0800159c 0x00000002 Code RO 2639 i.HAL_UART_ErrorCallback stm32f0xx_hal_uart.o
0x080013bc 0x080013bc 0x00000030 Code RO 3499 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x080013ec 0x080013ec 0x00000008 Code RO 3500 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x080013f4 0x080013f4 0x00000048 Code RO 2392 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x0800143c 0x0800143c 0x00000034 Code RO 1738 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x08001470 0x08001470 0x00000024 Code RO 831 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08001494 0x08001494 0x00000018 Code RO 1741 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x080014ac 0x080014ac 0x000000ee Code RO 1747 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x0800159a 0x0800159a 0x00000002 Code RO 2961 i.HAL_UARTEx_WakeupCallback stm32f0xx_hal_uart_ex.o
0x0800159c 0x0800159c 0x00000002 Code RO 2636 i.HAL_UART_ErrorCallback stm32f0xx_hal_uart.o
0x0800159e 0x0800159e 0x00000002 PAD
0x080015a0 0x080015a0 0x00000134 Code RO 2642 i.HAL_UART_IRQHandler stm32f0xx_hal_uart.o
0x080016d4 0x080016d4 0x0000006c Code RO 2643 i.HAL_UART_Init stm32f0xx_hal_uart.o
0x08001740 0x08001740 0x00000090 Code RO 836 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x080017d0 0x080017d0 0x00000002 Code RO 2649 i.HAL_UART_RxCpltCallback stm32f0xx_hal_uart.o
0x080017d2 0x080017d2 0x000000c8 Code RO 2651 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x0800189a 0x0800189a 0x00000058 Code RO 2653 i.HAL_UART_Transmit_IT stm32f0xx_hal_uart.o
0x080015a0 0x080015a0 0x00000134 Code RO 2639 i.HAL_UART_IRQHandler stm32f0xx_hal_uart.o
0x080016d4 0x080016d4 0x0000006c Code RO 2640 i.HAL_UART_Init stm32f0xx_hal_uart.o
0x08001740 0x08001740 0x00000090 Code RO 833 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x080017d0 0x080017d0 0x00000002 Code RO 2646 i.HAL_UART_RxCpltCallback stm32f0xx_hal_uart.o
0x080017d2 0x080017d2 0x000000c8 Code RO 2648 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x0800189a 0x0800189a 0x00000058 Code RO 2650 i.HAL_UART_Transmit_IT stm32f0xx_hal_uart.o
0x080018f2 0x080018f2 0x00000002 PAD
0x080018f4 0x080018f4 0x0000000c Code RO 594 i.HAL_UART_TxCpltCallback main.o
0x08001900 0x08001900 0x00000002 Code RO 763 i.HardFault_Handler stm32f0xx_it.o
0x08001902 0x08001902 0x00000022 Code RO 949 i.I2C_Flush_TXDR stm32f0xx_hal_i2c.o
0x08001924 0x08001924 0x00000074 Code RO 957 i.I2C_IsAcknowledgeFailed stm32f0xx_hal_i2c.o
0x08001998 0x08001998 0x0000006a Code RO 961 i.I2C_RequestMemoryWrite stm32f0xx_hal_i2c.o
0x080018f4 0x080018f4 0x0000000c Code RO 591 i.HAL_UART_TxCpltCallback main.o
0x08001900 0x08001900 0x00000002 Code RO 760 i.HardFault_Handler stm32f0xx_it.o
0x08001902 0x08001902 0x00000022 Code RO 946 i.I2C_Flush_TXDR stm32f0xx_hal_i2c.o
0x08001924 0x08001924 0x00000074 Code RO 954 i.I2C_IsAcknowledgeFailed stm32f0xx_hal_i2c.o
0x08001998 0x08001998 0x0000006a Code RO 958 i.I2C_RequestMemoryWrite stm32f0xx_hal_i2c.o
0x08001a02 0x08001a02 0x00000002 PAD
0x08001a04 0x08001a04 0x00000024 Code RO 964 i.I2C_TransferConfig stm32f0xx_hal_i2c.o
0x08001a28 0x08001a28 0x00000048 Code RO 965 i.I2C_WaitOnFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001a70 0x08001a70 0x0000004e Code RO 967 i.I2C_WaitOnSTOPFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001abe 0x08001abe 0x00000052 Code RO 968 i.I2C_WaitOnTXISFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001b10 0x08001b10 0x00000158 Code RO 595 i.MX_GPIO_Init main.o
0x08001c68 0x08001c68 0x00000054 Code RO 596 i.MX_I2C2_Init main.o
0x08001cbc 0x08001cbc 0x0000003c Code RO 597 i.MX_SPI1_Init main.o
0x08001cf8 0x08001cf8 0x00000054 Code RO 598 i.MX_TIM2_Init main.o
0x08001d4c 0x08001d4c 0x0000004c Code RO 599 i.MX_USART1_UART_Init main.o
0x08001d98 0x08001d98 0x0000005c Code RO 600 i.MX_USART3_UART_Init main.o
0x08001df4 0x08001df4 0x00000002 Code RO 764 i.NMI_Handler stm32f0xx_it.o
0x08001a04 0x08001a04 0x00000024 Code RO 961 i.I2C_TransferConfig stm32f0xx_hal_i2c.o
0x08001a28 0x08001a28 0x00000048 Code RO 962 i.I2C_WaitOnFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001a70 0x08001a70 0x0000004e Code RO 964 i.I2C_WaitOnSTOPFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001abe 0x08001abe 0x00000052 Code RO 965 i.I2C_WaitOnTXISFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001b10 0x08001b10 0x00000158 Code RO 592 i.MX_GPIO_Init main.o
0x08001c68 0x08001c68 0x00000054 Code RO 593 i.MX_I2C2_Init main.o
0x08001cbc 0x08001cbc 0x0000003c Code RO 594 i.MX_SPI1_Init main.o
0x08001cf8 0x08001cf8 0x00000054 Code RO 595 i.MX_TIM2_Init main.o
0x08001d4c 0x08001d4c 0x0000004c Code RO 596 i.MX_USART1_UART_Init main.o
0x08001d98 0x08001d98 0x0000005c Code RO 597 i.MX_USART3_UART_Init main.o
0x08001df4 0x08001df4 0x00000002 Code RO 761 i.NMI_Handler stm32f0xx_it.o
0x08001df6 0x08001df6 0x00000002 PAD
0x08001df8 0x08001df8 0x00000044 Code RO 3504 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08001e3c 0x08001e3c 0x00000002 Code RO 765 i.PendSV_Handler stm32f0xx_it.o
0x08001df8 0x08001df8 0x00000044 Code RO 3501 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08001e3c 0x08001e3c 0x00000002 Code RO 762 i.PendSV_Handler stm32f0xx_it.o
0x08001e3e 0x08001e3e 0x00000002 PAD
0x08001e40 0x08001e40 0x00000010 Code RO 766 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001e50 0x08001e50 0x00000036 Code RO 1425 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x08001e86 0x08001e86 0x0000005e Code RO 1426 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x08001ee4 0x08001ee4 0x00000034 Code RO 1427 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x08001f18 0x08001f18 0x00000048 Code RO 1428 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x08001f60 0x08001f60 0x00000052 Code RO 1431 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x08001fb2 0x08001fb2 0x00000012 Code RO 1434 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x08001fc4 0x08001fc4 0x0000004c Code RO 1445 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x08002010 0x08002010 0x00000096 Code RO 1450 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x080020a6 0x080020a6 0x0000008c Code RO 1451 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x08002132 0x08002132 0x00000002 Code RO 767 i.SVC_Handler stm32f0xx_it.o
0x08002134 0x08002134 0x0000000c Code RO 768 i.SysTick_Handler stm32f0xx_it.o
0x08002140 0x08002140 0x0000006c Code RO 601 i.SystemClock_Config main.o
0x080021ac 0x080021ac 0x0000005c Code RO 3921 i.SystemInit system_stm32f0xx.o
0x08002208 0x08002208 0x00000094 Code RO 1827 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x0800229c 0x0800229c 0x00000016 Code RO 1834 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x080022b2 0x080022b2 0x00000010 Code RO 1835 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x080022c2 0x080022c2 0x00000022 Code RO 1841 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x080022e4 0x080022e4 0x00000026 Code RO 1843 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x0800230a 0x0800230a 0x000000ca Code RO 2656 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x080023d4 0x080023d4 0x00000074 Code RO 2657 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x08002448 0x08002448 0x00000014 Code RO 2658 i.UART_DMAAbortOnError stm32f0xx_hal_uart.o
0x0800245c 0x0800245c 0x0000001e Code RO 2668 i.UART_EndRxTransfer stm32f0xx_hal_uart.o
0x0800247a 0x0800247a 0x0000001a Code RO 2669 i.UART_EndTransmit_IT stm32f0xx_hal_uart.o
0x08002494 0x08002494 0x0000007a Code RO 2671 i.UART_Receive_IT stm32f0xx_hal_uart.o
0x08001e40 0x08001e40 0x00000010 Code RO 763 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001e50 0x08001e50 0x00000036 Code RO 1422 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x08001e86 0x08001e86 0x0000005e Code RO 1423 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x08001ee4 0x08001ee4 0x00000034 Code RO 1424 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x08001f18 0x08001f18 0x00000048 Code RO 1425 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x08001f60 0x08001f60 0x00000052 Code RO 1428 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x08001fb2 0x08001fb2 0x00000012 Code RO 1431 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x08001fc4 0x08001fc4 0x0000004c Code RO 1442 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x08002010 0x08002010 0x00000096 Code RO 1447 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x080020a6 0x080020a6 0x0000008c Code RO 1448 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x08002132 0x08002132 0x00000002 Code RO 764 i.SVC_Handler stm32f0xx_it.o
0x08002134 0x08002134 0x0000000c Code RO 765 i.SysTick_Handler stm32f0xx_it.o
0x08002140 0x08002140 0x0000006c Code RO 598 i.SystemClock_Config main.o
0x080021ac 0x080021ac 0x0000005c Code RO 3918 i.SystemInit system_stm32f0xx.o
0x08002208 0x08002208 0x00000094 Code RO 1824 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x0800229c 0x0800229c 0x00000016 Code RO 1831 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x080022b2 0x080022b2 0x00000010 Code RO 1832 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x080022c2 0x080022c2 0x00000022 Code RO 1838 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x080022e4 0x080022e4 0x00000026 Code RO 1840 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x0800230a 0x0800230a 0x000000ca Code RO 2653 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x080023d4 0x080023d4 0x00000074 Code RO 2654 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x08002448 0x08002448 0x00000014 Code RO 2655 i.UART_DMAAbortOnError stm32f0xx_hal_uart.o
0x0800245c 0x0800245c 0x0000001e Code RO 2665 i.UART_EndRxTransfer stm32f0xx_hal_uart.o
0x0800247a 0x0800247a 0x0000001a Code RO 2666 i.UART_EndTransmit_IT stm32f0xx_hal_uart.o
0x08002494 0x08002494 0x0000007a Code RO 2668 i.UART_Receive_IT stm32f0xx_hal_uart.o
0x0800250e 0x0800250e 0x00000002 PAD
0x08002510 0x08002510 0x0000015c Code RO 2672 i.UART_SetConfig stm32f0xx_hal_uart.o
0x0800266c 0x0800266c 0x00000066 Code RO 2673 i.UART_Transmit_IT stm32f0xx_hal_uart.o
0x080026d2 0x080026d2 0x00000062 Code RO 2674 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x08002734 0x08002734 0x00000010 Code RO 769 i.USART3_4_IRQHandler stm32f0xx_it.o
0x08002744 0x08002744 0x00000020 Code RO 4054 i.__0printf$3 mc_p.l(printf3.o)
0x08002510 0x08002510 0x0000015c Code RO 2669 i.UART_SetConfig stm32f0xx_hal_uart.o
0x0800266c 0x0800266c 0x00000066 Code RO 2670 i.UART_Transmit_IT stm32f0xx_hal_uart.o
0x080026d2 0x080026d2 0x00000062 Code RO 2671 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x08002734 0x08002734 0x00000010 Code RO 766 i.USART3_4_IRQHandler stm32f0xx_it.o
0x08002744 0x08002744 0x00000020 Code RO 4051 i.__0printf$3 mc_p.l(printf3.o)
0x08002764 0x08002764 0x0000001a Code RO 377 i.__ARM_common_switch8 ps2kb.o
0x0800277e 0x0800277e 0x0000000e Code RO 4296 i.__scatterload_copy mc_p.l(handlers.o)
0x0800278c 0x0800278c 0x00000002 Code RO 4297 i.__scatterload_null mc_p.l(handlers.o)
0x0800278e 0x0800278e 0x0000000e Code RO 4298 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x0800279c 0x0800279c 0x000001cc Code RO 4061 i._printf_core mc_p.l(printf3.o)
0x08002968 0x08002968 0x00000008 Code RO 603 i.byte_to_int16_t main.o
0x0800277e 0x0800277e 0x0000000e Code RO 4293 i.__scatterload_copy mc_p.l(handlers.o)
0x0800278c 0x0800278c 0x00000002 Code RO 4294 i.__scatterload_null mc_p.l(handlers.o)
0x0800278e 0x0800278e 0x0000000e Code RO 4295 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x0800279c 0x0800279c 0x000001cc Code RO 4058 i._printf_core mc_p.l(printf3.o)
0x08002968 0x08002968 0x00000008 Code RO 600 i.byte_to_int16_t main.o
0x08002970 0x08002970 0x00000014 Code RO 12 i.delay_us delay_us.o
0x08002984 0x08002984 0x00000010 Code RO 13 i.delay_us_init delay_us.o
0x08002994 0x08002994 0x00000018 Code RO 604 i.fputc main.o
0x08002994 0x08002994 0x00000018 Code RO 601 i.fputc main.o
0x080029ac 0x080029ac 0x00000032 Code RO 152 i.gamepad_buf_add helpers.o
0x080029de 0x080029de 0x00000018 Code RO 153 i.gamepad_buf_init helpers.o
0x080029f6 0x080029f6 0x0000001c Code RO 155 i.gamepad_buf_is_full helpers.o
@@ -2576,10 +2570,10 @@ Memory Map of the image
0x08002a28 0x08002a28 0x00000018 Code RO 157 i.gamepad_buf_pop helpers.o
0x08002a40 0x08002a40 0x00000016 Code RO 158 i.gamepad_buf_reset helpers.o
0x08002a56 0x08002a56 0x00000002 PAD
0x08002a58 0x08002a58 0x000000a4 Code RO 605 i.gamepad_update main.o
0x08002afc 0x08002afc 0x0000003c Code RO 606 i.gameport_init main.o
0x08002b38 0x08002b38 0x0000009c Code RO 607 i.handle_protocol_switch main.o
0x08002bd4 0x08002bd4 0x00000014 Code RO 608 i.is_protocol_enabled main.o
0x08002a58 0x08002a58 0x000000a4 Code RO 602 i.gamepad_update main.o
0x08002afc 0x08002afc 0x0000003c Code RO 603 i.gameport_init main.o
0x08002b38 0x08002b38 0x0000009c Code RO 604 i.handle_protocol_switch main.o
0x08002bd4 0x08002bd4 0x00000014 Code RO 605 i.is_protocol_enabled main.o
0x08002be8 0x08002be8 0x00000030 Code RO 159 i.kb_buf_add helpers.o
0x08002c18 0x08002c18 0x00000020 Code RO 160 i.kb_buf_init helpers.o
0x08002c38 0x08002c38 0x0000001c Code RO 162 i.kb_buf_is_full helpers.o
@@ -2587,13 +2581,13 @@ Memory Map of the image
0x08002c74 0x08002c74 0x00000018 Code RO 164 i.kb_buf_pop helpers.o
0x08002c8c 0x08002c8c 0x0000001c Code RO 165 i.kb_buf_reset helpers.o
0x08002ca8 0x08002ca8 0x00000100 Code RO 300 i.keyboard_reply ps2kb.o
0x08002da8 0x08002da8 0x000001e0 Code RO 609 i.main main.o
0x08002f88 0x08002f88 0x0000006c Code RO 4227 i.malloc mc_p.l(malloc.o)
0x08002ff4 0x08002ff4 0x00000020 Code RO 487 i.mcp4451_is_available mcp4451.o
0x08003014 0x08003014 0x0000002c Code RO 488 i.mcp4451_reset mcp4451.o
0x08003040 0x08003040 0x00000038 Code RO 489 i.mcp4451_write_wiper mcp4451.o
0x08002da8 0x08002da8 0x000001e0 Code RO 606 i.main main.o
0x08002f88 0x08002f88 0x0000006c Code RO 4224 i.malloc mc_p.l(malloc.o)
0x08002ff4 0x08002ff4 0x00000020 Code RO 484 i.mcp4451_is_available mcp4451.o
0x08003014 0x08003014 0x0000002c Code RO 485 i.mcp4451_reset mcp4451.o
0x08003040 0x08003040 0x00000038 Code RO 486 i.mcp4451_write_wiper mcp4451.o
0x08003078 0x08003078 0x00000010 Code RO 14 i.micros delay_us.o
0x08003088 0x08003088 0x000000c4 Code RO 610 i.microsoft_serial_mouse_update main.o
0x08003088 0x08003088 0x000000c4 Code RO 607 i.microsoft_serial_mouse_update main.o
0x0800314c 0x0800314c 0x00000032 Code RO 166 i.mouse_buf_add helpers.o
0x0800317e 0x0800317e 0x00000018 Code RO 167 i.mouse_buf_init helpers.o
0x08003196 0x08003196 0x0000001c Code RO 169 i.mouse_buf_is_full helpers.o
@@ -2601,7 +2595,7 @@ Memory Map of the image
0x080031c8 0x080031c8 0x00000018 Code RO 171 i.mouse_buf_pop helpers.o
0x080031e0 0x080031e0 0x00000016 Code RO 172 i.mouse_buf_reset helpers.o
0x080031f6 0x080031f6 0x00000002 PAD
0x080031f8 0x080031f8 0x00000020 Code RO 611 i.protocol_status_lookup_init main.o
0x080031f8 0x080031f8 0x00000020 Code RO 608 i.protocol_status_lookup_init main.o
0x08003218 0x08003218 0x00000044 Code RO 301 i.ps2kb_get_bus_status ps2kb.o
0x0800325c 0x0800325c 0x0000001c Code RO 302 i.ps2kb_init ps2kb.o
0x08003278 0x08003278 0x0000002c Code RO 303 i.ps2kb_press_key ps2kb.o
@@ -2610,62 +2604,61 @@ Memory Map of the image
0x08003460 0x08003460 0x000000fc Code RO 306 i.ps2kb_read ps2kb.o
0x0800355c 0x0800355c 0x00000020 Code RO 307 i.ps2kb_release_lines ps2kb.o
0x0800357c 0x0800357c 0x00000010 Code RO 308 i.ps2kb_reset ps2kb.o
0x0800358c 0x0800358c 0x000000b4 Code RO 612 i.ps2kb_update main.o
0x0800358c 0x0800358c 0x000000b4 Code RO 609 i.ps2kb_update main.o
0x08003640 0x08003640 0x00000044 Code RO 309 i.ps2kb_write ps2kb.o
0x08003684 0x08003684 0x00000124 Code RO 310 i.ps2kb_write_nowait ps2kb.o
0x080037a8 0x080037a8 0x00000060 Code RO 388 i.ps2mouse_get_bus_status ps2mouse.o
0x08003808 0x08003808 0x000000ac Code RO 389 i.ps2mouse_get_outgoing_data ps2mouse.o
0x080038b4 0x080038b4 0x00000170 Code RO 390 i.ps2mouse_host_req_reply ps2mouse.o
0x08003a24 0x08003a24 0x0000001c Code RO 391 i.ps2mouse_init ps2mouse.o
0x08003a40 0x08003a40 0x000000f8 Code RO 392 i.ps2mouse_read ps2mouse.o
0x08003b38 0x08003b38 0x00000020 Code RO 393 i.ps2mouse_release_lines ps2mouse.o
0x08003b58 0x08003b58 0x00000018 Code RO 394 i.ps2mouse_reset ps2mouse.o
0x08003b70 0x08003b70 0x00000024 Code RO 395 i.ps2mouse_restore_defaults ps2mouse.o
0x08003b94 0x08003b94 0x00000022 Code RO 396 i.ps2mouse_send_update ps2mouse.o
0x08003bb6 0x08003bb6 0x00000002 PAD
0x08003bb8 0x08003bb8 0x000000d8 Code RO 613 i.ps2mouse_update main.o
0x08003c90 0x08003c90 0x00000026 Code RO 397 i.ps2mouse_wait_for_idle ps2mouse.o
0x08003cb6 0x08003cb6 0x0000001a Code RO 398 i.ps2mouse_write ps2mouse.o
0x08003cd0 0x08003cd0 0x00000022 Code RO 399 i.ps2mouse_write_delay_start ps2mouse.o
0x08003cf2 0x08003cf2 0x00000002 PAD
0x08003cf4 0x08003cf4 0x00000124 Code RO 400 i.ps2mouse_write_nowait ps2mouse.o
0x08003e18 0x08003e18 0x00000010 Code RO 401 i.reset_accumulators ps2mouse.o
0x08003e28 0x08003e28 0x00000078 Code RO 614 i.spi_error_dump_reboot main.o
0x08003ea0 0x08003ea0 0x00000030 Code RO 525 i.wait_for_clk_high xt_kb.o
0x08003ed0 0x08003ed0 0x00000040 Code RO 526 i.xtkb_check_for_softreset xt_kb.o
0x08003f10 0x08003f10 0x00000014 Code RO 527 i.xtkb_enable xt_kb.o
0x08003f24 0x08003f24 0x00000014 Code RO 528 i.xtkb_init xt_kb.o
0x08003f38 0x08003f38 0x00000078 Code RO 529 i.xtkb_press_key xt_kb.o
0x08003fb0 0x08003fb0 0x00000020 Code RO 530 i.xtkb_release_lines xt_kb.o
0x08003fd0 0x08003fd0 0x00000020 Code RO 531 i.xtkb_reset_bus xt_kb.o
0x08003ff0 0x08003ff0 0x0000003c Code RO 615 i.xtkb_update main.o
0x0800402c 0x0800402c 0x000000c0 Code RO 532 i.xtkb_write xt_kb.o
0x080040ec 0x080040ec 0x00000079 Data RO 311 .constdata ps2kb.o
0x08004165 0x08004165 0x00000004 Data RO 490 .constdata mcp4451.o
0x08004169 0x08004169 0x00000037 Data RO 622 .constdata main.o
0x080041a0 0x080041a0 0x00000010 Data RO 3922 .constdata system_stm32f0xx.o
0x080041b0 0x080041b0 0x00000008 Data RO 3923 .constdata system_stm32f0xx.o
0x080041b8 0x080041b8 0x00000020 Data RO 4294 Region$$Table anon$$obj.o
0x08003808 0x08003808 0x000000e4 Code RO 389 i.ps2mouse_get_outgoing_data ps2mouse.o
0x080038ec 0x080038ec 0x00000178 Code RO 390 i.ps2mouse_host_req_reply ps2mouse.o
0x08003a64 0x08003a64 0x0000001c Code RO 391 i.ps2mouse_init ps2mouse.o
0x08003a80 0x08003a80 0x000000f8 Code RO 392 i.ps2mouse_read ps2mouse.o
0x08003b78 0x08003b78 0x00000020 Code RO 393 i.ps2mouse_release_lines ps2mouse.o
0x08003b98 0x08003b98 0x00000018 Code RO 394 i.ps2mouse_reset ps2mouse.o
0x08003bb0 0x08003bb0 0x0000001c Code RO 395 i.ps2mouse_restore_defaults ps2mouse.o
0x08003bcc 0x08003bcc 0x00000022 Code RO 396 i.ps2mouse_send_update ps2mouse.o
0x08003bee 0x08003bee 0x00000002 PAD
0x08003bf0 0x08003bf0 0x000000d8 Code RO 610 i.ps2mouse_update main.o
0x08003cc8 0x08003cc8 0x00000026 Code RO 397 i.ps2mouse_wait_for_idle ps2mouse.o
0x08003cee 0x08003cee 0x0000001a Code RO 398 i.ps2mouse_write ps2mouse.o
0x08003d08 0x08003d08 0x00000022 Code RO 399 i.ps2mouse_write_delay_start ps2mouse.o
0x08003d2a 0x08003d2a 0x00000002 PAD
0x08003d2c 0x08003d2c 0x00000124 Code RO 400 i.ps2mouse_write_nowait ps2mouse.o
0x08003e50 0x08003e50 0x00000078 Code RO 611 i.spi_error_dump_reboot main.o
0x08003ec8 0x08003ec8 0x00000030 Code RO 522 i.wait_for_clk_high xt_kb.o
0x08003ef8 0x08003ef8 0x00000040 Code RO 523 i.xtkb_check_for_softreset xt_kb.o
0x08003f38 0x08003f38 0x00000014 Code RO 524 i.xtkb_enable xt_kb.o
0x08003f4c 0x08003f4c 0x00000014 Code RO 525 i.xtkb_init xt_kb.o
0x08003f60 0x08003f60 0x00000078 Code RO 526 i.xtkb_press_key xt_kb.o
0x08003fd8 0x08003fd8 0x00000020 Code RO 527 i.xtkb_release_lines xt_kb.o
0x08003ff8 0x08003ff8 0x00000020 Code RO 528 i.xtkb_reset_bus xt_kb.o
0x08004018 0x08004018 0x0000003c Code RO 612 i.xtkb_update main.o
0x08004054 0x08004054 0x000000c0 Code RO 529 i.xtkb_write xt_kb.o
0x08004114 0x08004114 0x00000079 Data RO 311 .constdata ps2kb.o
0x0800418d 0x0800418d 0x00000004 Data RO 487 .constdata mcp4451.o
0x08004191 0x08004191 0x00000037 Data RO 619 .constdata main.o
0x080041c8 0x080041c8 0x00000010 Data RO 3919 .constdata system_stm32f0xx.o
0x080041d8 0x080041d8 0x00000008 Data RO 3920 .constdata system_stm32f0xx.o
0x080041e0 0x080041e0 0x00000020 Data RO 4291 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080041d8, Size: 0x000008f8, Max: 0x00004000, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08004200, Size: 0x000008f0, Max: 0x00004000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x080041d8 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x080041dc 0x00000014 Data RW 312 .data ps2kb.o
0x20000018 0x080041f0 0x00000020 Data RW 402 .data ps2mouse.o
0x20000038 0x08004210 0x00000014 Data RW 533 .data xt_kb.o
0x2000004c 0x08004224 0x00000024 Data RW 623 .data main.o
0x20000070 0x08004248 0x00000004 Data RW 3217 .data stm32f0xx_hal.o
0x20000074 0x0800424c 0x00000004 Data RW 3924 .data system_stm32f0xx.o
0x20000078 0x08004250 0x00000004 Data RW 4268 .data mc_p.l(stdout.o)
0x2000007c 0x08004254 0x00000004 Data RW 4271 .data mc_p.l(mvars.o)
0x20000080 0x08004258 0x00000004 Data RW 4272 .data mc_p.l(mvars.o)
0x20000084 - 0x0000026d Zero RW 616 .bss main.o
0x200002f1 0x0800425c 0x00000007 PAD
0x200002f8 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
0x200004f8 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o
0x20000000 0x08004200 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x08004204 0x00000014 Data RW 312 .data ps2kb.o
0x20000018 0x08004218 0x0000001c Data RW 401 .data ps2mouse.o
0x20000034 0x08004234 0x00000014 Data RW 530 .data xt_kb.o
0x20000048 0x08004248 0x00000024 Data RW 620 .data main.o
0x2000006c 0x0800426c 0x00000004 Data RW 3214 .data stm32f0xx_hal.o
0x20000070 0x08004270 0x00000004 Data RW 3921 .data system_stm32f0xx.o
0x20000074 0x08004274 0x00000004 Data RW 4265 .data mc_p.l(stdout.o)
0x20000078 0x08004278 0x00000004 Data RW 4268 .data mc_p.l(mvars.o)
0x2000007c 0x0800427c 0x00000004 Data RW 4269 .data mc_p.l(mvars.o)
0x20000080 - 0x0000026d Zero RW 613 .bss main.o
0x200002ed 0x08004280 0x00000003 PAD
0x200002f0 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
0x200004f0 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o
==============================================================================
@@ -2680,7 +2673,7 @@ Image component sizes
2984 350 55 36 621 22700 main.o
132 22 4 0 0 2287 mcp4451.o
1526 76 121 20 0 9446 ps2kb.o
1444 72 0 32 0 11374 ps2mouse.o
1484 66 0 28 0 10990 ps2mouse.o
28 8 192 0 1536 628 startup_stm32f072xb.o
122 18 0 4 0 3603 stm32f0xx_hal.o
178 28 0 0 0 10499 stm32f0xx_hal_cortex.o
@@ -2701,9 +2694,9 @@ Image component sizes
528 52 0 20 0 5894 xt_kb.o
----------------------------------------------------------------------
15626 984 428 120 2164 648760 Object Totals
15666 978 428 116 2160 648376 Object Totals
0 0 32 0 0 0 (incl. Generated)
34 0 0 0 7 0 (incl. Padding)
34 0 0 0 3 0 (incl. Padding)
----------------------------------------------------------------------
@@ -2747,15 +2740,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
16428 1028 428 132 2164 642020 Grand Totals
16428 1028 428 132 2164 642020 ELF Image Totals
16428 1028 428 132 0 0 ROM Totals
16468 1022 428 128 2160 641680 Grand Totals
16468 1022 428 128 2160 641680 ELF Image Totals
16468 1022 428 128 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 16856 ( 16.46kB)
Total RW Size (RW Data + ZI Data) 2296 ( 2.24kB)
Total ROM Size (Code + RO Data + RW Data) 16988 ( 16.59kB)
Total RO Size (Code + RO Data) 16896 ( 16.50kB)
Total RW Size (RW Data + ZI Data) 2288 ( 2.23kB)
Total ROM Size (Code + RO Data + RW Data) 17024 ( 16.63kB)
==============================================================================

View File

@@ -114,7 +114,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart_ex.h)(0x5DFA0893)
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB
-o ibmpc\ps2kb.o --omf_browse ibmpc\ps2kb.crf --depend ibmpc\ps2kb.d)
-o ibmpc\ps2kb.o --omf_browse ibmpc\ps2kb.crf --depend ibmpc\ps2kb.d)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A)
I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x5D9B4298)
I (C:\Keil_v5\ARM\ARMCC\include\stdlib.h)(0x5D9B429A)
@@ -152,12 +152,12 @@ 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)
I (../Inc/ps2kb.h)(0x626EE78C)
I (../Inc/ps2kb.h)(0x626EE78C)
I (../Inc/delay_us.h)(0x617487C7)
F (..\Src\ps2mouse.c)(0x6270437D)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include
-I.\RTE\_ibmpc
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
-IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include
@@ -239,7 +239,7 @@ I (../Inc/shared.h)(0x61B61A00)
I (../Drivers/CMSIS/Include/core_cmFunc.h)(0x5DFA0892)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h)(0x5DFA0880)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma_ex.h)(0x5DFA0893)
@@ -278,7 +278,7 @@ I (../Inc/shared.h)(0x61B61A00)
I (../Inc/main.h)(0x62423606)
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/stm32f0xx.h)(0x5DFA0880)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h)(0x5DFA0880)
I (../Drivers/CMSIS/Include/core_cm0.h)(0x5DFA0892)
I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5D9B4298)

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -34,7 +34,6 @@ uint8_t sample_rate_history[SAMPLE_RATE_HISTORY_BUF_SIZE];
uint8_t sample_rate_history_index;
uint8_t mouse_device_id;
uint8_t ps2mouse_current_mode;
uint8_t ps2mouse_prev_mode;
uint8_t x_accumulator, y_accumulator, scroll_accumulator;
#define PS2MOUSE_PACKET_SIZE_GENERIC 3
@@ -57,22 +56,13 @@ void ps2mouse_release_lines(void)
PS2MOUSE_DATA_HI();
}
void reset_accumulators(void)
{
x_accumulator = 0;
y_accumulator = 0;
scroll_accumulator = 0;
}
void ps2mouse_restore_defaults(void)
{
ps2mouse_sampling_rate = 100;
ps2mouse_resolution = 2;
ps2mouse_scale = 1;
ps2mouse_data_reporting_enabled = 1;
ps2mouse_data_reporting_enabled = 0;
ps2mouse_current_mode = PS2MOUSE_MODE_STREAM;
ps2mouse_prev_mode = PS2MOUSE_MODE_STREAM;
reset_accumulators();
}
void ps2mouse_reset(void)
@@ -190,19 +180,6 @@ void ps2mouse_host_req_reply(uint8_t cmd, mouse_event* mevent)
ps2mouse_write(0, PS2MOUSE_WRITE_DEFAULT_TIMEOUT_MS);
return;
}
if(cmd == 0xEC) // reset wrap mode
{
ps2mouse_current_mode = ps2mouse_prev_mode;
reset_accumulators();
PS2MOUSE_SENDACK();
return;
}
if(ps2mouse_current_mode == PS2MOUSE_MODE_WRAP)
{
ps2mouse_write(cmd, PS2MOUSE_WRITE_DEFAULT_TIMEOUT_MS);
return;
}
switch (cmd)
{
case 0xFE: //resend
@@ -214,17 +191,14 @@ void ps2mouse_host_req_reply(uint8_t cmd, mouse_event* mevent)
break;
case 0xF5: //disable data reporting
ps2mouse_data_reporting_enabled = 0;
reset_accumulators();
PS2MOUSE_SENDACK();
break;
case 0xF4: //enable data reporting
ps2mouse_data_reporting_enabled = 1;
reset_accumulators();
PS2MOUSE_SENDACK();
break;
case 0xF3: //set sampling rate
PS2MOUSE_SENDACK();
reset_accumulators();
if(ps2mouse_read(&ps2mouse_sampling_rate, 150) == 0)
{
sample_rate_history[sample_rate_history_index] = ps2mouse_sampling_rate;
@@ -234,35 +208,26 @@ void ps2mouse_host_req_reply(uint8_t cmd, mouse_event* mevent)
}
break;
case 0xF2: //get device id
reset_accumulators();
PS2MOUSE_SENDACK();
mouse_device_id = 0; // standard ps/2 mouse
// if (sample_rate_history_index > 2 && sample_rate_history[sample_rate_history_index-1] == 80 && sample_rate_history[sample_rate_history_index-2] == 100 && sample_rate_history[sample_rate_history_index-3] == 200)
// mouse_device_id = 3; // intellimouse with scroll wheel
if (sample_rate_history_index > 2 && sample_rate_history[sample_rate_history_index-1] == 80 && sample_rate_history[sample_rate_history_index-2] == 100 && sample_rate_history[sample_rate_history_index-3] == 200)
mouse_device_id = 3; // intellimouse with scroll wheel
if (sample_rate_history_index > 2 && sample_rate_history[sample_rate_history_index-1] == 80 && sample_rate_history[sample_rate_history_index-2] == 200 && sample_rate_history[sample_rate_history_index-3] == 200)
mouse_device_id = 4; // intellimouse 5-button scrolling mouse
ps2mouse_write(mouse_device_id, PS2MOUSE_WRITE_DEFAULT_TIMEOUT_MS);
break;
case 0xF0: // set remote mode
reset_accumulators();
ps2mouse_prev_mode = ps2mouse_current_mode;
ps2mouse_current_mode = PS2MOUSE_MODE_REMOTE;
PS2MOUSE_SENDACK();
ps2mouse_current_mode = PS2MOUSE_MODE_REMOTE;
break;
case 0xEE: // set wrap mode
if(ps2mouse_current_mode != PS2MOUSE_MODE_WRAP)
ps2mouse_prev_mode = ps2mouse_current_mode;
ps2mouse_current_mode = PS2MOUSE_MODE_WRAP;
reset_accumulators();
PS2MOUSE_SENDACK();
ps2mouse_current_mode = PS2MOUSE_MODE_WRAP;
break;
case 0xEB: // read data
PS2MOUSE_SENDACK();
// do stuff
reset_accumulators();
break;
case 0xEA: // set stream mode
ps2mouse_prev_mode = ps2mouse_current_mode;
ps2mouse_current_mode = PS2MOUSE_MODE_STREAM;
reset_accumulators();
PS2MOUSE_SENDACK();
break;
case 0xE9: // status request
@@ -282,13 +247,11 @@ void ps2mouse_host_req_reply(uint8_t cmd, mouse_event* mevent)
ps2mouse_write(first_byte, PS2MOUSE_WRITE_DEFAULT_TIMEOUT_MS);
ps2mouse_write(ps2mouse_resolution, PS2MOUSE_WRITE_DEFAULT_TIMEOUT_MS);
ps2mouse_write(ps2mouse_sampling_rate, PS2MOUSE_WRITE_DEFAULT_TIMEOUT_MS);
reset_accumulators();
break;
case 0xE8: // set resolution
PS2MOUSE_SENDACK();
if(ps2mouse_read(&ps2mouse_resolution, 150) == 0)
PS2MOUSE_SENDACK();
reset_accumulators();
break;
case 0xE6: // reset scale
PS2MOUSE_SENDACK();
@@ -305,17 +268,10 @@ void ps2mouse_host_req_reply(uint8_t cmd, mouse_event* mevent)
uint8_t ps2mouse_get_outgoing_data(mouse_event* this_event, ps2_outgoing_buf* pbuf)
{
if(ps2mouse_current_mode == PS2MOUSE_MODE_REMOTE)
{
x_accumulator += (uint8_t)(this_event->movement_x);
y_accumulator += (uint8_t)(this_event->movement_y);
scroll_accumulator += (uint8_t)(this_event->scroll_vertical);
return 1;
}
if(ps2mouse_current_mode == PS2MOUSE_MODE_WRAP)
return 2;
if(ps2mouse_data_reporting_enabled == 0)
return 3;
return PS2_ERROR_REPORTING_DISABLED;
if(ps2mouse_current_mode != PS2MOUSE_MODE_STREAM)
return PS2_ERROR_UNIMPLEMENTED_MODE;
memset(pbuf->data, 0, PS2_OUT_BUF_MAXSIZE);
pbuf->size = PS2MOUSE_PACKET_SIZE_GENERIC;
@@ -333,7 +289,27 @@ uint8_t ps2mouse_get_outgoing_data(mouse_event* this_event, ps2_outgoing_buf* pb
pbuf->data[0] = pbuf->data[0] | 0x20;
pbuf->data[1] = (uint8_t)(this_event->movement_x);
pbuf->data[2] = (uint8_t)(this_event->movement_y);
pbuf->data[3] = (uint8_t)(this_event->scroll_vertical);
if(mouse_device_id == 3) // 3 button intellimouse with 1 scroll wheel
{
pbuf->data[3] = (uint8_t)(this_event->scroll_vertical);
}
else if(mouse_device_id == 4) // 5 button intellimouse with 2 scroll wheels
{
if(this_event->button_side)
pbuf->data[3] = pbuf->data[3] | 0x10;
if(this_event->button_extra)
pbuf->data[3] = pbuf->data[3] | 0x20;
if(this_event->scroll_horizontal > 0)
pbuf->data[3] = pbuf->data[3] | 0x2;
else if(this_event->scroll_horizontal < 0)
pbuf->data[3] = pbuf->data[3] | 0xe;
if(this_event->scroll_vertical > 0)
pbuf->data[3] = pbuf->data[3] | 0x1;
else if(this_event->scroll_vertical < 0)
pbuf->data[3] = pbuf->data[3] | 0xf;
}
if(mouse_device_id != 0)
pbuf->size = PS2MOUSE_PACKET_SIZE_INTELLIMOUSE;
return PS2_OK;
@@ -402,11 +378,6 @@ uint8_t ps2mouse_write_nowait(uint8_t data)
delay_us(CLKFULL);
PS2MOUSE_CLK_HI();
delay_us(CLKHALF);
// if(PS2MOUSE_READ_CLK_PIN() == GPIO_PIN_RESET)
// {
// ps2mouse_release_lines();
// return PS2_ERROR_HOST_INHIBIT;
// }
delay_us(BYTEWAIT_END);
return PS2_OK;
}