quad encoder output working, not very linear though

This commit is contained in:
dekunukem
2022-04-30 15:33:43 +01:00
parent 6a1b34d0b1
commit 2efb3f1e87
13 changed files with 930 additions and 892 deletions

View File

File diff suppressed because one or more lines are too long

View File

Binary file not shown.

View File

@@ -28,13 +28,10 @@ Project File Date: 04/29/2022
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin' *** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'apple_all' Build target 'apple_all'
compiling main.c... compiling main.c...
../Src/main.c(220): warning: #111-D: statement is unreachable
speed_val = abs(speed_val);
../Src/main.c: 1 warning, 0 errors
linking... linking...
Program Size: Code=9236 RO-data=328 RW-data=40 ZI-data=2080 Program Size: Code=9332 RO-data=328 RW-data=40 ZI-data=2096
FromELF: creating hex file... FromELF: creating hex file...
"apple_all\apple_all.axf" - 0 Error(s), 1 Warning(s). "apple_all\apple_all.axf" - 0 Error(s), 0 Warning(s).
<h2>Software Packages used:</h2> <h2>Software Packages used:</h2>
@@ -57,7 +54,7 @@ Package Vendor: Keil
<h2>Collection of Component Files used:</h2> <h2>Collection of Component Files used:</h2>
* Component: ARM::CMSIS:CORE:5.3.0 * Component: ARM::CMSIS:CORE:5.3.0
Build Time Elapsed: 00:00:01 Build Time Elapsed: 00:00:02
</pre> </pre>
</body> </body>
</html> </html>

View File

@@ -1,19 +1,19 @@
:020000040800F2 :020000040800F2
:1000000048080020D5000008B5150008F5130008C1 :1000000058080020D5000008D11500081114000878
:1000100000000000000000000000000000000000E0 :1000100000000000000000000000000000000000E0
:10002000000000000000000000000000F3180008BD :100020000000000000000000000000000F190008A0
:100030000000000000000000FD150008F518000891 :100030000000000000000000191600081119000857
:10004000E7000008E7000008E7000008E7000008F4 :10004000E7000008E7000008E7000008E7000008F4
:10005000E7000008E7000008E7000008E7000008E4 :10005000E7000008E7000008E7000008E7000008E4
:10006000E7000008E7000008E7000008E7000008D4 :10006000E7000008E7000008E7000008E7000008D4
:10007000E7000008E7000008E7000008E7000008C4 :10007000E7000008E7000008E7000008E7000008C4
:10008000E7000008E7000008E7000008E7000008B4 :10008000E7000008E7000008E7000008E7000008B4
:10009000E7000008C9190008D9190008E70000089E :10009000E7000008E5190008F5190008E700000866
:1000A000E700000801160008E7000008E700000864 :1000A000E70000081D160008E7000008E700000848
:1000B000E7000008E7000008E7000008E700000884 :1000B000E7000008E7000008E7000008E700000884
:1000C0000348854600F04EF8004800470921000823 :1000C0000348854600F04EF80048004765210008C7
:1000D000480800200448804704480047FEE7FEE740 :1000D000580800200448804704480047FEE7FEE730
:1000E000FEE7FEE7FEE7FEE76D190008C100000825 :1000E000FEE7FEE7FEE7FEE789190008C100000809
:1000F00030B50B46014600202022012409E00D46C0 :1000F00030B50B46014600202022012409E00D46C0
:10010000D5409D4205D31D469540491B2546954047 :10010000D5409D4205D31D469540491B2546954047
:1001100040191546521E002DF1DC30BD03460B433D :1001100040191546521E002DF1DC30BD03460B433D
@@ -23,7 +23,7 @@
:10015000F6E710B513460A4604461946FFF7F0FFC6 :10015000F6E710B513460A4604461946FFF7F0FFC6
:10016000204610BD064C0125064E05E0E36807CC8D :10016000204610BD064C0125064E05E0E36807CC8D
:100170002B430C3C98471034B442F7D3FFF7A4FF4D :100170002B430C3C98471034B442F7D3FFF7A4FF4D
:100180003C2500085C25000870B50024014620319C :100180009C250008BC25000870B5002401462031DC
:100190004A78022A03D004218163012416E0026810 :100190004A78022A03D004218163012416E0026810
:1001A00013680E25AB431360026813685B085B009D :1001A00013680E25AB431360026813685B085B009D
:1001B00013600122056C1346AB40C56B6B604A703F :1001B00013600122056C1346AB40C56B6B604A703F
@@ -64,7 +64,7 @@
:1003E00017F800221146901E00F012F80022114664 :1003E00017F800221146901E00F012F80022114664
:1003F000501E00F00DF808BD00100240C106C90EE5 :1003F000501E00F00DF808BD00100240C106C90EE5
:1004000001208840014908607047000000E100E0D9 :1004000001208840014908607047000000E100E0D9
:1004100010B501F0D1F810BDF8B504460068434DA1 :1004100010B501F0DFF810BDF8B504460068434D93
:10042000C00352D5E8690026C00007D4E969280452 :10042000C00352D5E8690026C00007D4E969280452
:100430000143E961E9690140012600913C480168F6 :100430000143E961E9690140012600913C480168F6
:10044000C90510D40168821511430160FFF784FFCC :10044000C90510D40168821511430160FFF784FFCC
@@ -103,10 +103,10 @@
:1006500009028843E9680843606000F02DF861688A :1006500009028843E9680843606000F02DF861688A
:10066000084A0906090F515CC84007490860002084 :10066000084A0906090F515CC84007490860002084
:10067000FFF790FE0020F8BD00200240001002406D :10067000FFF790FE0020F8BD00200240001002406D
:100680008813000021250008180000200148006898 :100680008813000081250008180000200148006838
:1006900070470000180000200448054900684968B8 :1006900070470000180000200448054900684968B8
:1006A000044A4905490F515CC840704718000020B2 :1006A000044A4905490F515CC840704718000020B2
:1006B000001002403125000830B516A30FCB89B0D9 :1006B000001002409125000830B516A30FCB89B079
:1006C0006C460FC417A30FCB0FC41A494A680C20FD :1006C0006C460FC417A30FCB0FC41A494A680C20FD
:1006D000144604401848042C05D0184B082C04D0AC :1006D000144604401848042C05D0184B082C04D0AC
:1006E0000C2C00D1184609B030BD9402240F6D4681 :1006E0000C2C00D1184609B030BD9402240F6D4681
@@ -189,7 +189,7 @@
:100BB00018D020684168890889004160A06D0B4DFC :100BB00018D020684168890889004160A06D0B4DFC
:100BC000002803D04563A06DFFF7DEFA606D0028B2 :100BC000002803D04563A06DFFF7DEFA606D0028B2
:100BD000B8D04563606DFFF7D7FAF8BDC16880688B :100BD000B8D04563606DFFF7D7FAF8BDC16880688B
:100BE0000090F8BD2046FFF797FFF8BD7317000887 :100BE0000090F8BD2046FFF797FFF8BD8F1700086B
:100BF000F8B5040007D0002625464035A662687F78 :100BF000F8B5040007D0002625464035A662687F78
:100C0000002802D005E00120F8BD2E77204600F034 :100C0000002802D005E00120F8BD2E77204600F034
:100C10004BF802236B772068016840229143016002 :100C10004BF802236B772068016840229143016002
@@ -219,17 +219,17 @@
:100D900003D301684B68934302E001684B68134337 :100D900003D301684B68934302E001684B68134337
:100DA0004B6001684A68E0231A434A6000680168A2 :100DA0004B6001684A68E0231A434A6000680168A2
:100DB000490603D4016840221143016000202077D6 :100DB000490603D4016840221143016000202077D6
:100DC0002846F0BD11160008A516000847160008B1 :100DC0002846F0BD2D160008C1160008631600085D
:100DD000D916000870B501220926D503F606294662 :100DD000F516000870B501220926D503F606294646
:100DE0003046FFF7B3FA0F4C2078DE2802D00E49C8 :100DE0003046FFF7B3FA0F4C2078DE2802D00E49C8
:100DF000012048700B4801F097FAA078032805D12C :100DF000012048700B4801F0C7FAA078032805D1FC
:100E00000121002249030948FFF7A0FA054A2023DF :100E00000121002249030948FFF7A0FA054A2023DF
:100E1000D11A0748FFF774FF002229463046FFF732 :100E1000D11A0748FFF774FF002229463046FFF732
:100E200095FA70BDDC010020040000200008004895 :100E200095FA70BDDC010020040000200008004895
:100E300028000020042204490428086902D09043B5 :100E300028000020042204490428086902D09043B5
:100E4000086170471043FBE700E000E070470000D6 :100E4000086170471043FBE700E000E070470000D6
:100E5000094910B5401E884201D9012010BD074C38 :100E5000094910B5401E884201D9012010BD074C38
:100E600060610321081F00F0A7FB0020A06107209C :100E600060610321081F00F0B5FB0020A06107208E
:100E70002061002010BD0000FFFFFF0000E000E047 :100E70002061002010BD0000FFFFFF0000E000E047
:100E800010B5FFF7E3FF10BD7047704770B502461D :100E800010B5FFF7E3FF10BD7047704770B502461D
:100E90002032137F012B1BD00123137702245477B8 :100E90002032137F012B1BD00123137702245477B8
@@ -238,7 +238,7 @@
:100EC000846849680C43846053770020107770BDB4 :100EC000846849680C43846053770020107770BDB4
:100ED000022070BD70B5040005D025462035687F1E :100ED000022070BD70B5040005D025462035687F1E
:100EE000002802D006E0012070BD002028772046AF :100EE000002802D006E0012070BD002028772046AF
:100EF00000F00AF802206877211D206800F074FDD8 :100EF00000F00AF802206877211D206800F082FDCA
:100F000001206877002070BD08B5012201689207B2 :100F000001206877002070BD08B5012201689207B2
:100F10001848914207D1C16901221143C161C069DA :100F10001848914207D1C16901221143C161C069DA
:100F20001040009008BD144A91420ED182690121FF :100F20001040009008BD144A91420ED182690121FF
@@ -256,13 +256,13 @@
:100FE00006DC00284ED0102840D14EE00220F8BD8B :100FE00006DC00284ED0102840D14EE00220F8BD8B
:100FF000302850D0402839D13CE060282DD07028CE :100FF000302850D0402839D13CE060282DD07028CE
:1010000017D001221203801A0ED090422ED1CB6845 :1010000017D001221203801A0ED090422ED1CB6845
:101010004A688968206800F031FD206881680122F3 :101010004A688968206800F03FFD206881680122E5
:1010200092031143816021E020688168C908C900EA :1010200092031143816021E020688168C908C900EA
:10103000F8E7CB684A688968206800F01FFD2168DE :10103000F8E7CB684A688968206800F02DFD2168D0
:101040008868B0433043886010E0CA684968206807 :101040008868B0433043886010E0CA684968206807
:1010500000F027FD5021206806E0CA684968206832 :1010500000F035FD5021206806E0CA684968206824
:1010600000F030FD6021206800F013FD6F77002054 :1010600000F03EFD6021206800F021FD6F77002038
:101070002877F8BDCA684968206800F012FD402151 :101070002877F8BDCA684968206800F020FD402143
:101080002068F1E700212068EEE710212068EBE7F7 :101080002068F1E700212068EEE710212068EBE7F7
:1010900020212068E8E730212068E5E7704770B537 :1010900020212068E8E730212068E5E7704770B537
:1010A0000446006801690025C9438907002915DB4A :1010A0000446006801690025C9438907002915DB4A
@@ -284,321 +284,327 @@
:1011A00000F030F820680169C943090609D4C16814 :1011A00000F030F820680169C943090609D4C16814
:1011B000C943090605D48021C94301612046FFF7D0 :1011B000C943090605D48021C94301612046FFF7D0
:1011C00063FE20680169C943490609D4C168C9435F :1011C00063FE20680169C943490609D4C168C9435F
:1011D000490605D44021C9430161204600F048F882 :1011D000490605D44021C9430161204600F056F874
:1011E00020680169C943890609D4C168C9438906D1 :1011E00020680169C943890609D4C168C9438906D1
:1011F00005D42021C94301612046FFF746FE70BD9A :1011F00005D42021C94301612046FFF746FE70BD9A
:101200007047704770B505461548164C0646403E77 :101200007047704770B504461C481D4D0646403E69
:10121000854214D12046083001F063F8002818D028 :1012100084421BD1FF2109200131C006FFF792F85B
:101220000021415E084600F0E5FE2046083001F04E :101220002846083001F08DF8002820D00021415ECA
:1012300063F800F009FF606031680B48C862B5428E :10123000084600F0EDFE2846083001F08DF800F079
:1012400006D16068002803D0084806DD01F0D5F813 :1012400031FF686000F0FAFE3168C862B4420DD127
:1012500070BD002000F0CEFEEBE701F0C5F870BDD8 :10125000686800280AD00121C9030A48FFF772F81C
:101260000C010020040000201027000034020020A0 :1012600068680028084806DD01F0F7F870BD002026
:10127000704770B5040005D025466035687A0028AF :1012700000F0CEFEE3E701F0E7F870BD0C010020BE
:1012800002D006E0012070BD00202872204600F048 :10128000040000200004004844020020704770B5AC
:1012900027F8242068722068016849084900016025 :10129000040005D025466035687A002802D006E0B3
:1012A000204600F0C1FC0128EDD0606A002802D081 :1012A000012070BD00202872204600F027F824207D
:1012B000204600F01AFC206841680922D2029143BE :1012B000687220680168490849000160204600F012
:1012C0004160206881682A2291438160206801681A :1012C000C1FC0128EDD0606A002802D0204600F061
:1012D000012211430160204600F06CFC70BD00004B :1012D0001AFC206841680922D202914341602068CB
:1012E00000B500680F4987B0884218D10E4882695E :1012E00081682A22914381602068016801221143AC
:1012F000012189030A438261806908400590032027 :1012F0000160204600F06CFC70BD000000B5006885
:1013000040020090022001900020029003200390F0 :101300000F4987B0884218D10E48826901218903AC
:101310000120049009206946C006FEF767FF07B068 :101310000A438261806908400590032040020090E2
:1013200000BD00000038014000100240FFB5064635 :1013200002200190002002900320039001200490ED
:1013300004466036707A83B00D46202858D1002DBF :1013300009206946C006FEF759FF07B000BD00004E
:101340000CD00598002809D00120A1680003814233 :101340000038014000100240FFB5064604466036F2
:1013500007D12069002804D1E80702D0012007B096 :10135000707A83B00D46202858D1002D0CD0059806
:10136000F0BD307A012843D0012030720020E066C1 :10136000002809D00120A1680003814207D120692B
:1013700021207072FEF7F0FF019027464037059854 :10137000002804D1E80702D0012007B0F0BD307A80
:1013800038820598788218E0788A401E788206981C :10138000012843D0012030720020E06621207072D5
:101390000090002280212046019B00F0F3FC0028F1 :10139000FEF7E2FF0190274640370598388205980E
:1013A00018D10120A1680003814202D120690028E0 :1013A000788218E0788A401E7882069800900022A1
:1013B00012D02168287808856D1C788A0028E3D12E :1013B00080212046019B00F0F3FC002818D1012079
:1013C00006980090002240212046019B00F0DAFCA4 :1013C000A1680003814202D12069002812D021685F
:1013D000002808D00320C2E728882168C005C00D76 :1013D000287808856D1C788A0028E3D1069800904B
:1013E0000885AD1CE9E72020707200203072B6E756 :1013E000002240212046019B00F0DAFC002808D0B2
:1013F0000220B4E7FEE70000F0B5384887B0426944 :1013F0000320C2E728882168C005C00D0885AD1C00
:101400000121C9040A43426142690A4005924269C6 :10140000E9E72020707200203072B6E70220B4E7CE
:1014100089100A43426142690A40059242694900C3 :10141000FEE70000F0B5384887B042690121C904F1
:101420000A43426140694C11084005900022214660 :101420000A43426142690A400592426989100A43AF
:101430002B48FEF78BFF2B4E012231462A48FEF740 :10143000426142690A400592426949000A43426199
:1014400085FF0122170209203946C006FEF77EFFFC :1014400040694C1108400590002221462B48FEF7C8
:1014500009200022A100C006FEF778FF0022082123 :101450007DFF2B4E012231462A48FEF777FF0122FD
:101460002148FEF773FF00940024012501950294A2 :10146000170209203946C006FEF770FF0920002246
:1014700069461B480394FEF7B9FE009611260294B4 :10147000A100C006FEF76AFF002208212148FEF7FE
:101480006946194801960394FEF7B0FE812080005A :1014800065FF0094002401250195029469461B48DC
:10149000009002200290019469461348FEF7A6FED0 :101490000394FEF7ABFE00961126029469461948A4
:1014A000092002946946C006009701960394FEF74E :1014A00001960394FEF7A2FE8120800000900220A6
:1014B0009DFEE8030090092002946946019503947B :1014B0000290019469461348FEF798FE09200294B1
:1014C000C006FEF793FE082000900294694601953D :1014C0006946C006009701960394FEF78FFEE80375
:1014D00003940548FEF78AFE07B0F0BD00100240F5 :1014D000009009200294694601950394C006FEF726
:1014E0000008004823F100000004004810B50D4832 :1014E00085FE082000900294694601950394054802
:1014F0000B490160002141608160016141618161AE :1014F000FEF77CFE07B0F0BD001002400008004877
:101500000722016212024162C26081620722016306 :1015000023F100000004004810B50D480B490160AC
:10151000C2624163FFF76CFB002800D0FEE710BDFC :1015100000214160816001614161816107220162B6
:10152000003001402800002010B50121124886B08B :1015200012024162C260816207220163C2624163AA
:101530008907016000242F21846041600461611EDD :10153000FFF75EFB002800D0FEE710BD0030014041
:101540008461C160FFF7C6FC002800D0FEE70120DF :101540002800002010B50121124886B089070160EB
:101550000003009069460848FFF729FD002800D0E5 :1015500000242F21846041600461611E8461C160A8
:10156000FEE7049404A904480594FFF78FFC0028C3 :10156000FFF7B8FC002800D0FEE701200003009040
:1015700000D0FEE706B010BD8C00002010B50C486E :1015700069460848FFF71BFD002800D0FEE70494E9
:101580000A490160E1214902416000218160C16096 :1015800004A904480594FFF781FC002800D0FEE779
:1015900001618161C1610C22016242614162FFF718 :1015900006B010BD8C00002010B50C480A4901604F
:1015A00068FE002800D0FEE710BD000000380140B2 :1015A000E1214902416000218160C16001618161E6
:1015B0004C010020704700008307FF22DB0E9A4099 :1015B000C1610C22016242614162FFF768FE0028AE
:1015C0008907090E994000280BDA0007000F083838 :1015C00000D0FEE710BD0000003801404C010020B3
:1015D000830808489B001818C36993430B43C361F1 :1015D000704700008307FF22DB0E9A408907090E3F
:1015E0007047830804489B001B1818689043084301 :1015E000994000280BDA0007000F083883080848E4
:1015F0001860704700ED00E000E400E07047000074 :1015F0009B001818C36993430B43C361704783086A
:1016000010B50248FFF78AFA10BD0000280000203C :1016000004489B001B1818689043084318607047F3
:1016100010B50168C968026C1180016C891C0164F5 :1016100000ED00E000E400E07047000010B5024873
:1016200001464031CA88521ECA80C988002909D1A2 :10162000FFF77CFA10BD00002800002010B501680B
:1016300001684A6840239A434A60C18F002901D15A :10163000C968026C1180016C891C0164014640314B
:1016400000F06EF810BD10B501464031CC8803683B :10164000CA88521ECA80C988002909D101684A681F
:10165000026C012C11D9DB681380026C921C0264AD :1016500040239A434A60C18F002901D100F06EF8FF
:10166000CA88921ECA80CA88012A0DD102685368AE :1016600010BD10B501464031CC880368026C012CD6
:10167000012424032343536006E01C7B531C0364B2 :1016700011D9DB681380026C921C0264CA88921E26
:101680001470CA88521ECA80C988002909D101680D :10168000CA80CA88012A0DD1026853680124240344
:101690004A6860239A434A60C18F002901D100F053 :101690002343536006E01C7B531C03641470CA8808
:1016A0003FF810BD10B5816B02680988D160816B6D :1016A000521ECA80C988002909D101684A6860238E
:1016B000891C8163C18F491EC187C18F00290AD14E :1016B0009A434A60C18F002901D100F03FF810BD64
:1016C00001684A6880239A434A604621095A0029E2 :1016C00010B5816B02680988D160816B891C8163C8
:1016D00001D100F025F810BD10B5C38F0268816BF1 :1016D000C18F491EC187C18F00290AD101684A689C
:1016E000022B07D30988D160816B891C8163C18F6C :1016E00080239A434A604621095A002901D100F01B
:1016F000891E05E04B1C836309781173C18F491E55 :1016F00025F810BD10B5C38F0268816B022B07D38C
:10170000C187C18F00290AD101684A6880239A43A2 :101700000988D160816B891C8163C18F891E05E0C6
:101710004A604621095A002901D100F001F810BDA4 :101710004B1C836309781173C18F491EC187C18F28
:1017200070B50446FEF718FE024620684168202581 :1017200000290AD101684A6880239A434A60462109
:10173000A94341606421204600F024F8002802D02B :10173000095A002901D100F001F810BD70B5044626
:10174000206E28432066226E204601214030002A68 :10174000FEF70AFE0246206841682025A943416051
:1017500004D041772046FFF7DFF970BD427F417723 :101750006421204600F024F8002802D0206E28439F
:10176000042A204602D0FFF735FB70BDFFF7C6FA0A :101760002066226E204601214030002A04D04177B5
:1017700070BD10B5406A002146221152C187FFF7A3 :101770002046FFF7D1F970BD427F4177042A204609
:10178000CBF910BDF8B50F460B4615460092032164 :1017800002D0FFF727FB70BDFFF7B8FA70BD10B5A8
:1017900004460022C90200F01BF82026002812D1BE :10179000406A002146221152C187FFF7BDF910BDF2
:1017A0003B46002280212046009500F05CF800288E :1017A000F8B50F460B461546009203210446002269
:1017B00009D103213B46002249022046009500F052 :1017B000C90200F01BF82026002812D13B46002267
:1017C00007F8002803D0206E304320660320F8BDC0 :1017C00080212046009500F05CF8002809D1032113
:1017D000F8B51D4617460E4604463DE00321490272 :1017D0003B46002249022046009500F007F8002809
:1017E0008E4205D1002F03D1017B6846017000783D :1017E00003D0206E304320660320F8BDF8B51D46B7
:1017F000681C31D0002D05D0FEF7AEFD0699401AC9 :1017F00017460E4604463DE0032149028E4205D1BC
:10180000A84229D320684168E02291434160606882 :10180000002F03D1017B684601700078681C31D03D
:10181000C11FFD390CD10121A068C903884202D043 :10181000002D05D0FEF7A0FD0699401AA84229D355
:101820004911884204D12068016840229143016037 :1018200020684168E022914341606068C11FFD3932
:101830000120A16A4003814207D121680A688243DE :101830000CD10121A068C903884202D04911884215
:101840000A6021680A6802430A6001204034607718 :1018400004D1206801684022914301600120A16A0F
:10185000002020770320F8BD206881683140B9421C :101850004003814207D121680A6882430A602168F7
:10186000BCD10020F8BDF8B51D4617460E4604460B :101860000A6802430A600120403460770020207734
:1018700033E0681C31D0002D05D0FEF76DFD0699D0 :101870000320F8BD206881683140B942BCD1002006
:10188000401AA84229D320684168E0229143416070 :10188000F8BDF8B51D4617460E46044633E0681C01
:101890006068C11FFD390CD10121A068C9038842CD :1018900031D0002D05D0FEF75FFD0699401AA84211
:1018A00002D04911884204D1206801684022914346 :1018A00029D320684168E022914341606068C11FEC
:1018B00001600120A16A4003814207D121680A68C2 :1018B000FD390CD10121A068C903884202D0491129
:1018C00082430A6021680A6802430A6001204034AA :1018C000884204D1206801684022914301600120D0
:1018D0006077002020770320F8BD206881683046BB :1018D000A16A4003814207D121680A6882430A60F5
:1018E000884304D00020B842C3D10020F8BD0120B5 :1018E00021680A6802430A600120403460770020C2
:1018F000F9E7704710B5FEF735FDFFF7C1FA10BDE7 :1018F00020770320F8BD206881683046884304D0F3
:1019000030B599B020200125002400900895099455 :101900000020B842C3D10020F8BD0120F9E770479C
:101910006846FEF715FF002800D0FEE707200D906F :1019100010B5FEF727FDFFF7B3FA10BD30B599B04B
:1019200003200E900F94012110940DA8FEF704FEE1 :101920002020012500240090089509946846FEF7C0
:10193000002800D0FEE7119511A81395FEF76CFD65 :1019300007FF002800D0FEE707200D9003200E903F
:10194000002800D0FEE7FEF7A1FE7D21C900FEF7CA :101940000F94012110940DA8FEF7F6FD002800D099
:10195000CFFBFFF77DFA0420FFF76CFA0022114657 :10195000FEE7119511A81395FEF75EFD002800D053
:10196000501EFEF755FD19B030BD00001248016849 :10196000FEE7FEF793FE7D21C900FEF7C1FBFFF7FE
:101970000122114301604168104A11404160016831 :101970006FFA0420FFF75EFA00221146501EFEF7B0
:101980000F4A1140016001680122920491430160F5 :1019800047FD19B030BD0000124801680122114323
:1019900041683F22120491434160C16A090909016B :1019900001604168104A1140416001680F4A1140DE
:1019A000C162016B074A11400163416B490849005C :1019A00001600168012292049143016041683F2275
:1019B0004163002181607047001002400CB8FF08AD :1019B000120491434160C16A09090901C162016BC6
:1019C000FFFFF6FE2CFEFCFF10B50248FFF767FB99 :1019C000074A11400163416B490849004163002106
:1019D00010BD0000CC00002010B50248FFF75FFBEF :1019D00081607047001002400CB8FF08FFFFF6FE60
:1019E00010BD00000C010020F0B502681D4B012461 :1019E0002CFEFCFF10B50248FFF759FB10BD0000AC
:1019F000A4071D4D984203D0A04201D0A84203D1B4 :1019F000CC00002010B50248FFF751FB10BD0000DD
:101A00007026B2434E683243184E194F98420DD09B :101A00000C010020F0B502681D4B0124A4071D4DF8
:101A1000A0420BD0A84209D0164CA04206D0B0423A :101A1000984203D0A04201D0A84203D17026B2431D
:101A200004D0B84202D0144CA04204D103242402B2 :101A20004E683243184E194F98420DD0A0420BD049
:101A3000A243CC6822438024A2434C692243026023 :101A3000A84209D0164CA04206D0B04204D0B84209
:101A40008A68C2620A688262984206D0B04204D0B4 :101A400002D0144CA04204D103242402A243CC6847
:101A5000B84202D0084A904201D1096901630121CC :101A500022438024A2434C69224302608A68C26206
:101A60004161F0BD002C01400004004000400140F5 :101A60000A688262984206D0B04204D0B84202D0DE
:101A700000440140002000400048014030B5846827 :101A7000084A904201D10969016301214161F0BD29
:101A8000FF252D021B021343AC430B43234383600A :101A8000002C01400004004000400140004401409F
:101A900030BD826870239A430A4307210A4382605B :101A9000002000400048014030B58468FF252D0239
:101AA000704730B5036A046A64086400046284699C :101AA0001B021343AC430B432343836030BD826866
:101AB000F025AC43120122430A24A3430B43826165 :101AB00070239A430A4307210A438260704730B576
:101AC000036230BD30B5036A1024A3430362846906 :101AC000036A046A6408640004628469F025AC4314
:101AD000036A0F252D031203AC432243A024A34322 :101AD000120122430A24A3430B438261036230BDF7
:101AE000090119438261016230BD10B5818CC907BB :101AE00030B5036A1024A34303628469036A0F2597
:101AF00007D001684A6801235B049A43836A1A434A :101AF0002D031203AC432243A024A343090119433D
:101B00004A60818C890707D501684A6801231B0454 :101B00008261016230BD10B5818CC90707D00168C0
:101B10009A43C36A1A434A60818C490707D5016812 :101B10004A6801235B049A43836A1A434A60818CB2
:101B20004A6801239B049A43036B1A434A60818CE1 :101B2000890707D501684A6801231B049A43C36AE1
:101B3000090707D501684A680123DB039A43436B11 :101B30001A434A60818C490707D501684A68012326
:101B40001A434A60818CC90607D50268916801234F :101B40009B049A43036B1A434A60818C090707D5AB
:101B50001B039943836B19439160818C890607D5D8 :101B500001684A680123DB039A43436B1A434A60D6
:101B600001688A6801235B039A43C36B1A438A6046 :101B6000818CC90607D50268916801231B0399433C
:101B7000818C490612D503685A6801210905046C55 :101B7000836B19439160818C890607D501688A6857
:101B80008A4322435A60026C8A4207D10268516834 :101B800001235B039A43C36B1A438A60818C490625
:101B900003235B059943436C19435160818C09060B :101B900012D503685A6801210905046C8A4322435F
:101BA00007D501684A680123DB04806C9A4302432D :101BA0005A60026C8A4207D10268516803235B05C0
:101BB0004A6010BDF8B500260446C666FEF7CCFBA9 :101BB0009943436C19435160818C090607D501682C
:101BC000054616492068884202D0154988421DD131 :101BC0004A680123DB04806C9A4302434A6010BDDB
:101BD0000068144F000709D501212B460022490552 :101BD000F8B500260446C666FEF7BEFB0546164964
:101BE0002046009700F0CEF800280DD1206800684C :101BE0002068884202D0154988421DD10068144FF0
:101BF00040070BD501212B4600228905204600977E :101BF000000709D501212B46002249052046009700
:101C000000F0C0F8002801D00320F8BD2020603487 :101C000000F0CEF800280DD12068006840070BD501
:101C10006072A07226720020F8BD000000380140FA :101C100001212B46002289052046009700F0C0F8DC
:101C200000440040FFFFFF01F8B504462369A268A5 :101C2000002801D00320F8BD202060346072A0722B
:101C3000E5691A43636910202B43002125681A4384 :101C300026720020F8BD000000380140004400403A
:101C40002B680E46474F3B4013432B6023685A686E :101C4000FFFFFF01F8B504462369A268E5691A435E
:101C500003252D03AA43E5682A435A60236AA26933 :101C5000636910202B43002125681A432B680E4628
:101C600025681A43AB680B273F02BB431343AB60A5 :101C6000474F3B4013432B6023685A6803252D03DD
:101C70003D4F25683D4B0203BD420AD11B6B9B07BC :101C7000AA43E5682A435A60236AA26925681A4381
:101C80009B0F20D0012B14D0022B14D0032B1BD17F :101C8000AB680B273F02BB431343AB603D4F256856
:101C90000DE0374FBD4210D11B6B03273F043B4083 :101C90003D4B0203BD420AD11B6B9B079B0F20D01B
:101CA00011D09B1A05D09B1A05D093420CD102206B :101CA000012B14D0022B14D0032B1BD10DE0374F86
:101CB0000AE0042008E0082006E02E4B9D4202D0F6 :101CB000BD4210D11B6B03273F043B4011D09B1A40
:101CC0002D4B9D4200D100200123E769DB039F4299 :101CC00005D09B1A05D093420CD102200AE00420D3
:101CD00022D100280CD002280DD0042813D00828C7 :101CD00008E0082006E02E4B9D4202D02D4B9D428D
:101CE00017D001260A0912010807400F10432EE001 :101CE00000D100200123E769DB039F4222D10028B5
:101CF000FEF7D2FC09E06168204A48088018FEF728 :101CF0000CD002280DD0042813D0082817D00126B4
:101D0000F7F981B2EEE7FEF7D7FC616840004A08B8 :101D00000A0912010807400F10432EE0FEF7C4FC39
:101D1000F4E761684808F1E7002808D0022809D0F4 :101D100009E06168204A48088018FEF7E9F981B2B5
:101D200004280CD0082815D001263046F8BDFEF74F :101D2000EEE7FEF7C9FC616840004A08F4E7616825
:101D3000B3FC06E06168124A480880180DE0FEF71F :101D30004808F1E7002808D0022809D004280CD070
:101D4000BBFC61684A088018FEF7D2F980B22168AE :101D4000082815D001263046F8BDFEF7A5FC06E0B0
:101D5000C860EAE761684808C018FEF7C9F980B2B0 :101D50006168124A480880180DE0FEF7ADFC616822
:101D6000E860E2E7F369FFEF00380140001002404D :101D60004A088018FEF7C4F980B22168C860EAE723
:101D70000044004000480040004C00400024F400B3 :101D700061684808C018FEF7BBF980B2E860E2E786
:101D800000127A00FFB581B017460E4604460A9D40 :101D8000F369FFEF003801400010024000440040BA
:101D90001DE0681C1BD0002D05D0FEF7DDFA04996C :101D900000480040004C00400024F40000127A008B
:101DA000401AA84213D920680168FF22A13291434A :101DA000FFB581B017460E4604460A9D1DE0681C2B
:101DB0000160206881684908490081602020603402 :101DB0001BD0002D05D0FEF7CFFA0499401AA84297
:101DC0006072A07200202072032005B0F0BD206870 :101DC00013D920680168FF22A13291430160206885
:101DD000C1693046884304D00020B842D9D00020E1 :101DD0008168490849008160202060346072A072E7
:101DE000F3E70120F9E700000FB410B503A9044B95 :101DE00000202072032005B0F0BD2068C169304694
:101DF000044A029800F018F810BC08BC04B0184758 :101DF000884304D00020B842D9D00020F3E7012066
:101E0000312000081C00002002E008C8121F08C191 :101E0000F9E700000FB410B503A9044B044A029887
:101E1000002AFAD170477047002001E001C1121F6B :101E100000F018F810BC08BC04B018478D2000086A
:101E2000002AFBD170470000FFB58DB00F46054674 :101E20001C00002002E008C8121F08C1002AFAD1D5
:101E3000002606E025280AD0109A0F9990476D1CBD :101E300070477047002001E001C1121F002AFBD14A
:101E4000761C28780028F5D1304611B0F0BD00246A :101E400070470000FFB58DB00F460546002606E03E
:101E50000121674A009400E004436D1C2B7808467A :101E500025280AD0109A0F9990476D1C761C287877
:101E6000203B98401042F7D128782E2815D1042025 :101E60000028F5D1304611B0F0BD00240121674AA9
:101E7000044368786D1C2A280AD101CF6D1C00909C :101E7000009400E004436D1C2B780846203B9840FA
:101E80000BE000990A225143303940186D1C009034 :101E80001042F7D128782E2815D104200443687811
:101E90002878014630390929F3D92878692843D0B0 :101E90006D1C2A280AD101CF6D1C00900BE000991F
:101EA00006DC0028D0D063280BD0642804D13BE0A6 :101EA0000A225143303940186D1C009028780146B1
:101EB00073280FD075284CD0109A0F999047761C34 :101EB00030390929F3D92878692843D006DC00286D
:101EC00094E03878694608720020487202A80190B0 :101EC000D0D063280BD0642804D13BE073280FD016
:101ED000012003E0386801900020C0433F1D6107E6 :101ED00075284CD0109A0F999047761C94E038786A
:101EE0000CD5002400E0641C00998C420FDA844277 :101EE000694608720020487202A80190012003E0B0
:101EF000F9DB0199095D0029F5D108E0002400E033 :101EF000386801900020C0433F1D61070CD50024C5
:101F0000641C8442FCDB0199095D0029F8D1361973 :101F000000E0641C00998C420FDA8442F9DB0199ED
:101F100007E0019801990078491C0191109A0F99E6 :101F1000095D0029F5D108E0002400E0641C84423A
:101F20009047641EF5D261E00A20019001CF00289D :101F2000FCDB0199095D0029F8D1361907E0019819
:101F300002DA40422D2102E0210504D52B216A4618 :101F300001990078491C0191109A0F999047641EED
:101F40001172012103E0E10701D02021F7E70C9194 :101F4000F5D261E00A20019001CF002802DA404278
:101F500004E00A20019001CF00210C910BA90B9104 :101F50002D2102E0210504D52B216A4611720121B1
:101F600008E00199FEF7C4F80A460B993032491E81 :101F600003E0E10701D02021F7E70C9104E00A200B
:101F70000B910A700028F4D10B9803A9081A20309D :101F7000019001CF00210C910BA90B9108E0019970
:101F80000190600701D5009801E0012000900199BF :101F8000FEF7B6F80A460B993032491E0B910A70DB
:101F9000884203DD01460198081A00E00020002471 :101F90000028F4D10B9803A9081A2030019060079B
:101FA000009006E002A8109A005D0F999047641C0B :101FA00001D5009801E0012000900199884203DDED
:101FB000761C0C988442F5DB04E0109A30200F99CF :101FB00001460198081A00E000200024009006E085
:101FC0009047761C0099481E00900029F5DC08E037 :101FC00002A8109A005D0F999047641C761C0C982B
:101FD0000B980B990078491C0B91109A0F99904718 :101FD0008442F5DB04E0109A30200F999047761C7C
:101FE000761C0199481E01900029F1DC6D1C28E740 :101FE0000099481E00900029F5DC08E00B980B9939
:101FF0000928010010B5064A064C91784B00E052C2 :101FF0000078491C0B91109A0F999047761C019913
:10200000491CC8B29070082801D30020907010BD00 :10200000481E01900029F1DC6D1C28E70928010019
:1020100004000020240200200902014308B2704796 :1020100010B5064A064C91788B00E050491CC8B2B6
:1020200010B502490860FEF7ABFF10BD00000020AC :102020009070082801D30020907010BD040000209B
:1020300013B50A23012269460248FFF777F9009891 :10203000240200200902014308B27047002801DB96
:102040001CBD00004C01002000200C4A01464B0042 :10204000024600E04242FF20F530002A0EDD402A21
:10205000D35E491C18180829F9DB411E072901D253 :102050000CDA07494A4307495118074A814201DA15
:10206000082006E0002804DA4142082901DA0720A6 :10206000014602E0914200DD114688B2704700004F
:10207000C043C117490F0818C01070472402002040 :10207000CDFEFFFF07320000D430000010B502494A
:1020800070B515460E46044600F022F8002801D02F :102080000860FEF77DFF10BD0000002013B50A2395
:10209000012070BD2178606846542178A0684554BD :10209000012269460248FFF757F900981CBD00006D
:1020A0002078A178401CFEF723F82170002070BD35 :1020A0004C01002000200C4A01468B00D358491CEB
:1020B00070B50D4604468170284600F0A9F86060AE :1020B00018180829F9DB411E072901D2082006E07B
:1020C000284600F0A5F8A060204600F00FF870BD8B :1020C000002804DA4142082901DA0720C043C11779
:1020D00010B5044681780078401CFEF709F8607856 :1020D000490F0818C01070472402002070B515463B
:1020E000814201D1012010BD002010BD10B5044671 :1020E0000E46044600F022F8002801D0012070BD01
:1020F000002020706070A1786068FEF728F8A17851 :1020F0002178606846542178A06845542078A178FA
:10210000A068FEF724F810BD1CB5FEF733F9FFF701 :10210000401CFDF7F5FF2170002070BD70B50D4635
:10211000F7FBFFF771F9FFF7E9F9FFF72FFAFFF780 :1021100004468170284600F0ABF86060284600F065
:1021200003FA2E482C4900242F25846022C08460A5 :10212000A7F8A060204600F00FF870BD10B5044677
:10213000C4602B49046141600838FEF7CBFE0028DB :1021300081780078401CFDF7DBFF6078814201D197
:1021400000D0FEE7254827494030846022C08460E3 :10214000012010BD002010BD10B5044600202070F5
:10215000C4602549046141600838FEF7BBFE0028D1 :102150006070A1786068FDF7FAFFA178A068FDF7CC
:1021600000D0FEE7012000940190204C002322784B :10216000F6FF10BD1CB5FEF705F9FFF7D7FBFFF72B
:102170001F4920A0FFF738FE18484038FFF750FFEE :1021700051F9FFF7C9F9FFF70FFAFFF7E3F92F4815
:1021800010212148FFF794FF20461021083000F06D :102180002D4900242F25846022C084602C49C4601E
:102190008EF81D4820214038FDF7D9FF1A4A0F4814 :102190004160802101610838FEF79CFE002800D0D4
:1021A0002023203AD11AA438FEF7AAFD012000030B :1021A000FEE7264827494030846022C08460C4602E
:1021B00042000090154914480B46383000F026F9CB :1021B0002549046141600838FEF78CFE002800D0F4
:1021C00006484030FEF7E8FE0448FEF7E5FE60787A :1021C000FEE7012000940190204C00232278204952
:1021D0000028FDD000F042F900440140CC0000206E :1021D00020A0FFF717FE19484038FFF74FFF1021E6
:1021E000FFFF00000048014010270000040000200D :1021E0002148FFF793FF20461021083000F08FF8B8
:1021F000D824000825730A72657625642076256444 :1021F0001D4820214038FDF7AAFF1B4A0F48202325
:102200002E25642E25640A00FC01002000040048ED :10220000203AD11AA438FEF77BFD012000034200DA
:10221000F0B50B30C108C900144F0026144A0FE076 :102210000090164914480B46483000F027F907484B
:1022200003688B420BD38B4205D95C1A431845686F :102220004030FEF7B9FE0548FEF7B6FE607800289C
:1022300030C3083B00E04368136002C004E0021DA5 :10223000FDD000F043F9000000440140CC00002034
:1022400010680028ECD13046002803D138680028F7 :10224000FFFF0000004801401027000004000020AC
:1022500001D00020F0BD064A06481060064A121A56 :102250003825000825730A72657625642076256482
:10226000D208D20044C001203860D7E72400002003 :102260002E25642E25640A00FC010020000400488D
:10227000200000204C0200204804002070B50D46CC :10227000F0B50B30C108C900144F0026144A0FE016
:10228000044600F020F8002801D0012070BD20781D :1022800003688B420BD38B4205D95C1A431845680F
:102290000C226168504308182946FDF73FFF20785B :1022900030C3083B00E04368136002C004E0021D45
:1022A000A178401CFDF724FF2170002070BD10B5FF :1022A00010680028ECD13046002803D13868002897
:1022B000044681700C204843FFF7AAFF6060204667 :1022B00001D00020F0BD064A06481060064A121AF6
:1022C00000F026F810BD10B5044681780078401C57 :1022C000D208D20044C001203860D7E724000020A3
:1022D000FDF70EFF6078814201D1012010BD002082 :1022D000200000205C0200205804002070B50D464C
:1022E00010BD41780278914201D1002070474068CA :1022E000044600F020F8002801D0012070BD2078BD
:1022F0000C2251434018704710B5044640782178AD :1022F0000C226168504308182946FDF70FFF20782B
:10230000884204D0A178401CFDF7F2FE617010BD38 :10230000A178401CFDF7F4FE2170002070BD10B5CF
:1023100010B500210170417081780C225143406852 :10231000044681700C204843FFF7AAFF6060204606
:10232000FDF715FF10BD000070B504468078092840 :1023200000F026F810BD10B5044681780078401CF6
:1023300024D0082842D001283FD120212848FDF789 :10233000FDF7DEFE6078814201D1012010BD002052
:1023400006FF2748CD210170617841708025857096 :1023400010BD41780278914201D100207047406869
:102350000321C170234908220978017100214171CC :102350000C2251434018704710B50446407821784C
:1023600081710121C171002104465834635C002B46 :10236000884204D0A178401CFDF7C2FE617010BD08
:1023700032D0022B29D0012B29D02BE06179207992 :1023700010B500210170417081780C2251434068F2
:10238000FFF74AFE164A4C321080E179A079FFF738 :10238000FDF7E5FE10BD000070B504468078092811
:1023900043FE5080207A124940429080607B9071C9 :1023900024D0082842D001283FD120212848FDF729
:1023A000A07B1072E07BD071207C5072607C9072B8 :1023A000D6FE2748CD210170617841708025857067
:1023B0000C484C310830FFF761FF70BD0848A27926 :1023B0000321C1702349082209780171002141716C
:1023C00021794030FFF75CFE70BD815402E00B467E :1023C00081710121C171002104465834635C002BE6
:1023D0002B438354521CD2B2491C1029C6DB70BD5A :1023D00032D0022B29D0012B29D02BE06179207932
:1023E000BC0100200400002010B5817B491E890734 :1023E000FFF728FE164A4C321080E179A079FFF7FA
:1023F000890F817300F01AF810BD10B5817B491C5C :1023F00021FE5080207A124940429080607B90718B
:102400008907890F817300F011F810BD10B5029C87 :10240000A07B1072E07BD071207C5072607C907257
:10241000016082808360848100F001F810BD10B5F6 :102410000C484C310830FFF761FF70BD0848A279C5
:102420000021817300F002F810BD000070B5044671 :1024200021794030FFF75AFE70BD815402E00B461F
:10243000807B09490D5CA1882068EA0700D0012251 :102430002B438354521CD2B2491C1029C6DB70BDF9
:10244000FDF784FFA807A189A06801D5012200E05B :10244000BC0100200400002010B5817B491E8907D3
:102450000022FDF77BFF70BDD424000811A0FFF718 :10245000890F817300F01AF810BD10B5817B491CFB
:10246000C3FC134D0024295D12A0FFF7BDFC641CC2 :102460008907890F817300F011F810BD10B5029C27
:10247000202CF8DB10A0FFF7B7FC134D0024082137 :10247000016082808360848100F001F810BD10B596
:102480002846FDF75FFF6420FDF7A2FE641C642C64 :102480000021817300F002F810BD000070B5044611
:10249000F5DBBFF34F8F0E490C48C860BFF34F8F79 :10249000807B09490D5CA1882068EA0700D00122F1
:1024A00000BFFDE7535049204552524F520A0000E9 :1024A000FDF754FFA807A189A06801D5012200E02B
:1024B000DC010020256420000A7265626F6F746978 :1024B0000022FDF74BFF70BD3425000811A0FFF787
:1024C0006E672E2E2E0A0000000400480400FA0554 :1024C000A1FC134D0024295D12A0FFF79BFC641CA6
:1024D00000ED00E000010302555342345643205002 :1024D000202CF8DB10A0FFF795FC134D00240821F9
:1024E000726F746F636F6C20426F6172640A456132 :1024E0002846FDF72FFF6420FDF772FE641C642C64
:1024F000726C79204D6163696E746F736820262059 :1024F000F5DBBFF34F8F0E490C48C860BFF34F8F19
:102500004170706C65204465736B746F7020427508 :1025000000BFFDE7535049204552524F520A000088
:10251000730A64656B754E756B656D2032303232AF :10251000DC010020256420000A7265626F6F746917
:10252000000000000000000000010203040607088C :102520006E672E2E2E0A0000000400480400FA05F3
:102530000900000000010203040000005C250008FF :1025300000ED00E0000103025553423456432050A1
:102540000000002028000000081E00088425000864 :10254000726F746F636F6C20426F6172640A4561D1
:102550002800002020080000181E000800000000CD :10255000726C79204D6163696E746F7368202620F8
:10256000000000000000000000000000000000006B :102560004170706C65204465736B746F70204275A8
:102570000000000000127A000000000000000000CF :10257000730A64656B754E756B656D20323032324F
:042580000000000057 :10258000000000000000000000010203040607082C
:10259000090000000001020304000000BC2500083F
:1025A0000000002028000000241E0008E425000888
:1025B0002800002030080000341E00080000000041
:1025C000000000000000000000000000000000000B
:1025D0000000000000127A0000000000000000006F
:0425E00000000000F7
:04000005080000C12E :04000005080000C12E
:00000001FF :00000001FF

View File

@@ -3,7 +3,7 @@
<title>Static Call Graph - [apple_all\apple_all.axf]</title></head> <title>Static Call Graph - [apple_all\apple_all.axf]</title></head>
<body><HR> <body><HR>
<H1>Static Call Graph for image apple_all\apple_all.axf</H1><HR> <H1>Static Call Graph for image apple_all\apple_all.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Fri Apr 29 23:40:22 2022 <BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Sat Apr 30 15:29:44 2022
<BR><P> <BR><P>
<H3>Maximum Stack Usage = 212 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3> <H3>Maximum Stack Usage = 212 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3> Call chain for Maximum Stack Depth:</H3>
@@ -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)) <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) <BR>[Address Reference Count : 1]<UL><LI> startup_stm32f072xb.o(.text)
</UL> </UL>
<P><STRONG><a name="[92]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001)) <P><STRONG><a name="[93]"></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)) <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 <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 <BR><BR>[Called By]<UL><LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL> </UL>
<P><STRONG><a name="[93]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008)) <P><STRONG><a name="[94]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[94]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A)) <P><STRONG><a name="[95]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[95]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B)) <P><STRONG><a name="[96]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[96]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D)) <P><STRONG><a name="[97]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[97]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F)) <P><STRONG><a name="[98]"></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)) <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) <BR>[Address Reference Count : 1]<UL><LI> startup_stm32f072xb.o(RESET)
@@ -187,53 +187,53 @@ Global Symbols
<P><STRONG><a name="[6]"></a>WWDG_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f072xb.o(.text)) <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) <BR>[Address Reference Count : 1]<UL><LI> startup_stm32f072xb.o(RESET)
</UL> </UL>
<P><STRONG><a name="[98]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED) <P><STRONG><a name="[99]"></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)) <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 <BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = __aeabi_uidivmod
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config <BR>[Called By]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_pop <LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_pop
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_is_full <LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_is_full
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add <LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
<LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_is_full <LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_is_full
<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_add <LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_add
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick <LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
<LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetSysClockFreq <LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetSysClockFreq
<LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig <LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
<LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core <LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL> </UL>
<P><STRONG><a name="[8c]"></a>__aeabi_memcpy</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text)) <P><STRONG><a name="[8e]"></a>__aeabi_memcpy</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add <BR><BR>[Called By]<UL><LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
</UL> </UL>
<P><STRONG><a name="[99]"></a>__aeabi_memcpy4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED) <P><STRONG><a name="[9a]"></a>__aeabi_memcpy4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
<P><STRONG><a name="[9a]"></a>__aeabi_memcpy8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED) <P><STRONG><a name="[9b]"></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)) <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 <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 <LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL> </UL>
<P><STRONG><a name="[9b]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) <P><STRONG><a name="[9c]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[9c]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) <P><STRONG><a name="[9d]"></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)) <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 <BR><BR>[Calls]<UL><LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_reset <BR>[Called By]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_reset
<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_reset <LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_reset
</UL> </UL>
<P><STRONG><a name="[86]"></a>__aeabi_memclr4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text)) <P><STRONG><a name="[88]"></a>__aeabi_memclr4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_spi_buf <BR><BR>[Called By]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_spi_buf
<LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL> </UL>
<P><STRONG><a name="[9d]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) <P><STRONG><a name="[9e]"></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) <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 <BR><BR>[Calls]<UL><LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
@@ -245,7 +245,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload <BR>[Called By]<UL><LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
</UL> </UL>
<P><STRONG><a name="[9e]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED) <P><STRONG><a name="[9f]"></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)) <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 <BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = HAL_DMA_Abort_IT
@@ -258,41 +258,42 @@ Global Symbols
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick <BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot <BR>[Called By]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
</UL> </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)) <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))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = HAL_GPIO_Init <BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = HAL_GPIO_Init
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspInit <BR>[Called By]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspInit
<LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_MspInit <LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_MspInit
<LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init <LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
</UL> </UL>
<P><STRONG><a name="[91]"></a>HAL_GPIO_TogglePin</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_TogglePin)) <P><STRONG><a name="[60]"></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="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot <BR><BR>[Called By]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback
</UL> </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)) <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))
<BR><BR>[Called By]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback <BR><BR>[Called By]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
<LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init <LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_write <LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_write
</UL> </UL>
<P><STRONG><a name="[36]"></a>HAL_GetTick</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, stm32f0xx_hal.o(i.HAL_GetTick)) <P><STRONG><a name="[36]"></a>HAL_GetTick</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, stm32f0xx_hal.o(i.HAL_GetTick))
<BR><BR>[Called By]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_WaitFlagStateUntilTimeout <BR><BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_WaitFlagStateUntilTimeout
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_WaitFifoStateUntilTimeout <LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_WaitFifoStateUntilTimeout
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR <LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Transmit <LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Transmit
<LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_OscConfig <LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_OscConfig
<LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_ClockConfig <LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_ClockConfig
<LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCCEx_PeriphCLKConfig <LI><a href="#[3f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCCEx_PeriphCLKConfig
<LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay <LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_WaitOnFlagUntilTimeout <LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_WaitOnFlagUntilTimeout
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_CheckIdleState <LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_CheckIdleState
</UL> </UL>
<P><STRONG><a name="[77]"></a>HAL_IncTick</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, stm32f0xx_hal.o(i.HAL_IncTick)) <P><STRONG><a name="[79]"></a>HAL_IncTick</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, stm32f0xx_hal.o(i.HAL_IncTick))
<BR><BR>[Called By]<UL><LI><a href="#[5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SysTick_Handler <BR><BR>[Called By]<UL><LI><a href="#[5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SysTick_Handler
</UL> </UL>
@@ -338,7 +339,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_MspInit <BR>[Called By]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_MspInit
<LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_MspInit <LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_MspInit
<LI><a href="#[39]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_MspInit <LI><a href="#[39]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_MspInit
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config <LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick <LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
</UL> </UL>
@@ -347,7 +348,7 @@ Global Symbols
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick <BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config <BR>[Called By]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
</UL> </UL>
<P><STRONG><a name="[40]"></a>HAL_RCC_ClockConfig</STRONG> (Thumb, 320 bytes, Stack size 24 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_ClockConfig)) <P><STRONG><a name="[40]"></a>HAL_RCC_ClockConfig</STRONG> (Thumb, 320 bytes, Stack size 24 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_ClockConfig))
@@ -357,16 +358,16 @@ Global Symbols
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick <LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
<LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetSysClockFreq <LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetSysClockFreq
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config <BR>[Called By]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
</UL> </UL>
<P><STRONG><a name="[3a]"></a>HAL_RCC_GetHCLKFreq</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_GetHCLKFreq)) <P><STRONG><a name="[3a]"></a>HAL_RCC_GetHCLKFreq</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_GetHCLKFreq))
<BR><BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config <BR><BR>[Called By]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick <LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
</UL> </UL>
<P><STRONG><a name="[7a]"></a>HAL_RCC_GetPCLK1Freq</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq)) <P><STRONG><a name="[7c]"></a>HAL_RCC_GetPCLK1Freq</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq))
<BR><BR>[Called By]<UL><LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig <BR><BR>[Called By]<UL><LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
</UL> </UL>
<P><STRONG><a name="[41]"></a>HAL_RCC_GetSysClockFreq</STRONG> (Thumb, 90 bytes, Stack size 48 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq)) <P><STRONG><a name="[41]"></a>HAL_RCC_GetSysClockFreq</STRONG> (Thumb, 90 bytes, Stack size 48 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq))
@@ -375,7 +376,7 @@ Global Symbols
<BR>[Calls]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod <BR>[Calls]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_ClockConfig <BR>[Called By]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_ClockConfig
<LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig <LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
</UL> </UL>
<P><STRONG><a name="[42]"></a>HAL_RCC_OscConfig</STRONG> (Thumb, 966 bytes, Stack size 32 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_OscConfig)) <P><STRONG><a name="[42]"></a>HAL_RCC_OscConfig</STRONG> (Thumb, 966 bytes, Stack size 32 bytes, stm32f0xx_hal_rcc.o(i.HAL_RCC_OscConfig))
@@ -383,12 +384,12 @@ Global Symbols
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick <BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config <BR>[Called By]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
</UL> </UL>
<P><STRONG><a name="[45]"></a>HAL_SPI_ErrorCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f0xx_hal_spi.o(i.HAL_SPI_ErrorCallback)) <P><STRONG><a name="[45]"></a>HAL_SPI_ErrorCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f0xx_hal_spi.o(i.HAL_SPI_ErrorCallback))
<BR><BR>[Called By]<UL><LI><a href="#[29]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMAAbortOnError <BR><BR>[Called By]<UL><LI><a href="#[29]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_DMAAbortOnError
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR <LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
<LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_IRQHandler <LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_IRQHandler
</UL> </UL>
@@ -406,7 +407,7 @@ Global Symbols
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_MspInit <BR>[Calls]<UL><LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_MspInit
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_SPI1_Init <BR>[Called By]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_SPI1_Init
</UL> </UL>
<P><STRONG><a name="[47]"></a>HAL_SPI_MspInit</STRONG> (Thumb, 76 bytes, Stack size 32 bytes, stm32f0xx_hal_msp.o(i.HAL_SPI_MspInit)) <P><STRONG><a name="[47]"></a>HAL_SPI_MspInit</STRONG> (Thumb, 76 bytes, Stack size 32 bytes, stm32f0xx_hal_msp.o(i.HAL_SPI_MspInit))
@@ -419,8 +420,8 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Init <BR>[Called By]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Init
</UL> </UL>
<P><STRONG><a name="[74]"></a>HAL_SPI_RxCpltCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f0xx_hal_spi.o(i.HAL_SPI_RxCpltCallback)) <P><STRONG><a name="[76]"></a>HAL_SPI_RxCpltCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f0xx_hal_spi.o(i.HAL_SPI_RxCpltCallback))
<BR><BR>[Called By]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR <BR><BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
</UL> </UL>
<P><STRONG><a name="[4d]"></a>HAL_SPI_TransmitReceive_IT</STRONG> (Thumb, 196 bytes, Stack size 20 bytes, stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT)) <P><STRONG><a name="[4d]"></a>HAL_SPI_TransmitReceive_IT</STRONG> (Thumb, 196 bytes, Stack size 20 bytes, stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT))
@@ -437,11 +438,11 @@ Global Symbols
<LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_spi_buf <LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_spi_buf
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin <LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
</UL> </UL>
<P><STRONG><a name="[79]"></a>HAL_SYSTICK_CLKSourceConfig</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_CLKSourceConfig)) <P><STRONG><a name="[7b]"></a>HAL_SYSTICK_CLKSourceConfig</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_CLKSourceConfig))
<BR><BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config <BR><BR>[Called By]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
</UL> </UL>
<P><STRONG><a name="[4f]"></a>HAL_SYSTICK_Callback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Callback)) <P><STRONG><a name="[4f]"></a>HAL_SYSTICK_Callback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Callback))
@@ -453,7 +454,7 @@ Global Symbols
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NVIC_SetPriority <BR>[Calls]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;NVIC_SetPriority
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config <BR>[Called By]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
<LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick <LI><a href="#[38]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
</UL> </UL>
@@ -473,10 +474,10 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_IRQHandler <BR><BR>[Called By]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_IRQHandler
</UL> </UL>
<P><STRONG><a name="[70]"></a>HAL_TIMEx_MasterConfigSynchronization</STRONG> (Thumb, 72 bytes, Stack size 16 bytes, stm32f0xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization)) <P><STRONG><a name="[72]"></a>HAL_TIMEx_MasterConfigSynchronization</STRONG> (Thumb, 72 bytes, Stack size 16 bytes, stm32f0xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = HAL_TIMEx_MasterConfigSynchronization <BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = HAL_TIMEx_MasterConfigSynchronization
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM2_Init <BR>[Called By]<UL><LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM2_Init
</UL> </UL>
<P><STRONG><a name="[50]"></a>HAL_TIM_Base_Init</STRONG> (Thumb, 52 bytes, Stack size 16 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Init)) <P><STRONG><a name="[50]"></a>HAL_TIM_Base_Init</STRONG> (Thumb, 52 bytes, Stack size 16 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Init))
@@ -486,7 +487,7 @@ Global Symbols
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_Base_SetConfig <LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_Base_SetConfig
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM2_Init <LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM2_Init
</UL> </UL>
<P><STRONG><a name="[51]"></a>HAL_TIM_Base_MspInit</STRONG> (Thumb, 106 bytes, Stack size 8 bytes, stm32f0xx_hal_msp.o(i.HAL_TIM_Base_MspInit)) <P><STRONG><a name="[51]"></a>HAL_TIM_Base_MspInit</STRONG> (Thumb, 106 bytes, Stack size 8 bytes, stm32f0xx_hal_msp.o(i.HAL_TIM_Base_MspInit))
@@ -498,11 +499,11 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Init <BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Init
</UL> </UL>
<P><STRONG><a name="[7e]"></a>HAL_TIM_Base_Start</STRONG> (Thumb, 24 bytes, Stack size 0 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start)) <P><STRONG><a name="[80]"></a>HAL_TIM_Base_Start</STRONG> (Thumb, 24 bytes, Stack size 0 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start))
<BR><BR>[Called By]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_init <BR><BR>[Called By]<UL><LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_init
</UL> </UL>
<P><STRONG><a name="[88]"></a>HAL_TIM_Base_Start_IT</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start_IT)) <P><STRONG><a name="[8a]"></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="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <BR><BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL> </UL>
@@ -514,7 +515,7 @@ Global Symbols
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_TI1_ConfigInputStage <LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_TI1_ConfigInputStage
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_ITRx_SetConfig <LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_ITRx_SetConfig
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM2_Init <BR>[Called By]<UL><LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM2_Init
</UL> </UL>
<P><STRONG><a name="[59]"></a>HAL_TIM_IC_CaptureCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_IC_CaptureCallback)) <P><STRONG><a name="[59]"></a>HAL_TIM_IC_CaptureCallback</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_IC_CaptureCallback))
@@ -544,15 +545,17 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_IRQHandler <BR><BR>[Called By]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_IRQHandler
</UL> </UL>
<P><STRONG><a name="[5c]"></a>HAL_TIM_PeriodElapsedCallback</STRONG> (Thumb, 92 bytes, Stack size 16 bytes, main.o(i.HAL_TIM_PeriodElapsedCallback)) <P><STRONG><a name="[5c]"></a>HAL_TIM_PeriodElapsedCallback</STRONG> (Thumb, 120 bytes, Stack size 16 bytes, main.o(i.HAL_TIM_PeriodElapsedCallback))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = HAL_TIM_PeriodElapsedCallback &rArr; quad_increment &rArr; quad_write <BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = HAL_TIM_PeriodElapsedCallback &rArr; quad_increment &rArr; quad_write
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_buf_avg <BR>[Calls]<UL><LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_TogglePin
<LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;avg_buf_add <LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_buf_avg
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_pop <LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;calc_arr
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_peek <LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;avg_buf_add
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_increment <LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_pop
<LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_decrement <LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_peek
<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> </UL>
<BR>[Called By]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_IRQHandler <BR>[Called By]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_IRQHandler
</UL> </UL>
@@ -561,30 +564,30 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_IRQHandler <BR><BR>[Called By]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_IRQHandler
</UL> </UL>
<P><STRONG><a name="[66]"></a>HAL_UART_Init</STRONG> (Thumb, 108 bytes, Stack size 16 bytes, stm32f0xx_hal_uart.o(i.HAL_UART_Init)) <P><STRONG><a name="[68]"></a>HAL_UART_Init</STRONG> (Thumb, 108 bytes, Stack size 16 bytes, stm32f0xx_hal_uart.o(i.HAL_UART_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 100<LI>Call Chain = HAL_UART_Init &rArr; UART_SetConfig &rArr; HAL_RCC_GetSysClockFreq &rArr; __aeabi_uidivmod <BR><BR>[Stack]<UL><LI>Max Depth = 100<LI>Call Chain = HAL_UART_Init &rArr; UART_SetConfig &rArr; HAL_RCC_GetSysClockFreq &rArr; __aeabi_uidivmod
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspInit <BR>[Calls]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspInit
<LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig <LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_CheckIdleState <LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_CheckIdleState
<LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_AdvFeatureConfig <LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_AdvFeatureConfig
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_USART1_UART_Init <BR>[Called By]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_USART1_UART_Init
</UL> </UL>
<P><STRONG><a name="[67]"></a>HAL_UART_MspInit</STRONG> (Thumb, 66 bytes, Stack size 32 bytes, stm32f0xx_hal_msp.o(i.HAL_UART_MspInit)) <P><STRONG><a name="[69]"></a>HAL_UART_MspInit</STRONG> (Thumb, 66 bytes, Stack size 32 bytes, stm32f0xx_hal_msp.o(i.HAL_UART_MspInit))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = HAL_UART_MspInit &rArr; HAL_GPIO_Init <BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = HAL_UART_MspInit &rArr; HAL_GPIO_Init
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_Init <BR>[Calls]<UL><LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_Init
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init <BR>[Called By]<UL><LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init
</UL> </UL>
<P><STRONG><a name="[6b]"></a>HAL_UART_Transmit</STRONG> (Thumb, 200 bytes, Stack size 48 bytes, stm32f0xx_hal_uart.o(i.HAL_UART_Transmit)) <P><STRONG><a name="[6d]"></a>HAL_UART_Transmit</STRONG> (Thumb, 200 bytes, Stack size 48 bytes, stm32f0xx_hal_uart.o(i.HAL_UART_Transmit))
<BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = HAL_UART_Transmit &rArr; UART_WaitOnFlagUntilTimeout <BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = HAL_UART_Transmit &rArr; UART_WaitOnFlagUntilTimeout
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick <BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_WaitOnFlagUntilTimeout <LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_WaitOnFlagUntilTimeout
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fputc <BR>[Called By]<UL><LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;fputc
</UL> </UL>
@@ -616,15 +619,15 @@ Global Symbols
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = SysTick_Handler &rArr; HAL_SYSTICK_IRQHandler <BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = SysTick_Handler &rArr; HAL_SYSTICK_IRQHandler
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SYSTICK_IRQHandler <BR>[Calls]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SYSTICK_IRQHandler
<LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_IncTick <LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_IncTick
</UL> </UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f072xb.o(RESET) <BR>[Address Reference Count : 1]<UL><LI> startup_stm32f072xb.o(RESET)
</UL> </UL>
<P><STRONG><a name="[78]"></a>SystemClock_Config</STRONG> (Thumb, 106 bytes, Stack size 112 bytes, main.o(i.SystemClock_Config)) <P><STRONG><a name="[7a]"></a>SystemClock_Config</STRONG> (Thumb, 106 bytes, Stack size 112 bytes, main.o(i.SystemClock_Config))
<BR><BR>[Stack]<UL><LI>Max Depth = 196<LI>Call Chain = SystemClock_Config &rArr; HAL_RCC_ClockConfig &rArr; HAL_RCC_GetSysClockFreq &rArr; __aeabi_uidivmod <BR><BR>[Stack]<UL><LI>Max Depth = 196<LI>Call Chain = SystemClock_Config &rArr; HAL_RCC_ClockConfig &rArr; HAL_RCC_GetSysClockFreq &rArr; __aeabi_uidivmod
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SYSTICK_Config <BR>[Calls]<UL><LI><a href="#[3c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SYSTICK_Config
<LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SYSTICK_CLKSourceConfig <LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SYSTICK_CLKSourceConfig
<LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_OscConfig <LI><a href="#[42]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_OscConfig
<LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetHCLKFreq <LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetHCLKFreq
<LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_ClockConfig <LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_ClockConfig
@@ -664,73 +667,77 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_ConfigClockSource <BR>[Called By]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_ConfigClockSource
</UL> </UL>
<P><STRONG><a name="[69]"></a>UART_AdvFeatureConfig</STRONG> (Thumb, 202 bytes, Stack size 8 bytes, stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)) <P><STRONG><a name="[6b]"></a>UART_AdvFeatureConfig</STRONG> (Thumb, 202 bytes, Stack size 8 bytes, stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = UART_AdvFeatureConfig <BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = UART_AdvFeatureConfig
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init <BR>[Called By]<UL><LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init
</UL> </UL>
<P><STRONG><a name="[6a]"></a>UART_CheckIdleState</STRONG> (Thumb, 102 bytes, Stack size 24 bytes, stm32f0xx_hal_uart.o(i.UART_CheckIdleState)) <P><STRONG><a name="[6c]"></a>UART_CheckIdleState</STRONG> (Thumb, 102 bytes, Stack size 24 bytes, stm32f0xx_hal_uart.o(i.UART_CheckIdleState))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = UART_CheckIdleState &rArr; UART_WaitOnFlagUntilTimeout <BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = UART_CheckIdleState &rArr; UART_WaitOnFlagUntilTimeout
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick <BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_WaitOnFlagUntilTimeout <LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_WaitOnFlagUntilTimeout
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init <BR>[Called By]<UL><LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init
</UL> </UL>
<P><STRONG><a name="[68]"></a>UART_SetConfig</STRONG> (Thumb, 316 bytes, Stack size 24 bytes, stm32f0xx_hal_uart.o(i.UART_SetConfig)) <P><STRONG><a name="[6a]"></a>UART_SetConfig</STRONG> (Thumb, 316 bytes, Stack size 24 bytes, stm32f0xx_hal_uart.o(i.UART_SetConfig))
<BR><BR>[Stack]<UL><LI>Max Depth = 84<LI>Call Chain = UART_SetConfig &rArr; HAL_RCC_GetSysClockFreq &rArr; __aeabi_uidivmod <BR><BR>[Stack]<UL><LI>Max Depth = 84<LI>Call Chain = UART_SetConfig &rArr; HAL_RCC_GetSysClockFreq &rArr; __aeabi_uidivmod
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetSysClockFreq <BR>[Calls]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetSysClockFreq
<LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetPCLK1Freq <LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetPCLK1Freq
<LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod <LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init <BR>[Called By]<UL><LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init
</UL> </UL>
<P><STRONG><a name="[6c]"></a>UART_WaitOnFlagUntilTimeout</STRONG> (Thumb, 98 bytes, Stack size 40 bytes, stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)) <P><STRONG><a name="[6e]"></a>UART_WaitOnFlagUntilTimeout</STRONG> (Thumb, 98 bytes, Stack size 40 bytes, stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = UART_WaitOnFlagUntilTimeout <BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = UART_WaitOnFlagUntilTimeout
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick <BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Transmit <BR>[Called By]<UL><LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Transmit
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_CheckIdleState <LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_CheckIdleState
</UL> </UL>
<P><STRONG><a name="[7b]"></a>__0printf$3</STRONG> (Thumb, 24 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED) <P><STRONG><a name="[7d]"></a>__0printf$3</STRONG> (Thumb, 24 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core <BR><BR>[Calls]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL> </UL>
<P><STRONG><a name="[9f]"></a>__1printf$3</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED) <P><STRONG><a name="[a0]"></a>__1printf$3</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)
<P><STRONG><a name="[84]"></a>__2printf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3)) <P><STRONG><a name="[86]"></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 <BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = __2printf
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot <BR>[Called By]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL> </UL>
<P><STRONG><a name="[a0]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED) <P><STRONG><a name="[a1]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[a1]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED) <P><STRONG><a name="[a2]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[a2]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED) <P><STRONG><a name="[a3]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[61]"></a>avg_buf_add</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, main.o(i.avg_buf_add)) <P><STRONG><a name="[62]"></a>avg_buf_add</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, main.o(i.avg_buf_add))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = avg_buf_add <BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = avg_buf_add
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback <BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback
</UL> </UL>
<P><STRONG><a name="[8e]"></a>byte_to_int16_t</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, main.o(i.byte_to_int16_t)) <P><STRONG><a name="[90]"></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 <BR><BR>[Called By]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_spi_buf
</UL> </UL>
<P><STRONG><a name="[7d]"></a>delay_us_init</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, delay_us.o(i.delay_us_init)) <P><STRONG><a name="[65]"></a>calc_arr</STRONG> (Thumb, 50 bytes, Stack size 0 bytes, main.o(i.calc_arr))
<BR><BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback
</UL>
<P><STRONG><a name="[7f]"></a>delay_us_init</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, delay_us.o(i.delay_us_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = delay_us_init <BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = delay_us_init
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Start <BR>[Calls]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Start
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL> </UL>
@@ -738,109 +745,109 @@ Global Symbols
<P><STRONG><a name="[2e]"></a>fputc</STRONG> (Thumb, 18 bytes, Stack size 16 bytes, main.o(i.fputc)) <P><STRONG><a name="[2e]"></a>fputc</STRONG> (Thumb, 18 bytes, Stack size 16 bytes, main.o(i.fputc))
<BR><BR>[Stack]<UL><LI>Max Depth = 104<LI>Call Chain = fputc &rArr; HAL_UART_Transmit &rArr; UART_WaitOnFlagUntilTimeout <BR><BR>[Stack]<UL><LI>Max Depth = 104<LI>Call Chain = fputc &rArr; HAL_UART_Transmit &rArr; UART_WaitOnFlagUntilTimeout
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Transmit <BR>[Calls]<UL><LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Transmit
</UL> </UL>
<BR>[Address Reference Count : 1]<UL><LI> printf3.o(i.__0printf$3) <BR>[Address Reference Count : 1]<UL><LI> printf3.o(i.__0printf$3)
</UL> </UL>
<P><STRONG><a name="[63]"></a>get_buf_avg</STRONG> (Thumb, 52 bytes, Stack size 0 bytes, main.o(i.get_buf_avg)) <P><STRONG><a name="[64]"></a>get_buf_avg</STRONG> (Thumb, 52 bytes, Stack size 0 bytes, main.o(i.get_buf_avg))
<BR><BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback <BR><BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback
</UL> </UL>
<P><STRONG><a name="[7f]"></a>kb_buf_add</STRONG> (Thumb, 48 bytes, Stack size 16 bytes, helpers.o(i.kb_buf_add)) <P><STRONG><a name="[81]"></a>kb_buf_add</STRONG> (Thumb, 48 bytes, Stack size 16 bytes, helpers.o(i.kb_buf_add))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = kb_buf_add &rArr; kb_buf_is_full &rArr; __aeabi_uidivmod <BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = kb_buf_add &rArr; kb_buf_is_full &rArr; __aeabi_uidivmod
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_is_full <BR>[Calls]<UL><LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_is_full
<LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod <LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_spi_buf <BR>[Called By]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_spi_buf
</UL> </UL>
<P><STRONG><a name="[81]"></a>kb_buf_init</STRONG> (Thumb, 32 bytes, Stack size 16 bytes, helpers.o(i.kb_buf_init)) <P><STRONG><a name="[83]"></a>kb_buf_init</STRONG> (Thumb, 32 bytes, Stack size 16 bytes, helpers.o(i.kb_buf_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = kb_buf_init &rArr; malloc <BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = kb_buf_init &rArr; malloc
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_reset <BR>[Calls]<UL><LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_reset
<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc <LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL> </UL>
<P><STRONG><a name="[80]"></a>kb_buf_is_full</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.kb_buf_is_full)) <P><STRONG><a name="[82]"></a>kb_buf_is_full</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.kb_buf_is_full))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = kb_buf_is_full &rArr; __aeabi_uidivmod <BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = kb_buf_is_full &rArr; __aeabi_uidivmod
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod <BR>[Calls]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_add <BR>[Called By]<UL><LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_add
</UL> </UL>
<P><STRONG><a name="[83]"></a>kb_buf_reset</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.kb_buf_reset)) <P><STRONG><a name="[85]"></a>kb_buf_reset</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.kb_buf_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = kb_buf_reset <BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = kb_buf_reset
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr <BR>[Calls]<UL><LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_init <BR>[Called By]<UL><LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_init
</UL> </UL>
<P><STRONG><a name="[26]"></a>main</STRONG> (Thumb, 208 bytes, Stack size 16 bytes, main.o(i.main)) <P><STRONG><a name="[26]"></a>main</STRONG> (Thumb, 210 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 <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
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Start_IT <BR>[Calls]<UL><LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Start_IT
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Init <LI><a href="#[50]">&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="#[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="#[37]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Init
<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot <LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config <LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
<LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_USART1_UART_Init <LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_USART1_UART_Init
<LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM2_Init <LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM2_Init
<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_SPI1_Init <LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_SPI1_Init
<LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init <LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_init <LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_init
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_init <LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_init
<LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_init <LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_init
<LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_init <LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_init
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf <LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4 <LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL> </UL>
<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B) <BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
</UL> </UL>
<P><STRONG><a name="[82]"></a>malloc</STRONG> (Thumb, 92 bytes, Stack size 20 bytes, malloc.o(i.malloc)) <P><STRONG><a name="[84]"></a>malloc</STRONG> (Thumb, 92 bytes, Stack size 20 bytes, malloc.o(i.malloc))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = malloc <BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = malloc
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_init <BR>[Called By]<UL><LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_init
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_init <LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_init
</UL> </UL>
<P><STRONG><a name="[8a]"></a>mouse_buf_add</STRONG> (Thumb, 50 bytes, Stack size 16 bytes, helpers.o(i.mouse_buf_add)) <P><STRONG><a name="[8c]"></a>mouse_buf_add</STRONG> (Thumb, 50 bytes, Stack size 16 bytes, helpers.o(i.mouse_buf_add))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = mouse_buf_add &rArr; mouse_buf_is_full &rArr; __aeabi_uidivmod <BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = mouse_buf_add &rArr; mouse_buf_is_full &rArr; __aeabi_uidivmod
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_is_full <BR>[Calls]<UL><LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_is_full
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy <LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod <LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_spi_buf <BR>[Called By]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_spi_buf
</UL> </UL>
<P><STRONG><a name="[85]"></a>mouse_buf_init</STRONG> (Thumb, 24 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_init)) <P><STRONG><a name="[87]"></a>mouse_buf_init</STRONG> (Thumb, 24 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 <BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = mouse_buf_init &rArr; malloc
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_reset <BR>[Calls]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_reset
<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc <LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL> </UL>
<P><STRONG><a name="[8b]"></a>mouse_buf_is_full</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_is_full)) <P><STRONG><a name="[8d]"></a>mouse_buf_is_full</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_is_full))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = mouse_buf_is_full &rArr; __aeabi_uidivmod <BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = mouse_buf_is_full &rArr; __aeabi_uidivmod
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod <BR>[Calls]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add <BR>[Called By]<UL><LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
</UL> </UL>
<P><STRONG><a name="[60]"></a>mouse_buf_peek</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, helpers.o(i.mouse_buf_peek)) <P><STRONG><a name="[61]"></a>mouse_buf_peek</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, helpers.o(i.mouse_buf_peek))
<BR><BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback <BR><BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback
</UL> </UL>
<P><STRONG><a name="[62]"></a>mouse_buf_pop</STRONG> (Thumb, 24 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_pop)) <P><STRONG><a name="[63]"></a>mouse_buf_pop</STRONG> (Thumb, 24 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_pop))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = mouse_buf_pop &rArr; __aeabi_uidivmod <BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = mouse_buf_pop &rArr; __aeabi_uidivmod
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod <BR>[Calls]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
@@ -848,73 +855,73 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback <BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback
</UL> </UL>
<P><STRONG><a name="[8d]"></a>mouse_buf_reset</STRONG> (Thumb, 22 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_reset)) <P><STRONG><a name="[8f]"></a>mouse_buf_reset</STRONG> (Thumb, 22 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 <BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = mouse_buf_reset
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr <BR>[Calls]<UL><LI><a href="#[31]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_init <BR>[Called By]<UL><LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_init
</UL> </UL>
<P><STRONG><a name="[4c]"></a>parse_spi_buf</STRONG> (Thumb, 184 bytes, Stack size 16 bytes, main.o(i.parse_spi_buf)) <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 = 52<LI>Call Chain = parse_spi_buf &rArr; mouse_buf_add &rArr; mouse_buf_is_full &rArr; __aeabi_uidivmod <BR><BR>[Stack]<UL><LI>Max Depth = 52<LI>Call Chain = parse_spi_buf &rArr; mouse_buf_add &rArr; mouse_buf_is_full &rArr; __aeabi_uidivmod
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;byte_to_int16_t <BR>[Calls]<UL><LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;byte_to_int16_t
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add <LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_add <LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_add
<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4 <LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback <BR>[Called By]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
</UL> </UL>
<P><STRONG><a name="[65]"></a>quad_decrement</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, quad_encoder.o(i.quad_decrement)) <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 <BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = quad_decrement &rArr; quad_write
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_write <BR>[Calls]<UL><LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_write
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback <BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback
</UL> </UL>
<P><STRONG><a name="[64]"></a>quad_increment</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, quad_encoder.o(i.quad_increment)) <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 <BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = quad_increment &rArr; quad_write
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_write <BR>[Calls]<UL><LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_write
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback <BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback
</UL> </UL>
<P><STRONG><a name="[87]"></a>quad_init</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, quad_encoder.o(i.quad_init)) <P><STRONG><a name="[89]"></a>quad_init</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, quad_encoder.o(i.quad_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = quad_init &rArr; quad_reset &rArr; quad_write <BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = quad_init &rArr; quad_reset &rArr; quad_write
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_reset <BR>[Calls]<UL><LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_reset
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL> </UL>
<P><STRONG><a name="[90]"></a>quad_reset</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, quad_encoder.o(i.quad_reset)) <P><STRONG><a name="[92]"></a>quad_reset</STRONG> (Thumb, 12 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 <BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = quad_reset &rArr; quad_write
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_write <BR>[Calls]<UL><LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_write
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_init <BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_init
</UL> </UL>
<P><STRONG><a name="[8f]"></a>quad_write</STRONG> (Thumb, 44 bytes, Stack size 16 bytes, quad_encoder.o(i.quad_write)) <P><STRONG><a name="[91]"></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 <BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = quad_write
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin <BR>[Calls]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_reset <BR>[Called By]<UL><LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_reset
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_increment <LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_increment
<LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_decrement <LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quad_decrement
</UL> </UL>
<P><STRONG><a name="[89]"></a>spi_error_dump_reboot</STRONG> (Thumb, 72 bytes, Stack size 0 bytes, main.o(i.spi_error_dump_reboot)) <P><STRONG><a name="[8b]"></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 <BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = spi_error_dump_reboot &rArr; __2printf
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_TogglePin <BR>[Calls]<UL><LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_TogglePin
<LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay <LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf <LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL> </UL>
@@ -922,7 +929,7 @@ Global Symbols
<H3> <H3>
Local Symbols Local Symbols
</H3> </H3>
<P><STRONG><a name="[6d]"></a>MX_GPIO_Init</STRONG> (Thumb, 228 bytes, Stack size 48 bytes, main.o(i.MX_GPIO_Init)) <P><STRONG><a name="[6f]"></a>MX_GPIO_Init</STRONG> (Thumb, 228 bytes, Stack size 48 bytes, main.o(i.MX_GPIO_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = MX_GPIO_Init &rArr; HAL_GPIO_Init <BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = MX_GPIO_Init &rArr; HAL_GPIO_Init
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_Init <BR>[Calls]<UL><LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_Init
@@ -931,7 +938,7 @@ Local Symbols
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL> </UL>
<P><STRONG><a name="[6e]"></a>MX_SPI1_Init</STRONG> (Thumb, 52 bytes, Stack size 8 bytes, main.o(i.MX_SPI1_Init)) <P><STRONG><a name="[70]"></a>MX_SPI1_Init</STRONG> (Thumb, 52 bytes, Stack size 8 bytes, main.o(i.MX_SPI1_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = MX_SPI1_Init &rArr; HAL_SPI_Init &rArr; HAL_SPI_MspInit &rArr; HAL_GPIO_Init <BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = MX_SPI1_Init &rArr; HAL_SPI_Init &rArr; HAL_SPI_MspInit &rArr; HAL_GPIO_Init
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Init <BR>[Calls]<UL><LI><a href="#[46]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_Init
@@ -939,20 +946,20 @@ Local Symbols
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL> </UL>
<P><STRONG><a name="[6f]"></a>MX_TIM2_Init</STRONG> (Thumb, 80 bytes, Stack size 32 bytes, main.o(i.MX_TIM2_Init)) <P><STRONG><a name="[71]"></a>MX_TIM2_Init</STRONG> (Thumb, 80 bytes, Stack size 32 bytes, main.o(i.MX_TIM2_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 68<LI>Call Chain = MX_TIM2_Init &rArr; HAL_TIM_ConfigClockSource &rArr; TIM_ETR_SetConfig <BR><BR>[Stack]<UL><LI>Max Depth = 68<LI>Call Chain = MX_TIM2_Init &rArr; HAL_TIM_ConfigClockSource &rArr; TIM_ETR_SetConfig
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_ConfigClockSource <BR>[Calls]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_ConfigClockSource
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Init <LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Init
<LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIMEx_MasterConfigSynchronization <LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIMEx_MasterConfigSynchronization
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL> </UL>
<P><STRONG><a name="[71]"></a>MX_USART1_UART_Init</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, main.o(i.MX_USART1_UART_Init)) <P><STRONG><a name="[73]"></a>MX_USART1_UART_Init</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, main.o(i.MX_USART1_UART_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 108<LI>Call Chain = MX_USART1_UART_Init &rArr; HAL_UART_Init &rArr; UART_SetConfig &rArr; HAL_RCC_GetSysClockFreq &rArr; __aeabi_uidivmod <BR><BR>[Stack]<UL><LI>Max Depth = 108<LI>Call Chain = MX_USART1_UART_Init &rArr; HAL_UART_Init &rArr; UART_SetConfig &rArr; HAL_RCC_GetSysClockFreq &rArr; __aeabi_uidivmod
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init <BR>[Calls]<UL><LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL> </UL>
@@ -960,37 +967,37 @@ Local Symbols
<P><STRONG><a name="[2a]"></a>SPI_2linesRxISR_16BIT</STRONG> (Thumb, 54 bytes, Stack size 8 bytes, stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT)) <P><STRONG><a name="[2a]"></a>SPI_2linesRxISR_16BIT</STRONG> (Thumb, 54 bytes, Stack size 8 bytes, stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT))
<BR><BR>[Stack]<UL><LI>Max Depth = 92<LI>Call Chain = SPI_2linesRxISR_16BIT &rArr; SPI_CloseRxTx_ISR &rArr; HAL_SPI_TxRxCpltCallback &rArr; parse_spi_buf &rArr; mouse_buf_add &rArr; mouse_buf_is_full &rArr; __aeabi_uidivmod <BR><BR>[Stack]<UL><LI>Max Depth = 92<LI>Call Chain = SPI_2linesRxISR_16BIT &rArr; SPI_CloseRxTx_ISR &rArr; HAL_SPI_TxRxCpltCallback &rArr; parse_spi_buf &rArr; mouse_buf_add &rArr; mouse_buf_is_full &rArr; __aeabi_uidivmod
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR <BR>[Calls]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
</UL> </UL>
<BR>[Address Reference Count : 1]<UL><LI> stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT) <BR>[Address Reference Count : 1]<UL><LI> stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT)
</UL> </UL>
<P><STRONG><a name="[2c]"></a>SPI_2linesRxISR_8BIT</STRONG> (Thumb, 94 bytes, Stack size 8 bytes, stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT)) <P><STRONG><a name="[2c]"></a>SPI_2linesRxISR_8BIT</STRONG> (Thumb, 94 bytes, Stack size 8 bytes, stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT))
<BR><BR>[Stack]<UL><LI>Max Depth = 92<LI>Call Chain = SPI_2linesRxISR_8BIT &rArr; SPI_CloseRxTx_ISR &rArr; HAL_SPI_TxRxCpltCallback &rArr; parse_spi_buf &rArr; mouse_buf_add &rArr; mouse_buf_is_full &rArr; __aeabi_uidivmod <BR><BR>[Stack]<UL><LI>Max Depth = 92<LI>Call Chain = SPI_2linesRxISR_8BIT &rArr; SPI_CloseRxTx_ISR &rArr; HAL_SPI_TxRxCpltCallback &rArr; parse_spi_buf &rArr; mouse_buf_add &rArr; mouse_buf_is_full &rArr; __aeabi_uidivmod
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR <BR>[Calls]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
</UL> </UL>
<BR>[Address Reference Count : 1]<UL><LI> stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT) <BR>[Address Reference Count : 1]<UL><LI> stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT)
</UL> </UL>
<P><STRONG><a name="[2b]"></a>SPI_2linesTxISR_16BIT</STRONG> (Thumb, 52 bytes, Stack size 8 bytes, stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT)) <P><STRONG><a name="[2b]"></a>SPI_2linesTxISR_16BIT</STRONG> (Thumb, 52 bytes, Stack size 8 bytes, stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT))
<BR><BR>[Stack]<UL><LI>Max Depth = 92<LI>Call Chain = SPI_2linesTxISR_16BIT &rArr; SPI_CloseRxTx_ISR &rArr; HAL_SPI_TxRxCpltCallback &rArr; parse_spi_buf &rArr; mouse_buf_add &rArr; mouse_buf_is_full &rArr; __aeabi_uidivmod <BR><BR>[Stack]<UL><LI>Max Depth = 92<LI>Call Chain = SPI_2linesTxISR_16BIT &rArr; SPI_CloseRxTx_ISR &rArr; HAL_SPI_TxRxCpltCallback &rArr; parse_spi_buf &rArr; mouse_buf_add &rArr; mouse_buf_is_full &rArr; __aeabi_uidivmod
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR <BR>[Calls]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
</UL> </UL>
<BR>[Address Reference Count : 1]<UL><LI> stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT) <BR>[Address Reference Count : 1]<UL><LI> stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT)
</UL> </UL>
<P><STRONG><a name="[2d]"></a>SPI_2linesTxISR_8BIT</STRONG> (Thumb, 72 bytes, Stack size 8 bytes, stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT)) <P><STRONG><a name="[2d]"></a>SPI_2linesTxISR_8BIT</STRONG> (Thumb, 72 bytes, Stack size 8 bytes, stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT))
<BR><BR>[Stack]<UL><LI>Max Depth = 92<LI>Call Chain = SPI_2linesTxISR_8BIT &rArr; SPI_CloseRxTx_ISR &rArr; HAL_SPI_TxRxCpltCallback &rArr; parse_spi_buf &rArr; mouse_buf_add &rArr; mouse_buf_is_full &rArr; __aeabi_uidivmod <BR><BR>[Stack]<UL><LI>Max Depth = 92<LI>Call Chain = SPI_2linesTxISR_8BIT &rArr; SPI_CloseRxTx_ISR &rArr; HAL_SPI_TxRxCpltCallback &rArr; parse_spi_buf &rArr; mouse_buf_add &rArr; mouse_buf_is_full &rArr; __aeabi_uidivmod
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR <BR>[Calls]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
</UL> </UL>
<BR>[Address Reference Count : 1]<UL><LI> stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT) <BR>[Address Reference Count : 1]<UL><LI> stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT)
</UL> </UL>
<P><STRONG><a name="[72]"></a>SPI_CloseRxTx_ISR</STRONG> (Thumb, 82 bytes, Stack size 16 bytes, stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR)) <P><STRONG><a name="[74]"></a>SPI_CloseRxTx_ISR</STRONG> (Thumb, 82 bytes, Stack size 16 bytes, stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR))
<BR><BR>[Stack]<UL><LI>Max Depth = 84<LI>Call Chain = SPI_CloseRxTx_ISR &rArr; HAL_SPI_TxRxCpltCallback &rArr; parse_spi_buf &rArr; mouse_buf_add &rArr; mouse_buf_is_full &rArr; __aeabi_uidivmod <BR><BR>[Stack]<UL><LI>Max Depth = 84<LI>Call Chain = SPI_CloseRxTx_ISR &rArr; HAL_SPI_TxRxCpltCallback &rArr; parse_spi_buf &rArr; mouse_buf_add &rArr; mouse_buf_is_full &rArr; __aeabi_uidivmod
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTxTransaction <BR>[Calls]<UL><LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTxTransaction
<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback <LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_RxCpltCallback <LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_RxCpltCallback
<LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_ErrorCallback <LI><a href="#[45]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_ErrorCallback
<LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick <LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL> </UL>
@@ -1007,29 +1014,29 @@ Local Symbols
</UL> </UL>
<BR>[Address Reference Count : 1]<UL><LI> stm32f0xx_hal_spi.o(i.HAL_SPI_IRQHandler) <BR>[Address Reference Count : 1]<UL><LI> stm32f0xx_hal_spi.o(i.HAL_SPI_IRQHandler)
</UL> </UL>
<P><STRONG><a name="[73]"></a>SPI_EndRxTxTransaction</STRONG> (Thumb, 76 bytes, Stack size 24 bytes, stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction)) <P><STRONG><a name="[75]"></a>SPI_EndRxTxTransaction</STRONG> (Thumb, 76 bytes, Stack size 24 bytes, stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout <BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = SPI_EndRxTxTransaction &rArr; SPI_WaitFlagStateUntilTimeout
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_WaitFlagStateUntilTimeout <BR>[Calls]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_WaitFlagStateUntilTimeout
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_WaitFifoStateUntilTimeout <LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_WaitFifoStateUntilTimeout
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR <BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_CloseRxTx_ISR
</UL> </UL>
<P><STRONG><a name="[75]"></a>SPI_WaitFifoStateUntilTimeout</STRONG> (Thumb, 150 bytes, Stack size 24 bytes, stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout)) <P><STRONG><a name="[77]"></a>SPI_WaitFifoStateUntilTimeout</STRONG> (Thumb, 150 bytes, Stack size 24 bytes, stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = SPI_WaitFifoStateUntilTimeout <BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = SPI_WaitFifoStateUntilTimeout
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick <BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTxTransaction <BR>[Called By]<UL><LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTxTransaction
</UL> </UL>
<P><STRONG><a name="[76]"></a>SPI_WaitFlagStateUntilTimeout</STRONG> (Thumb, 140 bytes, Stack size 24 bytes, stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)) <P><STRONG><a name="[78]"></a>SPI_WaitFlagStateUntilTimeout</STRONG> (Thumb, 140 bytes, Stack size 24 bytes, stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = SPI_WaitFlagStateUntilTimeout <BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = SPI_WaitFlagStateUntilTimeout
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick <BR>[Calls]<UL><LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTxTransaction <BR>[Called By]<UL><LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SPI_EndRxTxTransaction
</UL> </UL>
<P><STRONG><a name="[57]"></a>TIM_ITRx_SetConfig</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)) <P><STRONG><a name="[57]"></a>TIM_ITRx_SetConfig</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig))
@@ -1053,10 +1060,10 @@ Local Symbols
<LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_NVIC_SetPriority <LI><a href="#[3d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_NVIC_SetPriority
</UL> </UL>
<P><STRONG><a name="[7c]"></a>_printf_core</STRONG> (Thumb, 456 bytes, Stack size 88 bytes, printf3.o(i._printf_core), UNUSED) <P><STRONG><a name="[7e]"></a>_printf_core</STRONG> (Thumb, 456 bytes, Stack size 88 bytes, printf3.o(i._printf_core), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod <BR><BR>[Calls]<UL><LI><a href="#[3b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0printf$3 <BR>[Called By]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0printf$3
</UL> </UL>
<P> <P>
<H3> <H3>

View File

@@ -46,10 +46,12 @@ Section Cross References
main.o(i.HAL_SPI_TxRxCpltCallback) refers to stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT) for HAL_SPI_TransmitReceive_IT main.o(i.HAL_SPI_TxRxCpltCallback) refers to stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT) for HAL_SPI_TransmitReceive_IT
main.o(i.HAL_SPI_TxRxCpltCallback) refers to main.o(.bss) for .bss main.o(i.HAL_SPI_TxRxCpltCallback) refers to main.o(.bss) for .bss
main.o(i.HAL_SPI_TxRxCpltCallback) refers to main.o(.data) for .data main.o(i.HAL_SPI_TxRxCpltCallback) refers to main.o(.data) for .data
main.o(i.HAL_TIM_PeriodElapsedCallback) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_TogglePin) for HAL_GPIO_TogglePin
main.o(i.HAL_TIM_PeriodElapsedCallback) refers to helpers.o(i.mouse_buf_peek) for mouse_buf_peek main.o(i.HAL_TIM_PeriodElapsedCallback) refers to helpers.o(i.mouse_buf_peek) for mouse_buf_peek
main.o(i.HAL_TIM_PeriodElapsedCallback) refers to main.o(i.avg_buf_add) for avg_buf_add main.o(i.HAL_TIM_PeriodElapsedCallback) refers to main.o(i.avg_buf_add) for avg_buf_add
main.o(i.HAL_TIM_PeriodElapsedCallback) refers to helpers.o(i.mouse_buf_pop) for mouse_buf_pop main.o(i.HAL_TIM_PeriodElapsedCallback) refers to helpers.o(i.mouse_buf_pop) for mouse_buf_pop
main.o(i.HAL_TIM_PeriodElapsedCallback) refers to main.o(i.get_buf_avg) for get_buf_avg main.o(i.HAL_TIM_PeriodElapsedCallback) refers to main.o(i.get_buf_avg) for get_buf_avg
main.o(i.HAL_TIM_PeriodElapsedCallback) refers to main.o(i.calc_arr) for calc_arr
main.o(i.HAL_TIM_PeriodElapsedCallback) refers to quad_encoder.o(i.quad_increment) for quad_increment main.o(i.HAL_TIM_PeriodElapsedCallback) refers to quad_encoder.o(i.quad_increment) for quad_increment
main.o(i.HAL_TIM_PeriodElapsedCallback) refers to quad_encoder.o(i.quad_decrement) for quad_decrement main.o(i.HAL_TIM_PeriodElapsedCallback) refers to quad_encoder.o(i.quad_decrement) for quad_decrement
main.o(i.HAL_TIM_PeriodElapsedCallback) refers to main.o(.bss) for .bss main.o(i.HAL_TIM_PeriodElapsedCallback) refers to main.o(.bss) for .bss
@@ -1068,7 +1070,6 @@ Removing Unused input sections from the image.
Removing main.o(.rev16_text), (4 bytes). Removing main.o(.rev16_text), (4 bytes).
Removing main.o(.revsh_text), (4 bytes). Removing main.o(.revsh_text), (4 bytes).
Removing main.o(i._Error_Handler), (2 bytes). Removing main.o(i._Error_Handler), (2 bytes).
Removing main.o(i.calc_arr), (8 bytes).
Removing main.o(.bss), (16 bytes). Removing main.o(.bss), (16 bytes).
Removing main.o(.constdata), (1 bytes). Removing main.o(.constdata), (1 bytes).
Removing main.o(.constdata), (1 bytes). Removing main.o(.constdata), (1 bytes).
@@ -1542,7 +1543,7 @@ Removing Unused input sections from the image.
Removing stm32f0xx_hal_tim.o(i.__ARM_common_switch8), (26 bytes). Removing stm32f0xx_hal_tim.o(i.__ARM_common_switch8), (26 bytes).
Removing depilogue.o(i.__ARM_clz), (46 bytes). Removing depilogue.o(i.__ARM_clz), (46 bytes).
488 unused section(s) (total 34960 bytes) removed from the image. 487 unused section(s) (total 34952 bytes) removed from the image.
============================================================================== ==============================================================================
@@ -1576,38 +1577,38 @@ Image Symbol Table
../Src/stm32f0xx_it.c 0x00000000 Number 0 stm32f0xx_it.o ABSOLUTE ../Src/stm32f0xx_it.c 0x00000000 Number 0 stm32f0xx_it.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE ../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE ../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.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 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 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 entry10a.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.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 mallocra.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/malloc/mvars.c 0x00000000 Number 0 mvars.o ABSOLUTE ../clib/microlib/malloc/mvars.c 0x00000000 Number 0 mvars.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE
../clib/microlib/printf/stubs.s 0x00000000 Number 0 stubs.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/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 memcpyb.o ABSOLUTE
@@ -1710,94 +1711,95 @@ Image Symbol Table
i.HAL_TIM_OC_DelayElapsedCallback 0x08001200 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_OC_DelayElapsedCallback) i.HAL_TIM_OC_DelayElapsedCallback 0x08001200 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_OC_DelayElapsedCallback)
i.HAL_TIM_PWM_PulseFinishedCallback 0x08001202 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_PWM_PulseFinishedCallback) i.HAL_TIM_PWM_PulseFinishedCallback 0x08001202 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_PWM_PulseFinishedCallback)
i.HAL_TIM_PeriodElapsedCallback 0x08001204 Section 0 main.o(i.HAL_TIM_PeriodElapsedCallback) i.HAL_TIM_PeriodElapsedCallback 0x08001204 Section 0 main.o(i.HAL_TIM_PeriodElapsedCallback)
i.HAL_TIM_TriggerCallback 0x08001270 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_TriggerCallback) i.HAL_TIM_TriggerCallback 0x0800128c Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_TriggerCallback)
i.HAL_UART_Init 0x08001272 Section 0 stm32f0xx_hal_uart.o(i.HAL_UART_Init) i.HAL_UART_Init 0x0800128e Section 0 stm32f0xx_hal_uart.o(i.HAL_UART_Init)
i.HAL_UART_MspInit 0x080012e0 Section 0 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit) i.HAL_UART_MspInit 0x080012fc Section 0 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit)
i.HAL_UART_Transmit 0x0800132c Section 0 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit) i.HAL_UART_Transmit 0x08001348 Section 0 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit)
i.HardFault_Handler 0x080013f4 Section 0 stm32f0xx_it.o(i.HardFault_Handler) i.HardFault_Handler 0x08001410 Section 0 stm32f0xx_it.o(i.HardFault_Handler)
i.MX_GPIO_Init 0x080013f8 Section 0 main.o(i.MX_GPIO_Init) i.MX_GPIO_Init 0x08001414 Section 0 main.o(i.MX_GPIO_Init)
MX_GPIO_Init 0x080013f9 Thumb Code 228 main.o(i.MX_GPIO_Init) MX_GPIO_Init 0x08001415 Thumb Code 228 main.o(i.MX_GPIO_Init)
i.MX_SPI1_Init 0x080014ec Section 0 main.o(i.MX_SPI1_Init) i.MX_SPI1_Init 0x08001508 Section 0 main.o(i.MX_SPI1_Init)
MX_SPI1_Init 0x080014ed Thumb Code 52 main.o(i.MX_SPI1_Init) MX_SPI1_Init 0x08001509 Thumb Code 52 main.o(i.MX_SPI1_Init)
i.MX_TIM2_Init 0x08001528 Section 0 main.o(i.MX_TIM2_Init) i.MX_TIM2_Init 0x08001544 Section 0 main.o(i.MX_TIM2_Init)
MX_TIM2_Init 0x08001529 Thumb Code 80 main.o(i.MX_TIM2_Init) MX_TIM2_Init 0x08001545 Thumb Code 80 main.o(i.MX_TIM2_Init)
i.MX_USART1_UART_Init 0x0800157c Section 0 main.o(i.MX_USART1_UART_Init) i.MX_USART1_UART_Init 0x08001598 Section 0 main.o(i.MX_USART1_UART_Init)
MX_USART1_UART_Init 0x0800157d Thumb Code 46 main.o(i.MX_USART1_UART_Init) MX_USART1_UART_Init 0x08001599 Thumb Code 46 main.o(i.MX_USART1_UART_Init)
i.NMI_Handler 0x080015b4 Section 0 stm32f0xx_it.o(i.NMI_Handler) i.NMI_Handler 0x080015d0 Section 0 stm32f0xx_it.o(i.NMI_Handler)
i.NVIC_SetPriority 0x080015b8 Section 0 stm32f0xx_hal_cortex.o(i.NVIC_SetPriority) i.NVIC_SetPriority 0x080015d4 Section 0 stm32f0xx_hal_cortex.o(i.NVIC_SetPriority)
NVIC_SetPriority 0x080015b9 Thumb Code 60 stm32f0xx_hal_cortex.o(i.NVIC_SetPriority) NVIC_SetPriority 0x080015d5 Thumb Code 60 stm32f0xx_hal_cortex.o(i.NVIC_SetPriority)
i.PendSV_Handler 0x080015fc Section 0 stm32f0xx_it.o(i.PendSV_Handler) i.PendSV_Handler 0x08001618 Section 0 stm32f0xx_it.o(i.PendSV_Handler)
i.SPI1_IRQHandler 0x08001600 Section 0 stm32f0xx_it.o(i.SPI1_IRQHandler) i.SPI1_IRQHandler 0x0800161c Section 0 stm32f0xx_it.o(i.SPI1_IRQHandler)
i.SPI_2linesRxISR_16BIT 0x08001610 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT) i.SPI_2linesRxISR_16BIT 0x0800162c Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT)
SPI_2linesRxISR_16BIT 0x08001611 Thumb Code 54 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT) SPI_2linesRxISR_16BIT 0x0800162d Thumb Code 54 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT)
i.SPI_2linesRxISR_8BIT 0x08001646 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT) i.SPI_2linesRxISR_8BIT 0x08001662 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT)
SPI_2linesRxISR_8BIT 0x08001647 Thumb Code 94 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT) SPI_2linesRxISR_8BIT 0x08001663 Thumb Code 94 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT)
i.SPI_2linesTxISR_16BIT 0x080016a4 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT) i.SPI_2linesTxISR_16BIT 0x080016c0 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT)
SPI_2linesTxISR_16BIT 0x080016a5 Thumb Code 52 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT) SPI_2linesTxISR_16BIT 0x080016c1 Thumb Code 52 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT)
i.SPI_2linesTxISR_8BIT 0x080016d8 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT) i.SPI_2linesTxISR_8BIT 0x080016f4 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT)
SPI_2linesTxISR_8BIT 0x080016d9 Thumb Code 72 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT) SPI_2linesTxISR_8BIT 0x080016f5 Thumb Code 72 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT)
i.SPI_CloseRxTx_ISR 0x08001720 Section 0 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR) i.SPI_CloseRxTx_ISR 0x0800173c Section 0 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR)
SPI_CloseRxTx_ISR 0x08001721 Thumb Code 82 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR) SPI_CloseRxTx_ISR 0x0800173d Thumb Code 82 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR)
i.SPI_DMAAbortOnError 0x08001772 Section 0 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError) i.SPI_DMAAbortOnError 0x0800178e Section 0 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError)
SPI_DMAAbortOnError 0x08001773 Thumb Code 18 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError) SPI_DMAAbortOnError 0x0800178f Thumb Code 18 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError)
i.SPI_EndRxTxTransaction 0x08001784 Section 0 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction) i.SPI_EndRxTxTransaction 0x080017a0 Section 0 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction)
SPI_EndRxTxTransaction 0x08001785 Thumb Code 76 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction) SPI_EndRxTxTransaction 0x080017a1 Thumb Code 76 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction)
i.SPI_WaitFifoStateUntilTimeout 0x080017d0 Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout) i.SPI_WaitFifoStateUntilTimeout 0x080017ec Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout)
SPI_WaitFifoStateUntilTimeout 0x080017d1 Thumb Code 150 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout) SPI_WaitFifoStateUntilTimeout 0x080017ed Thumb Code 150 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout)
i.SPI_WaitFlagStateUntilTimeout 0x08001866 Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout) i.SPI_WaitFlagStateUntilTimeout 0x08001882 Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)
SPI_WaitFlagStateUntilTimeout 0x08001867 Thumb Code 140 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout) SPI_WaitFlagStateUntilTimeout 0x08001883 Thumb Code 140 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)
i.SVC_Handler 0x080018f2 Section 0 stm32f0xx_it.o(i.SVC_Handler) i.SVC_Handler 0x0800190e Section 0 stm32f0xx_it.o(i.SVC_Handler)
i.SysTick_Handler 0x080018f4 Section 0 stm32f0xx_it.o(i.SysTick_Handler) i.SysTick_Handler 0x08001910 Section 0 stm32f0xx_it.o(i.SysTick_Handler)
i.SystemClock_Config 0x08001900 Section 0 main.o(i.SystemClock_Config) i.SystemClock_Config 0x0800191c Section 0 main.o(i.SystemClock_Config)
i.SystemInit 0x0800196c Section 0 system_stm32f0xx.o(i.SystemInit) i.SystemInit 0x08001988 Section 0 system_stm32f0xx.o(i.SystemInit)
i.TIM16_IRQHandler 0x080019c8 Section 0 stm32f0xx_it.o(i.TIM16_IRQHandler) i.TIM16_IRQHandler 0x080019e4 Section 0 stm32f0xx_it.o(i.TIM16_IRQHandler)
i.TIM17_IRQHandler 0x080019d8 Section 0 stm32f0xx_it.o(i.TIM17_IRQHandler) i.TIM17_IRQHandler 0x080019f4 Section 0 stm32f0xx_it.o(i.TIM17_IRQHandler)
i.TIM_Base_SetConfig 0x080019e8 Section 0 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig) i.TIM_Base_SetConfig 0x08001a04 Section 0 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
i.TIM_ETR_SetConfig 0x08001a7c Section 0 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig) i.TIM_ETR_SetConfig 0x08001a98 Section 0 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
i.TIM_ITRx_SetConfig 0x08001a92 Section 0 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig) i.TIM_ITRx_SetConfig 0x08001aae Section 0 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
TIM_ITRx_SetConfig 0x08001a93 Thumb Code 16 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig) TIM_ITRx_SetConfig 0x08001aaf Thumb Code 16 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
i.TIM_TI1_ConfigInputStage 0x08001aa2 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) i.TIM_TI1_ConfigInputStage 0x08001abe Section 0 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
TIM_TI1_ConfigInputStage 0x08001aa3 Thumb Code 34 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) TIM_TI1_ConfigInputStage 0x08001abf Thumb Code 34 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
i.TIM_TI2_ConfigInputStage 0x08001ac4 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) i.TIM_TI2_ConfigInputStage 0x08001ae0 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
TIM_TI2_ConfigInputStage 0x08001ac5 Thumb Code 38 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) TIM_TI2_ConfigInputStage 0x08001ae1 Thumb Code 38 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
i.UART_AdvFeatureConfig 0x08001aea Section 0 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig) i.UART_AdvFeatureConfig 0x08001b06 Section 0 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
i.UART_CheckIdleState 0x08001bb4 Section 0 stm32f0xx_hal_uart.o(i.UART_CheckIdleState) i.UART_CheckIdleState 0x08001bd0 Section 0 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
i.UART_SetConfig 0x08001c28 Section 0 stm32f0xx_hal_uart.o(i.UART_SetConfig) i.UART_SetConfig 0x08001c44 Section 0 stm32f0xx_hal_uart.o(i.UART_SetConfig)
i.UART_WaitOnFlagUntilTimeout 0x08001d84 Section 0 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout) i.UART_WaitOnFlagUntilTimeout 0x08001da0 Section 0 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
i.__0printf$3 0x08001de8 Section 0 printf3.o(i.__0printf$3) i.__0printf$3 0x08001e04 Section 0 printf3.o(i.__0printf$3)
i.__scatterload_copy 0x08001e08 Section 14 handlers.o(i.__scatterload_copy) i.__scatterload_copy 0x08001e24 Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x08001e16 Section 2 handlers.o(i.__scatterload_null) i.__scatterload_null 0x08001e32 Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x08001e18 Section 14 handlers.o(i.__scatterload_zeroinit) i.__scatterload_zeroinit 0x08001e34 Section 14 handlers.o(i.__scatterload_zeroinit)
i._printf_core 0x08001e28 Section 0 printf3.o(i._printf_core) i._printf_core 0x08001e44 Section 0 printf3.o(i._printf_core)
_printf_core 0x08001e29 Thumb Code 456 printf3.o(i._printf_core) _printf_core 0x08001e45 Thumb Code 456 printf3.o(i._printf_core)
i.avg_buf_add 0x08001ff4 Section 0 main.o(i.avg_buf_add) i.avg_buf_add 0x08002010 Section 0 main.o(i.avg_buf_add)
i.byte_to_int16_t 0x08002018 Section 0 main.o(i.byte_to_int16_t) i.byte_to_int16_t 0x08002034 Section 0 main.o(i.byte_to_int16_t)
i.delay_us_init 0x08002020 Section 0 delay_us.o(i.delay_us_init) i.calc_arr 0x0800203c Section 0 main.o(i.calc_arr)
i.fputc 0x08002030 Section 0 main.o(i.fputc) i.delay_us_init 0x0800207c Section 0 delay_us.o(i.delay_us_init)
i.get_buf_avg 0x08002048 Section 0 main.o(i.get_buf_avg) i.fputc 0x0800208c Section 0 main.o(i.fputc)
i.kb_buf_add 0x08002080 Section 0 helpers.o(i.kb_buf_add) i.get_buf_avg 0x080020a4 Section 0 main.o(i.get_buf_avg)
i.kb_buf_init 0x080020b0 Section 0 helpers.o(i.kb_buf_init) i.kb_buf_add 0x080020dc Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_is_full 0x080020d0 Section 0 helpers.o(i.kb_buf_is_full) i.kb_buf_init 0x0800210c Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_reset 0x080020ec Section 0 helpers.o(i.kb_buf_reset) i.kb_buf_is_full 0x0800212c Section 0 helpers.o(i.kb_buf_is_full)
i.main 0x08002108 Section 0 main.o(i.main) i.kb_buf_reset 0x08002148 Section 0 helpers.o(i.kb_buf_reset)
i.malloc 0x08002210 Section 0 malloc.o(i.malloc) i.main 0x08002164 Section 0 main.o(i.main)
i.mouse_buf_add 0x0800227c Section 0 helpers.o(i.mouse_buf_add) i.malloc 0x08002270 Section 0 malloc.o(i.malloc)
i.mouse_buf_init 0x080022ae Section 0 helpers.o(i.mouse_buf_init) i.mouse_buf_add 0x080022dc Section 0 helpers.o(i.mouse_buf_add)
i.mouse_buf_is_full 0x080022c6 Section 0 helpers.o(i.mouse_buf_is_full) i.mouse_buf_init 0x0800230e Section 0 helpers.o(i.mouse_buf_init)
i.mouse_buf_peek 0x080022e2 Section 0 helpers.o(i.mouse_buf_peek) i.mouse_buf_is_full 0x08002326 Section 0 helpers.o(i.mouse_buf_is_full)
i.mouse_buf_pop 0x080022f8 Section 0 helpers.o(i.mouse_buf_pop) i.mouse_buf_peek 0x08002342 Section 0 helpers.o(i.mouse_buf_peek)
i.mouse_buf_reset 0x08002310 Section 0 helpers.o(i.mouse_buf_reset) i.mouse_buf_pop 0x08002358 Section 0 helpers.o(i.mouse_buf_pop)
i.parse_spi_buf 0x08002328 Section 0 main.o(i.parse_spi_buf) i.mouse_buf_reset 0x08002370 Section 0 helpers.o(i.mouse_buf_reset)
i.quad_decrement 0x080023e8 Section 0 quad_encoder.o(i.quad_decrement) i.parse_spi_buf 0x08002388 Section 0 main.o(i.parse_spi_buf)
i.quad_increment 0x080023fa Section 0 quad_encoder.o(i.quad_increment) i.quad_decrement 0x08002448 Section 0 quad_encoder.o(i.quad_decrement)
i.quad_init 0x0800240c Section 0 quad_encoder.o(i.quad_init) i.quad_increment 0x0800245a Section 0 quad_encoder.o(i.quad_increment)
i.quad_reset 0x0800241e Section 0 quad_encoder.o(i.quad_reset) i.quad_init 0x0800246c Section 0 quad_encoder.o(i.quad_init)
i.quad_write 0x0800242c Section 0 quad_encoder.o(i.quad_write) i.quad_reset 0x0800247e Section 0 quad_encoder.o(i.quad_reset)
i.spi_error_dump_reboot 0x0800245c Section 0 main.o(i.spi_error_dump_reboot) i.quad_write 0x0800248c Section 0 quad_encoder.o(i.quad_write)
.constdata 0x080024d4 Section 4 quad_encoder.o(.constdata) i.spi_error_dump_reboot 0x080024bc Section 0 main.o(i.spi_error_dump_reboot)
.constdata 0x080024d8 Section 73 main.o(.constdata) .constdata 0x08002534 Section 4 quad_encoder.o(.constdata)
.constdata 0x08002521 Section 16 system_stm32f0xx.o(.constdata) .constdata 0x08002538 Section 73 main.o(.constdata)
.constdata 0x08002531 Section 8 system_stm32f0xx.o(.constdata) .constdata 0x08002581 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08002591 Section 8 system_stm32f0xx.o(.constdata)
.data 0x20000000 Section 4 delay_us.o(.data) .data 0x20000000 Section 4 delay_us.o(.data)
.data 0x20000004 Section 16 main.o(.data) .data 0x20000004 Section 16 main.o(.data)
.data 0x20000014 Section 4 stm32f0xx_hal.o(.data) .data 0x20000014 Section 4 stm32f0xx_hal.o(.data)
@@ -1805,9 +1807,9 @@ Image Symbol Table
.data 0x2000001c Section 4 stdout.o(.data) .data 0x2000001c Section 4 stdout.o(.data)
.data 0x20000020 Section 4 mvars.o(.data) .data 0x20000020 Section 4 mvars.o(.data)
.data 0x20000024 Section 4 mvars.o(.data) .data 0x20000024 Section 4 mvars.o(.data)
.bss 0x20000028 Section 540 main.o(.bss) .bss 0x20000028 Section 556 main.o(.bss)
HEAP 0x20000248 Section 512 startup_stm32f072xb.o(HEAP) HEAP 0x20000258 Section 512 startup_stm32f072xb.o(HEAP)
STACK 0x20000448 Section 1024 startup_stm32f072xb.o(STACK) STACK 0x20000458 Section 1024 startup_stm32f072xb.o(STACK)
Global Symbols Global Symbols
@@ -1958,63 +1960,64 @@ Image Symbol Table
HAL_TIM_IRQHandler 0x0800109f Thumb Code 354 stm32f0xx_hal_tim.o(i.HAL_TIM_IRQHandler) HAL_TIM_IRQHandler 0x0800109f Thumb Code 354 stm32f0xx_hal_tim.o(i.HAL_TIM_IRQHandler)
HAL_TIM_OC_DelayElapsedCallback 0x08001201 Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_OC_DelayElapsedCallback) HAL_TIM_OC_DelayElapsedCallback 0x08001201 Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_OC_DelayElapsedCallback)
HAL_TIM_PWM_PulseFinishedCallback 0x08001203 Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_PWM_PulseFinishedCallback) HAL_TIM_PWM_PulseFinishedCallback 0x08001203 Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_PWM_PulseFinishedCallback)
HAL_TIM_PeriodElapsedCallback 0x08001205 Thumb Code 92 main.o(i.HAL_TIM_PeriodElapsedCallback) HAL_TIM_PeriodElapsedCallback 0x08001205 Thumb Code 120 main.o(i.HAL_TIM_PeriodElapsedCallback)
HAL_TIM_TriggerCallback 0x08001271 Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_TriggerCallback) HAL_TIM_TriggerCallback 0x0800128d Thumb Code 2 stm32f0xx_hal_tim.o(i.HAL_TIM_TriggerCallback)
HAL_UART_Init 0x08001273 Thumb Code 108 stm32f0xx_hal_uart.o(i.HAL_UART_Init) HAL_UART_Init 0x0800128f Thumb Code 108 stm32f0xx_hal_uart.o(i.HAL_UART_Init)
HAL_UART_MspInit 0x080012e1 Thumb Code 66 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit) HAL_UART_MspInit 0x080012fd Thumb Code 66 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit)
HAL_UART_Transmit 0x0800132d Thumb Code 200 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit) HAL_UART_Transmit 0x08001349 Thumb Code 200 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit)
HardFault_Handler 0x080013f5 Thumb Code 2 stm32f0xx_it.o(i.HardFault_Handler) HardFault_Handler 0x08001411 Thumb Code 2 stm32f0xx_it.o(i.HardFault_Handler)
NMI_Handler 0x080015b5 Thumb Code 2 stm32f0xx_it.o(i.NMI_Handler) NMI_Handler 0x080015d1 Thumb Code 2 stm32f0xx_it.o(i.NMI_Handler)
PendSV_Handler 0x080015fd Thumb Code 2 stm32f0xx_it.o(i.PendSV_Handler) PendSV_Handler 0x08001619 Thumb Code 2 stm32f0xx_it.o(i.PendSV_Handler)
SPI1_IRQHandler 0x08001601 Thumb Code 10 stm32f0xx_it.o(i.SPI1_IRQHandler) SPI1_IRQHandler 0x0800161d Thumb Code 10 stm32f0xx_it.o(i.SPI1_IRQHandler)
SVC_Handler 0x080018f3 Thumb Code 2 stm32f0xx_it.o(i.SVC_Handler) SVC_Handler 0x0800190f Thumb Code 2 stm32f0xx_it.o(i.SVC_Handler)
SysTick_Handler 0x080018f5 Thumb Code 12 stm32f0xx_it.o(i.SysTick_Handler) SysTick_Handler 0x08001911 Thumb Code 12 stm32f0xx_it.o(i.SysTick_Handler)
SystemClock_Config 0x08001901 Thumb Code 106 main.o(i.SystemClock_Config) SystemClock_Config 0x0800191d Thumb Code 106 main.o(i.SystemClock_Config)
SystemInit 0x0800196d Thumb Code 76 system_stm32f0xx.o(i.SystemInit) SystemInit 0x08001989 Thumb Code 76 system_stm32f0xx.o(i.SystemInit)
TIM16_IRQHandler 0x080019c9 Thumb Code 10 stm32f0xx_it.o(i.TIM16_IRQHandler) TIM16_IRQHandler 0x080019e5 Thumb Code 10 stm32f0xx_it.o(i.TIM16_IRQHandler)
TIM17_IRQHandler 0x080019d9 Thumb Code 10 stm32f0xx_it.o(i.TIM17_IRQHandler) TIM17_IRQHandler 0x080019f5 Thumb Code 10 stm32f0xx_it.o(i.TIM17_IRQHandler)
TIM_Base_SetConfig 0x080019e9 Thumb Code 124 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig) TIM_Base_SetConfig 0x08001a05 Thumb Code 124 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
TIM_ETR_SetConfig 0x08001a7d Thumb Code 22 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig) TIM_ETR_SetConfig 0x08001a99 Thumb Code 22 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
UART_AdvFeatureConfig 0x08001aeb Thumb Code 202 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig) UART_AdvFeatureConfig 0x08001b07 Thumb Code 202 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
UART_CheckIdleState 0x08001bb5 Thumb Code 102 stm32f0xx_hal_uart.o(i.UART_CheckIdleState) UART_CheckIdleState 0x08001bd1 Thumb Code 102 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
UART_SetConfig 0x08001c29 Thumb Code 316 stm32f0xx_hal_uart.o(i.UART_SetConfig) UART_SetConfig 0x08001c45 Thumb Code 316 stm32f0xx_hal_uart.o(i.UART_SetConfig)
UART_WaitOnFlagUntilTimeout 0x08001d85 Thumb Code 98 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout) UART_WaitOnFlagUntilTimeout 0x08001da1 Thumb Code 98 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
__0printf$3 0x08001de9 Thumb Code 24 printf3.o(i.__0printf$3) __0printf$3 0x08001e05 Thumb Code 24 printf3.o(i.__0printf$3)
__1printf$3 0x08001de9 Thumb Code 0 printf3.o(i.__0printf$3) __1printf$3 0x08001e05 Thumb Code 0 printf3.o(i.__0printf$3)
__2printf 0x08001de9 Thumb Code 0 printf3.o(i.__0printf$3) __2printf 0x08001e05 Thumb Code 0 printf3.o(i.__0printf$3)
__scatterload_copy 0x08001e09 Thumb Code 14 handlers.o(i.__scatterload_copy) __scatterload_copy 0x08001e25 Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x08001e17 Thumb Code 2 handlers.o(i.__scatterload_null) __scatterload_null 0x08001e33 Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x08001e19 Thumb Code 14 handlers.o(i.__scatterload_zeroinit) __scatterload_zeroinit 0x08001e35 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
avg_buf_add 0x08001ff5 Thumb Code 28 main.o(i.avg_buf_add) avg_buf_add 0x08002011 Thumb Code 28 main.o(i.avg_buf_add)
byte_to_int16_t 0x08002019 Thumb Code 8 main.o(i.byte_to_int16_t) byte_to_int16_t 0x08002035 Thumb Code 8 main.o(i.byte_to_int16_t)
delay_us_init 0x08002021 Thumb Code 12 delay_us.o(i.delay_us_init) calc_arr 0x0800203d Thumb Code 50 main.o(i.calc_arr)
fputc 0x08002031 Thumb Code 18 main.o(i.fputc) delay_us_init 0x0800207d Thumb Code 12 delay_us.o(i.delay_us_init)
get_buf_avg 0x08002049 Thumb Code 52 main.o(i.get_buf_avg) fputc 0x0800208d Thumb Code 18 main.o(i.fputc)
kb_buf_add 0x08002081 Thumb Code 48 helpers.o(i.kb_buf_add) get_buf_avg 0x080020a5 Thumb Code 52 main.o(i.get_buf_avg)
kb_buf_init 0x080020b1 Thumb Code 32 helpers.o(i.kb_buf_init) kb_buf_add 0x080020dd Thumb Code 48 helpers.o(i.kb_buf_add)
kb_buf_is_full 0x080020d1 Thumb Code 28 helpers.o(i.kb_buf_is_full) kb_buf_init 0x0800210d Thumb Code 32 helpers.o(i.kb_buf_init)
kb_buf_reset 0x080020ed Thumb Code 28 helpers.o(i.kb_buf_reset) kb_buf_is_full 0x0800212d Thumb Code 28 helpers.o(i.kb_buf_is_full)
main 0x08002109 Thumb Code 208 main.o(i.main) kb_buf_reset 0x08002149 Thumb Code 28 helpers.o(i.kb_buf_reset)
malloc 0x08002211 Thumb Code 92 malloc.o(i.malloc) main 0x08002165 Thumb Code 210 main.o(i.main)
mouse_buf_add 0x0800227d Thumb Code 50 helpers.o(i.mouse_buf_add) malloc 0x08002271 Thumb Code 92 malloc.o(i.malloc)
mouse_buf_init 0x080022af Thumb Code 24 helpers.o(i.mouse_buf_init) mouse_buf_add 0x080022dd Thumb Code 50 helpers.o(i.mouse_buf_add)
mouse_buf_is_full 0x080022c7 Thumb Code 28 helpers.o(i.mouse_buf_is_full) mouse_buf_init 0x0800230f Thumb Code 24 helpers.o(i.mouse_buf_init)
mouse_buf_peek 0x080022e3 Thumb Code 22 helpers.o(i.mouse_buf_peek) mouse_buf_is_full 0x08002327 Thumb Code 28 helpers.o(i.mouse_buf_is_full)
mouse_buf_pop 0x080022f9 Thumb Code 24 helpers.o(i.mouse_buf_pop) mouse_buf_peek 0x08002343 Thumb Code 22 helpers.o(i.mouse_buf_peek)
mouse_buf_reset 0x08002311 Thumb Code 22 helpers.o(i.mouse_buf_reset) mouse_buf_pop 0x08002359 Thumb Code 24 helpers.o(i.mouse_buf_pop)
parse_spi_buf 0x08002329 Thumb Code 184 main.o(i.parse_spi_buf) mouse_buf_reset 0x08002371 Thumb Code 22 helpers.o(i.mouse_buf_reset)
quad_decrement 0x080023e9 Thumb Code 18 quad_encoder.o(i.quad_decrement) parse_spi_buf 0x08002389 Thumb Code 184 main.o(i.parse_spi_buf)
quad_increment 0x080023fb Thumb Code 18 quad_encoder.o(i.quad_increment) quad_decrement 0x08002449 Thumb Code 18 quad_encoder.o(i.quad_decrement)
quad_init 0x0800240d Thumb Code 18 quad_encoder.o(i.quad_init) quad_increment 0x0800245b Thumb Code 18 quad_encoder.o(i.quad_increment)
quad_reset 0x0800241f Thumb Code 12 quad_encoder.o(i.quad_reset) quad_init 0x0800246d Thumb Code 18 quad_encoder.o(i.quad_init)
quad_write 0x0800242d Thumb Code 44 quad_encoder.o(i.quad_write) quad_reset 0x0800247f Thumb Code 12 quad_encoder.o(i.quad_reset)
spi_error_dump_reboot 0x0800245d Thumb Code 72 main.o(i.spi_error_dump_reboot) quad_write 0x0800248d Thumb Code 44 quad_encoder.o(i.quad_write)
grey_code_lookup 0x080024d4 Data 4 quad_encoder.o(.constdata) spi_error_dump_reboot 0x080024bd Thumb Code 72 main.o(i.spi_error_dump_reboot)
boot_message 0x080024d8 Data 73 main.o(.constdata) grey_code_lookup 0x08002534 Data 4 quad_encoder.o(.constdata)
AHBPrescTable 0x08002521 Data 16 system_stm32f0xx.o(.constdata) boot_message 0x08002538 Data 73 main.o(.constdata)
APBPrescTable 0x08002531 Data 8 system_stm32f0xx.o(.constdata) AHBPrescTable 0x08002581 Data 16 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x0800253c Number 0 anon$$obj.o(Region$$Table) APBPrescTable 0x08002591 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Limit 0x0800255c Number 0 anon$$obj.o(Region$$Table) Region$$Table$$Base 0x0800259c Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x080025bc Number 0 anon$$obj.o(Region$$Table)
us_timer 0x20000000 Data 4 delay_us.o(.data) us_timer 0x20000000 Data 4 delay_us.o(.data)
hw_revision 0x20000004 Data 1 main.o(.data) hw_revision 0x20000004 Data 1 main.o(.data)
spi_error_occured 0x20000005 Data 1 main.o(.data) spi_error_occured 0x20000005 Data 1 main.o(.data)
@@ -2036,11 +2039,11 @@ Image Symbol Table
my_kb_buf 0x200001fc Data 12 main.o(.bss) my_kb_buf 0x200001fc Data 12 main.o(.bss)
latest_mouse_event 0x20000208 Data 12 main.o(.bss) latest_mouse_event 0x20000208 Data 12 main.o(.bss)
protocol_status_lookup 0x20000214 Data 16 main.o(.bss) protocol_status_lookup 0x20000214 Data 16 main.o(.bss)
avg_buf 0x20000224 Data 16 main.o(.bss) avg_buf 0x20000224 Data 32 main.o(.bss)
quad_x 0x20000234 Data 16 main.o(.bss) quad_x 0x20000244 Data 16 main.o(.bss)
__heap_base 0x20000248 Data 0 startup_stm32f072xb.o(HEAP) __heap_base 0x20000258 Data 0 startup_stm32f072xb.o(HEAP)
__heap_limit 0x20000448 Data 0 startup_stm32f072xb.o(HEAP) __heap_limit 0x20000458 Data 0 startup_stm32f072xb.o(HEAP)
__initial_sp 0x20000848 Data 0 startup_stm32f072xb.o(STACK) __initial_sp 0x20000858 Data 0 startup_stm32f072xb.o(STACK)
@@ -2050,171 +2053,172 @@ Memory Map of the image
Image Entry point : 0x080000c1 Image Entry point : 0x080000c1
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00002584, Max: 0x00010000, ABSOLUTE) Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000025e4, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000255c, Max: 0x00010000, ABSOLUTE) Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000025bc, Max: 0x00010000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x08000000 0x08000000 0x000000c0 Data RO 3 RESET startup_stm32f072xb.o 0x08000000 0x08000000 0x000000c0 Data RO 3 RESET startup_stm32f072xb.o
0x080000c0 0x080000c0 0x00000000 Code RO 3581 * .ARM.Collect$$$$00000000 mc_p.l(entry.o) 0x080000c0 0x080000c0 0x00000000 Code RO 3582 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
0x080000c0 0x080000c0 0x00000004 Code RO 3883 .ARM.Collect$$$$00000001 mc_p.l(entry2.o) 0x080000c0 0x080000c0 0x00000004 Code RO 3884 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
0x080000c4 0x080000c4 0x00000004 Code RO 3886 .ARM.Collect$$$$00000004 mc_p.l(entry5.o) 0x080000c4 0x080000c4 0x00000004 Code RO 3887 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3888 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o) 0x080000c8 0x080000c8 0x00000000 Code RO 3889 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3890 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o) 0x080000c8 0x080000c8 0x00000000 Code RO 3891 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
0x080000c8 0x080000c8 0x00000008 Code RO 3891 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o) 0x080000c8 0x080000c8 0x00000008 Code RO 3892 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3893 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o) 0x080000d0 0x080000d0 0x00000000 Code RO 3894 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3895 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o) 0x080000d0 0x080000d0 0x00000000 Code RO 3896 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
0x080000d0 0x080000d0 0x00000004 Code RO 3884 .ARM.Collect$$$$00002712 mc_p.l(entry2.o) 0x080000d0 0x080000d0 0x00000004 Code RO 3885 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
0x080000d4 0x080000d4 0x0000001c Code RO 4 .text startup_stm32f072xb.o 0x080000d4 0x080000d4 0x0000001c Code RO 4 .text startup_stm32f072xb.o
0x080000f0 0x080000f0 0x0000002c Code RO 3584 .text mc_p.l(uidiv.o) 0x080000f0 0x080000f0 0x0000002c Code RO 3585 .text mc_p.l(uidiv.o)
0x0800011c 0x0800011c 0x00000024 Code RO 3588 .text mc_p.l(memcpya.o) 0x0800011c 0x0800011c 0x00000024 Code RO 3589 .text mc_p.l(memcpya.o)
0x08000140 0x08000140 0x00000024 Code RO 3590 .text mc_p.l(memseta.o) 0x08000140 0x08000140 0x00000024 Code RO 3591 .text mc_p.l(memseta.o)
0x08000164 0x08000164 0x00000024 Code RO 3913 .text mc_p.l(init.o) 0x08000164 0x08000164 0x00000024 Code RO 3914 .text mc_p.l(init.o)
0x08000188 0x08000188 0x00000048 Code RO 3028 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o 0x08000188 0x08000188 0x00000048 Code RO 3029 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x080001d0 0x080001d0 0x0000001c Code RO 2357 i.HAL_Delay stm32f0xx_hal.o 0x080001d0 0x080001d0 0x0000001c Code RO 2358 i.HAL_Delay stm32f0xx_hal.o
0x080001ec 0x080001ec 0x00000158 Code RO 2966 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o 0x080001ec 0x080001ec 0x00000158 Code RO 2967 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x08000344 0x08000344 0x00000008 Code RO 2969 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o 0x08000344 0x08000344 0x00000008 Code RO 2970 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o
0x0800034c 0x0800034c 0x0000000c Code RO 2970 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o 0x0800034c 0x0800034c 0x0000000c Code RO 2971 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x08000358 0x08000358 0x0000000c Code RO 2361 i.HAL_GetTick stm32f0xx_hal.o 0x08000358 0x08000358 0x0000000c Code RO 2362 i.HAL_GetTick stm32f0xx_hal.o
0x08000364 0x08000364 0x00000010 Code RO 2365 i.HAL_IncTick stm32f0xx_hal.o 0x08000364 0x08000364 0x00000010 Code RO 2366 i.HAL_IncTick stm32f0xx_hal.o
0x08000374 0x08000374 0x00000020 Code RO 2366 i.HAL_Init stm32f0xx_hal.o 0x08000374 0x08000374 0x00000020 Code RO 2367 i.HAL_Init stm32f0xx_hal.o
0x08000394 0x08000394 0x00000022 Code RO 2367 i.HAL_InitTick stm32f0xx_hal.o 0x08000394 0x08000394 0x00000022 Code RO 2368 i.HAL_InitTick stm32f0xx_hal.o
0x080003b6 0x080003b6 0x00000002 PAD 0x080003b6 0x080003b6 0x00000002 PAD
0x080003b8 0x080003b8 0x00000044 Code RO 493 i.HAL_MspInit stm32f0xx_hal_msp.o 0x080003b8 0x080003b8 0x00000044 Code RO 494 i.HAL_MspInit stm32f0xx_hal_msp.o
0x080003fc 0x080003fc 0x00000014 Code RO 3123 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o 0x080003fc 0x080003fc 0x00000014 Code RO 3124 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x08000410 0x08000410 0x00000008 Code RO 3127 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o 0x08000410 0x08000410 0x00000008 Code RO 3128 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08000418 0x08000418 0x00000120 Code RO 2277 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o 0x08000418 0x08000418 0x00000120 Code RO 2278 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o
0x08000538 0x08000538 0x00000154 Code RO 2175 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o 0x08000538 0x08000538 0x00000154 Code RO 2176 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x0800068c 0x0800068c 0x0000000c Code RO 2180 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o 0x0800068c 0x0800068c 0x0000000c Code RO 2181 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000698 0x08000698 0x00000020 Code RO 2182 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o 0x08000698 0x08000698 0x00000020 Code RO 2183 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x080006b8 0x080006b8 0x00000088 Code RO 2183 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o 0x080006b8 0x080006b8 0x00000088 Code RO 2184 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x08000740 0x08000740 0x000003d8 Code RO 2186 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o 0x08000740 0x08000740 0x000003d8 Code RO 2187 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000b18 0x08000b18 0x00000002 Code RO 556 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o 0x08000b18 0x08000b18 0x00000002 Code RO 557 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x08000b1a 0x08000b1a 0x00000002 PAD 0x08000b1a 0x08000b1a 0x00000002 PAD
0x08000b1c 0x08000b1c 0x000000d4 Code RO 559 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o 0x08000b1c 0x08000b1c 0x000000d4 Code RO 560 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x08000bf0 0x08000bf0 0x000000b8 Code RO 560 i.HAL_SPI_Init stm32f0xx_hal_spi.o 0x08000bf0 0x08000bf0 0x000000b8 Code RO 561 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x08000ca8 0x08000ca8 0x00000054 Code RO 495 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o 0x08000ca8 0x08000ca8 0x00000054 Code RO 496 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x08000cfc 0x08000cfc 0x00000002 Code RO 566 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o 0x08000cfc 0x08000cfc 0x00000002 Code RO 567 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x08000cfe 0x08000cfe 0x00000002 PAD 0x08000cfe 0x08000cfe 0x00000002 PAD
0x08000d00 0x08000d00 0x000000d4 Code RO 571 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o 0x08000d00 0x08000d00 0x000000d4 Code RO 572 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x08000dd4 0x08000dd4 0x00000060 Code RO 307 i.HAL_SPI_TxRxCpltCallback main.o 0x08000dd4 0x08000dd4 0x00000060 Code RO 307 i.HAL_SPI_TxRxCpltCallback main.o
0x08000e34 0x08000e34 0x00000018 Code RO 3129 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o 0x08000e34 0x08000e34 0x00000018 Code RO 3130 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x08000e4c 0x08000e4c 0x00000002 Code RO 3130 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o 0x08000e4c 0x08000e4c 0x00000002 Code RO 3131 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x08000e4e 0x08000e4e 0x00000002 PAD 0x08000e4e 0x08000e4e 0x00000002 PAD
0x08000e50 0x08000e50 0x00000030 Code RO 3131 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o 0x08000e50 0x08000e50 0x00000030 Code RO 3132 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x08000e80 0x08000e80 0x00000008 Code RO 3132 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o 0x08000e80 0x08000e80 0x00000008 Code RO 3133 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x08000e88 0x08000e88 0x00000002 Code RO 1533 i.HAL_TIMEx_BreakCallback stm32f0xx_hal_tim_ex.o 0x08000e88 0x08000e88 0x00000002 Code RO 1534 i.HAL_TIMEx_BreakCallback stm32f0xx_hal_tim_ex.o
0x08000e8a 0x08000e8a 0x00000002 Code RO 1534 i.HAL_TIMEx_CommutationCallback stm32f0xx_hal_tim_ex.o 0x08000e8a 0x08000e8a 0x00000002 Code RO 1535 i.HAL_TIMEx_CommutationCallback stm32f0xx_hal_tim_ex.o
0x08000e8c 0x08000e8c 0x00000048 Code RO 1550 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o 0x08000e8c 0x08000e8c 0x00000048 Code RO 1551 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x08000ed4 0x08000ed4 0x00000034 Code RO 894 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o 0x08000ed4 0x08000ed4 0x00000034 Code RO 895 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x08000f08 0x08000f08 0x00000078 Code RO 497 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o 0x08000f08 0x08000f08 0x00000078 Code RO 498 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08000f80 0x08000f80 0x00000018 Code RO 897 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o 0x08000f80 0x08000f80 0x00000018 Code RO 898 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x08000f98 0x08000f98 0x00000016 Code RO 899 i.HAL_TIM_Base_Start_IT stm32f0xx_hal_tim.o 0x08000f98 0x08000f98 0x00000016 Code RO 900 i.HAL_TIM_Base_Start_IT stm32f0xx_hal_tim.o
0x08000fae 0x08000fae 0x000000ee Code RO 903 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o 0x08000fae 0x08000fae 0x000000ee Code RO 904 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x0800109c 0x0800109c 0x00000002 Code RO 925 i.HAL_TIM_IC_CaptureCallback stm32f0xx_hal_tim.o 0x0800109c 0x0800109c 0x00000002 Code RO 926 i.HAL_TIM_IC_CaptureCallback stm32f0xx_hal_tim.o
0x0800109e 0x0800109e 0x00000162 Code RO 938 i.HAL_TIM_IRQHandler stm32f0xx_hal_tim.o 0x0800109e 0x0800109e 0x00000162 Code RO 939 i.HAL_TIM_IRQHandler stm32f0xx_hal_tim.o
0x08001200 0x08001200 0x00000002 Code RO 941 i.HAL_TIM_OC_DelayElapsedCallback stm32f0xx_hal_tim.o 0x08001200 0x08001200 0x00000002 Code RO 942 i.HAL_TIM_OC_DelayElapsedCallback stm32f0xx_hal_tim.o
0x08001202 0x08001202 0x00000002 Code RO 968 i.HAL_TIM_PWM_PulseFinishedCallback stm32f0xx_hal_tim.o 0x08001202 0x08001202 0x00000002 Code RO 969 i.HAL_TIM_PWM_PulseFinishedCallback stm32f0xx_hal_tim.o
0x08001204 0x08001204 0x0000006c Code RO 308 i.HAL_TIM_PeriodElapsedCallback main.o 0x08001204 0x08001204 0x00000088 Code RO 308 i.HAL_TIM_PeriodElapsedCallback main.o
0x08001270 0x08001270 0x00000002 Code RO 979 i.HAL_TIM_TriggerCallback stm32f0xx_hal_tim.o 0x0800128c 0x0800128c 0x00000002 Code RO 980 i.HAL_TIM_TriggerCallback stm32f0xx_hal_tim.o
0x08001272 0x08001272 0x0000006c Code RO 1798 i.HAL_UART_Init stm32f0xx_hal_uart.o 0x0800128e 0x0800128e 0x0000006c Code RO 1799 i.HAL_UART_Init stm32f0xx_hal_uart.o
0x080012de 0x080012de 0x00000002 PAD 0x080012fa 0x080012fa 0x00000002 PAD
0x080012e0 0x080012e0 0x0000004c Code RO 499 i.HAL_UART_MspInit stm32f0xx_hal_msp.o 0x080012fc 0x080012fc 0x0000004c Code RO 500 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x0800132c 0x0800132c 0x000000c8 Code RO 1806 i.HAL_UART_Transmit stm32f0xx_hal_uart.o 0x08001348 0x08001348 0x000000c8 Code RO 1807 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x080013f4 0x080013f4 0x00000002 Code RO 427 i.HardFault_Handler stm32f0xx_it.o 0x08001410 0x08001410 0x00000002 Code RO 428 i.HardFault_Handler stm32f0xx_it.o
0x080013f6 0x080013f6 0x00000002 PAD 0x08001412 0x08001412 0x00000002 PAD
0x080013f8 0x080013f8 0x000000f4 Code RO 309 i.MX_GPIO_Init main.o 0x08001414 0x08001414 0x000000f4 Code RO 309 i.MX_GPIO_Init main.o
0x080014ec 0x080014ec 0x0000003c Code RO 310 i.MX_SPI1_Init main.o 0x08001508 0x08001508 0x0000003c Code RO 310 i.MX_SPI1_Init main.o
0x08001528 0x08001528 0x00000054 Code RO 311 i.MX_TIM2_Init main.o 0x08001544 0x08001544 0x00000054 Code RO 311 i.MX_TIM2_Init main.o
0x0800157c 0x0800157c 0x00000038 Code RO 312 i.MX_USART1_UART_Init main.o 0x08001598 0x08001598 0x00000038 Code RO 312 i.MX_USART1_UART_Init main.o
0x080015b4 0x080015b4 0x00000002 Code RO 428 i.NMI_Handler stm32f0xx_it.o 0x080015d0 0x080015d0 0x00000002 Code RO 429 i.NMI_Handler stm32f0xx_it.o
0x080015b6 0x080015b6 0x00000002 PAD 0x080015d2 0x080015d2 0x00000002 PAD
0x080015b8 0x080015b8 0x00000044 Code RO 3133 i.NVIC_SetPriority stm32f0xx_hal_cortex.o 0x080015d4 0x080015d4 0x00000044 Code RO 3134 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x080015fc 0x080015fc 0x00000002 Code RO 429 i.PendSV_Handler stm32f0xx_it.o 0x08001618 0x08001618 0x00000002 Code RO 430 i.PendSV_Handler stm32f0xx_it.o
0x080015fe 0x080015fe 0x00000002 PAD 0x0800161a 0x0800161a 0x00000002 PAD
0x08001600 0x08001600 0x00000010 Code RO 430 i.SPI1_IRQHandler stm32f0xx_it.o 0x0800161c 0x0800161c 0x00000010 Code RO 431 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001610 0x08001610 0x00000036 Code RO 578 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o 0x0800162c 0x0800162c 0x00000036 Code RO 579 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x08001646 0x08001646 0x0000005e Code RO 579 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o 0x08001662 0x08001662 0x0000005e Code RO 580 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x080016a4 0x080016a4 0x00000034 Code RO 580 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o 0x080016c0 0x080016c0 0x00000034 Code RO 581 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x080016d8 0x080016d8 0x00000048 Code RO 581 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o 0x080016f4 0x080016f4 0x00000048 Code RO 582 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x08001720 0x08001720 0x00000052 Code RO 584 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o 0x0800173c 0x0800173c 0x00000052 Code RO 585 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x08001772 0x08001772 0x00000012 Code RO 587 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o 0x0800178e 0x0800178e 0x00000012 Code RO 588 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x08001784 0x08001784 0x0000004c Code RO 598 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o 0x080017a0 0x080017a0 0x0000004c Code RO 599 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x080017d0 0x080017d0 0x00000096 Code RO 603 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o 0x080017ec 0x080017ec 0x00000096 Code RO 604 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x08001866 0x08001866 0x0000008c Code RO 604 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o 0x08001882 0x08001882 0x0000008c Code RO 605 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x080018f2 0x080018f2 0x00000002 Code RO 431 i.SVC_Handler stm32f0xx_it.o 0x0800190e 0x0800190e 0x00000002 Code RO 432 i.SVC_Handler stm32f0xx_it.o
0x080018f4 0x080018f4 0x0000000c Code RO 432 i.SysTick_Handler stm32f0xx_it.o 0x08001910 0x08001910 0x0000000c Code RO 433 i.SysTick_Handler stm32f0xx_it.o
0x08001900 0x08001900 0x0000006a Code RO 313 i.SystemClock_Config main.o 0x0800191c 0x0800191c 0x0000006a Code RO 313 i.SystemClock_Config main.o
0x0800196a 0x0800196a 0x00000002 PAD 0x08001986 0x08001986 0x00000002 PAD
0x0800196c 0x0800196c 0x0000005c Code RO 3550 i.SystemInit system_stm32f0xx.o 0x08001988 0x08001988 0x0000005c Code RO 3551 i.SystemInit system_stm32f0xx.o
0x080019c8 0x080019c8 0x00000010 Code RO 433 i.TIM16_IRQHandler stm32f0xx_it.o 0x080019e4 0x080019e4 0x00000010 Code RO 434 i.TIM16_IRQHandler stm32f0xx_it.o
0x080019d8 0x080019d8 0x00000010 Code RO 434 i.TIM17_IRQHandler stm32f0xx_it.o 0x080019f4 0x080019f4 0x00000010 Code RO 435 i.TIM17_IRQHandler stm32f0xx_it.o
0x080019e8 0x080019e8 0x00000094 Code RO 980 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o 0x08001a04 0x08001a04 0x00000094 Code RO 981 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08001a7c 0x08001a7c 0x00000016 Code RO 987 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o 0x08001a98 0x08001a98 0x00000016 Code RO 988 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x08001a92 0x08001a92 0x00000010 Code RO 988 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o 0x08001aae 0x08001aae 0x00000010 Code RO 989 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x08001aa2 0x08001aa2 0x00000022 Code RO 994 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o 0x08001abe 0x08001abe 0x00000022 Code RO 995 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x08001ac4 0x08001ac4 0x00000026 Code RO 996 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o 0x08001ae0 0x08001ae0 0x00000026 Code RO 997 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x08001aea 0x08001aea 0x000000ca Code RO 1811 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o 0x08001b06 0x08001b06 0x000000ca Code RO 1812 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08001bb4 0x08001bb4 0x00000074 Code RO 1812 i.UART_CheckIdleState stm32f0xx_hal_uart.o 0x08001bd0 0x08001bd0 0x00000074 Code RO 1813 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x08001c28 0x08001c28 0x0000015c Code RO 1827 i.UART_SetConfig stm32f0xx_hal_uart.o 0x08001c44 0x08001c44 0x0000015c Code RO 1828 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08001d84 0x08001d84 0x00000062 Code RO 1829 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o 0x08001da0 0x08001da0 0x00000062 Code RO 1830 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x08001de6 0x08001de6 0x00000002 PAD 0x08001e02 0x08001e02 0x00000002 PAD
0x08001de8 0x08001de8 0x00000020 Code RO 3683 i.__0printf$3 mc_p.l(printf3.o) 0x08001e04 0x08001e04 0x00000020 Code RO 3684 i.__0printf$3 mc_p.l(printf3.o)
0x08001e08 0x08001e08 0x0000000e Code RO 3925 i.__scatterload_copy mc_p.l(handlers.o) 0x08001e24 0x08001e24 0x0000000e Code RO 3926 i.__scatterload_copy mc_p.l(handlers.o)
0x08001e16 0x08001e16 0x00000002 Code RO 3926 i.__scatterload_null mc_p.l(handlers.o) 0x08001e32 0x08001e32 0x00000002 Code RO 3927 i.__scatterload_null mc_p.l(handlers.o)
0x08001e18 0x08001e18 0x0000000e Code RO 3927 i.__scatterload_zeroinit mc_p.l(handlers.o) 0x08001e34 0x08001e34 0x0000000e Code RO 3928 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08001e26 0x08001e26 0x00000002 PAD 0x08001e42 0x08001e42 0x00000002 PAD
0x08001e28 0x08001e28 0x000001cc Code RO 3690 i._printf_core mc_p.l(printf3.o) 0x08001e44 0x08001e44 0x000001cc Code RO 3691 i._printf_core mc_p.l(printf3.o)
0x08001ff4 0x08001ff4 0x00000024 Code RO 315 i.avg_buf_add main.o 0x08002010 0x08002010 0x00000024 Code RO 315 i.avg_buf_add main.o
0x08002018 0x08002018 0x00000008 Code RO 316 i.byte_to_int16_t main.o 0x08002034 0x08002034 0x00000008 Code RO 316 i.byte_to_int16_t main.o
0x08002020 0x08002020 0x00000010 Code RO 13 i.delay_us_init delay_us.o 0x0800203c 0x0800203c 0x00000040 Code RO 317 i.calc_arr main.o
0x08002030 0x08002030 0x00000018 Code RO 318 i.fputc main.o 0x0800207c 0x0800207c 0x00000010 Code RO 13 i.delay_us_init delay_us.o
0x08002048 0x08002048 0x00000038 Code RO 319 i.get_buf_avg main.o 0x0800208c 0x0800208c 0x00000018 Code RO 318 i.fputc main.o
0x08002080 0x08002080 0x00000030 Code RO 209 i.kb_buf_add helpers.o 0x080020a4 0x080020a4 0x00000038 Code RO 319 i.get_buf_avg main.o
0x080020b0 0x080020b0 0x00000020 Code RO 210 i.kb_buf_init helpers.o 0x080020dc 0x080020dc 0x00000030 Code RO 209 i.kb_buf_add helpers.o
0x080020d0 0x080020d0 0x0000001c Code RO 212 i.kb_buf_is_full helpers.o 0x0800210c 0x0800210c 0x00000020 Code RO 210 i.kb_buf_init helpers.o
0x080020ec 0x080020ec 0x0000001c Code RO 215 i.kb_buf_reset helpers.o 0x0800212c 0x0800212c 0x0000001c Code RO 212 i.kb_buf_is_full helpers.o
0x08002108 0x08002108 0x00000108 Code RO 320 i.main main.o 0x08002148 0x08002148 0x0000001c Code RO 215 i.kb_buf_reset helpers.o
0x08002210 0x08002210 0x0000006c Code RO 3856 i.malloc mc_p.l(malloc.o) 0x08002164 0x08002164 0x0000010c Code RO 320 i.main main.o
0x0800227c 0x0800227c 0x00000032 Code RO 216 i.mouse_buf_add helpers.o 0x08002270 0x08002270 0x0000006c Code RO 3857 i.malloc mc_p.l(malloc.o)
0x080022ae 0x080022ae 0x00000018 Code RO 217 i.mouse_buf_init helpers.o 0x080022dc 0x080022dc 0x00000032 Code RO 216 i.mouse_buf_add helpers.o
0x080022c6 0x080022c6 0x0000001c Code RO 219 i.mouse_buf_is_full helpers.o 0x0800230e 0x0800230e 0x00000018 Code RO 217 i.mouse_buf_init helpers.o
0x080022e2 0x080022e2 0x00000016 Code RO 220 i.mouse_buf_peek helpers.o 0x08002326 0x08002326 0x0000001c Code RO 219 i.mouse_buf_is_full helpers.o
0x080022f8 0x080022f8 0x00000018 Code RO 221 i.mouse_buf_pop helpers.o 0x08002342 0x08002342 0x00000016 Code RO 220 i.mouse_buf_peek helpers.o
0x08002310 0x08002310 0x00000016 Code RO 222 i.mouse_buf_reset helpers.o 0x08002358 0x08002358 0x00000018 Code RO 221 i.mouse_buf_pop helpers.o
0x08002326 0x08002326 0x00000002 PAD 0x08002370 0x08002370 0x00000016 Code RO 222 i.mouse_buf_reset helpers.o
0x08002328 0x08002328 0x000000c0 Code RO 321 i.parse_spi_buf main.o 0x08002386 0x08002386 0x00000002 PAD
0x080023e8 0x080023e8 0x00000012 Code RO 149 i.quad_decrement quad_encoder.o 0x08002388 0x08002388 0x000000c0 Code RO 321 i.parse_spi_buf main.o
0x080023fa 0x080023fa 0x00000012 Code RO 150 i.quad_increment quad_encoder.o 0x08002448 0x08002448 0x00000012 Code RO 149 i.quad_decrement quad_encoder.o
0x0800240c 0x0800240c 0x00000012 Code RO 151 i.quad_init quad_encoder.o 0x0800245a 0x0800245a 0x00000012 Code RO 150 i.quad_increment quad_encoder.o
0x0800241e 0x0800241e 0x0000000c Code RO 152 i.quad_reset quad_encoder.o 0x0800246c 0x0800246c 0x00000012 Code RO 151 i.quad_init quad_encoder.o
0x0800242a 0x0800242a 0x00000002 PAD 0x0800247e 0x0800247e 0x0000000c Code RO 152 i.quad_reset quad_encoder.o
0x0800242c 0x0800242c 0x00000030 Code RO 153 i.quad_write quad_encoder.o 0x0800248a 0x0800248a 0x00000002 PAD
0x0800245c 0x0800245c 0x00000078 Code RO 322 i.spi_error_dump_reboot main.o 0x0800248c 0x0800248c 0x00000030 Code RO 153 i.quad_write quad_encoder.o
0x080024d4 0x080024d4 0x00000004 Data RO 154 .constdata quad_encoder.o 0x080024bc 0x080024bc 0x00000078 Code RO 322 i.spi_error_dump_reboot main.o
0x080024d8 0x080024d8 0x00000049 Data RO 329 .constdata main.o 0x08002534 0x08002534 0x00000004 Data RO 154 .constdata quad_encoder.o
0x08002521 0x08002521 0x00000010 Data RO 3551 .constdata system_stm32f0xx.o 0x08002538 0x08002538 0x00000049 Data RO 329 .constdata main.o
0x08002531 0x08002531 0x00000008 Data RO 3552 .constdata system_stm32f0xx.o 0x08002581 0x08002581 0x00000010 Data RO 3552 .constdata system_stm32f0xx.o
0x08002539 0x08002539 0x00000003 PAD 0x08002591 0x08002591 0x00000008 Data RO 3553 .constdata system_stm32f0xx.o
0x0800253c 0x0800253c 0x00000020 Data RO 3923 Region$$Table anon$$obj.o 0x08002599 0x08002599 0x00000003 PAD
0x0800259c 0x0800259c 0x00000020 Data RO 3924 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0800255c, Size: 0x00000848, Max: 0x00004000, ABSOLUTE) Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080025bc, Size: 0x00000858, Max: 0x00004000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x0800255c 0x00000004 Data RW 15 .data delay_us.o 0x20000000 0x080025bc 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x08002560 0x00000010 Data RW 330 .data main.o 0x20000004 0x080025c0 0x00000010 Data RW 330 .data main.o
0x20000014 0x08002570 0x00000004 Data RW 2372 .data stm32f0xx_hal.o 0x20000014 0x080025d0 0x00000004 Data RW 2373 .data stm32f0xx_hal.o
0x20000018 0x08002574 0x00000004 Data RW 3553 .data system_stm32f0xx.o 0x20000018 0x080025d4 0x00000004 Data RW 3554 .data system_stm32f0xx.o
0x2000001c 0x08002578 0x00000004 Data RW 3897 .data mc_p.l(stdout.o) 0x2000001c 0x080025d8 0x00000004 Data RW 3898 .data mc_p.l(stdout.o)
0x20000020 0x0800257c 0x00000004 Data RW 3900 .data mc_p.l(mvars.o) 0x20000020 0x080025dc 0x00000004 Data RW 3901 .data mc_p.l(mvars.o)
0x20000024 0x08002580 0x00000004 Data RW 3901 .data mc_p.l(mvars.o) 0x20000024 0x080025e0 0x00000004 Data RW 3902 .data mc_p.l(mvars.o)
0x20000028 - 0x0000021c Zero RW 323 .bss main.o 0x20000028 - 0x0000022c Zero RW 323 .bss main.o
0x20000244 0x08002584 0x00000004 PAD 0x20000254 0x080025e4 0x00000004 PAD
0x20000248 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o 0x20000258 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
0x20000448 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o 0x20000458 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o
============================================================================== ==============================================================================
@@ -2226,7 +2230,7 @@ Image component sizes
16 4 0 4 0 490820 delay_us.o 16 4 0 4 0 490820 delay_us.o
306 0 0 0 0 7297 helpers.o 306 0 0 0 0 7297 helpers.o
1454 200 73 16 540 16731 main.o 1550 216 73 16 556 17153 main.o
114 4 4 0 0 3719 quad_encoder.o 114 4 4 0 0 3719 quad_encoder.o
28 8 192 0 1536 632 startup_stm32f072xb.o 28 8 192 0 1536 632 startup_stm32f072xb.o
122 18 0 4 0 3631 stm32f0xx_hal.o 122 18 0 4 0 3631 stm32f0xx_hal.o
@@ -2244,7 +2248,7 @@ Image component sizes
92 16 24 4 0 1143 system_stm32f0xx.o 92 16 24 4 0 1143 system_stm32f0xx.o
---------------------------------------------------------------------- ----------------------------------------------------------------------
8432 568 328 28 2080 580199 Object Totals 8528 584 328 28 2096 580621 Object Totals
0 0 32 0 0 0 (incl. Generated) 0 0 32 0 0 0 (incl. Generated)
24 0 3 0 4 0 (incl. Padding) 24 0 3 0 4 0 (incl. Padding)
@@ -2290,15 +2294,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Code (inc. data) RO Data RW Data ZI Data Debug
9236 612 328 40 2080 576407 Grand Totals 9332 628 328 40 2096 576785 Grand Totals
9236 612 328 40 2080 576407 ELF Image Totals 9332 628 328 40 2096 576785 ELF Image Totals
9236 612 328 40 0 0 ROM Totals 9332 628 328 40 0 0 ROM Totals
============================================================================== ==============================================================================
Total RO Size (Code + RO Data) 9564 ( 9.34kB) Total RO Size (Code + RO Data) 9660 ( 9.43kB)
Total RW Size (RW Data + ZI Data) 2120 ( 2.07kB) Total RW Size (RW Data + ZI Data) 2136 ( 2.09kB)
Total ROM Size (Code + RO Data + RW Data) 9604 ( 9.38kB) Total ROM Size (Code + RO Data + RW Data) 9700 ( 9.47kB)
============================================================================== ==============================================================================

View File

@@ -113,7 +113,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include -IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
-IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include -IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB -D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB
-o apple_all\helpers.o --omf_browse apple_all\helpers.crf --depend apple_all\helpers.d) -o apple_all\helpers.o --omf_browse apple_all\helpers.crf --depend apple_all\helpers.d)

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -0,0 +1,7 @@
// int32_t ddd = calc_arr(avg_speed);
// if(ddd != 65535)
// printf("%d\n", calc_arr(avg_speed));
// return (uint16_t)(-190*speed_val + 12690); // 1, 12500 | 64, 500
int32_t result = -307*speed_val + 12807; // 1, 12500, 40, 500

View File

@@ -182,10 +182,10 @@ void spi_error_dump_reboot(void)
const char boot_message[] = "USB4VC Protocol Board\nEarly Macintosh & Apple Desktop Bus\ndekuNukem 2022"; const char boot_message[] = "USB4VC Protocol Board\nEarly Macintosh & Apple Desktop Bus\ndekuNukem 2022";
#define AVG_BUF_SIZE 8 #define AVG_BUF_SIZE 8
int16_t avg_buf[AVG_BUF_SIZE]; int32_t avg_buf[AVG_BUF_SIZE];
uint8_t avg_buf_index; uint8_t avg_buf_index;
void avg_buf_add(int16_t value) void avg_buf_add(int32_t value)
{ {
avg_buf[avg_buf_index] = value; avg_buf[avg_buf_index] = value;
avg_buf_index++; avg_buf_index++;
@@ -216,15 +216,16 @@ value = us
uint16_t calc_arr(int32_t speed_val) uint16_t calc_arr(int32_t speed_val)
{ {
return 10000;
speed_val = abs(speed_val); speed_val = abs(speed_val);
if(speed_val <= 0) if(speed_val <= 0 || speed_val >= 64)
return 65535;
if(speed_val >= 64)
return 500; return 500;
return (uint16_t)(-307*speed_val + 12807); // 1, 12500 | 64, 500 // int32_t result = -190*speed_val + 12690; // 1, 12500 | 64, 500
// return (uint16_t)(-190*speed_val + 12690); // 1, 12500 | 64, 500 int32_t result = -307*speed_val + 12807; // 1, 12500, 40, 500
if (result < 500)
result = 500;
if(result > 12500)
result = 12500;
return (uint16_t)result;
} }
quad_output quad_x; quad_output quad_x;
@@ -240,7 +241,7 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
// every 10ms // every 10ms
if(htim == &htim17) if(htim == &htim17)
{ {
// HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_2); HAL_GPIO_TogglePin(MX1_GPIO_Port, MX1_Pin);
mouse_event* this_mouse_event = mouse_buf_peek(&my_mouse_buf); mouse_event* this_mouse_event = mouse_buf_peek(&my_mouse_buf);
if(this_mouse_event == NULL) if(this_mouse_event == NULL)
{ {
@@ -253,14 +254,11 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
} }
avg_speed = get_buf_avg(); avg_speed = get_buf_avg();
htim16.Instance->ARR = calc_arr(avg_speed); htim16.Instance->ARR = calc_arr(avg_speed);
// int32_t ddd = calc_arr(avg_speed);
// if(ddd != 65535)
// printf("%d\n", calc_arr(avg_speed));
} }
// every ARR overflow // every ARR overflow
if(htim == &htim16 && avg_speed != 0) if(htim == &htim16 && avg_speed != 0)
{ {
// HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_3); HAL_GPIO_TogglePin(MX2_GPIO_Port, MX2_Pin);
if(avg_speed > 0) if(avg_speed > 0)
quad_increment(&quad_x); quad_increment(&quad_x);
else else
@@ -461,7 +459,7 @@ static void MX_TIM16_Init(void)
htim16.Init.Period = 65535; htim16.Init.Period = 65535;
htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim16.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim16.Init.RepetitionCounter = 0; htim16.Init.RepetitionCounter = 0;
htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; htim16.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
if (HAL_TIM_Base_Init(&htim16) != HAL_OK) if (HAL_TIM_Base_Init(&htim16) != HAL_OK)
{ {
_Error_Handler(__FILE__, __LINE__); _Error_Handler(__FILE__, __LINE__);

View File

@@ -214,7 +214,8 @@ SPI1.IPParameters=VirtualType,Mode,Direction,VirtualNSS,DataSize
SPI1.Mode=SPI_MODE_SLAVE SPI1.Mode=SPI_MODE_SLAVE
SPI1.VirtualNSS=VM_NSSHARD SPI1.VirtualNSS=VM_NSSHARD
SPI1.VirtualType=VM_SLAVE SPI1.VirtualType=VM_SLAVE
TIM16.IPParameters=Prescaler,Period TIM16.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE
TIM16.IPParameters=Prescaler,Period,AutoReloadPreload
TIM16.Period=65535 TIM16.Period=65535
TIM16.Prescaler=47 TIM16.Prescaler=47
TIM17.IPParameters=Prescaler,Period TIM17.IPParameters=Prescaler,Period

View File