fixed adb mouse range issue

This commit is contained in:
dekunukem
2022-01-02 17:52:48 +00:00
parent b801b090d1
commit 6eb2ab8bd4
12 changed files with 623 additions and 555 deletions

View File

@@ -3606,7 +3606,7 @@
<ActiveTab>1</ActiveTab>
<Doc>
<Name>../Src/main.c</Name>
<ColumnNumber>16</ColumnNumber>
<ColumnNumber>15</ColumnNumber>
<TopLine>245</TopLine>
<CurrentLine>260</CurrentLine>
<Folding>1</Folding>
@@ -3615,9 +3615,9 @@
</Doc>
<Doc>
<Name>..\Src\adb.c</Name>
<ColumnNumber>23</ColumnNumber>
<ColumnNumber>1</ColumnNumber>
<TopLine>145</TopLine>
<CurrentLine>157</CurrentLine>
<CurrentLine>160</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -28,11 +28,11 @@ Project File Date: 01/01/2022
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'my_adb'
compiling main.c...
../Src/main.c(369): warning: #188-D: enumerated type mixed with another type
../Src/main.c(380): warning: #188-D: enumerated type mixed with another type
HAL_GPIO_WritePin(DEBUG1_GPIO_Port, DEBUG1_Pin, mouse_srq || kb_srq);
../Src/main.c: 1 warning, 0 errors
linking...
Program Size: Code=9520 RO-data=312 RW-data=56 ZI-data=1952
Program Size: Code=9684 RO-data=312 RW-data=56 ZI-data=1952
FromELF: creating hex file...
"my_adb\my_adb.axf" - 0 Error(s), 1 Warning(s).

View File

@@ -11,7 +11,7 @@
:100090000000000005010008050100080501000836
:1000A00000000000211300080501000805010008F8
:1000B0000501000800000000050100080501000816
:1000C0000348854600F092F80048004709210008DF
:1000C0000348854600F092F800480047992100084F
:1000D000D80700200C4880F308880C480168090EF6
:1000E0000B4A914205D10B480B4901600B480C4962
:1000F00001600C4880470C480047FEE7FEE7FEE73A
@@ -31,7 +31,7 @@
:1001D000491EFBD270470022F6E710B513460A46C7
:1001E00004461946FFF7F0FF204610BD064C0125D6
:1001F000064E05E0E36807CC2B430C3C98471034CF
:10020000B442F7D3FFF760FF4826000868260008CD
:10020000B442F7D3FFF760FFEC2600080C27000884
:1002100070B50024014620314A78022A03D0042117
:100220008163012416E0026813680E25AB43136056
:10023000026813685B085B0013600122056C1346BB
@@ -101,10 +101,10 @@
:1006300009028843E9680843606000F02DF86168AA
:10064000084A0906090F515CC840074908600020A4
:10065000FFF718FF0020F8BD002002400010024004
:10066000881300002D26000824000020014800689F
:1006600088130000D12600082400002001480068FB
:1006700070470000240000200448054900684968CC
:10068000044A4905490F515CC840704724000020C6
:10069000001002403D26000830B516A30FCB89B0EC
:1006900000100240E126000830B516A30FCB89B048
:1006A0006C460FC417A30FCB0FC41A494A680C201D
:1006B000144604401848042C05D0184B082C04D0CC
:1006C0000C2C00D1184609B030BD9402240F6D46A1
@@ -425,7 +425,7 @@
:101A7000032005B0F0BD2068C1693046884304D01A
:101A80000020B842D9D00020F3E70120F9E7000098
:101A90000FB410B503A9044B044A029800F018F8DB
:101AA00010BC08BC04B01847851F00082C0000209B
:101AA00010BC08BC04B01847F91F00082C00002027
:101AB00002E008C8121F08C1002AFAD17047704717
:101AC000002001E001C1121F002AFBD17047000075
:101AD000FFB58DB00F460546002606E025280AD042
@@ -457,165 +457,176 @@
:101C700000900029F5DC08E00B980B990078491CCE
:101C80000B91109A0F999047761C0199481E01906C
:101C90000029F1DC6D1C28E70928010010B5044C6F
:101CA000A2606380E060A18000F0D2F810BD000067
:101CB000000000201CB56A4601A9104800F0D2F9C6
:101CA000A2606380E060A18000F00CF910BD00002C
:101CB000000000201CB56A4601A9104800F019FA7E
:101CC00000281AD10E4C012211462046FEF779FB5E
:101CD00068460078002802D00B20C00100E00948C7
:101CE00000F0C2F8002201212046FEF76AFB0348FB
:101CF00000F0C8F90449002048701CBDAC01002068
:101CE00000F0FCF8002201212046FEF76AFB0348C1
:101CF00000F00FFA0449002048701CBDAC01002020
:101D0000001400488080000014000020F8B506464A
:101D10000020308016488188C068FEF749FB012802
:101D200023D1144C204600F041FC401C1DD020461D
:101D300000F03CFC401C18D0204600F037FC401C52
:101D400013D000252C460F2700F016F805280BD0DD
:101D200023D1144C204600F093FC401C1DD02046CB
:101D300000F08EFC401C18D0204600F089FC401CAE
:101D400013D000252C460F2700F050F805280BD0A3
:101D5000391B88402843641C85B2102CF4DB0548ED
:101D600000F024FC35800020F8BD0520F8BD0000FF
:101D7000000000201027000070B50D488188C06861
:101D8000FEF716FB00280FD10A4D284600F00EFC86
:101D90000446284600F00AFC611C05D0411C03D013
:101DA000A04203DD012070BD052070BD002070BD84
:101DB0000000002010270000F3B5064681B0002087
:101DC000307000F079F9012806D1174800F0EEFBD9
:101DD0003238292801D30520FEBD00252C460727CF
:101DE000FFF7CAFF0528F7D0391B88402843641C39
:101DF000C5B2082CF4DB0298002811D00B4C00224D
:101E0000A188E068FEF7DDFAFF202D3000F0A8F889
:101E10000122A188E068FEF7D4FA35700020FEBDEB
:101E2000014800F0C3FBF8E7102700000000002085
:101E300010B5064C01226188A068FEF7C2FA0122A3
:101E4000A188E068FEF7BDFA10BD00000000002088
:101E500010B504480221417003210170FFF7E8FF2B
:101E600010BD00000000002070B50546C82000F03D
:101E700077F8124C0022A188E068FEF7A2FA22202F
:101E800000F06EF80122A188E068FEF79AFA40207F
:101E900000F066F8284600F013F806280DD000225E
:101EA000A188E068FEF78DFA402000F059F8012281
:101EB000A188E068FEF785FA002070BD00000020D0
:101EC00010B50446000A00F009F8062805D0E0B273
:101ED00000F004F8062800D0002010BDF8B5002559
:101EE0001C4C06460727791B3046C840C00714D053
:101EF0000022A188E068FEF764FA222000F030F8A2
:101F00000122A188E068FEF75CFAA188E068FEF78C
:101F10004FFA012814D1402015E00022A188E06882
:101F2000FEF74FFA402000F01BF80122A188E0687C
:101F3000FEF747FAA188E068FEF73AFA012801D0D7
:101F40000620F8BD222000F00BF86D1C082DCADB1E
:101F50000020F8BD000000200902014308B27047CC
:101F600000B5014600F08CF9411800F089F988426B
:101F7000FBD300BD10B502490860FEF7BFFF10BDDE
:101F80001000002013B50A23012269460248FFF71A
:101F90005DF800981CBD0000DC00002070B5440610
:101FA000C109640EC901102C0FD20E4D285D002806
:101FB0000BD000290AD0022807D1032C01D0062C0F
:101FC00001D1FFF745FF0120285570BD0128FCD144
:101FD00002202855032C01D0062CF6D1FFF738FF3C
:101FE00070BD0000C401002070B515460E460446C1
:101FF00000F02AF8002801D0012070BD2178606827
:1020000046542178A06845542078A178401CFEF7FA
:102010008DF82170002070BD70B50D4604468170AA
:10202000284600F0F7F86060284600F0F3F8A0605A
:10203000204600F033F870BD41780078814201D12C
:10204000012070470020704710B504468178007861
:10205000401CFEF76BF86078814201D1012010BD71
:10206000002010BD10B543780478A34201D10120AF
:1020700010BD4468E35C0B7081684078085C1070A8
:10208000002010BD10B5044640782178884204D065
:10209000A178401CFEF74AF8617010BD10B50446E7
:1020A000002020706070A1786068FEF794F8A17835
:1020B000A068FEF790F810BD10B511488188C0687F
:1020C000FEF776F90F4C012804D1204600F06EFA95
:1020D000401C0ED0204600F069FA7D21090188429B
:1020E00009DC411C07D0FF21F531884205DA0420C4
:1020F00010BDFF2010BD032010BD012010BD000049
:1021000000000020102700000EB5FEF7ABF9FFF726
:1021100087FAFFF701F8FFF779F8FFF7BFF8FFF745
:1021200093F800200126304C019003460096A278D7
:102130002E492FA0FFF7ACFC3248FFF71BFF00F041
:10214000E9F910213048FFF767FF1021201D00F04A
:10215000B8F80925ED0601232A4602212B48FFF78E
:102160009DFD294820216038FEF735F8264A25488C
:10217000203A1146202340396438FEF7B1FD00F0C3
:102180002BF908212846FEF713F90028F7D020780C
:102190006178084301D0012100E0002102A8FFF787
:1021A0000BFE032808D00028E9D16846007A00F029
:1021B000ADF8022803D004E0FFF74AFEF5E7FFF789
:1021C00079FD1148FFF738FF002800D166702078AC
:1021D0006178084301D0012200E0002202210C486E
:1021E000FEF7EFF8CBE7000014000020F025000810
:1021F00025730A7265762564207625642E25642E63
:1022000025640A009C000020AC0100200004004866
:1022100000140048F0B50B30C108C900144F002667
:10222000144A0FE003688B420BD38B4205D95C1A2A
:102230004318456830C3083B00E04368136002C0A0
:1022400004E0021D10680028ECD13046002803D1BC
:102250003868002801D00020F0BD064A064810600A
:10226000064A121AD208D20044C001203860D7E7CB
:102270003400002030000020DC010020D8030020C2
:10228000024800680068406A7047000010000020A3
:1022900070B50D46044600F020F8002801D001205A
:1022A00070BD20780C226168504308182946FDF75C
:1022B00079FF2078A178401CFDF738FF21700020BD
:1022C00070BD10B5044681700C204843FFF7A2FF93
:1022D0006060204600F00FF810BD10B5044681780C
:1022E0000078401CFDF722FF6078814201D1012077
:1022F00010BD002010BD10B5002101704170817823
:102300000C2251434068FDF766FF10BDF8B5010788
:1023100086070509890FB60F002D06D02C4C03291E
:10232000207804D0022928D050E00520F8BD032EE3
:1023300002D0002E41D01DE085420BD1254FFDF784
:102340001FFF0F21FDF708FF0806010C3846084360
:10235000FFF78AFD607885420CD11E4F3F1DFDF7C7
:102360000FFF0F21FDF7F8FE0806010C0F4338465A
:10237000FFF77AFD002E24D028E0032E26D18542D7
:102380000BD16846FFF7C2FC684600880106490E7B
:102390007F2902D10005000F20706078854215D199
:1023A0006846FFF7B3FC684600880106490E7F299E
:1023B0000CD10005000F607008E0854201D10320B8
:1023C000F8BD6078854201D10220F8BD0020F8BD3B
:1023D000000000200160000070B5484C2078002803
:1023E00071D0474DE878002801D000F0A1F8A0781E
:1023F000082808D0092810D0032831D0012836D069
:10240000022861D069E03FA0FFF742FB3B48A27978
:1024100021794030FFF7E8FD5FE061792079FFF72F
:102420009BFD364A4C321080E179A079FFF794FD8C
:102430005080617A207AFFF78FFD40429080607B68
:102440009071A07B1072E07BD071207C5072607C18
:1024500090722A492A484C31001DFFF719FF3CE0D1
:10246000092000220221C006FDF7ABFF35E023481A
:1024700020212038FDF7AFFE2048CD212038017003
:1024800061784170802383700221C170A978017145
:10249000002141710122827108220646C1717836FD
:1024A000755C002D0BD0022D02D0012D02D004E06E
:1024B000815402E00D461D438554521CD2B2491C82
:1024C0001029EDDB09E017E00325605D002804D04A
:1024D000FFF764FD6D1C202DF7DB0025615D0BA06F
:1024E000FFF7D6FA6D1C202DF8DB09A0FFF7D0FA14
:1024F00020210248FDF76FFE70BD00006C01002036
:10250000140000206F6F6F0A000000002564200097
:102510000A00000005480021C1600161416181613C
:1025200001210C30C170817170470000B80100209A
:1025300012A0FFF7ADFA144D0024295D13A0FFF798
:10254000A7FA641C202CF8DB11A0FFF7A1FA0024E5
:10255000FF25134E013529463046FDF72EFF642036
:10256000FDF77AFE641C642CF5DBBFF34F8F0E4938
:102570000C48C860BFF34F8F00BFFDE753504920A0
:102580004552524F520A00006C0100202564200081
:102590000A7265626F6F74696E672E2E2E0A0000D4
:1025A000000400480400FA0500ED00E0F8B5074615
:1025B000FFF766FE0D4C0090A188E068FDF7F8FE7D
:1025C00005460AE0FFF75CFE0099461A002F04D08A
:1025D000BE4202D90020C043F8BDA188E068FDF7E3
:1025E000E7FEA842EED03046F8BD00000000002013
:1025F0005553423456432050726F746F636F6C2092
:10260000426F6172640A4170706C65204465736B3F
:10261000746F70204275732028414442290A646512
:102620006B754E756B656D203230323200000000E4
:102630000000000000010203040607080900000072
:1026400000010203040000006826000800000020CA
:1026500038000000B01A0008A0260008380000204A
:10266000A0070000C01A00080000000000000000E1
:10267000000000000000000000000000000000005A
:1026800000000000000000000000000000127A00BE
:10269000000000000000000000000000000000003A
:101D600000F076FC35800020F8BD0520F8BD0000AD
:101D7000000000201027000070B51A4800F017FB83
:101D800002002DD090790023002801D10123DB032C
:101D9000107A002801D1802003430020105E00F05B
:101DA0005DF945066D0E02201D43105E00F056F9E8
:101DB0004006440C2C430C4D012211462846FEF7E8
:101DC00000FB204600F08AF8002201212846FEF799
:101DD000F8FA044800F0F6FA02490020091F0870DA
:101DE00070BD0000180000200014004870B50D48B8
:101DF0008188C068FEF7DCFA00280FD10A4D28461A
:101E000000F026FC0446284600F022FC611C05D0A8
:101E1000411C03D0A04203DD012070BD052070BD30
:101E2000002070BD0000002010270000F3B506461A
:101E300081B00020307000F087F9012806D11748E2
:101E400000F006FC3238292801D30520FEBD00250C
:101E50002C460727FFF7CAFF0528F7D0391B884013
:101E60002843641CC5B2082CF4DB0298002811D06A
:101E70000B4C0022A188E068FEF7A3FAFF202D306A
:101E800000F0A8F80122A188E068FEF79AFA357000
:101E90000020FEBD014800F0DBFBF8E71027000042
:101EA0000000002010B5064C01226188A068FEF7F2
:101EB00088FA0122A188E068FEF783FA10BD0000CD
:101EC0000000002010B50448022141700321017078
:101ED000FFF7E8FF10BD00000000002070B50546C8
:101EE000C82000F077F8124C0022A188E068FEF7C5
:101EF00068FA222000F06EF80122A188E068FEF75F
:101F000060FA402000F066F8284600F013F8062832
:101F10000DD00022A188E068FEF753FA402000F0BF
:101F200059F80122A188E068FEF74BFA002070BD45
:101F30000000002010B50446000A00F009F8062849
:101F400005D0E0B200F004F8062800D0002010BD53
:101F5000F8B500251C4C06460727791B3046C840BB
:101F6000C00714D00022A188E068FEF72AFA2220D8
:101F700000F030F80122A188E068FEF722FAA1887B
:101F8000E068FEF715FA012814D1402015E0002280
:101F9000A188E068FEF715FA402000F01BF8012246
:101FA000A188E068FEF70DFAA188E068FEF700FA64
:101FB000012801D00620F8BD222000F00BF86D1C8E
:101FC000082DCADB0020F8BD0000002009020143F3
:101FD00008B2704700B5014600F0A6F9411800F0BC
:101FE000A3F98842FBD300BD10B502490860FEF793
:101FF00085FF10BD1000002013B50A230122694699
:102000000248FFF723F800981CBD0000DC00002008
:1020100070B54406C109640EC901102C0FD20E4DD3
:10202000285D00280BD000290AD0022807D1032CF4
:1020300001D0062C01D1FFF745FF0120285570BDC6
:102040000128FCD102202855032C01D0062CF6D102
:10205000FFF738FF70BD0000C401002080103E2152
:1020600040B2C9433F2801DB3F2002E0884200DC48
:102070000846C0B2704770B515460E46044600F0DB
:102080002AF8002801D0012070BD217860684654EC
:102090002178A06845542078A178401CFEF746F8C6
:1020A0002170002070BD70B50D4604468170284631
:1020B00000F004F96060284600F000F9A0602046B6
:1020C00000F033F870BD41780078814201D10120E1
:1020D00070470020704710B5044681780078401C96
:1020E000FEF724F86078814201D1012010BD002064
:1020F00010BD10B543780478A34201D1012010BD72
:102100004468E35C0B7081684078085C10700020C4
:1021100010BD10B5044640782178884204D0A178DB
:10212000401CFEF703F8617010BD10B50446002096
:1021300020706070A1786068FEF74DF8A178A06803
:10214000FEF749F810BD000010B511488188C0683D
:10215000FEF72EF90F4C012804D1204600F078FA42
:10216000401C0ED0204600F073FA7D210901884200
:1021700009DC411C07D0FF21F531884205DA042033
:1021800010BDFF2010BD032010BD012010BD0000B8
:1021900000000020102700000EB5FEF763F9FFF7DE
:1021A0003FFAFEF7B9FFFFF731F8FFF777F8FFF7CF
:1021B0004BF800200125364C019003460095A2788B
:1021C000344935A0FFF764FC3848FFF70DFF00F0F5
:1021D000F3F910213648FFF766FF1021201D00F0AB
:1021E000C4F80926F6060123324602213148FFF7DA
:1021F00055FD2F4820216038FDF7EDFF2C4A2B4874
:10220000203A1146202340396438FEF769FD00F07A
:102210004BF908213046FEF7CBF80028F7D020789C
:102220006178084301D0012100E0002102A8FFF7F6
:10223000FDFD03280AD00028E9D16846007A00F0A5
:10224000CDF8032805D002280CD014E0FFF73AFEA1
:10225000F3E7FFF791FD1648FFF735FF00280AD195
:10226000657008E0FFF726FD0948001D00F089F8B9
:10227000002800D1257020786178084301D0012220
:1022800000E0002202210C48FEF79BF8BFE70000A7
:10229000140000209426000825730A7265762564D0
:1022A000207625642E25642E25640A009C000020DB
:1022B000AC0100200004004800140048F0B50B30C9
:1022C000C108C900144F0026144A0FE003688B426E
:1022D0000BD38B4205D95C1A4318456830C3083BC1
:1022E00000E04368136002C004E0021D106800288B
:1022F000ECD13046002803D13868002801D00020F6
:10230000F0BD064A06481060064A121AD208D200EA
:1023100044C001203860D7E734000020300000209E
:10232000DC010020D8030020024800680068406AF1
:10233000704700001000002070B50D46044600F004
:1023400028F8002801D0012070BD20780C22616897
:10235000504308182946FDF725FF2078A178401C36
:10236000FDF7E4FE2170002070BD10B504468170B9
:102370000C204843FFF7A2FF6060204600F022F8DF
:1023800010BD41780078814201D1012070470020C2
:10239000704710B5044681780078401CFDF7C6FEF2
:1023A0006078814201D1012010BD002010BD41782C
:1023B0000278914201D10020704740680C225143BD
:1023C0004018704710B500210170417081780C22CF
:1023D00051434068FDF7FFFE10BD0000F8B501074E
:1023E00086070509890FB60F002D06D02C4C03294E
:1023F000207804D0022928D050E00520F8BD032E13
:1024000002D0002E41D01DE085420BD1254FFDF7B3
:10241000B7FE0F21FDF7A0FE0806010C3846084361
:10242000FFF75CFD607885420CD11E4F3F1DFDF724
:10243000A7FE0F21FDF790FE0806010C0F4338465A
:10244000FFF74CFD002E24D028E0032E26D1854234
:102450000BD16846FFF75AFC684600880106490E12
:102460007F2902D10005000F20706078854215D1C8
:102470006846FFF74BFC684600880106490E7F2935
:102480000CD10005000F607008E0854201D10320E7
:10249000F8BD6078854201D10220F8BD0020F8BD6A
:1024A000000000200160000070B5414C2078002839
:1024B0007DD0404DE878002801D000F08BF83C48F2
:1024C000A2780079082A08D0092A0DD0032A2DD035
:1024D000012A32D0022A5DD065E001463448A27953
:1024E0004030FFF7C8FD5EE06179FFF76FFD304ACD
:1024F0004C321080E179A079FFF768FD5080617A55
:10250000207AFFF763FD40429080607B9071A07B52
:102510001072E07BD071207C5072607C90722449F4
:1025200024484C31001DFFF707FF3CE00920002242
:102530000221C006FDF745FF35E01D482021203867
:10254000FDF749FE1A49CD2020390870607848709F
:1025500080248C700220C870A8780871002048710F
:1025600001228A7108220D46C87178352B5C002B38
:102570000BD0022B02D0012B02D004E0885402E0E1
:10258000034623438B54521CD2B2401C1028EDDB6F
:1025900009E00CE00325605D002804D0FFF738FD5A
:1025A0006D1C202DF7DB20210148FDF714FE70BDC6
:1025B0006C0100201400002005480021C160016169
:1025C0004161816101210C30C1708171704700004F
:1025D000B801002012A0FFF75BFA144D0024295D1A
:1025E00013A0FFF755FA641C202CF8DB11A0FFF7AD
:1025F0004FFA0024FF25134E013529463046FDF7DA
:10260000DCFE6420FDF728FE641C642CF5DBBFF3C0
:102610004F8F0E490C48C860BFF34F8F00BFFDE7D6
:10262000535049204552524F520A00006C0100207D
:10263000256420000A7265626F6F74696E672E2EC2
:102640002E0A0000000400480400FA0500ED00E036
:10265000F8B50746FFF768FE0D4C0090A188E068CA
:10266000FDF7A6FE05460AE0FFF75EFE0099461A52
:10267000002F04D0BE4202D90020C043F8BDA1887B
:10268000E068FDF795FEA842EED03046F8BD0000A8
:10269000000000205553423456432050726F746F2F
:1026A000636F6C20426F6172640A4170706C6520C8
:1026B0004465736B746F70204275732028414442E7
:1026C000290A64656B754E756B656D203230323248
:1026D00000000000000000000001020304060708DB
:1026E0000900000000010203040000000C2700089C
:1026F0000000002038000000B01A0008442700083D
:1027000038000020A0070000C01A000800000000E8
:1027100000000000000000000000000000000000B9
:1027200000000000000000000000000000000000A9
:1027300000127A000000000000000000000000000D
:042740000000000095
:04000005080000C12E
:00000001FF

View File

@@ -3,7 +3,7 @@
<title>Static Call Graph - [my_adb\my_adb.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image my_adb\my_adb.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Sun Jan 02 16:25:34 2022
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Sun Jan 02 17:51:36 2022
<BR><P>
<H3>Maximum Stack Usage = 180 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
@@ -68,7 +68,7 @@ Global Symbols
<P><STRONG><a name="[23]"></a>__main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f042x6.o(.text)
</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="[96]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[2a]"></a>_main_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[2b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
@@ -78,15 +78,15 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[2b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</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="[97]"></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="[98]"></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="[99]"></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="[9a]"></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="[9b]"></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, 38 bytes, Stack size 0 bytes, startup_stm32f042x6.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f042x6.o(RESET)
@@ -173,17 +173,17 @@ Global Symbols
<P><STRONG><a name="[6]"></a>WWDG_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f042x6.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f042x6.o(RESET)
</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="[9c]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[2d]"></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
</UL>
<BR>[Called By]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
<LI><a href="#[8b]">&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="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_is_full
<LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
<LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_pop
<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_is_full
<LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_add
<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_is_full
<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_add
<LI><a href="#[3a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
<LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetSysClockFreq
<LI><a href="#[36]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
@@ -191,54 +191,54 @@ Global Symbols
<LI><a href="#[2c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_idivmod
</UL>
<P><STRONG><a name="[99]"></a>__aeabi_idiv</STRONG> (Thumb, 0 bytes, Stack size 16 bytes, idiv.o(.text), UNUSED)
<P><STRONG><a name="[9d]"></a>__aeabi_idiv</STRONG> (Thumb, 0 bytes, Stack size 16 bytes, idiv.o(.text), UNUSED)
<P><STRONG><a name="[2c]"></a>__aeabi_idivmod</STRONG> (Thumb, 40 bytes, Stack size 16 bytes, idiv.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = __aeabi_idivmod &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[2d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
<BR>[Called By]<UL><LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
</UL>
<P><STRONG><a name="[8e]"></a>rand</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, rand.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
<P><STRONG><a name="[92]"></a>rand</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, rand.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
</UL>
<P><STRONG><a name="[9a]"></a>srand</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, rand.o(.text), UNUSED)
<P><STRONG><a name="[9e]"></a>srand</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, rand.o(.text), UNUSED)
<P><STRONG><a name="[8c]"></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
<P><STRONG><a name="[91]"></a>__aeabi_memcpy</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
</UL>
<P><STRONG><a name="[4c]"></a>__aeabi_memcpy4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
</UL>
<P><STRONG><a name="[9b]"></a>__aeabi_memcpy8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
<P><STRONG><a name="[9f]"></a>__aeabi_memcpy8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
<P><STRONG><a name="[2f]"></a>__aeabi_memset</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_memset$wrapper
<LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<P><STRONG><a name="[9c]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[a0]"></a>__aeabi_memset4</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="[a1]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[2e]"></a>__aeabi_memclr</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
</UL>
<BR>[Called By]<UL><LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_reset
<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_reset
<BR>[Called By]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_reset
<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_reset
</UL>
<P><STRONG><a name="[86]"></a>__aeabi_memclr4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
<P><STRONG><a name="[8a]"></a>__aeabi_memclr4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
<LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[9e]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[a2]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[30]"></a>_memset$wrapper</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
@@ -250,7 +250,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
</UL>
<P><STRONG><a name="[9f]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[a3]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[44]"></a>HAL_DMA_Abort_IT</STRONG> (Thumb, 72 bytes, Stack size 16 bytes, stm32f0xx_hal_dma.o(i.HAL_DMA_Abort_IT))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = HAL_DMA_Abort_IT
@@ -263,7 +263,7 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[33]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL>
<BR>[Called By]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<BR>[Called By]<UL><LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
</UL>
<P><STRONG><a name="[48]"></a>HAL_GPIO_Init</STRONG> (Thumb, 294 bytes, Stack size 24 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_Init))
@@ -277,26 +277,27 @@ Global Symbols
<P><STRONG><a name="[71]"></a>HAL_GPIO_ReadPin</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_ReadPin))
<BR><BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_until_change
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;look_for_atten
<LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_write_byte
<LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;look_for_atten
<LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_write_byte
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_read_bit
<LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_listen_16b
</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))
<BR><BR>[Called By]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<P><STRONG><a name="[95]"></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="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
</UL>
<P><STRONG><a name="[4b]"></a>HAL_GPIO_WritePin</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin))
<BR><BR>[Called By]<UL><LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
<BR><BR>[Called By]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
<LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_mouse_update
<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_keyboard_update
<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
<LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_write_byte
<LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_write_byte
<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_send_response_16b
<LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_release_lines
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
<LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_release_lines
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
</UL>
<P><STRONG><a name="[33]"></a>HAL_GetTick</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, stm32f0xx_hal.o(i.HAL_GetTick))
@@ -506,8 +507,8 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Init
</UL>
<P><STRONG><a name="[7c]"></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="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_init
<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="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_init
</UL>
<P><STRONG><a name="[53]"></a>HAL_TIM_ConfigClockSource</STRONG> (Thumb, 238 bytes, Stack size 24 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_ConfigClockSource))
@@ -636,21 +637,20 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<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="[a4]"></a>__1printf$3</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)
<P><STRONG><a name="[83]"></a>__2printf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3))
<P><STRONG><a name="[87]"></a>__2printf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = __2printf
</UL>
<BR>[Called By]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
<BR>[Called By]<UL><LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<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="[a5]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), 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="[a6]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), 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="[a7]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[6a]"></a>adb_init</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, adb.o(i.adb_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = adb_init &rArr; adb_reset &rArr; adb_release_lines
@@ -678,7 +678,19 @@ Global Symbols
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_until_change
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_read_bit
</UL>
<BR>[Called By]<UL><LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
<BR>[Called By]<UL><LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
</UL>
<P><STRONG><a name="[74]"></a>adb_mouse_update</STRONG> (Thumb, 106 bytes, Stack size 16 bytes, main.o(i.adb_mouse_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 68<LI>Call Chain = adb_mouse_update &rArr; adb_send_response_16b &rArr; adb_write_16 &rArr; adb_write_byte &rArr; delay_us
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;int16_to_uint6
<LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_reset
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_peek
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_send_response_16b
</UL>
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[73]"></a>adb_read_bit</STRONG> (Thumb, 56 bytes, Stack size 16 bytes, adb.o(i.adb_read_bit))
@@ -687,23 +699,23 @@ Global Symbols
<BR>[Calls]<UL><LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_until_change
</UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
<BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
<LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_listen_16b
</UL>
<P><STRONG><a name="[74]"></a>adb_recv_cmd</STRONG> (Thumb, 112 bytes, Stack size 32 bytes, adb.o(i.adb_recv_cmd))
<P><STRONG><a name="[78]"></a>adb_recv_cmd</STRONG> (Thumb, 112 bytes, Stack size 32 bytes, adb.o(i.adb_recv_cmd))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = adb_recv_cmd &rArr; adb_read_bit &rArr; wait_until_change
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
<BR>[Calls]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_until_change
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;look_for_atten
<LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;look_for_atten
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_read_bit
</UL>
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[77]"></a>adb_release_lines</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, adb.o(i.adb_release_lines))
<P><STRONG><a name="[7b]"></a>adb_release_lines</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, adb.o(i.adb_release_lines))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = adb_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
@@ -714,60 +726,61 @@ Global Symbols
<P><STRONG><a name="[6b]"></a>adb_reset</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, adb.o(i.adb_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = adb_reset &rArr; adb_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_release_lines
<BR>[Calls]<UL><LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_release_lines
</UL>
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;handle_protocol_switch
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;handle_protocol_switch
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_init
</UL>
<P><STRONG><a name="[6e]"></a>adb_send_response_16b</STRONG> (Thumb, 84 bytes, Stack size 16 bytes, adb.o(i.adb_send_response_16b))
<BR><BR>[Stack]<UL><LI>Max Depth = 52<LI>Call Chain = adb_send_response_16b &rArr; adb_write_16 &rArr; adb_write_byte &rArr; delay_us
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
<BR>[Calls]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_write_16
<LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_write_16
</UL>
<BR>[Called By]<UL><LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_keyboard_update
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_mouse_update
<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_keyboard_update
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
</UL>
<P><STRONG><a name="[78]"></a>adb_write_16</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, adb.o(i.adb_write_16))
<P><STRONG><a name="[7c]"></a>adb_write_16</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, adb.o(i.adb_write_16))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = adb_write_16 &rArr; adb_write_byte &rArr; delay_us
</UL>
<BR>[Calls]<UL><LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_write_byte
<BR>[Calls]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_write_byte
</UL>
<BR>[Called By]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_send_response_16b
</UL>
<P><STRONG><a name="[79]"></a>adb_write_byte</STRONG> (Thumb, 120 bytes, Stack size 24 bytes, adb.o(i.adb_write_byte))
<P><STRONG><a name="[7d]"></a>adb_write_byte</STRONG> (Thumb, 120 bytes, Stack size 24 bytes, adb.o(i.adb_write_byte))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = adb_write_byte &rArr; delay_us
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
<BR>[Calls]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
</UL>
<BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_write_16
<BR>[Called By]<UL><LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_write_16
</UL>
<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="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
<P><STRONG><a name="[94]"></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="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
</UL>
<P><STRONG><a name="[76]"></a>delay_us</STRONG> (Thumb, 20 bytes, Stack size 4 bytes, delay_us.o(i.delay_us))
<P><STRONG><a name="[7a]"></a>delay_us</STRONG> (Thumb, 20 bytes, Stack size 4 bytes, delay_us.o(i.delay_us))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = delay_us
</UL>
<BR>[Calls]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;micros
<BR>[Calls]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;micros
</UL>
<BR>[Called By]<UL><LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_write_byte
<BR>[Called By]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_write_byte
<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_send_response_16b
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
</UL>
<P><STRONG><a name="[7b]"></a>delay_us_init</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, delay_us.o(i.delay_us_init))
<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
</UL>
<BR>[Calls]<UL><LI><a href="#[7c]">&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>
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
@@ -779,42 +792,46 @@ Global Symbols
</UL>
<BR>[Address Reference Count : 1]<UL><LI> printf3.o(i.__0printf$3)
</UL>
<P><STRONG><a name="[7d]"></a>handle_protocol_switch</STRONG> (Thumb, 70 bytes, Stack size 16 bytes, main.o(i.handle_protocol_switch))
<P><STRONG><a name="[81]"></a>handle_protocol_switch</STRONG> (Thumb, 70 bytes, Stack size 16 bytes, main.o(i.handle_protocol_switch))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = handle_protocol_switch &rArr; adb_reset &rArr; adb_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_reset
</UL>
<BR>[Called By]<UL><LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
<BR>[Called By]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
</UL>
<P><STRONG><a name="[7e]"></a>kb_buf_add</STRONG> (Thumb, 48 bytes, Stack size 16 bytes, helpers.o(i.kb_buf_add))
<P><STRONG><a name="[76]"></a>int16_to_uint6</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, main.o(i.int16_to_uint6))
<BR><BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_mouse_update
</UL>
<P><STRONG><a name="[82]"></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
</UL>
<BR>[Calls]<UL><LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_is_full
<BR>[Calls]<UL><LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_is_full
<LI><a href="#[2d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
<BR>[Called By]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
</UL>
<P><STRONG><a name="[80]"></a>kb_buf_init</STRONG> (Thumb, 32 bytes, Stack size 16 bytes, helpers.o(i.kb_buf_init))
<P><STRONG><a name="[84]"></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
</UL>
<BR>[Calls]<UL><LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_reset
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc
<BR>[Calls]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_reset
<LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc
</UL>
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[89]"></a>kb_buf_is_empty</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, helpers.o(i.kb_buf_is_empty))
<P><STRONG><a name="[8d]"></a>kb_buf_is_empty</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, helpers.o(i.kb_buf_is_empty))
<BR><BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[7f]"></a>kb_buf_is_full</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.kb_buf_is_full))
<P><STRONG><a name="[83]"></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
</UL>
<BR>[Calls]<UL><LI><a href="#[2d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_add
<BR>[Called By]<UL><LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_add
</UL>
<P><STRONG><a name="[6d]"></a>kb_buf_peek</STRONG> (Thumb, 32 bytes, Stack size 8 bytes, helpers.o(i.kb_buf_peek))
@@ -831,146 +848,156 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_keyboard_update
</UL>
<P><STRONG><a name="[82]"></a>kb_buf_reset</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.kb_buf_reset))
<P><STRONG><a name="[86]"></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
</UL>
<BR>[Calls]<UL><LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<BR>[Called By]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_init
<BR>[Called By]<UL><LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_init
</UL>
<P><STRONG><a name="[75]"></a>look_for_atten</STRONG> (Thumb, 70 bytes, Stack size 8 bytes, adb.o(i.look_for_atten))
<P><STRONG><a name="[79]"></a>look_for_atten</STRONG> (Thumb, 70 bytes, Stack size 8 bytes, adb.o(i.look_for_atten))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = look_for_atten &rArr; wait_until_change
</UL>
<BR>[Calls]<UL><LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_until_change
</UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
<BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
</UL>
<P><STRONG><a name="[21]"></a>main</STRONG> (Thumb, 222 bytes, Stack size 16 bytes, main.o(i.main))
<P><STRONG><a name="[21]"></a>main</STRONG> (Thumb, 246 bytes, Stack size 16 bytes, main.o(i.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 180<LI>Call Chain = main &rArr; SystemClock_Config &rArr; HAL_RCC_ClockConfig &rArr; HAL_RCC_GetSysClockFreq &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TransmitReceive_IT
<LI><a href="#[39]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Init
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;protocol_status_lookup_init
<LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;protocol_status_lookup_init
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_mouse_update
<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_keyboard_update
<LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
<LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_USART2_UART_Init
<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM2_Init
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_SPI1_Init
<LI><a href="#[5a]">&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="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_is_empty
<LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_init
<LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_init
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_is_empty
<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_init
<LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_is_empty
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_init
<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_init
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_reset
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_init
<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
<LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
</UL>
<P><STRONG><a name="[81]"></a>malloc</STRONG> (Thumb, 92 bytes, Stack size 20 bytes, malloc.o(i.malloc))
<P><STRONG><a name="[85]"></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
</UL>
<BR>[Called By]<UL><LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_init
<LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_init
<BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_init
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_init
</UL>
<P><STRONG><a name="[7a]"></a>micros</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, delay_us.o(i.micros))
<BR><BR>[Called By]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
<P><STRONG><a name="[7e]"></a>micros</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, delay_us.o(i.micros))
<BR><BR>[Called By]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_until_change
</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="[8f]"></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
</UL>
<BR>[Calls]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_is_full
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<BR>[Calls]<UL><LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_is_full
<LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[2d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
<BR>[Called By]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
</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="[89]"></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
</UL>
<BR>[Calls]<UL><LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_reset
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc
<BR>[Calls]<UL><LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_reset
<LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;malloc
</UL>
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</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="[8e]"></a>mouse_buf_is_empty</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, helpers.o(i.mouse_buf_is_empty))
<BR><BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[90]"></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
</UL>
<BR>[Calls]<UL><LI><a href="#[2d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</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="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
</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="[75]"></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="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_mouse_update
</UL>
<P><STRONG><a name="[77]"></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
</UL>
<BR>[Calls]<UL><LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</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="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_mouse_update
<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_init
</UL>
<P><STRONG><a name="[88]"></a>parse_adb_cmd</STRONG> (Thumb, 196 bytes, Stack size 24 bytes, adb.o(i.parse_adb_cmd))
<P><STRONG><a name="[8c]"></a>parse_adb_cmd</STRONG> (Thumb, 196 bytes, Stack size 24 bytes, adb.o(i.parse_adb_cmd))
<BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = parse_adb_cmd &rArr; adb_listen_16b &rArr; adb_read_bit &rArr; wait_until_change
</UL>
<BR>[Calls]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_send_response_16b
<LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_listen_16b
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rand
<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rand
<LI><a href="#[2c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_idivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[87]"></a>process_spi_data</STRONG> (Thumb, 290 bytes, Stack size 16 bytes, main.o(i.process_spi_data))
<P><STRONG><a name="[8b]"></a>process_spi_data</STRONG> (Thumb, 264 bytes, Stack size 16 bytes, main.o(i.process_spi_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 52<LI>Call Chain = process_spi_data &rArr; mouse_buf_add &rArr; mouse_buf_is_full &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;handle_protocol_switch
<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="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_add
<BR>[Calls]<UL><LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;handle_protocol_switch
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;byte_to_int16_t
<LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_add
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[84]"></a>protocol_status_lookup_init</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, main.o(i.protocol_status_lookup_init))
<P><STRONG><a name="[88]"></a>protocol_status_lookup_init</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, main.o(i.protocol_status_lookup_init))
<BR><BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[8f]"></a>spi_error_dump_reboot</STRONG> (Thumb, 76 bytes, Stack size 0 bytes, main.o(i.spi_error_dump_reboot))
<P><STRONG><a name="[93]"></a>spi_error_dump_reboot</STRONG> (Thumb, 76 bytes, Stack size 0 bytes, main.o(i.spi_error_dump_reboot))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = spi_error_dump_reboot &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_TogglePin
<BR>[Calls]<UL><LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_TogglePin
<LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
<LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL>
<BR>[Called By]<UL><LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
<BR>[Called By]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
</UL>
<P><STRONG><a name="[72]"></a>wait_until_change</STRONG> (Thumb, 62 bytes, Stack size 24 bytes, adb.o(i.wait_until_change))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = wait_until_change
</UL>
<BR>[Calls]<UL><LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;micros
<BR>[Calls]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;micros
<LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
</UL>
<BR>[Called By]<UL><LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;look_for_atten
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
<BR>[Called By]<UL><LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;look_for_atten
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_read_bit
<LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_listen_16b
</UL>

View File

@@ -102,6 +102,8 @@ Section Cross References
main.o(i.adb_keyboard_update) refers to main.o(.bss) for .bss
main.o(i.adb_keyboard_update) refers to main.o(.data) for .data
main.o(i.adb_mouse_update) refers to helpers.o(i.mouse_buf_peek) for mouse_buf_peek
main.o(i.adb_mouse_update) refers to main.o(i.int16_to_uint6) for int16_to_uint6
main.o(i.adb_mouse_update) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
main.o(i.adb_mouse_update) refers to adb.o(i.adb_send_response_16b) for adb_send_response_16b
main.o(i.adb_mouse_update) refers to helpers.o(i.mouse_buf_reset) for mouse_buf_reset
main.o(i.adb_mouse_update) refers to main.o(.data) for .data
@@ -129,14 +131,15 @@ Section Cross References
main.o(i.main) refers to adb.o(i.adb_recv_cmd) for adb_recv_cmd
main.o(i.main) refers to adb.o(i.parse_adb_cmd) for parse_adb_cmd
main.o(i.main) refers to adb.o(i.adb_reset) for adb_reset
main.o(i.main) refers to main.o(i.adb_keyboard_update) for adb_keyboard_update
main.o(i.main) refers to main.o(i.adb_mouse_update) for adb_mouse_update
main.o(i.main) refers to helpers.o(i.kb_buf_is_empty) for kb_buf_is_empty
main.o(i.main) refers to main.o(i.adb_keyboard_update) for adb_keyboard_update
main.o(i.main) refers to helpers.o(i.mouse_buf_is_empty) for mouse_buf_is_empty
main.o(i.main) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
main.o(i.main) refers to main.o(.data) for .data
main.o(i.main) refers to main.o(.constdata) for .constdata
main.o(i.main) refers to main.o(.bss) for .bss
main.o(i.process_spi_data) refers to main.o(i.spi_error_dump_reboot) for spi_error_dump_reboot
main.o(i.process_spi_data) refers to printf3.o(i.__0printf$3) for __2printf
main.o(i.process_spi_data) refers to helpers.o(i.kb_buf_add) for kb_buf_add
main.o(i.process_spi_data) refers to main.o(i.byte_to_int16_t) for byte_to_int16_t
main.o(i.process_spi_data) refers to helpers.o(i.mouse_buf_add) for mouse_buf_add
@@ -1093,13 +1096,10 @@ Removing Unused input sections from the image.
Removing delay_us.o(.revsh_text), (4 bytes).
Removing helpers.o(.rev16_text), (4 bytes).
Removing helpers.o(.revsh_text), (4 bytes).
Removing helpers.o(i.mouse_buf_is_empty), (16 bytes).
Removing helpers.o(i.mouse_buf_peek), (22 bytes).
Removing helpers.o(i.mouse_buf_pop), (24 bytes).
Removing main.o(.rev16_text), (4 bytes).
Removing main.o(.revsh_text), (4 bytes).
Removing main.o(i._Error_Handler), (2 bytes).
Removing main.o(i.adb_mouse_update), (76 bytes).
Removing main.o(i.is_protocol_enabled), (20 bytes).
Removing main.o(.constdata), (1 bytes).
Removing main.o(.constdata), (1 bytes).
@@ -1578,7 +1578,7 @@ Removing Unused input sections from the image.
Removing stm32f0xx_hal_tim.o(i.__ARM_common_switch8), (26 bytes).
Removing depilogue.o(i.__ARM_clz), (46 bytes).
493 unused section(s) (total 34914 bytes) removed from the image.
490 unused section(s) (total 34800 bytes) removed from the image.
==============================================================================
@@ -1610,41 +1610,41 @@ Image Symbol Table
../Src/main.c 0x00000000 Number 0 main.o ABSOLUTE
../Src/stm32f0xx_hal_msp.c 0x00000000 Number 0 stm32f0xx_hal_msp.o ABSOLUTE
../Src/stm32f0xx_it.c 0x00000000 Number 0 stm32f0xx_it.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 idiv.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.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/mvars.c 0x00000000 Number 0 mvars.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 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 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.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/stdlib/rand.c 0x00000000 Number 0 rand.o ABSOLUTE
@@ -1802,41 +1802,45 @@ Image Symbol Table
i.adb_init 0x08001c9c Section 0 adb.o(i.adb_init)
i.adb_keyboard_update 0x08001cb4 Section 0 main.o(i.adb_keyboard_update)
i.adb_listen_16b 0x08001d0c Section 0 adb.o(i.adb_listen_16b)
i.adb_read_bit 0x08001d78 Section 0 adb.o(i.adb_read_bit)
i.adb_recv_cmd 0x08001db8 Section 0 adb.o(i.adb_recv_cmd)
i.adb_release_lines 0x08001e30 Section 0 adb.o(i.adb_release_lines)
i.adb_reset 0x08001e50 Section 0 adb.o(i.adb_reset)
i.adb_send_response_16b 0x08001e68 Section 0 adb.o(i.adb_send_response_16b)
i.adb_write_16 0x08001ec0 Section 0 adb.o(i.adb_write_16)
i.adb_write_byte 0x08001edc Section 0 adb.o(i.adb_write_byte)
i.byte_to_int16_t 0x08001f58 Section 0 main.o(i.byte_to_int16_t)
i.delay_us 0x08001f60 Section 0 delay_us.o(i.delay_us)
i.delay_us_init 0x08001f74 Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x08001f84 Section 0 main.o(i.fputc)
i.handle_protocol_switch 0x08001f9c Section 0 main.o(i.handle_protocol_switch)
i.kb_buf_add 0x08001fe8 Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x08002018 Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_is_empty 0x08002038 Section 0 helpers.o(i.kb_buf_is_empty)
i.kb_buf_is_full 0x08002048 Section 0 helpers.o(i.kb_buf_is_full)
i.kb_buf_peek 0x08002064 Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x08002084 Section 0 helpers.o(i.kb_buf_pop)
i.kb_buf_reset 0x0800209c Section 0 helpers.o(i.kb_buf_reset)
i.look_for_atten 0x080020b8 Section 0 adb.o(i.look_for_atten)
i.main 0x08002108 Section 0 main.o(i.main)
i.malloc 0x08002214 Section 0 malloc.o(i.malloc)
i.micros 0x08002280 Section 0 delay_us.o(i.micros)
i.mouse_buf_add 0x08002290 Section 0 helpers.o(i.mouse_buf_add)
i.mouse_buf_init 0x080022c2 Section 0 helpers.o(i.mouse_buf_init)
i.mouse_buf_is_full 0x080022da Section 0 helpers.o(i.mouse_buf_is_full)
i.mouse_buf_reset 0x080022f6 Section 0 helpers.o(i.mouse_buf_reset)
i.parse_adb_cmd 0x0800230c Section 0 adb.o(i.parse_adb_cmd)
i.process_spi_data 0x080023d8 Section 0 main.o(i.process_spi_data)
i.protocol_status_lookup_init 0x08002514 Section 0 main.o(i.protocol_status_lookup_init)
i.spi_error_dump_reboot 0x08002530 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_until_change 0x080025ac Section 0 adb.o(i.wait_until_change)
.constdata 0x080025f0 Section 61 main.o(.constdata)
.constdata 0x0800262d Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x0800263d Section 8 system_stm32f0xx.o(.constdata)
i.adb_mouse_update 0x08001d78 Section 0 main.o(i.adb_mouse_update)
i.adb_read_bit 0x08001dec Section 0 adb.o(i.adb_read_bit)
i.adb_recv_cmd 0x08001e2c Section 0 adb.o(i.adb_recv_cmd)
i.adb_release_lines 0x08001ea4 Section 0 adb.o(i.adb_release_lines)
i.adb_reset 0x08001ec4 Section 0 adb.o(i.adb_reset)
i.adb_send_response_16b 0x08001edc Section 0 adb.o(i.adb_send_response_16b)
i.adb_write_16 0x08001f34 Section 0 adb.o(i.adb_write_16)
i.adb_write_byte 0x08001f50 Section 0 adb.o(i.adb_write_byte)
i.byte_to_int16_t 0x08001fcc Section 0 main.o(i.byte_to_int16_t)
i.delay_us 0x08001fd4 Section 0 delay_us.o(i.delay_us)
i.delay_us_init 0x08001fe8 Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x08001ff8 Section 0 main.o(i.fputc)
i.handle_protocol_switch 0x08002010 Section 0 main.o(i.handle_protocol_switch)
i.int16_to_uint6 0x0800205c Section 0 main.o(i.int16_to_uint6)
i.kb_buf_add 0x08002076 Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x080020a6 Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_is_empty 0x080020c6 Section 0 helpers.o(i.kb_buf_is_empty)
i.kb_buf_is_full 0x080020d6 Section 0 helpers.o(i.kb_buf_is_full)
i.kb_buf_peek 0x080020f2 Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x08002112 Section 0 helpers.o(i.kb_buf_pop)
i.kb_buf_reset 0x0800212a Section 0 helpers.o(i.kb_buf_reset)
i.look_for_atten 0x08002148 Section 0 adb.o(i.look_for_atten)
i.main 0x08002198 Section 0 main.o(i.main)
i.malloc 0x080022bc Section 0 malloc.o(i.malloc)
i.micros 0x08002328 Section 0 delay_us.o(i.micros)
i.mouse_buf_add 0x08002338 Section 0 helpers.o(i.mouse_buf_add)
i.mouse_buf_init 0x0800236a Section 0 helpers.o(i.mouse_buf_init)
i.mouse_buf_is_empty 0x08002382 Section 0 helpers.o(i.mouse_buf_is_empty)
i.mouse_buf_is_full 0x08002392 Section 0 helpers.o(i.mouse_buf_is_full)
i.mouse_buf_peek 0x080023ae Section 0 helpers.o(i.mouse_buf_peek)
i.mouse_buf_reset 0x080023c4 Section 0 helpers.o(i.mouse_buf_reset)
i.parse_adb_cmd 0x080023dc Section 0 adb.o(i.parse_adb_cmd)
i.process_spi_data 0x080024a8 Section 0 main.o(i.process_spi_data)
i.protocol_status_lookup_init 0x080025b8 Section 0 main.o(i.protocol_status_lookup_init)
i.spi_error_dump_reboot 0x080025d4 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_until_change 0x08002650 Section 0 adb.o(i.wait_until_change)
.constdata 0x08002694 Section 61 main.o(.constdata)
.constdata 0x080026d1 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x080026e1 Section 8 system_stm32f0xx.o(.constdata)
.data 0x20000000 Section 16 adb.o(.data)
.data 0x20000010 Section 4 delay_us.o(.data)
.data 0x20000014 Section 12 main.o(.data)
@@ -2020,43 +2024,47 @@ Image Symbol Table
adb_init 0x08001c9d Thumb Code 18 adb.o(i.adb_init)
adb_keyboard_update 0x08001cb5 Thumb Code 72 main.o(i.adb_keyboard_update)
adb_listen_16b 0x08001d0d Thumb Code 98 adb.o(i.adb_listen_16b)
adb_read_bit 0x08001d79 Thumb Code 56 adb.o(i.adb_read_bit)
adb_recv_cmd 0x08001db9 Thumb Code 112 adb.o(i.adb_recv_cmd)
adb_release_lines 0x08001e31 Thumb Code 26 adb.o(i.adb_release_lines)
adb_reset 0x08001e51 Thumb Code 18 adb.o(i.adb_reset)
adb_send_response_16b 0x08001e69 Thumb Code 84 adb.o(i.adb_send_response_16b)
adb_write_16 0x08001ec1 Thumb Code 28 adb.o(i.adb_write_16)
adb_write_byte 0x08001edd Thumb Code 120 adb.o(i.adb_write_byte)
byte_to_int16_t 0x08001f59 Thumb Code 8 main.o(i.byte_to_int16_t)
delay_us 0x08001f61 Thumb Code 20 delay_us.o(i.delay_us)
delay_us_init 0x08001f75 Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x08001f85 Thumb Code 18 main.o(i.fputc)
handle_protocol_switch 0x08001f9d Thumb Code 70 main.o(i.handle_protocol_switch)
kb_buf_add 0x08001fe9 Thumb Code 48 helpers.o(i.kb_buf_add)
kb_buf_init 0x08002019 Thumb Code 32 helpers.o(i.kb_buf_init)
kb_buf_is_empty 0x08002039 Thumb Code 16 helpers.o(i.kb_buf_is_empty)
kb_buf_is_full 0x08002049 Thumb Code 28 helpers.o(i.kb_buf_is_full)
kb_buf_peek 0x08002065 Thumb Code 32 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x08002085 Thumb Code 24 helpers.o(i.kb_buf_pop)
kb_buf_reset 0x0800209d Thumb Code 28 helpers.o(i.kb_buf_reset)
look_for_atten 0x080020b9 Thumb Code 70 adb.o(i.look_for_atten)
main 0x08002109 Thumb Code 222 main.o(i.main)
malloc 0x08002215 Thumb Code 92 malloc.o(i.malloc)
micros 0x08002281 Thumb Code 10 delay_us.o(i.micros)
mouse_buf_add 0x08002291 Thumb Code 50 helpers.o(i.mouse_buf_add)
mouse_buf_init 0x080022c3 Thumb Code 24 helpers.o(i.mouse_buf_init)
mouse_buf_is_full 0x080022db Thumb Code 28 helpers.o(i.mouse_buf_is_full)
mouse_buf_reset 0x080022f7 Thumb Code 22 helpers.o(i.mouse_buf_reset)
parse_adb_cmd 0x0800230d Thumb Code 196 adb.o(i.parse_adb_cmd)
process_spi_data 0x080023d9 Thumb Code 290 main.o(i.process_spi_data)
protocol_status_lookup_init 0x08002515 Thumb Code 22 main.o(i.protocol_status_lookup_init)
spi_error_dump_reboot 0x08002531 Thumb Code 76 main.o(i.spi_error_dump_reboot)
wait_until_change 0x080025ad Thumb Code 62 adb.o(i.wait_until_change)
boot_message 0x080025f0 Data 61 main.o(.constdata)
AHBPrescTable 0x0800262d Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x0800263d Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08002648 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08002668 Number 0 anon$$obj.o(Region$$Table)
adb_mouse_update 0x08001d79 Thumb Code 106 main.o(i.adb_mouse_update)
adb_read_bit 0x08001ded Thumb Code 56 adb.o(i.adb_read_bit)
adb_recv_cmd 0x08001e2d Thumb Code 112 adb.o(i.adb_recv_cmd)
adb_release_lines 0x08001ea5 Thumb Code 26 adb.o(i.adb_release_lines)
adb_reset 0x08001ec5 Thumb Code 18 adb.o(i.adb_reset)
adb_send_response_16b 0x08001edd Thumb Code 84 adb.o(i.adb_send_response_16b)
adb_write_16 0x08001f35 Thumb Code 28 adb.o(i.adb_write_16)
adb_write_byte 0x08001f51 Thumb Code 120 adb.o(i.adb_write_byte)
byte_to_int16_t 0x08001fcd Thumb Code 8 main.o(i.byte_to_int16_t)
delay_us 0x08001fd5 Thumb Code 20 delay_us.o(i.delay_us)
delay_us_init 0x08001fe9 Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x08001ff9 Thumb Code 18 main.o(i.fputc)
handle_protocol_switch 0x08002011 Thumb Code 70 main.o(i.handle_protocol_switch)
int16_to_uint6 0x0800205d Thumb Code 26 main.o(i.int16_to_uint6)
kb_buf_add 0x08002077 Thumb Code 48 helpers.o(i.kb_buf_add)
kb_buf_init 0x080020a7 Thumb Code 32 helpers.o(i.kb_buf_init)
kb_buf_is_empty 0x080020c7 Thumb Code 16 helpers.o(i.kb_buf_is_empty)
kb_buf_is_full 0x080020d7 Thumb Code 28 helpers.o(i.kb_buf_is_full)
kb_buf_peek 0x080020f3 Thumb Code 32 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x08002113 Thumb Code 24 helpers.o(i.kb_buf_pop)
kb_buf_reset 0x0800212b Thumb Code 28 helpers.o(i.kb_buf_reset)
look_for_atten 0x08002149 Thumb Code 70 adb.o(i.look_for_atten)
main 0x08002199 Thumb Code 246 main.o(i.main)
malloc 0x080022bd Thumb Code 92 malloc.o(i.malloc)
micros 0x08002329 Thumb Code 10 delay_us.o(i.micros)
mouse_buf_add 0x08002339 Thumb Code 50 helpers.o(i.mouse_buf_add)
mouse_buf_init 0x0800236b Thumb Code 24 helpers.o(i.mouse_buf_init)
mouse_buf_is_empty 0x08002383 Thumb Code 16 helpers.o(i.mouse_buf_is_empty)
mouse_buf_is_full 0x08002393 Thumb Code 28 helpers.o(i.mouse_buf_is_full)
mouse_buf_peek 0x080023af Thumb Code 22 helpers.o(i.mouse_buf_peek)
mouse_buf_reset 0x080023c5 Thumb Code 22 helpers.o(i.mouse_buf_reset)
parse_adb_cmd 0x080023dd Thumb Code 196 adb.o(i.parse_adb_cmd)
process_spi_data 0x080024a9 Thumb Code 264 main.o(i.process_spi_data)
protocol_status_lookup_init 0x080025b9 Thumb Code 22 main.o(i.protocol_status_lookup_init)
spi_error_dump_reboot 0x080025d5 Thumb Code 76 main.o(i.spi_error_dump_reboot)
wait_until_change 0x08002651 Thumb Code 62 adb.o(i.wait_until_change)
boot_message 0x08002694 Data 61 main.o(.constdata)
AHBPrescTable 0x080026d1 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x080026e1 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x080026ec Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x0800270c Number 0 anon$$obj.o(Region$$Table)
adb_mouse_current_addr 0x20000000 Data 1 adb.o(.data)
adb_kb_current_addr 0x20000001 Data 1 adb.o(.data)
adb_psw_pin 0x20000002 Data 2 adb.o(.data)
@@ -2095,172 +2103,178 @@ Memory Map of the image
Image Entry point : 0x080000c1
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000026a0, Max: 0x00008000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00002744, Max: 0x00008000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00002668, Max: 0x00008000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000270c, Max: 0x00008000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x08000000 0x08000000 0x000000c0 Data RO 3 RESET startup_stm32f042x6.o
0x080000c0 0x080000c0 0x00000000 Code RO 3610 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
0x080000c0 0x080000c0 0x00000004 Code RO 3917 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
0x080000c4 0x080000c4 0x00000004 Code RO 3920 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3922 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3924 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
0x080000c8 0x080000c8 0x00000008 Code RO 3925 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3927 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3929 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
0x080000d0 0x080000d0 0x00000004 Code RO 3918 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
0x080000c0 0x080000c0 0x00000000 Code RO 3615 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
0x080000c0 0x080000c0 0x00000004 Code RO 3922 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
0x080000c4 0x080000c4 0x00000004 Code RO 3925 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3927 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3929 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
0x080000c8 0x080000c8 0x00000008 Code RO 3930 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3932 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3934 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
0x080000d0 0x080000d0 0x00000004 Code RO 3923 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
0x080000d4 0x080000d4 0x00000058 Code RO 4 .text startup_stm32f042x6.o
0x0800012c 0x0800012c 0x0000002c Code RO 3613 .text mc_p.l(uidiv.o)
0x08000158 0x08000158 0x00000028 Code RO 3615 .text mc_p.l(idiv.o)
0x08000180 0x08000180 0x00000024 Code RO 3619 .text mc_p.l(rand.o)
0x080001a4 0x080001a4 0x00000024 Code RO 3622 .text mc_p.l(memcpya.o)
0x080001c8 0x080001c8 0x00000024 Code RO 3624 .text mc_p.l(memseta.o)
0x080001ec 0x080001ec 0x00000024 Code RO 3947 .text mc_p.l(init.o)
0x08000210 0x08000210 0x00000048 Code RO 3067 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x08000258 0x08000258 0x0000001c Code RO 2396 i.HAL_Delay stm32f0xx_hal.o
0x08000274 0x08000274 0x0000013c Code RO 3005 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x080003b0 0x080003b0 0x0000000a Code RO 3007 i.HAL_GPIO_ReadPin stm32f0xx_hal_gpio.o
0x080003ba 0x080003ba 0x00000008 Code RO 3008 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o
0x080003c2 0x080003c2 0x0000000c Code RO 3009 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x0800012c 0x0800012c 0x0000002c Code RO 3618 .text mc_p.l(uidiv.o)
0x08000158 0x08000158 0x00000028 Code RO 3620 .text mc_p.l(idiv.o)
0x08000180 0x08000180 0x00000024 Code RO 3624 .text mc_p.l(rand.o)
0x080001a4 0x080001a4 0x00000024 Code RO 3627 .text mc_p.l(memcpya.o)
0x080001c8 0x080001c8 0x00000024 Code RO 3629 .text mc_p.l(memseta.o)
0x080001ec 0x080001ec 0x00000024 Code RO 3952 .text mc_p.l(init.o)
0x08000210 0x08000210 0x00000048 Code RO 3072 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x08000258 0x08000258 0x0000001c Code RO 2401 i.HAL_Delay stm32f0xx_hal.o
0x08000274 0x08000274 0x0000013c Code RO 3010 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x080003b0 0x080003b0 0x0000000a Code RO 3012 i.HAL_GPIO_ReadPin stm32f0xx_hal_gpio.o
0x080003ba 0x080003ba 0x00000008 Code RO 3013 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o
0x080003c2 0x080003c2 0x0000000c Code RO 3014 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x080003ce 0x080003ce 0x00000002 PAD
0x080003d0 0x080003d0 0x0000000c Code RO 2400 i.HAL_GetTick stm32f0xx_hal.o
0x080003dc 0x080003dc 0x00000076 Code RO 1815 i.HAL_HalfDuplex_Init stm32f0xx_hal_uart.o
0x080003d0 0x080003d0 0x0000000c Code RO 2405 i.HAL_GetTick stm32f0xx_hal.o
0x080003dc 0x080003dc 0x00000076 Code RO 1820 i.HAL_HalfDuplex_Init stm32f0xx_hal_uart.o
0x08000452 0x08000452 0x00000002 PAD
0x08000454 0x08000454 0x00000010 Code RO 2404 i.HAL_IncTick stm32f0xx_hal.o
0x08000464 0x08000464 0x00000020 Code RO 2405 i.HAL_Init stm32f0xx_hal.o
0x08000484 0x08000484 0x00000022 Code RO 2406 i.HAL_InitTick stm32f0xx_hal.o
0x08000454 0x08000454 0x00000010 Code RO 2409 i.HAL_IncTick stm32f0xx_hal.o
0x08000464 0x08000464 0x00000020 Code RO 2410 i.HAL_Init stm32f0xx_hal.o
0x08000484 0x08000484 0x00000022 Code RO 2411 i.HAL_InitTick stm32f0xx_hal.o
0x080004a6 0x080004a6 0x00000002 PAD
0x080004a8 0x080004a8 0x00000054 Code RO 538 i.HAL_MspInit stm32f0xx_hal_msp.o
0x080004fc 0x080004fc 0x00000014 Code RO 3162 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x08000510 0x08000510 0x00000008 Code RO 3166 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08000518 0x08000518 0x00000154 Code RO 2214 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x0800066c 0x0800066c 0x0000000c Code RO 2219 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000678 0x08000678 0x00000020 Code RO 2221 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x08000698 0x08000698 0x00000088 Code RO 2222 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x08000720 0x08000720 0x000003d8 Code RO 2225 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000af8 0x08000af8 0x00000002 Code RO 601 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x080004a8 0x080004a8 0x00000054 Code RO 543 i.HAL_MspInit stm32f0xx_hal_msp.o
0x080004fc 0x080004fc 0x00000014 Code RO 3167 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x08000510 0x08000510 0x00000008 Code RO 3171 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08000518 0x08000518 0x00000154 Code RO 2219 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x0800066c 0x0800066c 0x0000000c Code RO 2224 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000678 0x08000678 0x00000020 Code RO 2226 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x08000698 0x08000698 0x00000088 Code RO 2227 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x08000720 0x08000720 0x000003d8 Code RO 2230 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000af8 0x08000af8 0x00000002 Code RO 606 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x08000afa 0x08000afa 0x00000002 PAD
0x08000afc 0x08000afc 0x000000d4 Code RO 604 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x08000bd0 0x08000bd0 0x000000b8 Code RO 605 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x08000c88 0x08000c88 0x00000054 Code RO 540 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x08000cdc 0x08000cdc 0x00000002 Code RO 611 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x08000afc 0x08000afc 0x000000d4 Code RO 609 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x08000bd0 0x08000bd0 0x000000b8 Code RO 610 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x08000c88 0x08000c88 0x00000054 Code RO 545 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x08000cdc 0x08000cdc 0x00000002 Code RO 616 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x08000cde 0x08000cde 0x00000002 PAD
0x08000ce0 0x08000ce0 0x000000d4 Code RO 616 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x08000ce0 0x08000ce0 0x000000d4 Code RO 621 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x08000db4 0x08000db4 0x00000054 Code RO 355 i.HAL_SPI_TxRxCpltCallback main.o
0x08000e08 0x08000e08 0x00000018 Code RO 3168 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x08000e20 0x08000e20 0x00000002 Code RO 3169 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x08000e08 0x08000e08 0x00000018 Code RO 3173 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x08000e20 0x08000e20 0x00000002 Code RO 3174 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x08000e22 0x08000e22 0x00000002 PAD
0x08000e24 0x08000e24 0x00000030 Code RO 3170 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x08000e54 0x08000e54 0x00000008 Code RO 3171 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x08000e5c 0x08000e5c 0x00000048 Code RO 1595 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x08000ea4 0x08000ea4 0x00000034 Code RO 939 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x08000ed8 0x08000ed8 0x00000024 Code RO 542 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08000efc 0x08000efc 0x00000018 Code RO 942 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x08000f14 0x08000f14 0x000000ee Code RO 948 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x08000e24 0x08000e24 0x00000030 Code RO 3175 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x08000e54 0x08000e54 0x00000008 Code RO 3176 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x08000e5c 0x08000e5c 0x00000048 Code RO 1600 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x08000ea4 0x08000ea4 0x00000034 Code RO 944 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x08000ed8 0x08000ed8 0x00000024 Code RO 547 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08000efc 0x08000efc 0x00000018 Code RO 947 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x08000f14 0x08000f14 0x000000ee Code RO 953 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x08001002 0x08001002 0x00000002 PAD
0x08001004 0x08001004 0x00000048 Code RO 544 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x0800104c 0x0800104c 0x000000c8 Code RO 1845 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x08001114 0x08001114 0x00000002 Code RO 484 i.HardFault_Handler stm32f0xx_it.o
0x08001004 0x08001004 0x00000048 Code RO 549 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x0800104c 0x0800104c 0x000000c8 Code RO 1850 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x08001114 0x08001114 0x00000002 Code RO 489 i.HardFault_Handler stm32f0xx_it.o
0x08001116 0x08001116 0x00000002 PAD
0x08001118 0x08001118 0x000000f4 Code RO 356 i.MX_GPIO_Init main.o
0x0800120c 0x0800120c 0x0000003c Code RO 357 i.MX_SPI1_Init main.o
0x08001248 0x08001248 0x00000054 Code RO 358 i.MX_TIM2_Init main.o
0x0800129c 0x0800129c 0x00000038 Code RO 359 i.MX_USART2_UART_Init main.o
0x080012d4 0x080012d4 0x00000002 Code RO 485 i.NMI_Handler stm32f0xx_it.o
0x080012d4 0x080012d4 0x00000002 Code RO 490 i.NMI_Handler stm32f0xx_it.o
0x080012d6 0x080012d6 0x00000002 PAD
0x080012d8 0x080012d8 0x00000044 Code RO 3172 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x0800131c 0x0800131c 0x00000002 Code RO 486 i.PendSV_Handler stm32f0xx_it.o
0x080012d8 0x080012d8 0x00000044 Code RO 3177 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x0800131c 0x0800131c 0x00000002 Code RO 491 i.PendSV_Handler stm32f0xx_it.o
0x0800131e 0x0800131e 0x00000002 PAD
0x08001320 0x08001320 0x00000010 Code RO 487 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001330 0x08001330 0x00000036 Code RO 623 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x08001366 0x08001366 0x0000005e Code RO 624 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x080013c4 0x080013c4 0x00000034 Code RO 625 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x080013f8 0x080013f8 0x00000048 Code RO 626 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x08001440 0x08001440 0x00000052 Code RO 629 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x08001492 0x08001492 0x00000012 Code RO 632 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x080014a4 0x080014a4 0x0000004c Code RO 643 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x080014f0 0x080014f0 0x00000096 Code RO 648 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x08001586 0x08001586 0x0000008c Code RO 649 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x08001612 0x08001612 0x00000002 Code RO 488 i.SVC_Handler stm32f0xx_it.o
0x08001614 0x08001614 0x0000000c Code RO 489 i.SysTick_Handler stm32f0xx_it.o
0x08001320 0x08001320 0x00000010 Code RO 492 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001330 0x08001330 0x00000036 Code RO 628 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x08001366 0x08001366 0x0000005e Code RO 629 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x080013c4 0x080013c4 0x00000034 Code RO 630 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x080013f8 0x080013f8 0x00000048 Code RO 631 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x08001440 0x08001440 0x00000052 Code RO 634 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x08001492 0x08001492 0x00000012 Code RO 637 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x080014a4 0x080014a4 0x0000004c Code RO 648 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x080014f0 0x080014f0 0x00000096 Code RO 653 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x08001586 0x08001586 0x0000008c Code RO 654 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x08001612 0x08001612 0x00000002 Code RO 493 i.SVC_Handler stm32f0xx_it.o
0x08001614 0x08001614 0x0000000c Code RO 494 i.SysTick_Handler stm32f0xx_it.o
0x08001620 0x08001620 0x0000005a Code RO 360 i.SystemClock_Config main.o
0x0800167a 0x0800167a 0x00000002 PAD
0x0800167c 0x0800167c 0x0000005c Code RO 3579 i.SystemInit system_stm32f0xx.o
0x080016d8 0x080016d8 0x00000084 Code RO 1025 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x0800175c 0x0800175c 0x00000016 Code RO 1032 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x08001772 0x08001772 0x00000010 Code RO 1033 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x08001782 0x08001782 0x00000022 Code RO 1039 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x080017a4 0x080017a4 0x00000026 Code RO 1041 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x080017ca 0x080017ca 0x000000ca Code RO 1850 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08001894 0x08001894 0x00000068 Code RO 1851 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x080018fc 0x080018fc 0x00000130 Code RO 1866 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08001a2c 0x08001a2c 0x00000062 Code RO 1868 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x0800167c 0x0800167c 0x0000005c Code RO 3584 i.SystemInit system_stm32f0xx.o
0x080016d8 0x080016d8 0x00000084 Code RO 1030 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x0800175c 0x0800175c 0x00000016 Code RO 1037 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x08001772 0x08001772 0x00000010 Code RO 1038 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x08001782 0x08001782 0x00000022 Code RO 1044 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x080017a4 0x080017a4 0x00000026 Code RO 1046 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x080017ca 0x080017ca 0x000000ca Code RO 1855 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08001894 0x08001894 0x00000068 Code RO 1856 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x080018fc 0x080018fc 0x00000130 Code RO 1871 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08001a2c 0x08001a2c 0x00000062 Code RO 1873 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x08001a8e 0x08001a8e 0x00000002 PAD
0x08001a90 0x08001a90 0x00000020 Code RO 3717 i.__0printf$3 mc_p.l(printf3.o)
0x08001ab0 0x08001ab0 0x0000000e Code RO 3959 i.__scatterload_copy mc_p.l(handlers.o)
0x08001abe 0x08001abe 0x00000002 Code RO 3960 i.__scatterload_null mc_p.l(handlers.o)
0x08001ac0 0x08001ac0 0x0000000e Code RO 3961 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08001a90 0x08001a90 0x00000020 Code RO 3722 i.__0printf$3 mc_p.l(printf3.o)
0x08001ab0 0x08001ab0 0x0000000e Code RO 3964 i.__scatterload_copy mc_p.l(handlers.o)
0x08001abe 0x08001abe 0x00000002 Code RO 3965 i.__scatterload_null mc_p.l(handlers.o)
0x08001ac0 0x08001ac0 0x0000000e Code RO 3966 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08001ace 0x08001ace 0x00000002 PAD
0x08001ad0 0x08001ad0 0x000001cc Code RO 3724 i._printf_core mc_p.l(printf3.o)
0x08001ad0 0x08001ad0 0x000001cc Code RO 3729 i._printf_core mc_p.l(printf3.o)
0x08001c9c 0x08001c9c 0x00000018 Code RO 12 i.adb_init adb.o
0x08001cb4 0x08001cb4 0x00000058 Code RO 362 i.adb_keyboard_update main.o
0x08001d0c 0x08001d0c 0x0000006c Code RO 13 i.adb_listen_16b adb.o
0x08001d78 0x08001d78 0x00000040 Code RO 14 i.adb_read_bit adb.o
0x08001db8 0x08001db8 0x00000078 Code RO 15 i.adb_recv_cmd adb.o
0x08001e30 0x08001e30 0x00000020 Code RO 16 i.adb_release_lines adb.o
0x08001e50 0x08001e50 0x00000018 Code RO 17 i.adb_reset adb.o
0x08001e68 0x08001e68 0x00000058 Code RO 18 i.adb_send_response_16b adb.o
0x08001ec0 0x08001ec0 0x0000001c Code RO 19 i.adb_write_16 adb.o
0x08001edc 0x08001edc 0x0000007c Code RO 20 i.adb_write_byte adb.o
0x08001f58 0x08001f58 0x00000008 Code RO 364 i.byte_to_int16_t main.o
0x08001f60 0x08001f60 0x00000014 Code RO 225 i.delay_us delay_us.o
0x08001f74 0x08001f74 0x00000010 Code RO 226 i.delay_us_init delay_us.o
0x08001f84 0x08001f84 0x00000018 Code RO 365 i.fputc main.o
0x08001f9c 0x08001f9c 0x0000004c Code RO 366 i.handle_protocol_switch main.o
0x08001fe8 0x08001fe8 0x00000030 Code RO 260 i.kb_buf_add helpers.o
0x08002018 0x08002018 0x00000020 Code RO 261 i.kb_buf_init helpers.o
0x08002038 0x08002038 0x00000010 Code RO 262 i.kb_buf_is_empty helpers.o
0x08002048 0x08002048 0x0000001c Code RO 263 i.kb_buf_is_full helpers.o
0x08002064 0x08002064 0x00000020 Code RO 264 i.kb_buf_peek helpers.o
0x08002084 0x08002084 0x00000018 Code RO 265 i.kb_buf_pop helpers.o
0x0800209c 0x0800209c 0x0000001c Code RO 266 i.kb_buf_reset helpers.o
0x080020b8 0x080020b8 0x00000050 Code RO 21 i.look_for_atten adb.o
0x08002108 0x08002108 0x0000010c Code RO 368 i.main main.o
0x08002214 0x08002214 0x0000006c Code RO 3890 i.malloc mc_p.l(malloc.o)
0x08002280 0x08002280 0x00000010 Code RO 227 i.micros delay_us.o
0x08002290 0x08002290 0x00000032 Code RO 267 i.mouse_buf_add helpers.o
0x080022c2 0x080022c2 0x00000018 Code RO 268 i.mouse_buf_init helpers.o
0x080022da 0x080022da 0x0000001c Code RO 270 i.mouse_buf_is_full helpers.o
0x080022f6 0x080022f6 0x00000016 Code RO 273 i.mouse_buf_reset helpers.o
0x0800230c 0x0800230c 0x000000cc Code RO 22 i.parse_adb_cmd adb.o
0x080023d8 0x080023d8 0x0000013c Code RO 369 i.process_spi_data main.o
0x08002514 0x08002514 0x0000001c Code RO 370 i.protocol_status_lookup_init main.o
0x08002530 0x08002530 0x0000007c Code RO 371 i.spi_error_dump_reboot main.o
0x080025ac 0x080025ac 0x00000044 Code RO 23 i.wait_until_change adb.o
0x080025f0 0x080025f0 0x0000003d Data RO 377 .constdata main.o
0x0800262d 0x0800262d 0x00000010 Data RO 3580 .constdata system_stm32f0xx.o
0x0800263d 0x0800263d 0x00000008 Data RO 3581 .constdata system_stm32f0xx.o
0x08002645 0x08002645 0x00000003 PAD
0x08002648 0x08002648 0x00000020 Data RO 3957 Region$$Table anon$$obj.o
0x08001d78 0x08001d78 0x00000074 Code RO 363 i.adb_mouse_update main.o
0x08001dec 0x08001dec 0x00000040 Code RO 14 i.adb_read_bit adb.o
0x08001e2c 0x08001e2c 0x00000078 Code RO 15 i.adb_recv_cmd adb.o
0x08001ea4 0x08001ea4 0x00000020 Code RO 16 i.adb_release_lines adb.o
0x08001ec4 0x08001ec4 0x00000018 Code RO 17 i.adb_reset adb.o
0x08001edc 0x08001edc 0x00000058 Code RO 18 i.adb_send_response_16b adb.o
0x08001f34 0x08001f34 0x0000001c Code RO 19 i.adb_write_16 adb.o
0x08001f50 0x08001f50 0x0000007c Code RO 20 i.adb_write_byte adb.o
0x08001fcc 0x08001fcc 0x00000008 Code RO 364 i.byte_to_int16_t main.o
0x08001fd4 0x08001fd4 0x00000014 Code RO 225 i.delay_us delay_us.o
0x08001fe8 0x08001fe8 0x00000010 Code RO 226 i.delay_us_init delay_us.o
0x08001ff8 0x08001ff8 0x00000018 Code RO 365 i.fputc main.o
0x08002010 0x08002010 0x0000004c Code RO 366 i.handle_protocol_switch main.o
0x0800205c 0x0800205c 0x0000001a Code RO 367 i.int16_to_uint6 main.o
0x08002076 0x08002076 0x00000030 Code RO 260 i.kb_buf_add helpers.o
0x080020a6 0x080020a6 0x00000020 Code RO 261 i.kb_buf_init helpers.o
0x080020c6 0x080020c6 0x00000010 Code RO 262 i.kb_buf_is_empty helpers.o
0x080020d6 0x080020d6 0x0000001c Code RO 263 i.kb_buf_is_full helpers.o
0x080020f2 0x080020f2 0x00000020 Code RO 264 i.kb_buf_peek helpers.o
0x08002112 0x08002112 0x00000018 Code RO 265 i.kb_buf_pop helpers.o
0x0800212a 0x0800212a 0x0000001c Code RO 266 i.kb_buf_reset helpers.o
0x08002146 0x08002146 0x00000002 PAD
0x08002148 0x08002148 0x00000050 Code RO 21 i.look_for_atten adb.o
0x08002198 0x08002198 0x00000124 Code RO 369 i.main main.o
0x080022bc 0x080022bc 0x0000006c Code RO 3895 i.malloc mc_p.l(malloc.o)
0x08002328 0x08002328 0x00000010 Code RO 227 i.micros delay_us.o
0x08002338 0x08002338 0x00000032 Code RO 267 i.mouse_buf_add helpers.o
0x0800236a 0x0800236a 0x00000018 Code RO 268 i.mouse_buf_init helpers.o
0x08002382 0x08002382 0x00000010 Code RO 269 i.mouse_buf_is_empty helpers.o
0x08002392 0x08002392 0x0000001c Code RO 270 i.mouse_buf_is_full helpers.o
0x080023ae 0x080023ae 0x00000016 Code RO 271 i.mouse_buf_peek helpers.o
0x080023c4 0x080023c4 0x00000016 Code RO 273 i.mouse_buf_reset helpers.o
0x080023da 0x080023da 0x00000002 PAD
0x080023dc 0x080023dc 0x000000cc Code RO 22 i.parse_adb_cmd adb.o
0x080024a8 0x080024a8 0x00000110 Code RO 370 i.process_spi_data main.o
0x080025b8 0x080025b8 0x0000001c Code RO 371 i.protocol_status_lookup_init main.o
0x080025d4 0x080025d4 0x0000007c Code RO 372 i.spi_error_dump_reboot main.o
0x08002650 0x08002650 0x00000044 Code RO 23 i.wait_until_change adb.o
0x08002694 0x08002694 0x0000003d Data RO 378 .constdata main.o
0x080026d1 0x080026d1 0x00000010 Data RO 3585 .constdata system_stm32f0xx.o
0x080026e1 0x080026e1 0x00000008 Data RO 3586 .constdata system_stm32f0xx.o
0x080026e9 0x080026e9 0x00000003 PAD
0x080026ec 0x080026ec 0x00000020 Data RO 3962 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08002668, Size: 0x000007d8, Max: 0x00001800, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0800270c, Size: 0x000007d8, Max: 0x00001800, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x08002668 0x00000010 Data RW 26 .data adb.o
0x20000010 0x08002678 0x00000004 Data RW 228 .data delay_us.o
0x20000014 0x0800267c 0x0000000c Data RW 378 .data main.o
0x20000020 0x08002688 0x00000004 Data RW 2411 .data stm32f0xx_hal.o
0x20000024 0x0800268c 0x00000004 Data RW 3582 .data system_stm32f0xx.o
0x20000028 0x08002690 0x00000004 Data RW 3620 .data mc_p.l(rand.o)
0x2000002c 0x08002694 0x00000004 Data RW 3931 .data mc_p.l(stdout.o)
0x20000030 0x08002698 0x00000004 Data RW 3934 .data mc_p.l(mvars.o)
0x20000034 0x0800269c 0x00000004 Data RW 3935 .data mc_p.l(mvars.o)
0x20000038 - 0x0000019c Zero RW 372 .bss main.o
0x200001d4 0x080026a0 0x00000004 PAD
0x20000000 0x0800270c 0x00000010 Data RW 26 .data adb.o
0x20000010 0x0800271c 0x00000004 Data RW 228 .data delay_us.o
0x20000014 0x08002720 0x0000000c Data RW 379 .data main.o
0x20000020 0x0800272c 0x00000004 Data RW 2416 .data stm32f0xx_hal.o
0x20000024 0x08002730 0x00000004 Data RW 3587 .data system_stm32f0xx.o
0x20000028 0x08002734 0x00000004 Data RW 3625 .data mc_p.l(rand.o)
0x2000002c 0x08002738 0x00000004 Data RW 3936 .data mc_p.l(stdout.o)
0x20000030 0x0800273c 0x00000004 Data RW 3939 .data mc_p.l(mvars.o)
0x20000034 0x08002740 0x00000004 Data RW 3940 .data mc_p.l(mvars.o)
0x20000038 - 0x0000019c Zero RW 373 .bss main.o
0x200001d4 0x08002744 0x00000004 PAD
0x200001d8 - 0x00000200 Zero RW 2 HEAP startup_stm32f042x6.o
0x200003d8 - 0x00000400 Zero RW 1 STACK startup_stm32f042x6.o
@@ -2274,8 +2288,8 @@ Image component sizes
964 76 0 16 0 458042 adb.o
52 10 0 4 0 1931 delay_us.o
332 0 0 0 0 6233 helpers.o
1550 212 61 12 412 16174 main.o
370 0 0 0 0 7263 helpers.o
1672 204 61 12 412 17228 main.o
88 38 192 0 1536 640 startup_stm32f042x6.o
122 18 0 4 0 3591 stm32f0xx_hal.o
178 28 0 0 0 10483 stm32f0xx_hal_cortex.o
@@ -2291,9 +2305,9 @@ Image component sizes
92 14 24 4 0 1123 system_stm32f0xx.o
----------------------------------------------------------------------
8640 632 312 40 1952 537047 Object Totals
8804 624 312 40 1952 539131 Object Totals
0 0 32 0 0 0 (incl. Generated)
24 0 3 0 4 0 (incl. Padding)
28 0 3 0 4 0 (incl. Padding)
----------------------------------------------------------------------
@@ -2339,15 +2353,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
9520 688 312 56 1952 533359 Grand Totals
9520 688 312 56 1952 533359 ELF Image Totals
9520 688 312 56 0 0 ROM Totals
9684 680 312 56 1952 535267 Grand Totals
9684 680 312 56 1952 535267 ELF Image Totals
9684 680 312 56 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 9832 ( 9.60kB)
Total RO Size (Code + RO Data) 9996 ( 9.76kB)
Total RW Size (RW Data + ZI Data) 2008 ( 1.96kB)
Total ROM Size (Code + RO Data + RW Data) 9888 ( 9.66kB)
Total ROM Size (Code + RO Data + RW Data) 10052 ( 9.82kB)
==============================================================================

View File

@@ -114,7 +114,7 @@ I (../Inc/shared.h)(0x617487BD)
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F042x6 -DUSE_HAL_DRIVER -DSTM32F042x6
-o my_adb\helpers.o --omf_browse my_adb\helpers.crf --depend my_adb\helpers.d)
-o my_adb\helpers.o --omf_browse my_adb\helpers.crf --depend my_adb\helpers.d)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A)
I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x5D9B4298)
I (C:\Keil_v5\ARM\ARMCC\include\stdlib.h)(0x5D9B429A)

View File

@@ -195,7 +195,6 @@ void process_spi_data(void)
}
else if(backup_spi1_recv_buf[SPI_BUF_INDEX_MSG_TYPE] == SPI_MOSI_MSG_TYPE_KEYBOARD_EVENT)
{
printf("ooo\n");
kb_buf_add(&my_kb_buf, backup_spi1_recv_buf[4], backup_spi1_recv_buf[6]);
}
else if(backup_spi1_recv_buf[SPI_BUF_INDEX_MSG_TYPE] == SPI_MOSI_MSG_TYPE_MOUSE_EVENT)
@@ -246,12 +245,22 @@ void process_spi_data(void)
handle_protocol_switch(backup_spi1_recv_buf[i]);
}
}
for (int i = 0; i < SPI_BUF_SIZE; ++i)
printf("%d ", backup_spi1_recv_buf[i]);
printf("\n");
// for (int i = 0; i < SPI_BUF_SIZE; ++i)
// printf("%d ", backup_spi1_recv_buf[i]);
// printf("\n");
memset(backup_spi1_recv_buf, 0, SPI_BUF_SIZE);
}
uint8_t int16_to_uint6(int16_t value)
{
int8_t result = value >> 2;
if(result >= 63)
result = 63;
if(result <= -63)
result = -63;
return (uint8_t)result;
}
uint8_t mouse_srq = 0;
uint8_t kb_srq = 0;
@@ -265,9 +274,11 @@ void adb_mouse_update(void)
response |= 0x8000;
if(this_mouse_event->button_right == 0)
response |= 0x80;
response |= ((uint8_t)(this_mouse_event->movement_x)) & 0x7f;
response |= (((uint8_t)(this_mouse_event->movement_y)) & 0x7f) << 8;
response |= int16_to_uint6(this_mouse_event->movement_x) & 0x7f;
response |= (int16_to_uint6(this_mouse_event->movement_y) & 0x7f) << 8;
DEBUG0_HI();
adb_send_response_16b(response);
DEBUG0_LOW();
mouse_buf_reset(&my_mouse_buf);
mouse_srq = 0;
}
@@ -353,18 +364,18 @@ int main(void)
continue;
adb_status = parse_adb_cmd(adb_data);
// if(adb_status == ADB_MOUSE_POLL)
// adb_mouse_update();
if(adb_status == ADB_MOUSE_POLL)
{
adb_mouse_update();
if(!kb_buf_is_empty(&my_kb_buf))
kb_srq = 1;
}
if(adb_status == ADB_KB_POLL)
{
adb_keyboard_update();
// printf("%x\n", adb_status);
if(!kb_buf_is_empty(&my_kb_buf))
kb_srq = 1;
// if(!mouse_buf_is_empty(&my_mouse_buf))
// mouse_srq = 1;
if(!mouse_buf_is_empty(&my_mouse_buf))
mouse_srq = 1;
}
HAL_GPIO_WritePin(DEBUG1_GPIO_Port, DEBUG1_Pin, mouse_srq || kb_srq);
}
/* USER CODE END 3 */

View File

@@ -1,3 +1,7 @@
for (int i = 0; i < SPI_BUF_SIZE; ++i)
printf("%d ", backup_spi1_recv_buf[i]);
printf("\n");
while (1)
{
DEBUG0_HI();