new curve for quad mouse

This commit is contained in:
dekunukem
2022-08-02 03:01:04 +01:00
parent b6f48828f4
commit 42154c6c23
19 changed files with 947 additions and 880 deletions

View File

@@ -93,8 +93,8 @@
<flags>2</flags>
<showCmd>3</showCmd>
<MinPosition>
<xPos>-32000</xPos>
<yPos>-32000</yPos>
<xPos>-1</xPos>
<yPos>-1</yPos>
</MinPosition>
<MaxPosition>
<xPos>-1</xPos>
@@ -1838,7 +1838,7 @@
<Name>Debug</Name>
<Buttons>
<Len>2373</Len>
<Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data>
<Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data>
</Buttons>
<OriginalItems>
<Len>898</Len>
@@ -3606,9 +3606,9 @@
<ActiveTab>0</ActiveTab>
<Doc>
<Name>../Src/main.c</Name>
<ColumnNumber>3</ColumnNumber>
<ColumnNumber>0</ColumnNumber>
<TopLine>303</TopLine>
<CurrentLine>324</CurrentLine>
<CurrentLine>333</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>

View File

Binary file not shown.

View File

@@ -29,7 +29,7 @@ Project File Date: 07/22/2022
Build target 'apple_all'
compiling main.c...
linking...
Program Size: Code=10392 RO-data=520 RW-data=76 ZI-data=2164
Program Size: Code=10556 RO-data=568 RW-data=76 ZI-data=2164
FromELF: creating hex file...
"apple_all\apple_all.axf" - 0 Error(s), 0 Warning(s).
@@ -54,7 +54,7 @@ Package Vendor: Keil
<h2>Collection of Component Files used:</h2>
* Component: ARM::CMSIS:CORE:5.3.0
Build Time Elapsed: 00:00:01
Build Time Elapsed: 00:00:05
</pre>
</body>
</html>

View File

@@ -1,19 +1,19 @@
:020000040800F2
:10000000C0080020D5000008451600088514000827
:10000000C0080020D50000085916000899140008FF
:1000100000000000000000000000000000000000E0
:10002000000000000000000000000000831900082C
:1000300000000000000000008D160008851900086F
:100020000000000000000000000000009719000818
:100030000000000000000000A11600089919000847
:10004000E7000008E7000008E7000008E7000008F4
:10005000E7000008E7000008E7000008E7000008E4
:10006000E7000008E7000008E7000008E7000008D4
:10007000E7000008E7000008E7000008E7000008C4
:10008000E7000008E7000008E7000008591A000828
:10009000E7000008691A0008791A0008E70000085C
:1000A000E700000891160008E7000008E7000008D4
:10008000E7000008E7000008E70000086D1A000814
:10009000E70000087D1A00088D1A0008E700000834
:1000A000E7000008A5160008E7000008E7000008C0
:1000B000E7000008E7000008E7000008E700000884
:1000C0000348854600F04EF80048004775240008B4
:1000C0000348854600F04EF80048004789240008A0
:1000D000C00800200448804704480047FEE7FEE7C8
:1000E000FEE7FEE7FEE7FEE7FD190008C100000895
:1000E000FEE7FEE7FEE7FEE7111A0008C100000880
:1000F00030B50B46014600202022012409E00D46C0
:10010000D5409D4205D31D469540491B2546954047
:1001100040191546521E002DF1DC30BD03460B433D
@@ -23,7 +23,7 @@
:10015000F6E710B513460A4604461946FFF7F0FFC6
:10016000204610BD064C0125064E05E0E36807CC8D
:100170002B430C3C98471034B442F7D3FFF7A4FF4D
:10018000802A0008A02A000870B50024014620310A
:10018000542B0008742B000870B500240146203160
:100190004A78022A03D004218163012416E0026810
:1001A00013680E25AB431360026813685B085B009D
:1001B00013600122056C1346AB40C56B6B604A703F
@@ -65,7 +65,7 @@
:1003F0001146901E00F012F800221146501E00F027
:100400000DF808BD00100240C106C90E0120884049
:10041000014908607047000000E100E010B501F0FC
:1004200013F910BDF8B504460068434DC00352D51A
:100420001DF910BDF8B504460068434DC00352D510
:10043000E8690026C00007D4E96928040143E9619E
:10044000E9690140012600913C480168C90510D4C2
:100450000168821511430160FFF784FF074604E03D
@@ -104,10 +104,10 @@
:10066000E9680843606000F02DF86168084A0906EF
:10067000090F515CC840074908600020FFF790FE51
:100680000020F8BD00200240001002408813000046
:10069000672A00083C0000200148006870470000FD
:100690003B2B00083C000020014800687047000028
:1006A0003C0000200448054900684968044A49059F
:1006B000490F515CC84070473C00002000100240C8
:1006C000772A000830B516A30FCB89B06C460FC44B
:1006C0004B2B000830B516A30FCB89B06C460FC476
:1006D00017A30FCB0FC41A494A680C2014460440D4
:1006E0001848042C05D0184B082C04D00C2C00D131
:1006F000184609B030BD9402240F6D462C5DC96ABE
@@ -190,7 +190,7 @@
:100BC0004168890889004160A06D0B4D002803D061
:100BD0004563A06DFFF7D8FA606D0028B8D0456373
:100BE000606DFFF7D1FAF8BDC16880680090F8BD6C
:100BF0002046FFF797FFF8BD03180008F8B504007A
:100BF0002046FFF797FFF8BD17180008F8B5040066
:100C000007D0002625464035A662687F002802D01E
:100C100005E00120F8BD2E77204600F04BF80223B6
:100C20006B77206801684022914301600721E068EA
@@ -220,17 +220,17 @@
:100DA0004B68934302E001684B6813434B60016852
:100DB0004A68E0231A434A6000680168490603D480
:100DC0000168402211430160002020772846F0BDD1
:100DD000A116000835170008D71600086917000883
:100DD000B516000849170008EB1600087D17000833
:100DE00070B501220920D103C006FFF7B4FA0F4CF9
:100DF0000F4D2078DE2801D00120E8700B4801F06B
:100E0000CDFCA078032805D101210022490309481F
:100E0000EDFCA078032805D10121002249030948FF
:100E1000FFF7A1FA054A2023D11A0748FFF776FF0A
:100E200001F06AFC05494018A86070BD78020020F6
:100E200001F08AFC05494018A86070BD78020020D6
:100E3000180000200008004884000020C83200008C
:100E4000042204490428086902D0904308617047CD
:100E50001043FBE700E000E070470000094910B5CF
:100E6000401E884201D9012010BD074C606103215A
:100E7000081F00F0E9FB0020A0610720206100208E
:100E7000081F00F0F3FB0020A06107202061002084
:100E800010BD0000FFFFFF0000E000E010B5FFF71D
:100E9000E3FF10BD7047704770B502462032137FE4
:100EA000012B1BD001231377022454770468656853
@@ -239,7 +239,7 @@
:100ED0000C43846053770020107770BD022070BDF2
:100EE00070B5040005D025462035687F002802D063
:100EF00006E0012070BD00202877204600F00AF8A7
:100F000002206877211D206800F0BEFD012068776F
:100F000002206877211D206800F0C8FD0120687765
:100F1000002070BD08B50122016892072048914267
:100F200007D1C16901221143C161C069104000901D
:100F300008BD1C4A91420DD1C26989150A43C2619C
@@ -251,440 +251,453 @@
:100F90000840009002211620FFF740FA1620EAE7E9
:100FA0000010024000200040004401400048014081
:100FB0000222014620314A77026813680120034368
:100FC0001360487700207047F8B505460446203581
:100FD000287F012817D001272F7702206877226801
:100FE00090687726FF23B0431B02984390600868FF
:100FF000502837D00EDC202857D006DC00284ED0F1
:10100000102840D14EE00220F8BD302850D04028B2
:1010100039D13CE060282DD0702817D0012212036E
:10102000801A0ED090422ED1CB684A688968206819
:1010300000F074FD206881680122920311438160F1
:1010400021E020688168C908C900F8E7CB684A68D0
:101050008968206800F062FD21688868B0433043E9
:10106000886010E0CA684968206800F06AFD502175
:10107000206806E0CA684968206800F073FD6021B6
:10108000206800F056FD6F7700202877F8BDCA6809
:101090004968206800F055FD40212068F1E70021F3
:1010A0002068EEE710212068EBE720212068E8E7C0
:1010B00030212068E5E7704770B504460068016993
:1010C0000025C9438907002915DBC168C943890781
:1010D00011D4E91E01610120207720688069800712
:1010E000204602D0FFF7E7FF04E000F096F8204624
:1010F00000F094F8257720680169C943490717D49F
:10110000C168C943490713D40421C94301610220BE
:101110002077206880698005800F204602D0FFF785
:10112000CAFF04E000F079F8204600F077F8257750
:1011300020680169C943090716D4C168C943090772
:1011400012D40821C9430161042020772068C069B6
:101150008007204602D0FFF7AEFF04E000F05DF804
:10116000204600F05BF8257720680169C943C9066D
:1011700017D4C168C943C90613D41021C9430161FA
:10118000082020772068C0698005800F204602D0A3
:10119000FFF791FF04E000F040F8204600F03EF831
:1011A000257720680169C943C90708D1C168C943C7
:1011B000C90704D1891E0161204600F031F820687A
:1011C0000169C943090609D4C168C943090605D4A0
:1011D0008021C94301612046FFF75CFE2068016958
:1011E000C943490609D4C168C943490605D4402109
:1011F000C9430161204600F083F820680169C943B2
:10120000890609D4C168C943890605D42021C94388
:1012100001612046FFF73FFE70BD70477047000038
:10122000F8B5344C07462068334E874245D1E06814
:1012300001F097FA05002ED00021695E304600F0DB
:1012400029FF02213046695E1C3000F023FFE06870
:1012500001F092FA284800F05DFFB06126481C308A
:1012600000F058FF244A1C329061B06900F024FF5E
:1012700061680968C862906900F01EFFA16809688A
:10128000C862002D19D0AA79FF2109200131C006BA
:10129000002A0DD109E00021174800F0FBFE164896
:1012A00000211C3000F0F6FED4E72A7A002A01D093
:1012B000002200E00122FFF74EF86068874209D162
:1012C000B069002806D00C4802DD01F0D0FA01E038
:1012D00001F0C4FAA068874208D107481C30806931
:1012E000002803D0054802DD01F0C1FAF8BD01F085
:1012F000B5FAF8BD040000204C0000206800002072
:10130000704770B5040005D025466035687A00281E
:1013100002D006E0012070BD00202872204600F0B7
:1013200027F8242068722068016849084900016094
:10133000204600F0C9FC0128EDD0606A002802D0E8
:10134000204600F022FC206841680922D202914325
:101350004160206881682A22914381602068016889
:10136000012211430160204600F074FC70BD0000B2
:1013700000B500680F4987B0884218D10E488269CD
:10138000012189030A438261806908400590032096
:101390004002009002200190002002900320039060
:1013A0000120049009206946C006FEF71FFF07B020
:1013B00000BD00000038014000100240FFB50646A5
:1013C00004466036707A83B00D46202858D1002D2F
:1013D0000CD00598002809D00120A16800038142A3
:1013E00007D12069002804D1E80702D0012007B006
:1013F000F0BD307A012843D0012030720020E06631
:1014000021207072FEF7AEFF019027464037059805
:1014100038820598788218E0788A401E788206988B
:101420000090002280212046019B00F0FBFC002858
:1014300018D10120A1680003814202D1206900284F
:1014400012D02168287808856D1C788A0028E3D19D
:1014500006980090002240212046019B00F0E2FC0B
:10146000002808D00320C2E728882168C005C00DE5
:101470000885AD1CE9E72020707200203072B6E7C5
:101480000220B4E7FEE70000F0B5374887B04269B4
:101490000121C9040A43426142690A400592426936
:1014A00089100A43426142690A4005924269490033
:1014B0000A43426140694C110840059000222146D0
:1014C0002A48FEF748FFFF26093609200122314647
:1014D000C006FEF740FF00220A212548FEF73BFF29
:1014E000244F012239462248FEF735FF0022A10091
:1014F0007806FEF730FF0094002401250195029440
:1015000069461A480394FEF771FE0096112602946C
:101510006946780601960394FEF768FE1648009027
:1015200002200290019469461148FEF75FFE0A20EE
:10153000009002946946019503940D48FEF756FE0B
:10154000029469460A48009701960394FEF74EFEFE
:10155000E803009002946946019503947806FEF72B
:1015600045FE07B0F0BD0000001002400008004832
:101570000004004824F50000110A000010B50D48D1
:101580000B4901600021416081600161416181611D
:101590000722016212024162C26081620722016376
:1015A000C2624163FFF72AFB002800D0FEE710BDAE
:1015B000003001408400002010B50121124886B09F
:1015C0008907016000242F21846041600461611E4D
:1015D0008461C160FFF784FC002800D0FEE7012091
:1015E0000003009069460848FFF7EEFC002800D091
:1015F000FEE7049404A904480594FFF74DFC002875
:1016000000D0FEE706B010BDE800002010B50C4881
:101610000A490160E1214902416000218160C16005
:1016200001618161C1610C22016242614162FFF787
:1016300068FE002800D0FEE710BD00000038014021
:10164000E8010020704700008307FF22DB0E9A406C
:101650008907090E994000280BDA0007000F0838A7
:10166000830808489B001818C36993430B43C36160
:101670007047830804489B001B1818689043084370
:101680001860704700ED00E000E400E070470000E3
:1016900010B50248FFF748FA10BD00008400002092
:1016A00010B50168C968026C1180016C891C016465
:1016B00001464031CA88521ECA80C988002909D112
:1016C00001684A6840239A434A60C18F002901D1CA
:1016D00000F06EF810BD10B501464031CC880368AB
:1016E000026C012C11D9DB681380026C921C02641D
:1016F000CA88921ECA80CA88012A0DD1026853681E
:10170000012424032343536006E01C7B531C036421
:101710001470CA88521ECA80C988002909D101687C
:101720004A6860239A434A60C18F002901D100F0C2
:101730003FF810BD10B5816B02680988D160816BDC
:10174000891C8163C18F491EC187C18F00290AD1BD
:1017500001684A6880239A434A604621095A002951
:1017600001D100F025F810BD10B5C38F0268816B60
:10177000022B07D30988D160816B891C8163C18FDB
:10178000891E05E04B1C836309781173C18F491EC4
:10179000C187C18F00290AD101684A6880239A4312
:1017A0004A604621095A002901D100F001F810BD14
:1017B00070B50446FEF7D6FD024620684168202534
:1017C000A94341606421204600F024F8002802D09B
:1017D000206E28432066226E204601214030002AD8
:1017E00004D041772046FFF79DF970BD427F4177D5
:1017F000042A204602D0FFF7F3FA70BDFFF784FAFF
:1018000070BD10B5406A002146221152C187FFF712
:1018100089F910BDF8B50F460B4615460092032115
:1018200004460022C90200F01BF82026002812D12D
:101830003B46002280212046009500F05CF80028FD
:1018400009D103213B46002249022046009500F0C1
:1018500007F8002803D0206E304320660320F8BD2F
:10186000F8B51D4617460E4604463DE003214902E1
:101870008E4205D1002F03D1017B684601700078AC
:10188000681C31D0002D05D0FEF76CFD0699401A7A
:10189000A84229D320684168E022914341606068F2
:1018A000C11FFD390CD10121A068C903884202D0B3
:1018B0004911884204D120680168402291430160A7
:1018C0000120A16A4003814207D121680A6882434E
:1018D0000A6021680A6802430A6001204034607788
:1018E000002020770320F8BD206881683140B9428C
:1018F000BCD10020F8BDF8B51D4617460E4604467B
:1019000033E0681C31D0002D05D0FEF72BFD069981
:10191000401AA84229D320684168E02291434160DF
:101920006068C11FFD390CD10121A068C90388423C
:1019300002D04911884204D12068016840229143B5
:1019400001600120A16A4003814207D121680A6831
:1019500082430A6021680A6802430A600120403419
:101960006077002020770320F8BD2068816830462A
:10197000884304D00020B842C3D10020F8BD012024
:10198000F9E7704710B5FEF7F3FCFFF77FFA10BDDB
:1019900030B599B0202001250024009008950994C5
:1019A0006846FEF7D3FE002800D0FEE707200D9022
:1019B00003200E900F94012110940DA8FEF7C2FD94
:1019C000002800D0FEE7119511A81395FEF72AFD17
:1019D000002800D0FEE7FEF75FFE7D21C900FEF77C
:1019E00087FBFFF73BFA0420FFF72AFA0022114693
:1019F000501EFEF713FD19B030BD000012480168FB
:101A00000122114301604168104A114041600168A0
:101A10000F4A114001600168012292049143016064
:101A200041683F22120491434160C16A09090901DA
:101A3000C162016B074A11400163416B49084900CB
:101A40004163002181607047001002400CB8FF081C
:101A5000FFFFF6FE2CFEFCFF10B50248FFF72CFB43
:101A600010BD00002801002010B50248FFF724FB3C
:101A700010BD00006801002010B50248FFF71CFBF4
:101A800010BD0000A8010020F0B502681D4B012424
:101A9000A4071D4D984203D0A04201D0A84203D113
:101AA0007026B2434E683243184E194F98420DD0FB
:101AB000A0420BD0A84209D0164CA04206D0B0429A
:101AC00004D0B84202D0144CA04204D10324240212
:101AD000A243CC6822438024A2434C692243026083
:101AE0008A68C2620A688262984206D0B04204D014
:101AF000B84202D0084A904201D10969016301212C
:101B00004161F0BD002C0140000400400040014054
:101B100000440140002000400048014030B5846886
:101B2000FF252D021B021343AC430B432343836069
:101B300030BD826870239A430A4307210A438260BA
:101B4000704730B5036A046A6408640004628469FB
:101B5000F025AC43120122430A24A3430B438261C4
:101B6000036230BD30B5036A1024A3430362846965
:101B7000036A0F252D031203AC432243A024A34381
:101B8000090119438261016230BD10B5818CC9071A
:101B900007D001684A6801235B049A43836A1A43A9
:101BA0004A60818C890707D501684A6801231B04B4
:101BB0009A43C36A1A434A60818C490707D5016872
:101BC0004A6801239B049A43036B1A434A60818C41
:101BD000090707D501684A680123DB039A43436B71
:101BE0001A434A60818CC90607D5026891680123AF
:101BF0001B039943836B19439160818C890607D538
:101C000001688A6801235B039A43C36B1A438A60A5
:101C1000818C490612D503685A6801210905046CB4
:101C20008A4322435A60026C8A4207D10268516893
:101C300003235B059943436C19435160818C09066A
:101C400007D501684A680123DB04806C9A4302438C
:101C50004A6010BDF8B500260446C666FEF782FB52
:101C6000054616492068884202D0154988421DD190
:101C70000068144F000709D501212B4600224905B1
:101C80002046009700F0CEF800280DD120680068AB
:101C900040070BD501212B460022890520460097DD
:101CA00000F0C0F8002801D00320F8BD20206034E7
:101CB0006072A07226720020F8BD0000003801405A
:101CC00000440040FFFFFF01F8B504462369A26805
:101CD000E5691A43636910202B43002125681A43E4
:101CE0002B680E46474F3B4013432B6023685A68CE
:101CF00003252D03AA43E5682A435A60236AA26993
:101D000025681A43AB680B273F02BB431343AB6004
:101D10003D4F25683D4B0203BD420AD11B6B9B071B
:101D20009B0F20D0012B14D0022B14D0032B1BD1DE
:101D30000DE0374FBD4210D11B6B03273F043B40E2
:101D400011D09B1A05D09B1A05D093420CD10220CA
:101D50000AE0042008E0082006E02E4B9D4202D055
:101D60002D4B9D4200D100200123E769DB039F42F8
:101D700022D100280CD002280DD0042813D0082826
:101D800017D001260A0912010807400F10432EE060
:101D9000FEF788FC09E06168204A48088018FEF7D1
:101DA000A7F981B2EEE7FEF78DFC616840004A08B2
:101DB000F4E761684808F1E7002808D0022809D054
:101DC00004280CD0082815D001263046F8BDFEF7AF
:101DD00069FC06E06168124A480880180DE0FEF7C9
:101DE00071FC61684A088018FEF782F980B22168A8
:101DF000C860EAE761684808C018FEF779F980B260
:101E0000E860E2E7F369FFEF0038014000100240AC
:101E10000044004000480040004C00400024F40012
:101E200000127A00FFB581B017460E4604460A9D9F
:101E30001DE0681C1BD0002D05D0FEF793FA049915
:101E4000401AA84213D920680168FF22A1329143A9
:101E50000160206881684908490081602020603461
:101E60006072A07200202072032005B0F0BD2068CF
:101E7000C1693046884304D00020B842D9D0002040
:101E8000F3E70120F9E700000FB410B503A9044BF4
:101E9000044A029800F018F810BC08BC04B01847B7
:101EA000FD2000084000002002E008C8121F08C101
:101EB000002AFAD170477047002001E001C1121FCB
:101EC000002AFBD170470000FFB58DB00F460546D4
:101ED000002606E025280AD0109A0F9990476D1C1D
:101EE000761C28780028F5D1304611B0F0BD0024CA
:101EF0000121674A009400E004436D1C2B780846DA
:101F0000203B98401042F7D128782E2815D1042084
:101F1000044368786D1C2A280AD101CF6D1C0090FB
:101F20000BE000990A225143303940186D1C009093
:101F30002878014630390929F3D92878692843D00F
:101F400006DC0028D0D063280BD0642804D13BE005
:101F500073280FD075284CD0109A0F999047761C93
:101F600094E03878694608720020487202A801900F
:101F7000012003E0386801900020C0433F1D610745
:101F80000CD5002400E0641C00998C420FDA8442D6
:101F9000F9DB0199095D0029F5D108E0002400E092
:101FA000641C8442FCDB0199095D0029F8D13619D3
:101FB00007E0019801990078491C0191109A0F9946
:101FC0009047641EF5D261E00A20019001CF0028FD
:101FD00002DA40422D2102E0210504D52B216A4678
:101FE0001172012103E0E10701D02021F7E70C91F4
:101FF00004E00A20019001CF00210C910BA90B9164
:1020000008E00199FEF774F80A460B993032491E30
:102010000B910A700028F4D10B9803A9081A2030FC
:102020000190600701D5009801E00120009001991E
:10203000884203DD01460198081A00E000200024D0
:10204000009006E002A8109A005D0F999047641C6A
:10205000761C0C988442F5DB04E0109A30200F992E
:102060009047761C0099481E00900029F5DC08E096
:102070000B980B990078491C0B91109A0F99904777
:10208000761C0199481E01900029F1DC6D1C28E79F
:1020900009280100027D520012181182017D491C9D
:1020A000C9B20175022901D30021017570470902E7
:1020B000014308B270470000002800DA40420028BF
:1020C00001DD282802DBFF20F53070470149400080
:1020D000085A70475C29000800B5014600F00CFB67
:1020E000411800F009FB8842FBD300BD10B502493E
:1020F0000860FEF75DFF10BD0000002013B50A2345
:10210000012269460248FFF759F900981CBD0000FA
:10211000E801002010B500210A4653001C181023C6
:10212000E35E521C5918022AF7DBC80F4018401012
:1021300010BD10B50C46034600F01FF8002801D072
:10214000012010BD19785868445419789868425491
:102150001878401C4007400F1870002010BD10B5C3
:102160000446082000F092FA6060082000F08EFA21
:10217000A060204600F025F810BD41780078401C92
:102180004007400F814201D1012070470020704775
:1021900010B543780478A34201D1012010BD4468F2
:1021A000E35C0B7081684078085C1070002010BD03
:1021B00041780278914203D0491C4907490F417088
:1021C000704710B5044600202070607008216068D8
:1021D000FDF7BDFF0821A068FDF7B9FF10BD0000A5
:1021E00070B51D4C207900282ED0FEF7BBF8E168B1
:1021F0000025401AFA2803D97B2000F0FBF822E0E2
:102200002079002820D01448103000F046F800282B
:1022100017D02079002817D00F4A1048921D511E60
:10222000FFF7B6FF00280FD10B48103000F05CF824
:10223000094AA1791032607900F0BCF9002804D075
:1022400006E000F007F9257170BD00F003F9257173
:102250000248FFF7ADFF70BD180000209802002073
:1022600000B50B46024600F020F8002801D00120FE
:1022700000BD1178506843541078401C8007800FCF
:102280001070002000BD10B50446042000F0FEF9D7
:102290006060204600F028F810BD41780078814247
:1022A00001D1012070470020704741780078401C20
:1022B0008007800F814201D10120704700207047C4
:1022C000427803789A4201D1012070474068805CCF
:1022D00008700020704741780278914203D0491C71
:1022E0008907890F4170704710B500210170417056
:1022F00040680421FDF72BFF10BD000070B5FEF70C
:1023000031F80446084D07E004212846FEF71AF884
:10231000002801D0012070BDFEF724F8001B0A2818
:10232000F2D3022070BD000000040048F1B5002582
:102330008024114FE600002231463846FEF70BF8A4
:10234000B420FFF7C9FE012231463846FEF703F8F4
:102350005020FFF7C1FE04213846FDF7F3FF0128A6
:1023600000D1254364088C20FFF7B6FE002CE2D193
:10237000009805700020F8BD0004004870B50C46B8
:102380000546FFF7BBFF012805D02846FFF7CEFF23
:10239000204600F0C9FA70BD10B54B21C9001448A1
:1023A000FFF7ECFF124C641EA07000280FD160787C
:1023B000102807D014280BD0162814D0362806D1A0
:1023C0007D2011E001202071FDF7CCFFE06010BD01
:1023D00007480F30FFF761FF002801D07B2003E0A2
:1023E00000F038F810BD0B2000F004F810BD00001C
:1023F00019000020F8B50122154E0746950229461E
:102400003046FDF7A8FFC82000F08EFA03281ED042
:1024100007240120A040384201D0012200E0002220
:1024200004213046FDF797FF002229463046FDF78C
:1024300092FFA020FFF750FE012229463046FDF70B
:102440008AFFAA20FFF748FE641EE2D50020F8BDEF
:102450000004004808B569460548FFF731FF044805
:10246000FFF739FF68460078FFF7C4FF08BD00009A
:10247000280000201CB5FDF783FFFFF789FAFFF75E
:1024800003F8FFF77BF8FFF7C1F8FFF795F83B4833
:1024900000243B4E84603849C6602F25046122C069
:1024A00080270C3090C01C38FEF71AFD002800D0A1
:1024B000FEE7324833494030846022C08460C46003
:1024C0003149046141600838FEF70AFD002800D058
:1024D000FEE72A482D49403884608761C660046160
:1024E00022C00838FEF7FCFC002800D0FEE70120DF
:1024F00000940190264C00232278264926A0FFF75D
:10250000C3FC1E488038FFF7F1FD20461030FFF76E
:10251000BAFE2648FFF723FE2046183000F00CF9DB
:10252000224820214038FDF712FE204A134820237C
:10253000203AD11AE438FEF7E9FB01250926ED031C
:10254000F6066F11E078002801D000F0B1F900F034
:10255000D3F8A168884204D9002229463046FDF705
:10256000FAFE39461248FDF7EDFE0028EAD0FFF7E3
:1025700013FFFFF735FEE5E7004401406801002046
:10258000FFFF00000048014010270000002000402D
:10259000180000202C2A000825730A72657625642D
:1025A000207625642E25642E25640A0098020020DA
:1025B0000004004870B500241646802801D2314A34
:1025C000145C02293BD0002C39D080253A282CD02D
:1025D00037283DD04E283BD0622839D0452843D0FB
:1025E000472841D048283FD049283DD04A283BD0F1
:1025F0004B2839D04C2837D04D2835D04F2833D0F0
:10260000502831D051282FD052282DD053282BD0EC
:10261000602829D0672827D0692825D06A2823D0A8
:102620006C2821D0002908D12AE0002907D01648BB
:10263000012102789143017003D0214603E0042078
:1026400070BD214629433046FFF70AFE002070BDC9
:10265000002904D071213046FFF702FE06E0F12187
:102660003046FFF7FDFD06E0002904D07921304611
:10267000FFF7F6FDE1E779213046FFF7F1FDE0E7EE
:102680002C43DAE7AC29000814000020F0B50B3029
:10269000C108C900144F0026144A0FE003688B429A
:1026A0000BD38B4205D95C1A4318456830C3083BED
:1026B00000E04368136002C004E0021D10680028B7
:1026C000ECD13046002803D13868002801D0002022
:1026D000F0BD064A06481060064A121AD208D20017
:1026E00044C001203860D7E74800002044000020A3
:1026F000C4020020C0040020024800680068406A4C
:10270000704700000000002010B50B46044600F0A2
:102710001DF8002801D0012010BD20780C2261682E
:10272000504308181946FDF7F9FC2078401C0007B3
:10273000000F2070002010BD10B50446C020FFF728
:10274000A5FF6060204600F020F810BD41780078B9
:10275000401C0007000F814201D10120704700207A
:10276000704741780278914201D10020704740685B
:102770000C2251434018704741780278914203D0AF
:10278000491C0907090F4170704710B500210170FD
:1027900041704068C021FDF7DAFC10BD70B50446F9
:1027A0008078092824D0082842D001283FD1202150
:1027B0002848FDF7CCFC2748CD2101706178417095
:1027C000802585700321C170234908220978017191
:1027D0000021417181710121C171002104465834E9
:1027E000635C002B32D0022B29D0012B29D02BE0A7
:1027F00061792079FFF75BFC164A4C321080E17951
:10280000A079FFF754FC5080207A12494042908012
:10281000607B9071A07B1072E07BD071207C507245
:10282000607C90720C484C311830FFF76DFF70BD22
:102830000848A27921794030FFF77BFC70BD8154B4
:1028400002E00B462B438354521CD2B2491C102980
:10285000C6DB70BD580200201800002010B5817B37
:10286000491E8907890F817300F00AF810BD10B561
:10287000817B491C8907890F817300F001F810BD25
:1028800070B50446807B09490D5CA1882068EA0781
:1028900000D00122FDF75FFDA807A189A06801D53E
:1028A000012200E00022FDF756FD70BD5829000806
:1028B00011A0FFF7E9FA134D0024295D12A0FFF7DC
:1028C000E3FA641C202CF8DB10A0FFF7DDFA134DAF
:1028D000002408212846FDF73AFD6420FDF778FC26
:1028E000641C642CF5DBBFF34F8F0E490C48C860A5
:1028F000BFF34F8F00BFFDE7535049204552524F61
:10290000520A000078020020256420000A726562E5
:102910006F6F74696E672E2E2E0A00000004004847
:102920000400FA0500ED00E070B50546FDF71AFD5C
:102930000446084EFDF716FD001BA84201D90320EE
:1029400070BD04213046FDF7FDFC0128F2D10020C6
:1029500070BD00000004004800010302F401D430FF
:102960000528DE22361F601C0F1A1A186716E81495
:1029700092135B1240113C104B0F6B0E990DD30C50
:102980001A0C6A0BC30A240A8D09FC087208ED07A9
:102990006D07F3067C060A069C053105CA04660429
:1029A0000504A6034B03F2029B0246020000252702
:1029B000292B2F2D3539333B37316761191B1D1FEB
:1029C000232141453F47433D4975010305070B0955
:1029D0004D514B534F6571550D0F1113175B5D57DB
:1029E0005F5971056F637300000000000000000074
:1029F000000F003337391D2D2F310D27292B2503CB
:102A000000005500000000000000000019751B00C8
:102A10006F00001B000D0500110000000000000009
:102A20000000000000000000006F6F6F555342343B
:102A300056432050726F746F636F6C20426F6172E7
:102A4000640A4170706C65204C6973612C204D6183
:102A5000632026204144420A64656B754E756B65A0
:102A60006D20323032320000000000000000000112
:102A70000203040607080900000000010203040025
:102A8000A02A0008000000204C000000A81E00083A
:102A9000EC2A00084C00002074080000B81E000852
:102AA0000000000000000000000000000000000026
:102AB0000000000000000000000000000000000016
:102AC0000000000000000000000000000000000006
:102AD00000000000000000000000000000127A006A
:0C2AE000000000000000000000000000EA
:100FC00013604877002070470268D36801210B4303
:100FD000D360006802680A43026000207047F8B5D9
:100FE000054604462035287F012817D001272F7792
:100FF00002206877226890687726FF23B0431B029F
:10100000984390600868502837D00EDC202857D0CD
:1010100006DC00284ED0102840D14EE00220F8BD5A
:10102000302850D0402839D13CE060282DD070289D
:1010300017D001221203801A0ED090422ED1CB6815
:101040004A688968206800F073FD20688168012281
:1010500092031143816021E020688168C908C900BA
:10106000F8E7CB684A688968206800F061FD21686C
:101070008868B0433043886010E0CA6849682068D7
:1010800000F069FD5021206806E0CA6849682068C0
:1010900000F072FD6021206800F055FD6F770020A0
:1010A0002877F8BDCA684968206800F054FD4021DF
:1010B0002068F1E700212068EEE710212068EBE7C7
:1010C00020212068E8E730212068E5E7704770B507
:1010D0000446006801690025C9438907002915DB1A
:1010E000C168C943890711D4E91E01610120207735
:1010F000206880698007204602D0FFF7E7FF04E000
:1011000000F096F8204600F094F8257720680169F1
:10111000C943490717D4C168C943490713D40421F7
:10112000C943016102202077206880698005800F13
:10113000204602D0FFF7CAFF04E000F079F820460D
:1011400000F077F8257720680169C943090716D4AC
:10115000C168C943090712D40821C94301610420A9
:1011600020772068C0698007204602D0FFF7AEFFD5
:1011700004E000F05DF8204600F05BF82577206879
:101180000169C943C90617D4C168C943C90613D444
:101190001021C9430161082020772068C0698005BB
:1011A000800F204602D0FFF791FF04E000F040F8E6
:1011B000204600F03EF8257720680169C943C90739
:1011C00008D1C168C943C90704D1891E01612046FD
:1011D00000F030F820680169C943090609D4C168E4
:1011E000C943090605D48021C94301612046FFF7A0
:1011F00051FE20680169C943490609D4C168C94341
:10120000490605D44021C9430161204600F082F817
:1012100020680169C943890609D4C168C9438906A0
:1012200005D42021C94301612046FFF734FE70BD7B
:1012300070477047F8B5344C07462068334E8742F4
:1012400045D1E06801F0ADFA05002ED00021695EBD
:10125000304600F029FF02213046695E1C3000F064
:1012600023FFE06801F0A8FA284800F05DFFB061B4
:1012700026481C3000F058FF244A1C329061B069A7
:1012800000F024FF61680968C862906900F01EFFE1
:10129000A1680968C862002D19D0AA79FF21092028
:1012A0000131C006002A0DD109E00021174800F0E5
:1012B000FBFE164800211C3000F0F6FED4E72A7A27
:1012C000002A01D0002200E00122FFF744F8606804
:1012D000874209D1B069002806D00C4802DD01F030
:1012E000E6FA01E001F0DAFAA068874208D107487F
:1012F0001C308069002803D0054802DD01F0D7FAD0
:10130000F8BD01F0CBFAF8BD040000204C0000202D
:1013100068000020704770B5040005D02546603590
:10132000687A002802D006E0012070BD00202872F3
:10133000204600F027F824206872206801684908D8
:1013400049000160204600F0C9FC0128EDD0606A28
:10135000002802D0204600F022FC206841680922C3
:10136000D20291434160206881682A2291438160C2
:1013700020680168012211430160204600F074FCDE
:1013800070BD000000B500680F4987B0884218D1D1
:101390000E488269012189030A43826180690840FD
:1013A000059003204002009002200190002002904E
:1013B000032003900120049009206946C006FEF72F
:1013C00015FF07B000BD00000038014000100240CA
:1013D000FFB5064604466036707A83B00D46202875
:1013E00058D1002D0CD00598002809D00120A16803
:1013F0000003814207D12069002804D1E80702D008
:10140000012007B0F0BD307A012843D001203072AE
:101410000020E06621207072FEF7A4FF01902746AD
:101420004037059838820598788218E0788A401EFF
:10143000788206980090002280212046019B00F0CF
:10144000FBFC002818D10120A1680003814202D1D1
:101450002069002812D02168287808856D1C788AB8
:101460000028E3D106980090002240212046019BED
:1014700000F0E2FC002808D00320C2E72888216899
:10148000C005C00D0885AD1CE9E720207072002062
:101490003072B6E70220B4E7FEE70000F0B5374847
:1014A00087B042690121C9040A43426142690A4086
:1014B0000592426989100A43426142690A400592D5
:1014C000426949000A43426140694C110840059055
:1014D000002221462A48FEF73EFFFF260936092052
:1014E00001223146C006FEF736FF00220A212548B8
:1014F000FEF731FF244F012239462248FEF72BFF29
:101500000022A1007806FEF726FF009400240125A2
:101510000195029469461A480394FEF767FE009607
:10152000112602946946780601960394FEF75EFE42
:101530001648009002200290019469461148FEF777
:1015400055FE0A20009002946946019503940D48C7
:10155000FEF74CFE029469460A48009701960394F0
:10156000FEF744FEE8030090029469460195039457
:101570007806FEF73BFE07B0F0BD00000010024009
:10158000000800480004004824F50000110A00008B
:1015900010B50D480B490160002141608160016177
:1015A000416181610722016212024162C26081626F
:1015B00007220163C2624163FFF720FB002800D0CD
:1015C000FEE710BD003001408400002010B501216D
:1015D000124886B08907016000242F218460416091
:1015E0000461611E8461C160FFF77AFC002800D0AD
:1015F000FEE701200003009069460848FFF7EFFC72
:10160000002800D0FEE7049404A904480594FFF7DD
:1016100043FC002800D0FEE706B010BDE800002023
:1016200010B50C480A490160E121490241600021DE
:101630008160C16001618161C1610C22016242610E
:101640004162FFF768FE002800D0FEE710BD0000F1
:1016500000380140E8010020704700008307FF22A6
:10166000DB0E9A408907090E994000280BDA000723
:10167000000F0838830808489B001818C369934373
:101680000B43C3617047830804489B001B1818680C
:10169000904308431860704700ED00E000E400E06C
:1016A0007047000010B50248FFF73EFA10BD000079
:1016B0008400002010B50168C968026C1180016CBB
:1016C000891C016401464031CA88521ECA80C988FB
:1016D000002909D101684A6840239A434A60C18FB2
:1016E000002901D100F06EF810BD10B5014640315F
:1016F000CC880368026C012C11D9DB681380026C62
:10170000921C0264CA88921ECA80CA88012A0DD11E
:1017100002685368012424032343536006E01C7BC2
:10172000531C03641470CA88521ECA80C9880029D9
:1017300009D101684A6860239A434A60C18F002931
:1017400001D100F03FF810BD10B5816B0268098827
:10175000D160816B891C8163C18F491EC187C18F94
:1017600000290AD101684A6880239A434A604621C9
:10177000095A002901D100F025F810BD10B5C38F1A
:101780000268816B022B07D30988D160816B891CA9
:101790008163C18F891E05E04B1C83630978117337
:1017A000C18F491EC187C18F00290AD101684A68CB
:1017B00080239A434A604621095A002901D100F04A
:1017C00001F810BD70B50446FEF7CCFD0246206856
:1017D00041682025A94341606421204600F024F897
:1017E000002802D0206E28432066226E2046012168
:1017F0004030002A04D041772046FFF793F970BDAE
:10180000427F4177042A204602D0FFF7E9FA70BDF3
:10181000FFF77AFA70BD10B5406A002146221152D6
:10182000C187FFF77FF910BDF8B50F460B46154687
:101830000092032104460022C90200F01BF8202672
:10184000002812D13B46002280212046009500F05E
:101850005CF8002809D103213B46002249022046BA
:10186000009500F007F8002803D0206E3043206672
:101870000320F8BDF8B51D4617460E4604463DE068
:10188000032149028E4205D1002F03D1017B684616
:1018900001700078681C31D0002D05D0FEF762FD84
:1018A0000699401AA84229D320684168E022914352
:1018B00041606068C11FFD390CD10121A068C903D6
:1018C000884202D04911884204D120680168402230
:1018D000914301600120A16A4003814207D1216840
:1018E0000A6882430A6021680A6802430A6001208C
:1018F00040346077002020770320F8BD206881689D
:101900003140B942BCD10020F8BDF8B51D4617469C
:101910000E46044633E0681C31D0002D05D0FEF79A
:1019200021FD0699401AA84229D320684168E02287
:10193000914341606068C11FFD390CD10121A0684D
:10194000C903884202D04911884204D12068016845
:101950004022914301600120A16A4003814207D1E6
:1019600021680A6882430A6021680A6802430A60A3
:10197000012040346077002020770320F8BD2068E4
:1019800081683046884304D00020B842C3D100208B
:10199000F8BD0120F9E7704710B5FEF7E9FCFFF745
:1019A00075FA10BD30B599B02020012500240090B3
:1019B000089509946846FEF7C9FE002800D0FEE7A6
:1019C00007200D9003200E900F94012110940DA874
:1019D000FEF7B8FD002800D0FEE7119511A8139579
:1019E000FEF720FD002800D0FEE7FEF755FE7D2122
:1019F000C900FEF77DFBFFF731FA0420FFF720FA5C
:101A000000221146501EFEF709FD19B030BD00003E
:101A1000124801680122114301604168104A1140D7
:101A2000416001680F4A114001600168012292047F
:101A30009143016041683F22120491434160C16AB1
:101A400009090901C162016B074A11400163416B39
:101A5000490849004163002181607047001002403D
:101A60000CB8FF08FFFFF6FE2CFEFCFF10B5024885
:101A7000FFF72DFB10BD00002801002010B5024823
:101A8000FFF725FB10BD00006801002010B50248DB
:101A9000FFF71DFB10BD0000A8010020F0B5026893
:101AA0001D4B0124A4071D4D984203D0A04201D034
:101AB000A84203D17026B2434E683243184E194FE4
:101AC00098420DD0A0420BD0A84209D0164CA0429B
:101AD00006D0B04204D0B84202D0144CA04204D187
:101AE00003242402A243CC6822438024A2434C69ED
:101AF000224302608A68C2620A688262984206D003
:101B0000B04204D0B84202D0084A904201D10969DB
:101B1000016301214161F0BD002C0140000400403F
:101B200000400140004401400020004000480140C6
:101B300030B58468FF252D021B021343AC430B43D1
:101B40002343836030BD826870239A430A43072190
:101B50000A438260704730B5036A046A640864000F
:101B600004628469F025AC43120122430A24A34392
:101B70000B438261036230BD30B5036A1024A34376
:101B800003628469036A0F252D031203AC432243C9
:101B9000A024A343090119438261016230BD10B53D
:101BA000818CC90707D001684A6801235B049A4306
:101BB000836A1A434A60818C890707D501684A689D
:101BC00001231B049A43C36A1A434A60818C490764
:101BD00007D501684A6801239B049A43036B1A43A3
:101BE0004A60818C090707D501684A680123DB0335
:101BF0009A43436B1A434A60818CC90607D5026831
:101C0000916801231B039943836B19439160818C75
:101C1000890607D501688A6801235B039A43C36B71
:101C20001A438A60818C490612D503685A680121DB
:101C30000905046C8A4322435A60026C8A4207D128
:101C40000268516803235B059943436C1943516053
:101C5000818C090607D501684A680123DB04806C82
:101C60009A4302434A6010BDF8B500260446C66692
:101C7000FEF778FB054616492068884202D01549D0
:101C800088421DD10068144F000709D501212B4659
:101C9000002249052046009700F0CEF800280DD11B
:101CA0002068006840070BD501212B4600228905DA
:101CB0002046009700F0C0F8002801D00320F8BDAE
:101CC000202060346072A07226720020F8BD0000EF
:101CD0000038014000440040FFFFFF01F8B5044612
:101CE0002369A268E5691A43636910202B43002128
:101CF00025681A432B680E46474F3B4013432B6021
:101D000023685A6803252D03AA43E5682A435A60CD
:101D1000236AA26925681A43AB680B273F02BB43BD
:101D20001343AB603D4F25683D4B0203BD420AD1D2
:101D30001B6B9B079B0F20D0012B14D0022B14D0C0
:101D4000032B1BD10DE0374FBD4210D11B6B032776
:101D50003F043B4011D09B1A05D09B1A05D09342FB
:101D60000CD102200AE0042008E0082006E02E4BF7
:101D70009D4202D02D4B9D4200D100200123E769F6
:101D8000DB039F4222D100280CD002280DD004286A
:101D900013D0082817D001260A0912010807400F9E
:101DA00010432EE0FEF77EFC09E06168204A4808F7
:101DB0008018FEF79DF981B2EEE7FEF783FC6168BB
:101DC00040004A08F4E761684808F1E7002808D0B5
:101DD000022809D004280CD0082815D00126304646
:101DE000F8BDFEF75FFC06E06168124A48088018FB
:101DF0000DE0FEF767FC61684A088018FEF778F985
:101E000080B22168C860EAE761684808C018FEF738
:101E10006FF980B2E860E2E7F369FFEF0038014054
:101E2000001002400044004000480040004C0040C8
:101E30000024F40000127A00FFB581B017460E4668
:101E400004460A9D1DE0681C1BD0002D05D0FEF73E
:101E500089FA0499401AA84213D920680168FF2220
:101E6000A13291430160206881684908490081607E
:101E7000202060346072A07200202072032005B020
:101E8000F0BD2068C1693046884304D00020B842C4
:101E9000D9D00020F3E70120F9E700000FB410B516
:101EA00003A9044B044A029800F018F810BC08BCBF
:101EB00004B01847112100084000002002E008C8C3
:101EC000121F08C1002AFAD170477047002001E0B4
:101ED00001C1121F002AFBD170470000FFB58DB071
:101EE0000F460546002606E025280AD0109A0F99CD
:101EF00090476D1C761C28780028F5D1304611B02B
:101F0000F0BD00240121674A009400E004436D1CE9
:101F10002B780846203B98401042F7D128782E288D
:101F200015D10420044368786D1C2A280AD101CFFA
:101F30006D1C00900BE000990A2251433039401883
:101F40006D1C00902878014630390929F3D928788A
:101F5000692843D006DC0028D0D063280BD0642841
:101F600004D13BE073280FD075284CD0109A0F99FC
:101F70009047761C94E038786946087200204872D1
:101F800002A80190012003E0386801900020C043BE
:101F90003F1D61070CD5002400E0641C00998C42B1
:101FA0000FDA8442F9DB0199095D0029F5D108E0D7
:101FB000002400E0641C8442FCDB0199095D0029D7
:101FC000F8D1361907E0019801990078491C019170
:101FD000109A0F999047641EF5D261E00A20019093
:101FE00001CF002802DA40422D2102E0210504D56C
:101FF0002B216A461172012103E0E10701D0202163
:10200000F7E70C9104E00A20019001CF00210C9128
:102010000BA90B9108E00199FEF76AF80A460B99A3
:102020003032491E0B910A700028F4D10B9803A995
:10203000081A20300190600701D5009801E00120C6
:1020400000900199884203DD01460198081A00E0DA
:1020500000200024009006E002A8109A005D0F996D
:102060009047641C761C0C988442F5DB04E0109ABF
:1020700030200F999047761C0099481E0090002947
:10208000F5DC08E00B980B990078491C0B91109A2D
:102090000F999047761C0199481E01900029F1DCA8
:1020A0006D1C28E709280100027D520012181182D8
:1020B000017D491CC9B20175022901D300210175B6
:1020C00070470902014308B270470000002800DA97
:1020D0004042002801DD402802DBFF20F530704738
:1020E00001494000085A7047002A000800B501461F
:1020F00000F022FB411800F01FFB8842FBD300BD1B
:1021000010B502490860FEF753FF10BD0000002023
:1021100013B50A23012269460248FFF759F90098CE
:102120001CBD0000E801002010B500210A46530044
:102130001C181023E35E521C5918022AF7DBC80F43
:102140004018401010BD10B50C46034600F01FF8B3
:10215000002801D0012010BD19785868445419781E
:10216000986842541878401C4007400F18700020AF
:1021700010BD10B50446082000F0A8FA60600820E1
:1021800000F0A4FAA060204600F025F810BD4178C8
:102190000078401C4007400F814201D10120704768
:1021A0000020704710B543780478A34201D1012084
:1021B00010BD4468E35C0B7081684078085C107067
:1021C000002010BD41780278914203D0491C490794
:1021D000490F4170704710B50446002020706070B0
:1021E00008216068FDF7B3FF0821A068FDF7AFFF85
:1021F00010BD000070B51D4C207900282ED0FEF7D0
:10220000B1F8E1680025401AFA2803D97B2000F0D4
:10221000FBF822E02079002820D01448103000F08C
:1022200046F8002817D02079002817D00F4A104808
:10223000921D511EFFF7B6FF00280FD10B4810303A
:1022400000F05CF8094AA1791032607900F0D2F907
:10225000002804D006E000F007F9257170BD00F0F9
:1022600003F925710248FFF7ADFF70BD180000208B
:102270009802002000B50B46024600F020F8002826
:1022800001D0012000BD1178506843541078401CE3
:102290008007800F1070002000BD10B50446042098
:1022A00000F014FA6060204600F028F810BD417874
:1022B0000078814201D101207047002070474178A9
:1022C0000078401C8007800F814201D101207047B7
:1022D00000207047427803789A4201D1012070476C
:1022E0004068805C08700020704741780278914215
:1022F00003D0491C8907890F4170704710B5002130
:102300000170417040680421FDF721FF10BD0000FD
:1023100070B5FEF727F80446084D07E0042128466B
:10232000FEF710F8002801D0012070BDFEF71AF862
:10233000001B0A28F2D3022070BD000000040048F0
:10234000F1B500258024114FE600002231463846C1
:10235000FEF701F8B420FFF7C9FE012231463846E6
:10236000FDF7F9FF5020FFF7C1FE04213846FDF7C5
:10237000E9FF012800D1254364088C20FFF7B6FE51
:10238000002CE2D1009805700020F8BD0004004840
:1023900070B50C460546FFF7BBFF012805D028465F
:1023A000FFF7CEFF204600F011FB70BD10B54B21AA
:1023B000C9001448FFF7ECFF124C641EA0700028FF
:1023C0000FD16078102807D014280BD0162814D00D
:1023D000362806D17D2011E001202071FDF7C2FFD3
:1023E000E06010BD07480F30FFF761FF002801D003
:1023F0007B2003E000F038F810BD0B2000F004F85B
:1024000010BD000019000020F8B50122154E074646
:10241000950229463046FDF79EFFC82000F0D6FA07
:1024200003281ED007240120A040384201D00122F9
:1024300000E0002204213046FDF78DFF00222946EE
:102440003046FDF788FFA020FFF750FE0122294605
:102450003046FDF780FFAA20FFF748FE641EE2D554
:102460000020F8BD0004004808B569460548FFF79C
:1024700031FF0448FFF739FF68460078FFF7C4FFD3
:1024800008BD00002800002088B0FDF779FFFFF7A5
:1024900089FAFFF703F8FFF77BF8FFF7C1F8FFF7BA
:1024A00095F846480024464E84604349C6602F256F
:1024B000046122C080270C3090C01C38FEF710FD4C
:1024C000002800D0FEE73D483E494030846022C0ED
:1024D0008460C4603C49046141600838FEF700FD37
:1024E000002800D0FEE735483849403884608761CD
:1024F000C660046122C00838FEF7F2FC002800D054
:10250000FEE70120324D0190009400232A783149E2
:1025100031A0FFF7C3FC29488038FFF7F1FD2846BA
:102520001030FFF7BAFE3148FFF723FE2846183077
:1025300000F022F92D4820214038FDF708FE2B4AF3
:102540001E482023203AD11AE438FEF7DFFB012091
:102550000003C60007908000254C81110694174A9D
:102560000927164B019103900596FF061146284650
:102570000494403B009702944031183000F0A0F9D9
:10258000E878002801D000F0E5F900F0D5F8A96856
:10259000884204D9002231463846FDF7DCFE01218D
:1025A00089022046FDF7CEFE0028E9D0FFF7FEFEA7
:1025B000FFF720FEE4E7000000440140680100202E
:1025C000FFFF0000004801401027000000200040ED
:1025D00018000020002B000825730A726576256418
:1025E000207625642E25642E25640A00980200209A
:1025F0000004004870B500241646802801D2314AF4
:10260000145C02293BD0002C39D080253A282CD0EC
:1026100037283DD04E283BD0622839D0452843D0BA
:10262000472841D048283FD049283DD04A283BD0B0
:102630004B2839D04C2837D04D2835D04F2833D0AF
:10264000502831D051282FD052282DD053282BD0AC
:10265000602829D0672827D0692825D06A2823D068
:102660006C2821D0002908D12AE0002907D016487B
:10267000012102789143017003D0214603E0042038
:1026800070BD214629433046FFF7F4FD002070BDA0
:10269000002904D071213046FFF7ECFD06E0F1215E
:1026A0003046FFF7E7FD06E0002904D079213046E7
:1026B000FFF7E0FDE1E779213046FFF7DBFDE0E7DA
:1026C0002C43DAE7802A000814000020F0B50B3014
:1026D000C108C900144F0026144A0FE003688B425A
:1026E0000BD38B4205D95C1A4318456830C3083BAD
:1026F00000E04368136002C004E0021D1068002877
:10270000ECD13046002803D13868002801D00020E1
:10271000F0BD064A06481060064A121AD208D200D6
:1027200044C001203860D7E7480000204400002062
:10273000C4020020C0040020024800680068406A0B
:10274000704700000000002010B50B46044600F062
:102750001DF8002801D0012010BD20780C226168EE
:10276000504308181946FDF7D9FC2078401C000793
:10277000000F2070002010BD10B50446C020FFF7E8
:10278000A5FF6060204600F020F810BD4178007879
:10279000401C0007000F814201D10120704700203A
:1027A000704741780278914201D10020704740681B
:1027B0000C2251434018704741780278914203D06F
:1027C000491C0907090F4170704710B500210170BD
:1027D00041704068C021FDF7BAFC10BD70B50446D9
:1027E0008078092824D0082842D001283FD1202110
:1027F0002848FDF7ACFC2748CD2101706178417075
:10280000802585700321C170234908220978017150
:102810000021417181710121C171002104465834A8
:10282000635C002B32D0022B29D0012B29D02BE066
:1028300061792079FFF745FC164A4C321080E17926
:10284000A079FFF73EFC5080207A124940429080E8
:10285000607B9071A07B1072E07BD071207C507205
:10286000607C90720C484C311830FFF76DFF70BDE2
:102870000848A27921794030FFF765FC70BD81548A
:1028800002E00B462B438354521CD2B2491C102940
:10289000C6DB70BD580200201800002010B5817BF7
:1028A000491E8907890F817300F03CF810BD10B5EF
:1028B000817B491C8907890F817300F033F810BDB3
:1028C000F8B506ACE0CC104C2560A680A760099D49
:1028D000A5811C340A9D25600B9DA5800C9DA560DB
:1028E0000D9DA581094CE0600EC407480C3C00F02A
:1028F0000FF82068FEF768FB6068FEF765FBA068CC
:10290000FEF762FBF8BD00004C0000200400002030
:1029100010B50021817301758161018200F002F818
:1029200010BD000070B50446807B09490D5CA1888C
:102930002068EA0700D00122FDF70DFDA807A18954
:10294000A06801D5012200E00022FDF704FD70BD62
:10295000FC29000811A0FFF7A1FA134D0024295DFE
:1029600012A0FFF79BFA641C202CF8DB10A0FFF7E5
:1029700095FA134D002408212846FDF7E8FC642051
:10298000FDF726FC641C642CF5DBBFF34F8F0E496A
:102990000C48C860BFF34F8F00BFFDE7535049207C
:1029A0004552524F520A0000780200202564200050
:1029B0000A7265626F6F74696E672E2E2E0A0000B0
:1029C000000400480400FA0500ED00E070B505467B
:1029D000FDF7C8FC0446084EFDF7C4FC001BA842E6
:1029E00001D9032070BD04213046FDF7ABFC01285E
:1029F000F2D1002070BD0000000400480001030275
:102A0000B92F01287D22141E661A4617E314AE1250
:102A1000D710300FE60DCC0CE10B240B970A0A0AF5
:102A20007D091F09C10863080408A607770719076D
:102A3000EA06BB065D062E06FF05D005A105720558
:102A400043051405E404B5048604860457042804E9
:102A5000F903F903CA039B039B036C036C033D0357
:102A60003D030E030E03DF02DF02B002B00281025B
:102A700081028102520252025202230223022302E5
:102A800000002527292B2F2D3539333B373167613E
:102A9000191B1D1F232141453F47433D4975010334
:102AA00005070B094D514B534F6571550D0F111310
:102AB000175B5D575F5971056F637300000000007D
:102AC00000000000000F003337391D2D2F310D2776
:102AD000292B250300005500000000000000000025
:102AE00019751B006F00001B000D05001100000090
:102AF000000000000000000000000000006F6F6F89
:102B00005553423456432050726F746F636F6C207C
:102B1000426F6172640A4170706C65204C69736128
:102B20002C204D61632026204144420A64656B7568
:102B30004E756B656D2032303232000000000000AF
:102B4000000000010203040607080900000000015C
:102B500002030400742B0008000000204C00000059
:102B6000BC1E0008C02B00084C00002074080000A8
:102B7000CC1E000800000000000000000000000063
:102B80000000000000000000000000000000000045
:102B90000000000000000000000000000000000035
:102BA0000000000000000000000000000000000025
:102BB00000127A0000000000000000000000000089
:04000005080000C12E
:00000001FF

View File

@@ -3,9 +3,9 @@
<title>Static Call Graph - [apple_all\apple_all.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image apple_all\apple_all.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Fri Jul 22 02:31:08 2022
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Tue Aug 02 02:57:47 2022
<BR><P>
<H3>Maximum Stack Usage = 212 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
<H3>Maximum Stack Usage = 228 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
main &rArr; SystemClock_Config &rArr; HAL_RCC_ClockConfig &rArr; HAL_RCC_GetSysClockFreq &rArr; __aeabi_uidivmod
<P>
@@ -73,7 +73,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="[a5]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[a8]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[2f]"></a>_main_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
@@ -83,15 +83,15 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL>
<P><STRONG><a name="[a6]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[a9]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[a7]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[aa]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[a8]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[ab]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[a9]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[ac]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[aa]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[ad]"></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)
@@ -184,7 +184,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="[ab]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[ae]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[3b]"></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
@@ -196,28 +196,28 @@ Global Symbols
<LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[a0]"></a>__aeabi_memcpy</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
<P><STRONG><a name="[a1]"></a>__aeabi_memcpy</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
</UL>
<P><STRONG><a name="[ac]"></a>__aeabi_memcpy4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
<P><STRONG><a name="[af]"></a>__aeabi_memcpy4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
<P><STRONG><a name="[ad]"></a>__aeabi_memcpy8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
<P><STRONG><a name="[b0]"></a>__aeabi_memcpy8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
<P><STRONG><a name="[32]"></a>__aeabi_memset</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[33]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_memset$wrapper
<LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<P><STRONG><a name="[ae]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[b1]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[af]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[b2]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[31]"></a>__aeabi_memclr</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
</UL>
<BR>[Called By]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;m0110a_cmd_buf_reset
<LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_reset
<LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_reset
<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_reset
</UL>
@@ -226,7 +226,7 @@ Global Symbols
<LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[b0]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[b3]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[33]"></a>_memset$wrapper</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
@@ -238,7 +238,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
</UL>
<P><STRONG><a name="[b1]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[b4]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[44]"></a>HAL_DMA_Abort_IT</STRONG> (Thumb, 72 bytes, Stack size 16 bytes, stm32f0xx_hal_dma.o(i.HAL_DMA_Abort_IT))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = HAL_DMA_Abort_IT
@@ -251,7 +251,7 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL>
<BR>[Called By]<UL><LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<BR>[Called By]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
</UL>
<P><STRONG><a name="[48]"></a>HAL_GPIO_Init</STRONG> (Thumb, 314 bytes, Stack size 24 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_Init))
@@ -269,8 +269,8 @@ Global Symbols
<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;m0110a_get_line_status
</UL>
<P><STRONG><a name="[a4]"></a>HAL_GPIO_TogglePin</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_TogglePin))
<BR><BR>[Called By]<UL><LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<P><STRONG><a name="[a7]"></a>HAL_GPIO_TogglePin</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_TogglePin))
<BR><BR>[Called By]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
</UL>
<P><STRONG><a name="[4b]"></a>HAL_GPIO_WritePin</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin))
@@ -279,7 +279,7 @@ Global Symbols
<LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;m0110a_write
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;m0110a_read
<LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_write
<LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_write
<LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback
</UL>
@@ -511,6 +511,10 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_init
</UL>
<P><STRONG><a name="[a6]"></a>HAL_TIM_Base_Start_IT</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start_IT))
<BR><BR>[Called By]<UL><LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_init
</UL>
<P><STRONG><a name="[54]"></a>HAL_TIM_ConfigClockSource</STRONG> (Thumb, 238 bytes, Stack size 24 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_ConfigClockSource))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = HAL_TIM_ConfigClockSource &rArr; TIM_TI2_ConfigInputStage
</UL>
@@ -717,26 +721,26 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[b2]"></a>__1printf$3</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)
<P><STRONG><a name="[b5]"></a>__1printf$3</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)
<P><STRONG><a name="[9a]"></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
</UL>
<BR>[Called By]<UL><LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<BR>[Called By]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[b3]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[b6]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[b4]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[b7]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[b5]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[b8]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[62]"></a>avg_buf_add</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, quad_encoder.o(i.avg_buf_add))
<BR><BR>[Called By]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback
</UL>
<P><STRONG><a name="[a2]"></a>byte_to_int16_t</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, main.o(i.byte_to_int16_t))
<P><STRONG><a name="[a3]"></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="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_spi_buf
</UL>
@@ -935,13 +939,13 @@ Global Symbols
<LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;m0100a_handle_inquiry
</UL>
<P><STRONG><a name="[26]"></a>main</STRONG> (Thumb, 260 bytes, Stack size 16 bytes, main.o(i.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 212<LI>Call Chain = main &rArr; SystemClock_Config &rArr; HAL_RCC_ClockConfig &rArr; HAL_RCC_GetSysClockFreq &rArr; __aeabi_uidivmod
<P><STRONG><a name="[26]"></a>main</STRONG> (Thumb, 302 bytes, Stack size 32 bytes, main.o(i.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 228<LI>Call Chain = main &rArr; SystemClock_Config &rArr; HAL_RCC_ClockConfig &rArr; HAL_RCC_GetSysClockFreq &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Init
<LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TransmitReceive_IT
<LI><a href="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Init
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;m0110a_update
<LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;m0100a_handle_inquiry
<LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
@@ -954,6 +958,7 @@ Global Symbols
<LI><a href="#[9b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_init
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_init
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_init
<LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;micros
<LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_init
<LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
@@ -983,11 +988,11 @@ Global Symbols
<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
</UL>
<P><STRONG><a name="[9e]"></a>mouse_buf_add</STRONG> (Thumb, 48 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_add))
<P><STRONG><a name="[9f]"></a>mouse_buf_add</STRONG> (Thumb, 48 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_add))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = mouse_buf_add
</UL>
<BR>[Calls]<UL><LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_is_full
<LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<BR>[Calls]<UL><LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_is_full
<LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
</UL>
<BR>[Called By]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_spi_buf
</UL>
@@ -995,14 +1000,14 @@ Global Symbols
<P><STRONG><a name="[9b]"></a>mouse_buf_init</STRONG> (Thumb, 20 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = mouse_buf_init &rArr; malloc
</UL>
<BR>[Calls]<UL><LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_reset
<BR>[Calls]<UL><LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_reset
<LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[9f]"></a>mouse_buf_is_full</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, helpers.o(i.mouse_buf_is_full))
<BR><BR>[Called By]<UL><LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
<P><STRONG><a name="[a0]"></a>mouse_buf_is_full</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, helpers.o(i.mouse_buf_is_full))
<BR><BR>[Called By]<UL><LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
</UL>
<P><STRONG><a name="[61]"></a>mouse_buf_peek</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, helpers.o(i.mouse_buf_peek))
@@ -1013,7 +1018,7 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback
</UL>
<P><STRONG><a name="[a1]"></a>mouse_buf_reset</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_reset))
<P><STRONG><a name="[a2]"></a>mouse_buf_reset</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = mouse_buf_reset
</UL>
<BR>[Calls]<UL><LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
@@ -1024,8 +1029,8 @@ Global Symbols
<P><STRONG><a name="[4c]"></a>parse_spi_buf</STRONG> (Thumb, 184 bytes, Stack size 16 bytes, main.o(i.parse_spi_buf))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = parse_spi_buf &rArr; mouse_buf_add
</UL>
<BR>[Calls]<UL><LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;byte_to_int16_t
<LI><a href="#[9e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
<BR>[Calls]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;byte_to_int16_t
<LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_add
<LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
@@ -1035,7 +1040,7 @@ Global Symbols
<P><STRONG><a name="[67]"></a>quad_decrement</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, quad_encoder.o(i.quad_decrement))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = quad_decrement &rArr; quad_write
</UL>
<BR>[Calls]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_write
<BR>[Calls]<UL><LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_write
</UL>
<BR>[Called By]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback
</UL>
@@ -1043,24 +1048,42 @@ Global Symbols
<P><STRONG><a name="[66]"></a>quad_increment</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, quad_encoder.o(i.quad_increment))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = quad_increment &rArr; quad_write
</UL>
<BR>[Calls]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_write
<BR>[Calls]<UL><LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_write
</UL>
<BR>[Called By]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback
</UL>
<P><STRONG><a name="[a3]"></a>quad_write</STRONG> (Thumb, 44 bytes, Stack size 16 bytes, quad_encoder.o(i.quad_write))
<P><STRONG><a name="[9d]"></a>quad_init</STRONG> (Thumb, 70 bytes, Stack size 24 bytes, quad_encoder.o(i.quad_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = quad_init &rArr; quad_reset &rArr; quad_write
</UL>
<BR>[Calls]<UL><LI><a href="#[a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Start_IT
<LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_reset
</UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[a5]"></a>quad_reset</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, quad_encoder.o(i.quad_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = quad_reset &rArr; quad_write
</UL>
<BR>[Calls]<UL><LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_write
</UL>
<BR>[Called By]<UL><LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_init
</UL>
<P><STRONG><a name="[a4]"></a>quad_write</STRONG> (Thumb, 44 bytes, Stack size 16 bytes, quad_encoder.o(i.quad_write))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = quad_write
</UL>
<BR>[Calls]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
</UL>
<BR>[Called By]<UL><LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_increment
<BR>[Called By]<UL><LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_reset
<LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_increment
<LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_decrement
</UL>
<P><STRONG><a name="[9d]"></a>spi_error_dump_reboot</STRONG> (Thumb, 72 bytes, Stack size 0 bytes, main.o(i.spi_error_dump_reboot))
<P><STRONG><a name="[9e]"></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>
<BR>[Calls]<UL><LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_TogglePin
<BR>[Calls]<UL><LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_TogglePin
<LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[9a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL>

View File

@@ -130,6 +130,7 @@ Section Cross References
main.o(i.main) refers to helpers.o(i.mouse_buf_init) for mouse_buf_init
main.o(i.main) refers to memseta.o(.text) for __aeabi_memclr4
main.o(i.main) refers to stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT) for HAL_SPI_TransmitReceive_IT
main.o(i.main) refers to quad_encoder.o(i.quad_init) for quad_init
main.o(i.main) refers to main.o(i.spi_error_dump_reboot) for spi_error_dump_reboot
main.o(i.main) refers to delay_us.o(i.micros) for micros
main.o(i.main) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
@@ -1102,8 +1103,6 @@ Removing Unused input sections from the image.
Removing delay_us.o(.revsh_text), (4 bytes).
Removing quad_encoder.o(.rev16_text), (4 bytes).
Removing quad_encoder.o(.revsh_text), (4 bytes).
Removing quad_encoder.o(i.quad_init), (80 bytes).
Removing quad_encoder.o(i.quad_reset), (18 bytes).
Removing helpers.o(.rev16_text), (4 bytes).
Removing helpers.o(.revsh_text), (4 bytes).
Removing helpers.o(i.kb_buf_is_empty), (16 bytes).
@@ -1178,7 +1177,6 @@ Removing Unused input sections from the image.
Removing stm32f0xx_hal_tim.o(i.HAL_TIM_Base_MspDeInit), (2 bytes).
Removing stm32f0xx_hal_tim.o(i.HAL_TIM_Base_MspInit), (2 bytes).
Removing stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start_DMA), (100 bytes).
Removing stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start_IT), (22 bytes).
Removing stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Stop), (48 bytes).
Removing stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Stop_DMA), (52 bytes).
Removing stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Stop_IT), (44 bytes).
@@ -1585,7 +1583,7 @@ Removing Unused input sections from the image.
Removing stm32f0xx_hal_tim.o(i.__ARM_common_switch8), (26 bytes).
Removing depilogue.o(i.__ARM_clz), (46 bytes).
486 unused section(s) (total 34986 bytes) removed from the image.
483 unused section(s) (total 34866 bytes) removed from the image.
==============================================================================
@@ -1619,42 +1617,42 @@ Image Symbol Table
../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 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.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 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.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 malloc.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE
../clib/microlib/malloc/mvars.c 0x00000000 Number 0 mvars.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.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 printf0.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.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
@@ -1749,121 +1747,124 @@ Image Symbol Table
i.HAL_TIM_Base_Init 0x08000ee0 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Init)
i.HAL_TIM_Base_MspInit 0x08000f14 Section 0 stm32f0xx_hal_msp.o(i.HAL_TIM_Base_MspInit)
i.HAL_TIM_Base_Start 0x08000fb0 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start)
i.HAL_TIM_ConfigClockSource 0x08000fc8 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_ConfigClockSource)
i.HAL_TIM_IC_CaptureCallback 0x080010b6 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_IC_CaptureCallback)
i.HAL_TIM_IRQHandler 0x080010b8 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_IRQHandler)
i.HAL_TIM_OC_DelayElapsedCallback 0x0800121a Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_OC_DelayElapsedCallback)
i.HAL_TIM_PWM_PulseFinishedCallback 0x0800121c Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_PWM_PulseFinishedCallback)
i.HAL_TIM_PeriodElapsedCallback 0x08001220 Section 0 quad_encoder.o(i.HAL_TIM_PeriodElapsedCallback)
i.HAL_TIM_TriggerCallback 0x08001300 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_TriggerCallback)
i.HAL_UART_Init 0x08001302 Section 0 stm32f0xx_hal_uart.o(i.HAL_UART_Init)
i.HAL_UART_MspInit 0x08001370 Section 0 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit)
i.HAL_UART_Transmit 0x080013bc Section 0 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit)
i.HardFault_Handler 0x08001484 Section 0 stm32f0xx_it.o(i.HardFault_Handler)
i.MX_GPIO_Init 0x08001488 Section 0 main.o(i.MX_GPIO_Init)
MX_GPIO_Init 0x08001489 Thumb Code 222 main.o(i.MX_GPIO_Init)
i.MX_SPI1_Init 0x0800157c Section 0 main.o(i.MX_SPI1_Init)
MX_SPI1_Init 0x0800157d Thumb Code 52 main.o(i.MX_SPI1_Init)
i.MX_TIM2_Init 0x080015b8 Section 0 main.o(i.MX_TIM2_Init)
MX_TIM2_Init 0x080015b9 Thumb Code 80 main.o(i.MX_TIM2_Init)
i.MX_USART1_UART_Init 0x0800160c Section 0 main.o(i.MX_USART1_UART_Init)
MX_USART1_UART_Init 0x0800160d Thumb Code 46 main.o(i.MX_USART1_UART_Init)
i.NMI_Handler 0x08001644 Section 0 stm32f0xx_it.o(i.NMI_Handler)
i.NVIC_SetPriority 0x08001648 Section 0 stm32f0xx_hal_cortex.o(i.NVIC_SetPriority)
NVIC_SetPriority 0x08001649 Thumb Code 60 stm32f0xx_hal_cortex.o(i.NVIC_SetPriority)
i.PendSV_Handler 0x0800168c Section 0 stm32f0xx_it.o(i.PendSV_Handler)
i.SPI1_IRQHandler 0x08001690 Section 0 stm32f0xx_it.o(i.SPI1_IRQHandler)
i.SPI_2linesRxISR_16BIT 0x080016a0 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT)
SPI_2linesRxISR_16BIT 0x080016a1 Thumb Code 54 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT)
i.SPI_2linesRxISR_8BIT 0x080016d6 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT)
SPI_2linesRxISR_8BIT 0x080016d7 Thumb Code 94 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT)
i.SPI_2linesTxISR_16BIT 0x08001734 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT)
SPI_2linesTxISR_16BIT 0x08001735 Thumb Code 52 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT)
i.SPI_2linesTxISR_8BIT 0x08001768 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT)
SPI_2linesTxISR_8BIT 0x08001769 Thumb Code 72 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT)
i.SPI_CloseRxTx_ISR 0x080017b0 Section 0 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR)
SPI_CloseRxTx_ISR 0x080017b1 Thumb Code 82 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR)
i.SPI_DMAAbortOnError 0x08001802 Section 0 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError)
SPI_DMAAbortOnError 0x08001803 Thumb Code 18 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError)
i.SPI_EndRxTxTransaction 0x08001814 Section 0 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction)
SPI_EndRxTxTransaction 0x08001815 Thumb Code 76 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction)
i.SPI_WaitFifoStateUntilTimeout 0x08001860 Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout)
SPI_WaitFifoStateUntilTimeout 0x08001861 Thumb Code 150 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout)
i.SPI_WaitFlagStateUntilTimeout 0x080018f6 Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)
SPI_WaitFlagStateUntilTimeout 0x080018f7 Thumb Code 140 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)
i.SVC_Handler 0x08001982 Section 0 stm32f0xx_it.o(i.SVC_Handler)
i.SysTick_Handler 0x08001984 Section 0 stm32f0xx_it.o(i.SysTick_Handler)
i.SystemClock_Config 0x08001990 Section 0 main.o(i.SystemClock_Config)
i.SystemInit 0x080019fc Section 0 system_stm32f0xx.o(i.SystemInit)
i.TIM14_IRQHandler 0x08001a58 Section 0 stm32f0xx_it.o(i.TIM14_IRQHandler)
i.TIM16_IRQHandler 0x08001a68 Section 0 stm32f0xx_it.o(i.TIM16_IRQHandler)
i.TIM17_IRQHandler 0x08001a78 Section 0 stm32f0xx_it.o(i.TIM17_IRQHandler)
i.TIM_Base_SetConfig 0x08001a88 Section 0 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
i.TIM_ETR_SetConfig 0x08001b1c Section 0 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
i.TIM_ITRx_SetConfig 0x08001b32 Section 0 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
TIM_ITRx_SetConfig 0x08001b33 Thumb Code 16 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
i.TIM_TI1_ConfigInputStage 0x08001b42 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
TIM_TI1_ConfigInputStage 0x08001b43 Thumb Code 34 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
i.TIM_TI2_ConfigInputStage 0x08001b64 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
TIM_TI2_ConfigInputStage 0x08001b65 Thumb Code 38 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
i.UART_AdvFeatureConfig 0x08001b8a Section 0 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
i.UART_CheckIdleState 0x08001c54 Section 0 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
i.UART_SetConfig 0x08001cc8 Section 0 stm32f0xx_hal_uart.o(i.UART_SetConfig)
i.UART_WaitOnFlagUntilTimeout 0x08001e24 Section 0 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
i.__0printf$3 0x08001e88 Section 0 printf3.o(i.__0printf$3)
i.__scatterload_copy 0x08001ea8 Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x08001eb6 Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x08001eb8 Section 14 handlers.o(i.__scatterload_zeroinit)
i._printf_core 0x08001ec8 Section 0 printf3.o(i._printf_core)
_printf_core 0x08001ec9 Thumb Code 456 printf3.o(i._printf_core)
i.avg_buf_add 0x08002094 Section 0 quad_encoder.o(i.avg_buf_add)
i.byte_to_int16_t 0x080020ae Section 0 main.o(i.byte_to_int16_t)
i.calc_arr 0x080020b8 Section 0 quad_encoder.o(i.calc_arr)
i.delay_us 0x080020d8 Section 0 delay_us.o(i.delay_us)
i.delay_us_init 0x080020ec Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x080020fc Section 0 main.o(i.fputc)
i.get_buf_avg 0x08002114 Section 0 quad_encoder.o(i.get_buf_avg)
i.kb_buf_add 0x08002132 Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x0800215e Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_is_full 0x0800217a Section 0 helpers.o(i.kb_buf_is_full)
i.kb_buf_peek 0x08002190 Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x080021b0 Section 0 helpers.o(i.kb_buf_pop)
i.kb_buf_reset 0x080021c2 Section 0 helpers.o(i.kb_buf_reset)
i.m0100a_handle_inquiry 0x080021e0 Section 0 main.o(i.m0100a_handle_inquiry)
i.m0110a_cmd_buf_add 0x08002260 Section 0 m0110a.o(i.m0110a_cmd_buf_add)
i.m0110a_cmd_buf_init 0x08002286 Section 0 m0110a.o(i.m0110a_cmd_buf_init)
i.m0110a_cmd_buf_is_empty 0x0800229a Section 0 m0110a.o(i.m0110a_cmd_buf_is_empty)
i.m0110a_cmd_buf_is_full 0x080022aa Section 0 m0110a.o(i.m0110a_cmd_buf_is_full)
i.m0110a_cmd_buf_peek 0x080022c0 Section 0 m0110a.o(i.m0110a_cmd_buf_peek)
i.m0110a_cmd_buf_pop 0x080022d6 Section 0 m0110a.o(i.m0110a_cmd_buf_pop)
i.m0110a_cmd_buf_reset 0x080022e8 Section 0 m0110a.o(i.m0110a_cmd_buf_reset)
i.m0110a_get_line_status 0x080022fc Section 0 m0110a.o(i.m0110a_get_line_status)
i.m0110a_read 0x0800232c Section 0 m0110a.o(i.m0110a_read)
i.m0110a_read_host_cmd 0x0800237c Section 0 m0110a.o(i.m0110a_read_host_cmd)
i.m0110a_update 0x08002398 Section 0 main.o(i.m0110a_update)
i.m0110a_write 0x080023f4 Section 0 m0110a.o(i.m0110a_write)
i.m0110a_write_1b_from_buf 0x08002454 Section 0 main.o(i.m0110a_write_1b_from_buf)
i.main 0x08002474 Section 0 main.o(i.main)
i.make_m0110a_scancode 0x080025b4 Section 0 m0110a.o(i.make_m0110a_scancode)
i.malloc 0x0800268c Section 0 malloc.o(i.malloc)
i.micros 0x080026f8 Section 0 delay_us.o(i.micros)
i.mouse_buf_add 0x08002708 Section 0 helpers.o(i.mouse_buf_add)
i.mouse_buf_init 0x08002738 Section 0 helpers.o(i.mouse_buf_init)
i.mouse_buf_is_full 0x0800274c Section 0 helpers.o(i.mouse_buf_is_full)
i.mouse_buf_peek 0x08002762 Section 0 helpers.o(i.mouse_buf_peek)
i.mouse_buf_pop 0x08002778 Section 0 helpers.o(i.mouse_buf_pop)
i.mouse_buf_reset 0x0800278a Section 0 helpers.o(i.mouse_buf_reset)
i.parse_spi_buf 0x0800279c Section 0 main.o(i.parse_spi_buf)
i.quad_decrement 0x0800285c Section 0 quad_encoder.o(i.quad_decrement)
i.quad_increment 0x0800286e Section 0 quad_encoder.o(i.quad_increment)
i.quad_write 0x08002880 Section 0 quad_encoder.o(i.quad_write)
i.spi_error_dump_reboot 0x080028b0 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_for_data_idle 0x08002928 Section 0 m0110a.o(i.wait_for_data_idle)
.constdata 0x08002958 Section 84 quad_encoder.o(.constdata)
.constdata 0x080029ac Section 128 m0110a.o(.constdata)
.constdata 0x08002a2c Section 59 main.o(.constdata)
.constdata 0x08002a67 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08002a77 Section 8 system_stm32f0xx.o(.constdata)
i.HAL_TIM_Base_Start_IT 0x08000fc8 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start_IT)
i.HAL_TIM_ConfigClockSource 0x08000fde Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_ConfigClockSource)
i.HAL_TIM_IC_CaptureCallback 0x080010cc Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_IC_CaptureCallback)
i.HAL_TIM_IRQHandler 0x080010ce Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_IRQHandler)
i.HAL_TIM_OC_DelayElapsedCallback 0x08001230 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_OC_DelayElapsedCallback)
i.HAL_TIM_PWM_PulseFinishedCallback 0x08001232 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_PWM_PulseFinishedCallback)
i.HAL_TIM_PeriodElapsedCallback 0x08001234 Section 0 quad_encoder.o(i.HAL_TIM_PeriodElapsedCallback)
i.HAL_TIM_TriggerCallback 0x08001314 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_TriggerCallback)
i.HAL_UART_Init 0x08001316 Section 0 stm32f0xx_hal_uart.o(i.HAL_UART_Init)
i.HAL_UART_MspInit 0x08001384 Section 0 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit)
i.HAL_UART_Transmit 0x080013d0 Section 0 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit)
i.HardFault_Handler 0x08001498 Section 0 stm32f0xx_it.o(i.HardFault_Handler)
i.MX_GPIO_Init 0x0800149c Section 0 main.o(i.MX_GPIO_Init)
MX_GPIO_Init 0x0800149d Thumb Code 222 main.o(i.MX_GPIO_Init)
i.MX_SPI1_Init 0x08001590 Section 0 main.o(i.MX_SPI1_Init)
MX_SPI1_Init 0x08001591 Thumb Code 52 main.o(i.MX_SPI1_Init)
i.MX_TIM2_Init 0x080015cc Section 0 main.o(i.MX_TIM2_Init)
MX_TIM2_Init 0x080015cd Thumb Code 80 main.o(i.MX_TIM2_Init)
i.MX_USART1_UART_Init 0x08001620 Section 0 main.o(i.MX_USART1_UART_Init)
MX_USART1_UART_Init 0x08001621 Thumb Code 46 main.o(i.MX_USART1_UART_Init)
i.NMI_Handler 0x08001658 Section 0 stm32f0xx_it.o(i.NMI_Handler)
i.NVIC_SetPriority 0x0800165c Section 0 stm32f0xx_hal_cortex.o(i.NVIC_SetPriority)
NVIC_SetPriority 0x0800165d Thumb Code 60 stm32f0xx_hal_cortex.o(i.NVIC_SetPriority)
i.PendSV_Handler 0x080016a0 Section 0 stm32f0xx_it.o(i.PendSV_Handler)
i.SPI1_IRQHandler 0x080016a4 Section 0 stm32f0xx_it.o(i.SPI1_IRQHandler)
i.SPI_2linesRxISR_16BIT 0x080016b4 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT)
SPI_2linesRxISR_16BIT 0x080016b5 Thumb Code 54 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT)
i.SPI_2linesRxISR_8BIT 0x080016ea Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT)
SPI_2linesRxISR_8BIT 0x080016eb Thumb Code 94 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT)
i.SPI_2linesTxISR_16BIT 0x08001748 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT)
SPI_2linesTxISR_16BIT 0x08001749 Thumb Code 52 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT)
i.SPI_2linesTxISR_8BIT 0x0800177c Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT)
SPI_2linesTxISR_8BIT 0x0800177d Thumb Code 72 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT)
i.SPI_CloseRxTx_ISR 0x080017c4 Section 0 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR)
SPI_CloseRxTx_ISR 0x080017c5 Thumb Code 82 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR)
i.SPI_DMAAbortOnError 0x08001816 Section 0 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError)
SPI_DMAAbortOnError 0x08001817 Thumb Code 18 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError)
i.SPI_EndRxTxTransaction 0x08001828 Section 0 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction)
SPI_EndRxTxTransaction 0x08001829 Thumb Code 76 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction)
i.SPI_WaitFifoStateUntilTimeout 0x08001874 Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout)
SPI_WaitFifoStateUntilTimeout 0x08001875 Thumb Code 150 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout)
i.SPI_WaitFlagStateUntilTimeout 0x0800190a Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)
SPI_WaitFlagStateUntilTimeout 0x0800190b Thumb Code 140 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)
i.SVC_Handler 0x08001996 Section 0 stm32f0xx_it.o(i.SVC_Handler)
i.SysTick_Handler 0x08001998 Section 0 stm32f0xx_it.o(i.SysTick_Handler)
i.SystemClock_Config 0x080019a4 Section 0 main.o(i.SystemClock_Config)
i.SystemInit 0x08001a10 Section 0 system_stm32f0xx.o(i.SystemInit)
i.TIM14_IRQHandler 0x08001a6c Section 0 stm32f0xx_it.o(i.TIM14_IRQHandler)
i.TIM16_IRQHandler 0x08001a7c Section 0 stm32f0xx_it.o(i.TIM16_IRQHandler)
i.TIM17_IRQHandler 0x08001a8c Section 0 stm32f0xx_it.o(i.TIM17_IRQHandler)
i.TIM_Base_SetConfig 0x08001a9c Section 0 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
i.TIM_ETR_SetConfig 0x08001b30 Section 0 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
i.TIM_ITRx_SetConfig 0x08001b46 Section 0 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
TIM_ITRx_SetConfig 0x08001b47 Thumb Code 16 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
i.TIM_TI1_ConfigInputStage 0x08001b56 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
TIM_TI1_ConfigInputStage 0x08001b57 Thumb Code 34 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
i.TIM_TI2_ConfigInputStage 0x08001b78 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
TIM_TI2_ConfigInputStage 0x08001b79 Thumb Code 38 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
i.UART_AdvFeatureConfig 0x08001b9e Section 0 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
i.UART_CheckIdleState 0x08001c68 Section 0 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
i.UART_SetConfig 0x08001cdc Section 0 stm32f0xx_hal_uart.o(i.UART_SetConfig)
i.UART_WaitOnFlagUntilTimeout 0x08001e38 Section 0 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
i.__0printf$3 0x08001e9c Section 0 printf3.o(i.__0printf$3)
i.__scatterload_copy 0x08001ebc Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x08001eca Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x08001ecc Section 14 handlers.o(i.__scatterload_zeroinit)
i._printf_core 0x08001edc Section 0 printf3.o(i._printf_core)
_printf_core 0x08001edd Thumb Code 456 printf3.o(i._printf_core)
i.avg_buf_add 0x080020a8 Section 0 quad_encoder.o(i.avg_buf_add)
i.byte_to_int16_t 0x080020c2 Section 0 main.o(i.byte_to_int16_t)
i.calc_arr 0x080020cc Section 0 quad_encoder.o(i.calc_arr)
i.delay_us 0x080020ec Section 0 delay_us.o(i.delay_us)
i.delay_us_init 0x08002100 Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x08002110 Section 0 main.o(i.fputc)
i.get_buf_avg 0x08002128 Section 0 quad_encoder.o(i.get_buf_avg)
i.kb_buf_add 0x08002146 Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x08002172 Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_is_full 0x0800218e Section 0 helpers.o(i.kb_buf_is_full)
i.kb_buf_peek 0x080021a4 Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x080021c4 Section 0 helpers.o(i.kb_buf_pop)
i.kb_buf_reset 0x080021d6 Section 0 helpers.o(i.kb_buf_reset)
i.m0100a_handle_inquiry 0x080021f4 Section 0 main.o(i.m0100a_handle_inquiry)
i.m0110a_cmd_buf_add 0x08002274 Section 0 m0110a.o(i.m0110a_cmd_buf_add)
i.m0110a_cmd_buf_init 0x0800229a Section 0 m0110a.o(i.m0110a_cmd_buf_init)
i.m0110a_cmd_buf_is_empty 0x080022ae Section 0 m0110a.o(i.m0110a_cmd_buf_is_empty)
i.m0110a_cmd_buf_is_full 0x080022be Section 0 m0110a.o(i.m0110a_cmd_buf_is_full)
i.m0110a_cmd_buf_peek 0x080022d4 Section 0 m0110a.o(i.m0110a_cmd_buf_peek)
i.m0110a_cmd_buf_pop 0x080022ea Section 0 m0110a.o(i.m0110a_cmd_buf_pop)
i.m0110a_cmd_buf_reset 0x080022fc Section 0 m0110a.o(i.m0110a_cmd_buf_reset)
i.m0110a_get_line_status 0x08002310 Section 0 m0110a.o(i.m0110a_get_line_status)
i.m0110a_read 0x08002340 Section 0 m0110a.o(i.m0110a_read)
i.m0110a_read_host_cmd 0x08002390 Section 0 m0110a.o(i.m0110a_read_host_cmd)
i.m0110a_update 0x080023ac Section 0 main.o(i.m0110a_update)
i.m0110a_write 0x08002408 Section 0 m0110a.o(i.m0110a_write)
i.m0110a_write_1b_from_buf 0x08002468 Section 0 main.o(i.m0110a_write_1b_from_buf)
i.main 0x08002488 Section 0 main.o(i.main)
i.make_m0110a_scancode 0x080025f4 Section 0 m0110a.o(i.make_m0110a_scancode)
i.malloc 0x080026cc Section 0 malloc.o(i.malloc)
i.micros 0x08002738 Section 0 delay_us.o(i.micros)
i.mouse_buf_add 0x08002748 Section 0 helpers.o(i.mouse_buf_add)
i.mouse_buf_init 0x08002778 Section 0 helpers.o(i.mouse_buf_init)
i.mouse_buf_is_full 0x0800278c Section 0 helpers.o(i.mouse_buf_is_full)
i.mouse_buf_peek 0x080027a2 Section 0 helpers.o(i.mouse_buf_peek)
i.mouse_buf_pop 0x080027b8 Section 0 helpers.o(i.mouse_buf_pop)
i.mouse_buf_reset 0x080027ca Section 0 helpers.o(i.mouse_buf_reset)
i.parse_spi_buf 0x080027dc Section 0 main.o(i.parse_spi_buf)
i.quad_decrement 0x0800289c Section 0 quad_encoder.o(i.quad_decrement)
i.quad_increment 0x080028ae Section 0 quad_encoder.o(i.quad_increment)
i.quad_init 0x080028c0 Section 0 quad_encoder.o(i.quad_init)
i.quad_reset 0x08002910 Section 0 quad_encoder.o(i.quad_reset)
i.quad_write 0x08002924 Section 0 quad_encoder.o(i.quad_write)
i.spi_error_dump_reboot 0x08002954 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_for_data_idle 0x080029cc Section 0 m0110a.o(i.wait_for_data_idle)
.constdata 0x080029fc Section 132 quad_encoder.o(.constdata)
.constdata 0x08002a80 Section 128 m0110a.o(.constdata)
.constdata 0x08002b00 Section 59 main.o(.constdata)
.constdata 0x08002b3b Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08002b4b Section 8 system_stm32f0xx.o(.constdata)
.data 0x20000000 Section 4 delay_us.o(.data)
.data 0x20000004 Section 16 quad_encoder.o(.data)
.data 0x20000014 Section 1 m0110a.o(.data)
@@ -2023,90 +2024,93 @@ Image Symbol Table
HAL_TIM_Base_Init 0x08000ee1 Thumb Code 52 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Init)
HAL_TIM_Base_MspInit 0x08000f15 Thumb Code 140 stm32f0xx_hal_msp.o(i.HAL_TIM_Base_MspInit)
HAL_TIM_Base_Start 0x08000fb1 Thumb Code 24 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start)
HAL_TIM_ConfigClockSource 0x08000fc9 Thumb Code 238 stm32f0xx_hal_tim.o(i.HAL_TIM_ConfigClockSource)
HAL_TIM_IC_CaptureCallback 0x080010b7 Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_IC_CaptureCallback)
HAL_TIM_IRQHandler 0x080010b9 Thumb Code 354 stm32f0xx_hal_tim.o(i.HAL_TIM_IRQHandler)
HAL_TIM_OC_DelayElapsedCallback 0x0800121b Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_OC_DelayElapsedCallback)
HAL_TIM_PWM_PulseFinishedCallback 0x0800121d Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_PWM_PulseFinishedCallback)
HAL_TIM_PeriodElapsedCallback 0x08001221 Thumb Code 212 quad_encoder.o(i.HAL_TIM_PeriodElapsedCallback)
HAL_TIM_TriggerCallback 0x08001301 Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_TriggerCallback)
HAL_UART_Init 0x08001303 Thumb Code 108 stm32f0xx_hal_uart.o(i.HAL_UART_Init)
HAL_UART_MspInit 0x08001371 Thumb Code 66 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit)
HAL_UART_Transmit 0x080013bd Thumb Code 200 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit)
HardFault_Handler 0x08001485 Thumb Code 2 stm32f0xx_it.o(i.HardFault_Handler)
NMI_Handler 0x08001645 Thumb Code 2 stm32f0xx_it.o(i.NMI_Handler)
PendSV_Handler 0x0800168d Thumb Code 2 stm32f0xx_it.o(i.PendSV_Handler)
SPI1_IRQHandler 0x08001691 Thumb Code 10 stm32f0xx_it.o(i.SPI1_IRQHandler)
SVC_Handler 0x08001983 Thumb Code 2 stm32f0xx_it.o(i.SVC_Handler)
SysTick_Handler 0x08001985 Thumb Code 12 stm32f0xx_it.o(i.SysTick_Handler)
SystemClock_Config 0x08001991 Thumb Code 106 main.o(i.SystemClock_Config)
SystemInit 0x080019fd Thumb Code 76 system_stm32f0xx.o(i.SystemInit)
TIM14_IRQHandler 0x08001a59 Thumb Code 10 stm32f0xx_it.o(i.TIM14_IRQHandler)
TIM16_IRQHandler 0x08001a69 Thumb Code 10 stm32f0xx_it.o(i.TIM16_IRQHandler)
TIM17_IRQHandler 0x08001a79 Thumb Code 10 stm32f0xx_it.o(i.TIM17_IRQHandler)
TIM_Base_SetConfig 0x08001a89 Thumb Code 124 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
TIM_ETR_SetConfig 0x08001b1d Thumb Code 22 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
UART_AdvFeatureConfig 0x08001b8b Thumb Code 202 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
UART_CheckIdleState 0x08001c55 Thumb Code 102 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
UART_SetConfig 0x08001cc9 Thumb Code 316 stm32f0xx_hal_uart.o(i.UART_SetConfig)
UART_WaitOnFlagUntilTimeout 0x08001e25 Thumb Code 98 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
__0printf$3 0x08001e89 Thumb Code 24 printf3.o(i.__0printf$3)
__1printf$3 0x08001e89 Thumb Code 0 printf3.o(i.__0printf$3)
__2printf 0x08001e89 Thumb Code 0 printf3.o(i.__0printf$3)
__scatterload_copy 0x08001ea9 Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x08001eb7 Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x08001eb9 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
avg_buf_add 0x08002095 Thumb Code 26 quad_encoder.o(i.avg_buf_add)
byte_to_int16_t 0x080020af Thumb Code 8 main.o(i.byte_to_int16_t)
calc_arr 0x080020b9 Thumb Code 28 quad_encoder.o(i.calc_arr)
delay_us 0x080020d9 Thumb Code 20 delay_us.o(i.delay_us)
delay_us_init 0x080020ed Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x080020fd Thumb Code 18 main.o(i.fputc)
get_buf_avg 0x08002115 Thumb Code 30 quad_encoder.o(i.get_buf_avg)
kb_buf_add 0x08002133 Thumb Code 44 helpers.o(i.kb_buf_add)
kb_buf_init 0x0800215f Thumb Code 28 helpers.o(i.kb_buf_init)
kb_buf_is_full 0x0800217b Thumb Code 22 helpers.o(i.kb_buf_is_full)
kb_buf_peek 0x08002191 Thumb Code 32 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x080021b1 Thumb Code 18 helpers.o(i.kb_buf_pop)
kb_buf_reset 0x080021c3 Thumb Code 28 helpers.o(i.kb_buf_reset)
m0100a_handle_inquiry 0x080021e1 Thumb Code 120 main.o(i.m0100a_handle_inquiry)
m0110a_cmd_buf_add 0x08002261 Thumb Code 38 m0110a.o(i.m0110a_cmd_buf_add)
m0110a_cmd_buf_init 0x08002287 Thumb Code 20 m0110a.o(i.m0110a_cmd_buf_init)
m0110a_cmd_buf_is_empty 0x0800229b Thumb Code 16 m0110a.o(i.m0110a_cmd_buf_is_empty)
m0110a_cmd_buf_is_full 0x080022ab Thumb Code 22 m0110a.o(i.m0110a_cmd_buf_is_full)
m0110a_cmd_buf_peek 0x080022c1 Thumb Code 22 m0110a.o(i.m0110a_cmd_buf_peek)
m0110a_cmd_buf_pop 0x080022d7 Thumb Code 18 m0110a.o(i.m0110a_cmd_buf_pop)
m0110a_cmd_buf_reset 0x080022e9 Thumb Code 18 m0110a.o(i.m0110a_cmd_buf_reset)
m0110a_get_line_status 0x080022fd Thumb Code 42 m0110a.o(i.m0110a_get_line_status)
m0110a_read 0x0800232d Thumb Code 76 m0110a.o(i.m0110a_read)
m0110a_read_host_cmd 0x0800237d Thumb Code 28 m0110a.o(i.m0110a_read_host_cmd)
m0110a_update 0x08002399 Thumb Code 86 main.o(i.m0110a_update)
m0110a_write 0x080023f5 Thumb Code 92 m0110a.o(i.m0110a_write)
m0110a_write_1b_from_buf 0x08002455 Thumb Code 26 main.o(i.m0110a_write_1b_from_buf)
main 0x08002475 Thumb Code 260 main.o(i.main)
make_m0110a_scancode 0x080025b5 Thumb Code 208 m0110a.o(i.make_m0110a_scancode)
malloc 0x0800268d Thumb Code 92 malloc.o(i.malloc)
micros 0x080026f9 Thumb Code 10 delay_us.o(i.micros)
mouse_buf_add 0x08002709 Thumb Code 48 helpers.o(i.mouse_buf_add)
mouse_buf_init 0x08002739 Thumb Code 20 helpers.o(i.mouse_buf_init)
mouse_buf_is_full 0x0800274d Thumb Code 22 helpers.o(i.mouse_buf_is_full)
mouse_buf_peek 0x08002763 Thumb Code 22 helpers.o(i.mouse_buf_peek)
mouse_buf_pop 0x08002779 Thumb Code 18 helpers.o(i.mouse_buf_pop)
mouse_buf_reset 0x0800278b Thumb Code 18 helpers.o(i.mouse_buf_reset)
parse_spi_buf 0x0800279d Thumb Code 184 main.o(i.parse_spi_buf)
quad_decrement 0x0800285d Thumb Code 18 quad_encoder.o(i.quad_decrement)
quad_increment 0x0800286f Thumb Code 18 quad_encoder.o(i.quad_increment)
quad_write 0x08002881 Thumb Code 44 quad_encoder.o(i.quad_write)
spi_error_dump_reboot 0x080028b1 Thumb Code 72 main.o(i.spi_error_dump_reboot)
wait_for_data_idle 0x08002929 Thumb Code 42 m0110a.o(i.wait_for_data_idle)
grey_code_lookup 0x08002958 Data 4 quad_encoder.o(.constdata)
arr_lookup 0x0800295c Data 80 quad_encoder.o(.constdata)
linux_keycode_to_m0110a_scancode_lookup 0x080029ac Data 128 m0110a.o(.constdata)
boot_message 0x08002a2c Data 59 main.o(.constdata)
AHBPrescTable 0x08002a67 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08002a77 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08002a80 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08002aa0 Number 0 anon$$obj.o(Region$$Table)
HAL_TIM_Base_Start_IT 0x08000fc9 Thumb Code 22 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start_IT)
HAL_TIM_ConfigClockSource 0x08000fdf Thumb Code 238 stm32f0xx_hal_tim.o(i.HAL_TIM_ConfigClockSource)
HAL_TIM_IC_CaptureCallback 0x080010cd Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_IC_CaptureCallback)
HAL_TIM_IRQHandler 0x080010cf Thumb Code 354 stm32f0xx_hal_tim.o(i.HAL_TIM_IRQHandler)
HAL_TIM_OC_DelayElapsedCallback 0x08001231 Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_OC_DelayElapsedCallback)
HAL_TIM_PWM_PulseFinishedCallback 0x08001233 Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_PWM_PulseFinishedCallback)
HAL_TIM_PeriodElapsedCallback 0x08001235 Thumb Code 212 quad_encoder.o(i.HAL_TIM_PeriodElapsedCallback)
HAL_TIM_TriggerCallback 0x08001315 Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_TriggerCallback)
HAL_UART_Init 0x08001317 Thumb Code 108 stm32f0xx_hal_uart.o(i.HAL_UART_Init)
HAL_UART_MspInit 0x08001385 Thumb Code 66 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit)
HAL_UART_Transmit 0x080013d1 Thumb Code 200 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit)
HardFault_Handler 0x08001499 Thumb Code 2 stm32f0xx_it.o(i.HardFault_Handler)
NMI_Handler 0x08001659 Thumb Code 2 stm32f0xx_it.o(i.NMI_Handler)
PendSV_Handler 0x080016a1 Thumb Code 2 stm32f0xx_it.o(i.PendSV_Handler)
SPI1_IRQHandler 0x080016a5 Thumb Code 10 stm32f0xx_it.o(i.SPI1_IRQHandler)
SVC_Handler 0x08001997 Thumb Code 2 stm32f0xx_it.o(i.SVC_Handler)
SysTick_Handler 0x08001999 Thumb Code 12 stm32f0xx_it.o(i.SysTick_Handler)
SystemClock_Config 0x080019a5 Thumb Code 106 main.o(i.SystemClock_Config)
SystemInit 0x08001a11 Thumb Code 76 system_stm32f0xx.o(i.SystemInit)
TIM14_IRQHandler 0x08001a6d Thumb Code 10 stm32f0xx_it.o(i.TIM14_IRQHandler)
TIM16_IRQHandler 0x08001a7d Thumb Code 10 stm32f0xx_it.o(i.TIM16_IRQHandler)
TIM17_IRQHandler 0x08001a8d Thumb Code 10 stm32f0xx_it.o(i.TIM17_IRQHandler)
TIM_Base_SetConfig 0x08001a9d Thumb Code 124 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
TIM_ETR_SetConfig 0x08001b31 Thumb Code 22 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
UART_AdvFeatureConfig 0x08001b9f Thumb Code 202 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
UART_CheckIdleState 0x08001c69 Thumb Code 102 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
UART_SetConfig 0x08001cdd Thumb Code 316 stm32f0xx_hal_uart.o(i.UART_SetConfig)
UART_WaitOnFlagUntilTimeout 0x08001e39 Thumb Code 98 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
__0printf$3 0x08001e9d Thumb Code 24 printf3.o(i.__0printf$3)
__1printf$3 0x08001e9d Thumb Code 0 printf3.o(i.__0printf$3)
__2printf 0x08001e9d Thumb Code 0 printf3.o(i.__0printf$3)
__scatterload_copy 0x08001ebd Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x08001ecb Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x08001ecd Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
avg_buf_add 0x080020a9 Thumb Code 26 quad_encoder.o(i.avg_buf_add)
byte_to_int16_t 0x080020c3 Thumb Code 8 main.o(i.byte_to_int16_t)
calc_arr 0x080020cd Thumb Code 28 quad_encoder.o(i.calc_arr)
delay_us 0x080020ed Thumb Code 20 delay_us.o(i.delay_us)
delay_us_init 0x08002101 Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x08002111 Thumb Code 18 main.o(i.fputc)
get_buf_avg 0x08002129 Thumb Code 30 quad_encoder.o(i.get_buf_avg)
kb_buf_add 0x08002147 Thumb Code 44 helpers.o(i.kb_buf_add)
kb_buf_init 0x08002173 Thumb Code 28 helpers.o(i.kb_buf_init)
kb_buf_is_full 0x0800218f Thumb Code 22 helpers.o(i.kb_buf_is_full)
kb_buf_peek 0x080021a5 Thumb Code 32 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x080021c5 Thumb Code 18 helpers.o(i.kb_buf_pop)
kb_buf_reset 0x080021d7 Thumb Code 28 helpers.o(i.kb_buf_reset)
m0100a_handle_inquiry 0x080021f5 Thumb Code 120 main.o(i.m0100a_handle_inquiry)
m0110a_cmd_buf_add 0x08002275 Thumb Code 38 m0110a.o(i.m0110a_cmd_buf_add)
m0110a_cmd_buf_init 0x0800229b Thumb Code 20 m0110a.o(i.m0110a_cmd_buf_init)
m0110a_cmd_buf_is_empty 0x080022af Thumb Code 16 m0110a.o(i.m0110a_cmd_buf_is_empty)
m0110a_cmd_buf_is_full 0x080022bf Thumb Code 22 m0110a.o(i.m0110a_cmd_buf_is_full)
m0110a_cmd_buf_peek 0x080022d5 Thumb Code 22 m0110a.o(i.m0110a_cmd_buf_peek)
m0110a_cmd_buf_pop 0x080022eb Thumb Code 18 m0110a.o(i.m0110a_cmd_buf_pop)
m0110a_cmd_buf_reset 0x080022fd Thumb Code 18 m0110a.o(i.m0110a_cmd_buf_reset)
m0110a_get_line_status 0x08002311 Thumb Code 42 m0110a.o(i.m0110a_get_line_status)
m0110a_read 0x08002341 Thumb Code 76 m0110a.o(i.m0110a_read)
m0110a_read_host_cmd 0x08002391 Thumb Code 28 m0110a.o(i.m0110a_read_host_cmd)
m0110a_update 0x080023ad Thumb Code 86 main.o(i.m0110a_update)
m0110a_write 0x08002409 Thumb Code 92 m0110a.o(i.m0110a_write)
m0110a_write_1b_from_buf 0x08002469 Thumb Code 26 main.o(i.m0110a_write_1b_from_buf)
main 0x08002489 Thumb Code 302 main.o(i.main)
make_m0110a_scancode 0x080025f5 Thumb Code 208 m0110a.o(i.make_m0110a_scancode)
malloc 0x080026cd Thumb Code 92 malloc.o(i.malloc)
micros 0x08002739 Thumb Code 10 delay_us.o(i.micros)
mouse_buf_add 0x08002749 Thumb Code 48 helpers.o(i.mouse_buf_add)
mouse_buf_init 0x08002779 Thumb Code 20 helpers.o(i.mouse_buf_init)
mouse_buf_is_full 0x0800278d Thumb Code 22 helpers.o(i.mouse_buf_is_full)
mouse_buf_peek 0x080027a3 Thumb Code 22 helpers.o(i.mouse_buf_peek)
mouse_buf_pop 0x080027b9 Thumb Code 18 helpers.o(i.mouse_buf_pop)
mouse_buf_reset 0x080027cb Thumb Code 18 helpers.o(i.mouse_buf_reset)
parse_spi_buf 0x080027dd Thumb Code 184 main.o(i.parse_spi_buf)
quad_decrement 0x0800289d Thumb Code 18 quad_encoder.o(i.quad_decrement)
quad_increment 0x080028af Thumb Code 18 quad_encoder.o(i.quad_increment)
quad_init 0x080028c1 Thumb Code 70 quad_encoder.o(i.quad_init)
quad_reset 0x08002911 Thumb Code 18 quad_encoder.o(i.quad_reset)
quad_write 0x08002925 Thumb Code 44 quad_encoder.o(i.quad_write)
spi_error_dump_reboot 0x08002955 Thumb Code 72 main.o(i.spi_error_dump_reboot)
wait_for_data_idle 0x080029cd Thumb Code 42 m0110a.o(i.wait_for_data_idle)
grey_code_lookup 0x080029fc Data 4 quad_encoder.o(.constdata)
arr_lookup 0x08002a00 Data 128 quad_encoder.o(.constdata)
linux_keycode_to_m0110a_scancode_lookup 0x08002a80 Data 128 m0110a.o(.constdata)
boot_message 0x08002b00 Data 59 main.o(.constdata)
AHBPrescTable 0x08002b3b Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08002b4b Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08002b54 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08002b74 Number 0 anon$$obj.o(Region$$Table)
us_timer 0x20000000 Data 4 delay_us.o(.data)
avg_timer 0x20000004 Data 4 quad_encoder.o(.data)
arr_timer_x 0x20000008 Data 4 quad_encoder.o(.data)
@@ -2152,9 +2156,9 @@ Memory Map of the image
Image Entry point : 0x080000c1
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00002aec, Max: 0x00010000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00002bc0, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00002aa0, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00002b74, Max: 0x00010000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
@@ -2214,132 +2218,135 @@ Memory Map of the image
0x08000ee0 0x08000ee0 0x00000034 Code RO 1013 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x08000f14 0x08000f14 0x0000009c Code RO 616 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08000fb0 0x08000fb0 0x00000018 Code RO 1016 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x08000fc8 0x08000fc8 0x000000ee Code RO 1022 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x080010b6 0x080010b6 0x00000002 Code RO 1044 i.HAL_TIM_IC_CaptureCallback stm32f0xx_hal_tim.o
0x080010b8 0x080010b8 0x00000162 Code RO 1057 i.HAL_TIM_IRQHandler stm32f0xx_hal_tim.o
0x0800121a 0x0800121a 0x00000002 Code RO 1060 i.HAL_TIM_OC_DelayElapsedCallback stm32f0xx_hal_tim.o
0x0800121c 0x0800121c 0x00000002 Code RO 1087 i.HAL_TIM_PWM_PulseFinishedCallback stm32f0xx_hal_tim.o
0x0800121e 0x0800121e 0x00000002 PAD
0x08001220 0x08001220 0x000000e0 Code RO 149 i.HAL_TIM_PeriodElapsedCallback quad_encoder.o
0x08001300 0x08001300 0x00000002 Code RO 1098 i.HAL_TIM_TriggerCallback stm32f0xx_hal_tim.o
0x08001302 0x08001302 0x0000006c Code RO 1917 i.HAL_UART_Init stm32f0xx_hal_uart.o
0x0800136e 0x0800136e 0x00000002 PAD
0x08001370 0x08001370 0x0000004c Code RO 618 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x080013bc 0x080013bc 0x000000c8 Code RO 1925 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x08001484 0x08001484 0x00000002 Code RO 540 i.HardFault_Handler stm32f0xx_it.o
0x08001486 0x08001486 0x00000002 PAD
0x08001488 0x08001488 0x000000f4 Code RO 424 i.MX_GPIO_Init main.o
0x0800157c 0x0800157c 0x0000003c Code RO 425 i.MX_SPI1_Init main.o
0x080015b8 0x080015b8 0x00000054 Code RO 426 i.MX_TIM2_Init main.o
0x0800160c 0x0800160c 0x00000038 Code RO 427 i.MX_USART1_UART_Init main.o
0x08001644 0x08001644 0x00000002 Code RO 541 i.NMI_Handler stm32f0xx_it.o
0x08001646 0x08001646 0x00000002 PAD
0x08001648 0x08001648 0x00000044 Code RO 3252 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x0800168c 0x0800168c 0x00000002 Code RO 542 i.PendSV_Handler stm32f0xx_it.o
0x0800168e 0x0800168e 0x00000002 PAD
0x08001690 0x08001690 0x00000010 Code RO 543 i.SPI1_IRQHandler stm32f0xx_it.o
0x080016a0 0x080016a0 0x00000036 Code RO 697 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x080016d6 0x080016d6 0x0000005e Code RO 698 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x08001734 0x08001734 0x00000034 Code RO 699 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x08001768 0x08001768 0x00000048 Code RO 700 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x080017b0 0x080017b0 0x00000052 Code RO 703 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x08001802 0x08001802 0x00000012 Code RO 706 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x08001814 0x08001814 0x0000004c Code RO 717 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x08001860 0x08001860 0x00000096 Code RO 722 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x080018f6 0x080018f6 0x0000008c Code RO 723 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x08001982 0x08001982 0x00000002 Code RO 544 i.SVC_Handler stm32f0xx_it.o
0x08001984 0x08001984 0x0000000c Code RO 545 i.SysTick_Handler stm32f0xx_it.o
0x08001990 0x08001990 0x0000006a Code RO 428 i.SystemClock_Config main.o
0x080019fa 0x080019fa 0x00000002 PAD
0x080019fc 0x080019fc 0x0000005c Code RO 3669 i.SystemInit system_stm32f0xx.o
0x08001a58 0x08001a58 0x00000010 Code RO 546 i.TIM14_IRQHandler stm32f0xx_it.o
0x08001a68 0x08001a68 0x00000010 Code RO 547 i.TIM16_IRQHandler stm32f0xx_it.o
0x08001a78 0x08001a78 0x00000010 Code RO 548 i.TIM17_IRQHandler stm32f0xx_it.o
0x08001a88 0x08001a88 0x00000094 Code RO 1099 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08001b1c 0x08001b1c 0x00000016 Code RO 1106 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x08001b32 0x08001b32 0x00000010 Code RO 1107 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x08001b42 0x08001b42 0x00000022 Code RO 1113 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x08001b64 0x08001b64 0x00000026 Code RO 1115 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x08001b8a 0x08001b8a 0x000000ca Code RO 1930 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08001c54 0x08001c54 0x00000074 Code RO 1931 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x08001cc8 0x08001cc8 0x0000015c Code RO 1946 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08001e24 0x08001e24 0x00000062 Code RO 1948 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x08001e86 0x08001e86 0x00000002 PAD
0x08001e88 0x08001e88 0x00000020 Code RO 3802 i.__0printf$3 mc_p.l(printf3.o)
0x08001ea8 0x08001ea8 0x0000000e Code RO 4044 i.__scatterload_copy mc_p.l(handlers.o)
0x08001eb6 0x08001eb6 0x00000002 Code RO 4045 i.__scatterload_null mc_p.l(handlers.o)
0x08001eb8 0x08001eb8 0x0000000e Code RO 4046 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08001ec6 0x08001ec6 0x00000002 PAD
0x08001ec8 0x08001ec8 0x000001cc Code RO 3809 i._printf_core mc_p.l(printf3.o)
0x08002094 0x08002094 0x0000001a Code RO 150 i.avg_buf_add quad_encoder.o
0x080020ae 0x080020ae 0x00000008 Code RO 430 i.byte_to_int16_t main.o
0x080020b6 0x080020b6 0x00000002 PAD
0x080020b8 0x080020b8 0x00000020 Code RO 151 i.calc_arr quad_encoder.o
0x080020d8 0x080020d8 0x00000014 Code RO 12 i.delay_us delay_us.o
0x080020ec 0x080020ec 0x00000010 Code RO 13 i.delay_us_init delay_us.o
0x080020fc 0x080020fc 0x00000018 Code RO 431 i.fputc main.o
0x08002114 0x08002114 0x0000001e Code RO 152 i.get_buf_avg quad_encoder.o
0x08002132 0x08002132 0x0000002c Code RO 233 i.kb_buf_add helpers.o
0x0800215e 0x0800215e 0x0000001c Code RO 234 i.kb_buf_init helpers.o
0x0800217a 0x0800217a 0x00000016 Code RO 236 i.kb_buf_is_full helpers.o
0x08002190 0x08002190 0x00000020 Code RO 237 i.kb_buf_peek helpers.o
0x080021b0 0x080021b0 0x00000012 Code RO 238 i.kb_buf_pop helpers.o
0x080021c2 0x080021c2 0x0000001c Code RO 239 i.kb_buf_reset helpers.o
0x080021de 0x080021de 0x00000002 PAD
0x080021e0 0x080021e0 0x00000080 Code RO 432 i.m0100a_handle_inquiry main.o
0x08002260 0x08002260 0x00000026 Code RO 328 i.m0110a_cmd_buf_add m0110a.o
0x08002286 0x08002286 0x00000014 Code RO 329 i.m0110a_cmd_buf_init m0110a.o
0x0800229a 0x0800229a 0x00000010 Code RO 330 i.m0110a_cmd_buf_is_empty m0110a.o
0x080022aa 0x080022aa 0x00000016 Code RO 331 i.m0110a_cmd_buf_is_full m0110a.o
0x080022c0 0x080022c0 0x00000016 Code RO 332 i.m0110a_cmd_buf_peek m0110a.o
0x080022d6 0x080022d6 0x00000012 Code RO 333 i.m0110a_cmd_buf_pop m0110a.o
0x080022e8 0x080022e8 0x00000012 Code RO 334 i.m0110a_cmd_buf_reset m0110a.o
0x080022fa 0x080022fa 0x00000002 PAD
0x080022fc 0x080022fc 0x00000030 Code RO 335 i.m0110a_get_line_status m0110a.o
0x0800232c 0x0800232c 0x00000050 Code RO 336 i.m0110a_read m0110a.o
0x0800237c 0x0800237c 0x0000001c Code RO 337 i.m0110a_read_host_cmd m0110a.o
0x08002398 0x08002398 0x0000005c Code RO 433 i.m0110a_update main.o
0x080023f4 0x080023f4 0x00000060 Code RO 338 i.m0110a_write m0110a.o
0x08002454 0x08002454 0x00000020 Code RO 434 i.m0110a_write_1b_from_buf main.o
0x08002474 0x08002474 0x00000140 Code RO 435 i.main main.o
0x080025b4 0x080025b4 0x000000d8 Code RO 339 i.make_m0110a_scancode m0110a.o
0x0800268c 0x0800268c 0x0000006c Code RO 3975 i.malloc mc_p.l(malloc.o)
0x080026f8 0x080026f8 0x00000010 Code RO 14 i.micros delay_us.o
0x08002708 0x08002708 0x00000030 Code RO 240 i.mouse_buf_add helpers.o
0x08002738 0x08002738 0x00000014 Code RO 241 i.mouse_buf_init helpers.o
0x0800274c 0x0800274c 0x00000016 Code RO 243 i.mouse_buf_is_full helpers.o
0x08002762 0x08002762 0x00000016 Code RO 244 i.mouse_buf_peek helpers.o
0x08002778 0x08002778 0x00000012 Code RO 245 i.mouse_buf_pop helpers.o
0x0800278a 0x0800278a 0x00000012 Code RO 246 i.mouse_buf_reset helpers.o
0x0800279c 0x0800279c 0x000000c0 Code RO 436 i.parse_spi_buf main.o
0x0800285c 0x0800285c 0x00000012 Code RO 153 i.quad_decrement quad_encoder.o
0x0800286e 0x0800286e 0x00000012 Code RO 154 i.quad_increment quad_encoder.o
0x08002880 0x08002880 0x00000030 Code RO 157 i.quad_write quad_encoder.o
0x080028b0 0x080028b0 0x00000078 Code RO 437 i.spi_error_dump_reboot main.o
0x08002928 0x08002928 0x00000030 Code RO 340 i.wait_for_data_idle m0110a.o
0x08002958 0x08002958 0x00000054 Data RO 159 .constdata quad_encoder.o
0x080029ac 0x080029ac 0x00000080 Data RO 341 .constdata m0110a.o
0x08002a2c 0x08002a2c 0x0000003b Data RO 443 .constdata main.o
0x08002a67 0x08002a67 0x00000010 Data RO 3670 .constdata system_stm32f0xx.o
0x08002a77 0x08002a77 0x00000008 Data RO 3671 .constdata system_stm32f0xx.o
0x08002a7f 0x08002a7f 0x00000001 PAD
0x08002a80 0x08002a80 0x00000020 Data RO 4042 Region$$Table anon$$obj.o
0x08000fc8 0x08000fc8 0x00000016 Code RO 1018 i.HAL_TIM_Base_Start_IT stm32f0xx_hal_tim.o
0x08000fde 0x08000fde 0x000000ee Code RO 1022 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x080010cc 0x080010cc 0x00000002 Code RO 1044 i.HAL_TIM_IC_CaptureCallback stm32f0xx_hal_tim.o
0x080010ce 0x080010ce 0x00000162 Code RO 1057 i.HAL_TIM_IRQHandler stm32f0xx_hal_tim.o
0x08001230 0x08001230 0x00000002 Code RO 1060 i.HAL_TIM_OC_DelayElapsedCallback stm32f0xx_hal_tim.o
0x08001232 0x08001232 0x00000002 Code RO 1087 i.HAL_TIM_PWM_PulseFinishedCallback stm32f0xx_hal_tim.o
0x08001234 0x08001234 0x000000e0 Code RO 149 i.HAL_TIM_PeriodElapsedCallback quad_encoder.o
0x08001314 0x08001314 0x00000002 Code RO 1098 i.HAL_TIM_TriggerCallback stm32f0xx_hal_tim.o
0x08001316 0x08001316 0x0000006c Code RO 1917 i.HAL_UART_Init stm32f0xx_hal_uart.o
0x08001382 0x08001382 0x00000002 PAD
0x08001384 0x08001384 0x0000004c Code RO 618 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x080013d0 0x080013d0 0x000000c8 Code RO 1925 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x08001498 0x08001498 0x00000002 Code RO 540 i.HardFault_Handler stm32f0xx_it.o
0x0800149a 0x0800149a 0x00000002 PAD
0x0800149c 0x0800149c 0x000000f4 Code RO 424 i.MX_GPIO_Init main.o
0x08001590 0x08001590 0x0000003c Code RO 425 i.MX_SPI1_Init main.o
0x080015cc 0x080015cc 0x00000054 Code RO 426 i.MX_TIM2_Init main.o
0x08001620 0x08001620 0x00000038 Code RO 427 i.MX_USART1_UART_Init main.o
0x08001658 0x08001658 0x00000002 Code RO 541 i.NMI_Handler stm32f0xx_it.o
0x0800165a 0x0800165a 0x00000002 PAD
0x0800165c 0x0800165c 0x00000044 Code RO 3252 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x080016a0 0x080016a0 0x00000002 Code RO 542 i.PendSV_Handler stm32f0xx_it.o
0x080016a2 0x080016a2 0x00000002 PAD
0x080016a4 0x080016a4 0x00000010 Code RO 543 i.SPI1_IRQHandler stm32f0xx_it.o
0x080016b4 0x080016b4 0x00000036 Code RO 697 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x080016ea 0x080016ea 0x0000005e Code RO 698 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x08001748 0x08001748 0x00000034 Code RO 699 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x0800177c 0x0800177c 0x00000048 Code RO 700 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x080017c4 0x080017c4 0x00000052 Code RO 703 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x08001816 0x08001816 0x00000012 Code RO 706 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x08001828 0x08001828 0x0000004c Code RO 717 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x08001874 0x08001874 0x00000096 Code RO 722 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x0800190a 0x0800190a 0x0000008c Code RO 723 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x08001996 0x08001996 0x00000002 Code RO 544 i.SVC_Handler stm32f0xx_it.o
0x08001998 0x08001998 0x0000000c Code RO 545 i.SysTick_Handler stm32f0xx_it.o
0x080019a4 0x080019a4 0x0000006a Code RO 428 i.SystemClock_Config main.o
0x08001a0e 0x08001a0e 0x00000002 PAD
0x08001a10 0x08001a10 0x0000005c Code RO 3669 i.SystemInit system_stm32f0xx.o
0x08001a6c 0x08001a6c 0x00000010 Code RO 546 i.TIM14_IRQHandler stm32f0xx_it.o
0x08001a7c 0x08001a7c 0x00000010 Code RO 547 i.TIM16_IRQHandler stm32f0xx_it.o
0x08001a8c 0x08001a8c 0x00000010 Code RO 548 i.TIM17_IRQHandler stm32f0xx_it.o
0x08001a9c 0x08001a9c 0x00000094 Code RO 1099 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08001b30 0x08001b30 0x00000016 Code RO 1106 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x08001b46 0x08001b46 0x00000010 Code RO 1107 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x08001b56 0x08001b56 0x00000022 Code RO 1113 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x08001b78 0x08001b78 0x00000026 Code RO 1115 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x08001b9e 0x08001b9e 0x000000ca Code RO 1930 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08001c68 0x08001c68 0x00000074 Code RO 1931 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x08001cdc 0x08001cdc 0x0000015c Code RO 1946 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08001e38 0x08001e38 0x00000062 Code RO 1948 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x08001e9a 0x08001e9a 0x00000002 PAD
0x08001e9c 0x08001e9c 0x00000020 Code RO 3802 i.__0printf$3 mc_p.l(printf3.o)
0x08001ebc 0x08001ebc 0x0000000e Code RO 4044 i.__scatterload_copy mc_p.l(handlers.o)
0x08001eca 0x08001eca 0x00000002 Code RO 4045 i.__scatterload_null mc_p.l(handlers.o)
0x08001ecc 0x08001ecc 0x0000000e Code RO 4046 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08001eda 0x08001eda 0x00000002 PAD
0x08001edc 0x08001edc 0x000001cc Code RO 3809 i._printf_core mc_p.l(printf3.o)
0x080020a8 0x080020a8 0x0000001a Code RO 150 i.avg_buf_add quad_encoder.o
0x080020c2 0x080020c2 0x00000008 Code RO 430 i.byte_to_int16_t main.o
0x080020ca 0x080020ca 0x00000002 PAD
0x080020cc 0x080020cc 0x00000020 Code RO 151 i.calc_arr quad_encoder.o
0x080020ec 0x080020ec 0x00000014 Code RO 12 i.delay_us delay_us.o
0x08002100 0x08002100 0x00000010 Code RO 13 i.delay_us_init delay_us.o
0x08002110 0x08002110 0x00000018 Code RO 431 i.fputc main.o
0x08002128 0x08002128 0x0000001e Code RO 152 i.get_buf_avg quad_encoder.o
0x08002146 0x08002146 0x0000002c Code RO 233 i.kb_buf_add helpers.o
0x08002172 0x08002172 0x0000001c Code RO 234 i.kb_buf_init helpers.o
0x0800218e 0x0800218e 0x00000016 Code RO 236 i.kb_buf_is_full helpers.o
0x080021a4 0x080021a4 0x00000020 Code RO 237 i.kb_buf_peek helpers.o
0x080021c4 0x080021c4 0x00000012 Code RO 238 i.kb_buf_pop helpers.o
0x080021d6 0x080021d6 0x0000001c Code RO 239 i.kb_buf_reset helpers.o
0x080021f2 0x080021f2 0x00000002 PAD
0x080021f4 0x080021f4 0x00000080 Code RO 432 i.m0100a_handle_inquiry main.o
0x08002274 0x08002274 0x00000026 Code RO 328 i.m0110a_cmd_buf_add m0110a.o
0x0800229a 0x0800229a 0x00000014 Code RO 329 i.m0110a_cmd_buf_init m0110a.o
0x080022ae 0x080022ae 0x00000010 Code RO 330 i.m0110a_cmd_buf_is_empty m0110a.o
0x080022be 0x080022be 0x00000016 Code RO 331 i.m0110a_cmd_buf_is_full m0110a.o
0x080022d4 0x080022d4 0x00000016 Code RO 332 i.m0110a_cmd_buf_peek m0110a.o
0x080022ea 0x080022ea 0x00000012 Code RO 333 i.m0110a_cmd_buf_pop m0110a.o
0x080022fc 0x080022fc 0x00000012 Code RO 334 i.m0110a_cmd_buf_reset m0110a.o
0x0800230e 0x0800230e 0x00000002 PAD
0x08002310 0x08002310 0x00000030 Code RO 335 i.m0110a_get_line_status m0110a.o
0x08002340 0x08002340 0x00000050 Code RO 336 i.m0110a_read m0110a.o
0x08002390 0x08002390 0x0000001c Code RO 337 i.m0110a_read_host_cmd m0110a.o
0x080023ac 0x080023ac 0x0000005c Code RO 433 i.m0110a_update main.o
0x08002408 0x08002408 0x00000060 Code RO 338 i.m0110a_write m0110a.o
0x08002468 0x08002468 0x00000020 Code RO 434 i.m0110a_write_1b_from_buf main.o
0x08002488 0x08002488 0x0000016c Code RO 435 i.main main.o
0x080025f4 0x080025f4 0x000000d8 Code RO 339 i.make_m0110a_scancode m0110a.o
0x080026cc 0x080026cc 0x0000006c Code RO 3975 i.malloc mc_p.l(malloc.o)
0x08002738 0x08002738 0x00000010 Code RO 14 i.micros delay_us.o
0x08002748 0x08002748 0x00000030 Code RO 240 i.mouse_buf_add helpers.o
0x08002778 0x08002778 0x00000014 Code RO 241 i.mouse_buf_init helpers.o
0x0800278c 0x0800278c 0x00000016 Code RO 243 i.mouse_buf_is_full helpers.o
0x080027a2 0x080027a2 0x00000016 Code RO 244 i.mouse_buf_peek helpers.o
0x080027b8 0x080027b8 0x00000012 Code RO 245 i.mouse_buf_pop helpers.o
0x080027ca 0x080027ca 0x00000012 Code RO 246 i.mouse_buf_reset helpers.o
0x080027dc 0x080027dc 0x000000c0 Code RO 436 i.parse_spi_buf main.o
0x0800289c 0x0800289c 0x00000012 Code RO 153 i.quad_decrement quad_encoder.o
0x080028ae 0x080028ae 0x00000012 Code RO 154 i.quad_increment quad_encoder.o
0x080028c0 0x080028c0 0x00000050 Code RO 155 i.quad_init quad_encoder.o
0x08002910 0x08002910 0x00000012 Code RO 156 i.quad_reset quad_encoder.o
0x08002922 0x08002922 0x00000002 PAD
0x08002924 0x08002924 0x00000030 Code RO 157 i.quad_write quad_encoder.o
0x08002954 0x08002954 0x00000078 Code RO 437 i.spi_error_dump_reboot main.o
0x080029cc 0x080029cc 0x00000030 Code RO 340 i.wait_for_data_idle m0110a.o
0x080029fc 0x080029fc 0x00000084 Data RO 159 .constdata quad_encoder.o
0x08002a80 0x08002a80 0x00000080 Data RO 341 .constdata m0110a.o
0x08002b00 0x08002b00 0x0000003b Data RO 443 .constdata main.o
0x08002b3b 0x08002b3b 0x00000010 Data RO 3670 .constdata system_stm32f0xx.o
0x08002b4b 0x08002b4b 0x00000008 Data RO 3671 .constdata system_stm32f0xx.o
0x08002b53 0x08002b53 0x00000001 PAD
0x08002b54 0x08002b54 0x00000020 Data RO 4042 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08002aa0, Size: 0x000008c0, Max: 0x00004000, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08002b74, Size: 0x000008c0, Max: 0x00004000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x08002aa0 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x08002aa4 0x00000010 Data RW 160 .data quad_encoder.o
0x20000014 0x08002ab4 0x00000001 Data RW 342 .data m0110a.o
0x20000015 0x08002ab5 0x00000003 PAD
0x20000018 0x08002ab8 0x00000020 Data RW 444 .data main.o
0x20000038 0x08002ad8 0x00000004 Data RW 2491 .data stm32f0xx_hal.o
0x2000003c 0x08002adc 0x00000004 Data RW 3672 .data system_stm32f0xx.o
0x20000040 0x08002ae0 0x00000004 Data RW 4016 .data mc_p.l(stdout.o)
0x20000044 0x08002ae4 0x00000004 Data RW 4019 .data mc_p.l(mvars.o)
0x20000048 0x08002ae8 0x00000004 Data RW 4020 .data mc_p.l(mvars.o)
0x20000000 0x08002b74 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x08002b78 0x00000010 Data RW 160 .data quad_encoder.o
0x20000014 0x08002b88 0x00000001 Data RW 342 .data m0110a.o
0x20000015 0x08002b89 0x00000003 PAD
0x20000018 0x08002b8c 0x00000020 Data RW 444 .data main.o
0x20000038 0x08002bac 0x00000004 Data RW 2491 .data stm32f0xx_hal.o
0x2000003c 0x08002bb0 0x00000004 Data RW 3672 .data system_stm32f0xx.o
0x20000040 0x08002bb4 0x00000004 Data RW 4016 .data mc_p.l(stdout.o)
0x20000044 0x08002bb8 0x00000004 Data RW 4019 .data mc_p.l(mvars.o)
0x20000048 0x08002bbc 0x00000004 Data RW 4020 .data mc_p.l(mvars.o)
0x2000004c - 0x00000038 Zero RW 158 .bss quad_encoder.o
0x20000084 - 0x0000023c Zero RW 438 .bss main.o
0x200002c0 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
@@ -2356,8 +2363,8 @@ Image component sizes
52 10 0 4 0 491747 delay_us.o
320 0 0 0 0 6616 helpers.o
670 28 128 1 0 9970 m0110a.o
1562 206 59 32 572 17498 main.o
396 20 84 16 56 7184 quad_encoder.o
1606 208 59 32 572 17494 main.o
494 30 132 16 56 8280 quad_encoder.o
28 8 192 0 1536 636 startup_stm32f072xb.o
122 18 0 4 0 3659 stm32f0xx_hal.o
178 28 0 0 0 10563 stm32f0xx_hal_cortex.o
@@ -2367,14 +2374,14 @@ Image component sizes
1504 102 0 0 0 5197 stm32f0xx_hal_rcc.o
288 14 0 0 0 1516 stm32f0xx_hal_rcc_ex.o
1350 20 0 0 0 10594 stm32f0xx_hal_spi.o
934 24 0 0 0 9466 stm32f0xx_hal_tim.o
956 24 0 0 0 10038 stm32f0xx_hal_tim.o
76 0 0 0 0 2338 stm32f0xx_hal_tim_ex.o
1072 46 0 0 0 6011 stm32f0xx_hal_uart.o
84 24 0 0 0 3922 stm32f0xx_it.o
92 16 24 4 0 1155 system_stm32f0xx.o
----------------------------------------------------------------------
9588 632 520 64 2164 595557 Object Totals
9752 644 568 64 2164 597221 Object Totals
0 0 32 0 0 0 (incl. Generated)
30 0 1 3 0 0 (incl. Padding)
@@ -2420,15 +2427,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
10392 676 520 76 2164 590929 Grand Totals
10392 676 520 76 2164 590929 ELF Image Totals
10392 676 520 76 0 0 ROM Totals
10556 688 568 76 2164 592461 Grand Totals
10556 688 568 76 2164 592461 ELF Image Totals
10556 688 568 76 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 10912 ( 10.66kB)
Total RO Size (Code + RO Data) 11124 ( 10.86kB)
Total RW Size (RW Data + ZI Data) 2240 ( 2.19kB)
Total ROM Size (Code + RO Data + RW Data) 10988 ( 10.73kB)
Total ROM Size (Code + RO Data + RW Data) 11200 ( 10.94kB)
==============================================================================

View File

@@ -35,7 +35,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x5DFA0892)
I (../Drivers/CMSIS/Include/core_cmFunc.h)(0x5DFA0892)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h)(0x5DFA0880)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio_ex.h)(0x5DFA0893)
@@ -153,7 +153,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart_ex.h)(0x5DFA0893)
I (../Inc/shared.h)(0x617487BD)
I (../Inc/shared.h)(0x617487BD)
F (..\Src\m0110a.c)(0x62D9FB01)(--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\_apple_all

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

@@ -314,7 +314,8 @@ int main(void)
memset(spi_transmit_buf, 0, SPI_BUF_SIZE);
HAL_SPI_TransmitReceive_IT(&hspi1, spi_transmit_buf, spi_recv_buf, SPI_BUF_SIZE);
// quad_init(&my_mouse_buf, &htim17, &htim16, &htim14, GPIOB, GPIO_PIN_13, GPIOB, GPIO_PIN_12, GPIOB, GPIO_PIN_14, GPIOB, GPIO_PIN_15);
quad_init(&my_mouse_buf, &htim17, &htim16, &htim14, GPIOA, GPIO_PIN_8, GPIOB, GPIO_PIN_14, GPIOB, GPIO_PIN_15, GPIOB, GPIO_PIN_12);
/* USER CODE END 2 */
/* Infinite loop */

View File

@@ -14,8 +14,10 @@ TIM_HandleTypeDef* arr_timer_y;
mouse_buf* mouse_buffer;
#define ARR_LOOKUP_SIZE 40
const uint16_t arr_lookup[ARR_LOOKUP_SIZE] = {500, 12500, 10245, 8926, 7990, 7264, 6671, 6170, 5735, 5352, 5010, 4699, 4416, 4156, 3915, 3691, 3481, 3283, 3098, 2922, 2755, 2596, 2445, 2300, 2162, 2029, 1901, 1779, 1660, 1546, 1436, 1329, 1226, 1126, 1029, 934, 843, 754, 667, 582};
#define ARR_LOOKUP_SIZE 64
const uint16_t arr_lookup[ARR_LOOKUP_SIZE] = {
12217, 10241, 8829, 7700, 6758, 5958, 5347, 4782, 4311, 3888, 3558, 3276, 3041, 2852, 2711, 2570, 2429, 2335, 2241, 2147, 2052, 1958, 1911, 1817, 1770, 1723, 1629, 1582, 1535, 1488, 1441, 1394, 1347, 1300, 1252, 1205, 1158, 1158, 1111, 1064, 1017, 1017, 970, 923, 923, 876, 876, 829, 829, 782, 782, 735, 735, 688, 688, 641, 641, 641, 594, 594, 594, 547, 547, 547
};
const uint8_t grey_code_lookup[4] = {0, 1, 3, 2};
/*
@@ -122,7 +124,6 @@ void quad_decrement(quad_output *qo)
a window average is calculated, used to adjust the timer autoreload register
*/
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
// every 10ms

BIN
resources/D416C_NEC.pdf Normal file
View File

Binary file not shown.

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@@ -1,27 +1,22 @@
from PIL import Image
im = Image.open('ccc.png', 'r').convert('RGB')
im = Image.open('bitmap.png', 'r').convert('RGB')
width, height = im.size
if width < 128 or height < 128:
print("Wrong size, should be exactly 128x128")
exit()
# x: left 0, right 128
# y: top 0, bottom 128
# x: left 0, right width
# y: top 0, bottom height
pix = im.load()
curve_dict = {}
curve_list = []
for horizontal_location in range(128):
col_dict = {}
for y in range(128):
col_dict[sum(pix[horizontal_location,y])] = y
# print(horizontal_location, 128 - col_dict[min(col_dict.keys())])
curve_dict[horizontal_location] = 128 - col_dict[min(col_dict.keys())]
if curve_dict[horizontal_location] < 0:
curve_dict[horizontal_location] = 0
if curve_dict[horizontal_location] > 127:
curve_dict[horizontal_location] = 127
for x in range(width):
col_list = []
for y in range(height):
col_list.append((y, sum(pix[x,y])))
col_list = sorted(col_list, key=lambda x: x[1])
curve_list.append((x, height - col_list[0][0]))
print(curve_dict)
adjusted_list = [(int(x[0]/4), int((x[1]/255)*12000) + 500) for x in curve_list[::4]]
print(adjusted_list)
print([x[1] for x in adjusted_list])

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,27 @@
from PIL import Image
im = Image.open('ccc.png', 'r').convert('RGB')
width, height = im.size
if width < 128 or height < 128:
print("Wrong size, should be exactly 128x128")
exit()
# x: left 0, right 128
# y: top 0, bottom 128
pix = im.load()
curve_dict = {}
for horizontal_location in range(128):
col_dict = {}
for y in range(128):
col_dict[sum(pix[horizontal_location,y])] = y
# print(horizontal_location, 128 - col_dict[min(col_dict.keys())])
curve_dict[horizontal_location] = 128 - col_dict[min(col_dict.keys())]
if curve_dict[horizontal_location] < 0:
curve_dict[horizontal_location] = 0
if curve_dict[horizontal_location] > 127:
curve_dict[horizontal_location] = 127
print(curve_dict)

View File

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB