BUSY signal now lasts the entire duration of ADB message

This commit is contained in:
dekunukem
2023-03-07 00:17:49 +00:00
parent 64bd2c525b
commit 25cbbbfd6a
17 changed files with 707 additions and 650 deletions

View File

@@ -70,6 +70,10 @@ extern uint8_t adb_mouse_current_addr, adb_kb_current_addr, adb_rw_in_progress;
extern const uint8_t linux_ev_to_adb_lookup[EV_TO_ADB_LOOKUP_SIZE];
extern uint16_t adb_kb_reg2;
extern uint8_t kb_enabled, mouse_enabled;
extern volatile uint32_t next_busy_off;
#define PCARD_BUSY_HI() HAL_GPIO_WritePin(BUSY_GPIO_Port, BUSY_Pin, GPIO_PIN_SET)
#define PCARD_BUSY_LOW() HAL_GPIO_WritePin(BUSY_GPIO_Port, BUSY_Pin, GPIO_PIN_RESET)
#ifdef __cplusplus
}

View File

@@ -102,16 +102,16 @@
</MaxPosition>
<NormalPosition>
<Top>0</Top>
<Left>3096</Left>
<Right>3848</Right>
<Left>1176</Left>
<Right>1928</Right>
<Bottom>757</Bottom>
</NormalPosition>
</WindowPosition>
<MDIClientArea>
<RegID>0</RegID>
<MDITabState>
<Len>943</Len>
<Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000800000000000000010000003B433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF3A433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C5372635C6164622E6300000000056164622E6300000000FFDC7800FFFFFFFF3A433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C496E635C6164622E6800000000056164622E6800000000BECEA100FFFFFFFF3F433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C5372635C64656C61795F75732E63000000000A64656C61795F75732E6300000000F0A0A100FFFFFFFF3E433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C5372635C68656C706572732E63000000000968656C706572732E6300000000BCA8E100FFFFFFFF3E433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C496E635C68656C706572732E68000000000968656C706572732E68000000009CC1B600FFFFFFFF4E433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C4D444B2D41524D5C737461727475705F73746D33326630343278362E730000000015737461727475705F73746D33326630343278362E7300000000F7B88600FFFFFFFF66433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C447269766572735C53544D3332463078785F48414C5F4472697665725C5372635C73746D3332663078785F68616C5F6770696F2E63000000001473746D3332663078785F68616C5F6770696F2E6300000000D9ADC200FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000007408000066000000000F0000FC020000</Data>
<Len>1172</Len>
<Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000A00000009000000010000003B433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF3A433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C5372635C6164622E6300000000056164622E6300000000FFDC7800FFFFFFFF3A433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C496E635C6164622E6800000000056164622E6800000000BECEA100FFFFFFFF3F433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C5372635C64656C61795F75732E63000000000A64656C61795F75732E6300000000F0A0A100FFFFFFFF3E433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C5372635C68656C706572732E63000000000968656C706572732E6300000000BCA8E100FFFFFFFF3E433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C496E635C68656C706572732E68000000000968656C706572732E68000000009CC1B600FFFFFFFF4E433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C4D444B2D41524D5C737461727475705F73746D33326630343278362E730000000015737461727475705F73746D33326630343278362E7300000000F7B88600FFFFFFFF66433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C447269766572735C53544D3332463078785F48414C5F4472697665725C5372635C73746D3332663078785F68616C5F6770696F2E63000000001473746D3332663078785F68616C5F6770696F2E6300000000D9ADC200FFFFFFFF61433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C447269766572735C53544D3332463078785F48414C5F4472697665725C5372635C73746D3332663078785F68616C2E63000000000F73746D3332663078785F68616C2E6300000000A5C2D700FFFFFFFF43433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C5553423456435C6669726D776172655C6164625C5372635C73746D3332663078785F69742E63000000000E73746D3332663078785F69742E6300000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F40000006600000080070000FC020000</Data>
</MDITabState>
</MDIClientArea>
<ViewEx>
@@ -3603,12 +3603,12 @@
<ActiveMDIGroup>0</ActiveMDIGroup>
<MDIGroup>
<Size>100</Size>
<ActiveTab>0</ActiveTab>
<ActiveTab>9</ActiveTab>
<Doc>
<Name>../Src/main.c</Name>
<ColumnNumber>11</ColumnNumber>
<TopLine>438</TopLine>
<CurrentLine>457</CurrentLine>
<ColumnNumber>0</ColumnNumber>
<TopLine>393</TopLine>
<CurrentLine>405</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>
@@ -3676,6 +3676,24 @@
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>
</Doc>
<Doc>
<Name>../Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal.c</Name>
<ColumnNumber>21</ColumnNumber>
<TopLine>262</TopLine>
<CurrentLine>284</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>
</Doc>
<Doc>
<Name>../Src/stm32f0xx_it.c</Name>
<ColumnNumber>0</ColumnNumber>
<TopLine>102</TopLine>
<CurrentLine>134</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>
</Doc>
</MDIGroup>
</MDIGroups>

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -30,7 +30,7 @@ Build target 'my_adb'
compiling adb.c...
compiling main.c...
linking...
Program Size: Code=10660 RO-data=496 RW-data=64 ZI-data=1952
Program Size: Code=10720 RO-data=496 RW-data=68 ZI-data=1956
FromELF: creating hex file...
"my_adb\my_adb.axf" - 0 Error(s), 0 Warning(s).

View File

@@ -1,5 +1,5 @@
:020000040800F2
:10000000E0070020D5000008A1140008A112000894
:10000000E8070020D5000008A1140008A11200088C
:1000100000000000000000000000000000000000E0
:10002000000000000000000000000000DF170008D2
:100030000000000000000000E9140008E1170008BB
@@ -11,25 +11,25 @@
:100090000000000005010008050100080501000836
:1000A00000000000ED14000805010008050100082B
:1000B0000501000800000000050100080501000816
:1000C0000348854600F080F800480047FD240008FA
:1000D000E00700200C4880F308880C480168090EEE
:1000C0000348854600F080F80048004739250008BD
:1000D000E80700200C4880F308880C480168090EE6
:1000E0000B4A914205D10B480B4901600B480C4962
:1000F00001600C4880470C480047FEE7FEE7FEE73A
:10010000FEE7FEE7FEE70000E00700200400000035
:10010000FEE7FEE7FEE70000E8070020040000002D
:100110001F00000018100240010000000000014014
:100120000000000049180008C100000830B50B4667
:100120000000000071180008C100000830B50B463F
:10013000014600202022012409E00D46D5409D42C1
:1001400005D31D469540491B254695404019154647
:10015000521E002DF1DC30BD70B50024254600286C
:1001600001DA01244042002901DA01254942FFF762
:10017000DDFFAC4200D04042002C00D0494270BDAF
:100180000549064A08685043054A80180860400837
:100190007047014908607047300000206D4EC6412D
:100190007047014908607047340000206D4EC64129
:1001A00039300000D2B201E00270401C491EFBD27F
:1001B00070470022F6E710B513460A460446194672
:1001C000FFF7F0FF204610BD064C0125064E05E066
:1001D000E36807CC2B430C3C98471034B442F7D368
:1001E000FFF772FF742B0008942B000810B5012054
:1001E000FFF772FFB02B0008D02B000810B50120DC
:1001F00000F04EF810BD70B50024014620314A7859
:10020000022A03D004218163012416E002681368E6
:100210000E25AB431360026813685B085B00136034
@@ -37,9 +37,9 @@
:100230000A70416B002900D08847204670BD31B557
:1002400000F0E0F8009C0546601C00D0641C00F043
:10025000D9F8401BA042FAD338BD000010B50128E0
:1002600010D1062002F0BCF800280BD00920012193
:1002600010D1062002F0DAF800280BD00920012175
:10027000C00600F0B7F8002805D00022742103481A
:1002800002F0B8F810BD0122F8E70000A401002038
:1002800002F0D6F810BD0122F8E70000A801002016
:1002900010B504494A69024202D04861FFF7DEFF07
:1002A00010BD000000040140F8B5002389E00124DE
:1002B0009C402A46A44622407ED04C68022C01D0A5
@@ -63,15 +63,15 @@
:1003D00000100240000001400004004800080048EE
:1003E000000401400069084000D0012070474269C4
:1003F0004A4042617047002A01D0816170478162A2
:100400007047000001480068704700002800002085
:100400007047000001480068704700002C00002081
:1004100070B5040005D025466035687A002802D002
:1004200006E0012070BD00202872204600F0B0FEDA
:10043000242068722068016849084900016020464C
:1004400001F042FB0128EDD0606A002802D020466E
:1004500001F0A1FA206841680922D202914341606B
:1004400001F056FB0128EDD0606A002802D020465A
:1004500001F0B5FA206841680922D2029143416057
:100460002068816822229143816020688168082287
:100470001143816020680168012211430160204618
:1004800001F0EEFA70BD000070B504000FD02168D5
:1004800001F002FB70BD000070B504000FD02168C0
:100490001348086021681348086003CC4160206855
:1004A000083C21688860FFF7ADFF054608E00120A1
:1004B00070BDFFF7A7FF401B272801D9032070BD9F
@@ -79,7 +79,7 @@
:1004D00001D0016101E004490160002070BD00000D
:1004E000CCCC000055550000AAAA000000680249C3
:1004F0000160002070470000AAAA000002480168BD
:10050000491C0160704700002800002010B5064813
:10050000491C0160704700002C00002010B506480F
:100510000168102211430160002000F007F800F08C
:1005200017F8002010BD00000020024010B504465E
:1005300000F0F0F87D21C900FFF7F8FD00F038FD6C
@@ -111,10 +111,10 @@
:1006D000400706D56068072109028843E968084396
:1006E000606000F02DF86168084A0906090F515C46
:1006F000C840074908600020FFF718FF0020F8BD38
:100700000020024000100240881300005B2B00080C
:100710002C00002001480068704700002C000020D9
:10070000002002400010024088130000972B0008D0
:1007100030000020014800687047000030000020D1
:100720000448054900684968044A4905490F515C75
:10073000C84070472C000020001002406B2B0008BE
:10073000C84070473000002000100240A72B00087E
:1007400030B516A30FCB89B06C460FC417A30FCBDF
:100750000FC41A494A680C20144604401848042C57
:1007600005D0184B082C04D00C2C00D1184609B029
@@ -232,22 +232,22 @@
:100E600011024648FFF7C7FA002201214448FFF764
:100E7000C2FA444C01262078434DDE2800D02E7063
:100E8000A078092806D0082824D0012829D00228D3
:100E900051D059E06179207901F000FA394A2C32B9
:100EA0001060E179A07901F0F9F95060207A3549B4
:100E900051D059E06179207901F01EFA394A2C329B
:100EA0001060E179A07901F017FA5060207A354995
:100EB00040421072607B5072A07BD072E07B9072D7
:100EC000207C1073607C50732F482C31083001F067
:100ED0006DFC39E02B48A2792179203001F08AFAA3
:100ED0008BFC39E02B48A2792179203001F0A8FA67
:100EE00032E0284820212038FFF763F92549CD203A
:100EF000203908706078487080278F700220C87091
:100F000000224A718871082200200B46CE716C3392
:100F10001E5C002E0BD0022E02D0012E02D004E067
:100F2000885402E006463E438E54521CD2B2401C06
:100F30001028EDDB08E00326A05D002804D001F0B6
:100F400017FA761C202EF7DBA078032805D109209C
:100F400035FA761C202EF7DBA078032805D109207E
:100F500000220221C006FFF74EFA0A4A2023D11AC6
:100F60000A48FFF711FF012211460548FFF743FA2F
:100F700001F014FC064940186860F8BD0004004800
:100F800000140048840100201800002050000020B8
:100F700001F032FC064940186860F8BD00040048E2
:100F800000140048880100201C00002054000020AC
:100F900010270000042204490428086902D0904365
:100FA000086170471043FBE700E000E07047000075
:100FB000094910B5401E884201D9012010BD074CD7
@@ -260,7 +260,7 @@
:101020000C43846053770020107770BD022070BDA0
:1010300070B5040005D025462035687F002802D011
:1010400006E0012070BD00202877204600F00AF855
:1010500002206877211D206800F024FC01206877B9
:1010500002206877211D206800F038FC01206877A5
:10106000002070BD08B5006801218907884207D1BA
:101070000448C16901221143C161C0691040009058
:1010800008BD0000001002400222014620314A77CC
@@ -271,13 +271,13 @@
:1010D00057D006DC00284ED0102840D14EE0022028
:1010E000F8BD302850D0402839D13CE060282DD0C0
:1010F000702817D001221203801A0ED090422ED1F0
:10110000CB684A688968206800F00EFC2068816816
:10110000CB684A688968206800F022FC2068816802
:10111000012292031143816021E020688168C9089F
:10112000C900F8E7CB684A688968206800F0FCFBD2
:10112000C900F8E7CB684A688968206800F010FCBD
:1011300021688868B0433043886010E0CA68496815
:10114000206800F004FC5021206806E0CA68496865
:10115000206800F00DFC6021206800F0F0FB6F7744
:1011600000202877F8BDCA684968206800F0EFFBC6
:10114000206800F018FC5021206806E0CA68496851
:10115000206800F021FC6021206800F004FC6F771B
:1011600000202877F8BDCA684968206800F003FCB1
:1011700040212068F1E700212068EEE71021206877
:10118000EBE720212068E8E730212068E5E7000050
:1011900000B500680E4987B0884216D10D48C26973
@@ -291,10 +291,10 @@
:10121000012843D0012030720020E0662120707246
:10122000FFF7F0F801902746403705983882059877
:10123000788218E0788A401E788206980090002212
:1012400080212046019B00F0D7FC002818D1012006
:1012400080212046019B00F0EBFC002818D10120F2
:10125000A1680003814202D12069002812D02168D0
:10126000287808856D1C788A0028E3D106980090BC
:10127000002240212046019B00F0BEFC002808D03F
:10127000002240212046019B00F0D2FC002808D02B
:101280000320C2E728882168C005C00D0885AD1C71
:10129000E9E72020707200203072B6E70220B4E740
:1012A000FEE70000F0B5474887B042690121890494
@@ -320,21 +320,21 @@
:1013E00000214160816001614161816107220162E8
:1013F00012024162C260816207220163C2624163DC
:10140000FFF73AFC002800D0FEE710BD0030014095
:101410005000002010B50121124886B089070160F4
:101410005400002010B50121124886B089070160F0
:1014200000242F21846041600461611E8461C160D9
:10143000FFF7FEFD002800D0FEE70120000300902A
:1014400069460848FFF72CFE002800D0FEE7049408
:1014500004A904480594FFF7C7FD002800D0FEE763
:1014600006B010BDB400002010B50C480A49016058
:1014600006B010BDB800002010B50C480A49016054
:10147000E1214902416000218160C1600161816117
:10148000C1610822016242614162FEF7C1FF00288A
:1014900000D0FEE710BD000000440040F400002032
:1014900000D0FEE710BD000000440040F80000202E
:1014A000704700008307FF22DB0E9A408907090E70
:1014B000994000280BDA0007000F08388308084815
:1014C0009B001818C36993430B43C361704783089B
:1014D00004489B001B181868904308431860704725
:1014E00000ED00E000E400E07047000010B50248A5
:1014F000FFF758FB10BD00005000002010B5016838
:1014F000FFF758FB10BD00005400002010B5016834
:10150000C968026C1180016C891C0164014640317C
:10151000CA88521ECA80C988002909D101684A6850
:1015200040239A434A60C18F002901D100F06EF830
@@ -381,325 +381,329 @@
:1017B00021680A6802430A600120403460770020F3
:1017C00020770320F8BD206881683046884304D024
:1017D0000020B842C3D10020F8BD0120F9E77047CE
:1017E00010B5FEF78BFEFFF7FBFB10BD10B592B0F6
:1017F0002820009001200890002407900994684652
:10180000FEF7E2FF002800D0FEE707200D9003203E
:101810000E900F94012110940DA8FEF7D1FE002820
:1018200000D0FEE7FEF776FF7D21C900FEF77EFCC3
:10183000FFF7BEFB0420FFF7ADFB00221146501E50
:10184000FEF7BAFE12B010BD134801680122114321
:1018500001604168114A114041600168104A11401D
:1018600001600168012292049143016041683F22B6
:10187000120491434160C16A09090901C162016B07
:10188000FF22D43291430163416B4908490041630F
:101890000021816070470000001002400CB8FF0872
:1018A000FFFFF6FEF0B502681A4B0124A4071A4D9B
:1018B000984203D0A04201D0A84203D17026B2437F
:1018C0004E683243154E164F98420AD0A04208D0B7
:1018D000A84206D0134CA04203D0B04201D0B84277
:1018E00004D103242402A243CC6822438024A243CF
:1018F0004C69224302608A68C2620A688262984226
:1019000003D0B04201D0B84201D10969016301217D
:101910004161F0BD002C0140000400400044014042
:10192000004801400020004030B58468FF252D02AA
:101930001B021343AC430B432343836030BD8268D7
:1019400070239A430A4307210A438260704730B5E7
:10195000036A046A6408640004628469F025AC4385
:10196000120122430A24A3430B438261036230BD68
:1019700030B5036A1024A34303628469036A0F2508
:101980002D031203AC432243A024A34309011943AE
:101990008261016230BD10B5818CC90707D0016832
:1019A0004A6801235B049A43836A1A434A60818C24
:1019B000890707D501684A6801231B049A43C36A53
:1019C0001A434A60818C490707D501684A68012398
:1019D0009B049A43036B1A434A60818C090707D51D
:1019E00001684A680123DB039A43436B1A434A6048
:1019F000818CC90607D50268916801231B039943AE
:101A0000836B19439160818C890607D501688A68C8
:101A100001235B039A43C36B1A438A60818C490696
:101A200012D503685A6801210905046C8A432243D0
:101A30005A60026C8A4207D10268516803235B0531
:101A40009943436C19435160818C090607D501689D
:101A50004A680123DB04806C9A4302434A6010BD4C
:101A6000F8B500260446C666FEF7CCFC05461449C8
:101A7000206888421DD10068124F000709D5012156
:101A80002B46002249052046009700F0B5F80028B3
:101A90000DD12068006840070BD501212B4600229C
:101AA00089052046009700F0A7F8002801D0032000
:101AB000F8BD202060346072A07226720020F8BD4C
:101AC00000380140FFFFFF01F8B504462369A26812
:101AD000E5691A43636910202B43002125681A43E6
:101AE0002B680E463E4F3B4013432B6023685A68D9
:101AF00003252D03AA43E5682A435A60236AA26995
:101B000025681A43AB680B273F02BB431343AB6006
:101B1000344A2568954210D1334A126B9207920FCE
:101B20000ED0012A05D0022A05D0032A09D10220AD
:101B300007E0042005E0082003E02C4A954200D18C
:101B400000200122E369D203934224D100280CD063
:101B500002280DD0042813D0082817D001260A091E
:101B600012010807400F10432FE0FEF7D9FD09E0EE
:101B700061681F4A48088018FEF7D8FA81B2EEE77C
:101B8000FEF7DEFD616840004A08F4E76168012263
:101B900048081204EFE7002808D0022809D00428DA
:101BA0000BD0082814D001263046F8BDFEF7B8FD4A
:101BB00005E061680F4A48080CE0FEF7C1FD616866
:101BC0004A088018FEF7B2FA80B22168C860EBE7D5
:101BD000616848088018FEF7A9FA80B2E860E3E778
:101BE000F369FFEF0038014000100240004400405C
:101BF0000024F40000127A00FFB581B017460E46AB
:101C000004460A9D1DE0681C1BD0002D05D0FEF780
:101C1000F9FB0499401AA84213D920680168FF22F1
:101C2000A1329143016020688168490849008160C0
:101C3000202060346072A07200202072032005B062
:101C4000F0BD2068C1693046884304D00020B84206
:101C5000D9D00020F3E70120F9E700000FB410B558
:101C600003A9044B044A029800F018F810BC08BC01
:101C700004B01847E12200083400002002E008C840
:101C8000121F08C1002AFAD170477047002001E0F6
:101C900001C1121F002AFBD170470000FFB58DB0B3
:101CA0000F460546002606E025280AD0109A0F990F
:101CB00090476D1C761C28780028F5D1304611B06D
:101CC000F0BD00240121674A009400E004436D1C2C
:101CD0002B780846203B98401042F7D128782E28D0
:101CE00015D10420044368786D1C2A280AD101CF3D
:101CF0006D1C00900BE000990A22514330394018C6
:101D00006D1C00902878014630390929F3D92878CC
:101D1000692843D006DC0028D0D063280BD0642883
:101D200004D13BE073280FD075284CD0109A0F993E
:101D30009047761C94E03878694608720020487213
:101D400002A80190012003E0386801900020C04300
:101D50003F1D61070CD5002400E0641C00998C42F3
:101D60000FDA8442F9DB0199095D0029F5D108E019
:101D7000002400E0641C8442FCDB0199095D002919
:101D8000F8D1361907E0019801990078491C0191B2
:101D9000109A0F999047641EF5D261E00A200190D5
:101DA00001CF002802DA40422D2102E0210504D5AE
:101DB0002B216A461172012103E0E10701D02021A5
:101DC000F7E70C9104E00A20019001CF00210C916B
:101DD0000BA90B9108E00199FEF7A8F90A460B99A7
:101DE0003032491E0B910A700028F4D10B9803A9D8
:101DF000081A20300190600701D5009801E0012009
:101E000000900199884203DD01460198081A00E01C
:101E100000200024009006E002A8109A005D0F99AF
:101E20009047641C761C0C988442F5DB04E0109A01
:101E300030200F999047761C0099481E0090002989
:101E4000F5DC08E00B980B990078491C0B91109A6F
:101E50000F999047761C0199481E01900029F1DCEA
:101E60006D1C28E70928010010B5044CE2602381AD
:101E70002061618100F074F910BD000000000020B5
:101E80001CB5454C6A4601A9444800F0EAFA00280E
:101E900044D168460079BA281BD24149095CFF2920
:101EA00017D039290BD168460078012811D13D4A55
:101EB0005078401C5070C007C00F6A4610706846CA
:101EC0000078002800D080244806400C204300F011
:101ED00053F9324800F0D5FA6846017932486F2943
:101EE00006D03A290ED01D2919D0612917D01EE03D
:101EF000694609780029018801D02C4A08E00122AE
:101F0000920309E0694609780029018802D0284A2D
:101F1000114002E001225203114301801CBD6A46B8
:101F20001278002A028807D0224B1A4002802A2900
:101F300006D0362904D00BE00123DB021A43F5E773
:101F40006A461278002A028807D01B4B1A4002808A
:101F5000382906D0642904D00BE001239B021A43E0
:101F6000F5E76A461278002A02880DD0134B1A4012
:101F700002807D2901D07E29D0D1694609780029C7
:101F8000018805D00E4AC3E701235B021A43EFE73D
:101F9000FF220132C0E7000080800000A401002081
:101FA000642A00081800002006000020FFBF00007F
:101FB000FFDF0000FFF70000FFFB0000FFFD000057
:101FC000FFFE0000F8B50646002030801B4841891E
:101FD0000069FEF707FA01282DD1194C204600F0C0
:101FE00021FDFF2827D0204600F01CFDFF2822D02D
:101FF000204600F017FDFF281DD0002501220221F8
:102000001048FEF7F8F900240F2700F049F80528DA
:1020100010D0391B88402843641C85B2102CF4DB97
:10202000002202210748FEF7E6F9054800F0FAFC15
:1020300035800020F8BD0520F8BD0000000000201C
:10204000A86100000014004810B5134800F0E2FB3E
:1020500000281FD01149104800F04EF90F4B002204
:10206000587A002801D10122D203D87A002801D160
:1020700080200243188800B200F0A2F94406988834
:10208000640E144300B200F09BF94006400C20435C
:1020900000F072F810BD000020000020C0010020F8
:1020A00070B50D4841890069FEF79CF900280FD1F1
:1020B0000A4D284600F0B6FC0446284600F0B2FC63
:1020C000FF2C05D0FF2803D0A04203DD012070BD06
:1020D000052070BD002070BD00000020A861000038
:1020E000F8B506460020307000F0E2F9012806D16C
:1020F000114800F097FC3238292801D30520F8BD9B
:102100000025012202210D48FEF775F9002407275A
:10211000FFF7C6FF0528F2D0391B88402843641C0E
:10212000C5B2082CF4DB002202210448FEF763F953
:1021300035700020F8BD0000A861000000140048C0
:1021400010B5064C01222189E068FEF754F90122FE
:1021500061892069FEF74FF910BD000000000020E2
:1021600010B504480221417003210170FFF7E8FF18
:1021700010BD00000000002070B5204D0646012271
:1021800002212846FEF737F91D4C0120A070C82017
:1021900000F093F8002261892069FEF72CF92220D3
:1021A00000F08BF8012261892069FEF724F94020B4
:1021B00000F083F8304600F025F80026062814D0F9
:1021C000002261892069FEF716F9402000F075F8B9
:1021D000012261892069FEF70EF9A6700022022112
:1021E0002846FEF708F9002070BDA67000220221E3
:1021F0002846FEF700F9062070BD000000140048D4
:102200000000002010B50446000A00F009F8062876
:1022100005D0E0B200F004F8062800D0002010BD80
:10222000F8B500251C4C06460727791B3046C840E8
:10223000C00714D0002261892069FEF7DCF8222053
:1022400000F03BF8012261892069FEF7D4F861892A
:102250002069FEF7C7F8012814D1402015E00022BC
:1022600061892069FEF7C7F8402000F026F80122B6
:1022700061892069FEF7BFF861892069FEF7B2F82D
:10228000012801D00620F8BD222000F016F86D1CB0
:10229000082DCADB0020F8BD000000200902014320
:1022A00008B2704702687F2A01DD7F2103E07E21AA
:1022B000C9438A4200DA0160704700B5014600F068
:1022C0006DFA411800F06AFA8842FBD300BD0000A5
:1022D00010B502490860FEF7D7FE10BD14000020BB
:1022E00013B50A23012269460248FEF775FF0098DC
:1022F0001CBD0000F400002070B5054600200860F9
:10230000486008724872C872887208730C46487335
:10231000284600F07FFA002823D021680268891837
:1023200021606168426889186160217A027A89189F
:102330002172617A427A11436172E17AC27A114361
:10234000E172A17A827A1143A172217B027B11434F
:102350002173617B407B01436173284600F064FA7E
:10236000D6E72046FFF79EFF201DFFF79BFF70BDBD
:1023700070B54406C109640EC901102C1AD20E4D65
:10238000285D002816D0002910D0022812D1032C75
:1023900002D0062C08D104E007482C3800F07AF867
:1023A00002E0064800F049FA012002E0012801D1CC
:1023B0000220285570BD0000D00100202000002020
:1023C000C11C062909D93E214010C9433F2801DB21
:1023D0003F2002E0884200DC0846C0B2704700009F
:1023E000102803D20249085C012800D00020704761
:1023F000D001002010B50C46034600F027F8002855
:1024000001D0012010BD1978586844541978986893
:1024100042541878401C4007400F1870002010BD2F
:1024200010B50446082000F083F96060082000F031
:102430007FF9A060204600F02DF810BD41780078AB
:10244000814201D101207047002070474178007817
:10245000401C4007400F814201D1012070470020FD
:10246000704710B543780478A34201D1012010BD14
:102470004468E35C0B7081684078085C1070002051
:1024800010BD41780278914203D0491C4907490F99
:102490004170704710B5044600202070607008211C
:1024A0006068FDF786FE0821A068FDF782FE10BD7A
:1024B00070B5104C61892069FDF794FF0E4D01281D
:1024C00004D1284600F0AEFAFF280ED00120A070FB
:1024D000284600F0A7FA7D210901884206DCFF2882
:1024E00004D08910884203DA042070BD032070BD37
:1024F000012070BD00000020A86100001CB5FEF79F
:1025000005F8FFF773F9FEF7CDFEFEF765FFFEF75E
:10251000ABFFFEF77FFF75487349016003214160FF
:102520007349C1608160FDF7AFFF002800D0FEE76E
:1025300001200090022300226E496FA0FFF78EFB5E
:102540006A48FDF7D3FF69487430FFF7C1FE00F019
:1025500009FA6D48FFF764FF6C4800F03DF900266A
:10256000092235460123D20602216948FFF77CFC87
:10257000654820214038FDF71CFE634A5B48202354
:10258000203AD11A1030FEF7FFFB604F614C083F34
:102590005648FDF7ABFF3878002801D000F004FA68
:1025A00000F0FCF87968884205D9FF21002201314A
:1025B0005748FDF720FF09200821C006FDF712FF4C
:1025C0000028E5D00320FFF70BFF534A10700620C8
:1025D000FFF706FF2070117801431AD001A8FFF71A
:1025E0007FFD00214D4A0328117015D00028CFD15E
:1025F00068460079000900904348FFF71FFF002854
:102600000DD0424800F0F3F8002811D000263546DE
:1026100024E0FFF7A5FDBBE7FFF7A2FDE8E740498F
:1026200000980978884201D001260BE000260DE0D1
:102630003C4900980978884201D0012500E0002536
:10264000002E03D034480078002804D1002D05D096
:102650002078002802D000F093F902E0324800F020
:10266000E1F96846007900F0F3F8052819D002284E
:102670001DD0032822D004288AD1234820214038A5
:10268000FDF797FD2049CD204039087081208870E2
:1026900026480088420701D40122CA70C20716D01A
:1026A00017E020780028B6D0FFF7CEFC70E71A4874
:1026B00000780028AFD0FFF7E3FB69E71648007801
:1026C0000028A8D019480088FFF756FD60E70122CE
:1026D0000A71800701D401204871092001220221DA
:1026E000C006FDF788FE53E70030004040000020A0
:1026F000FF0F00001E2B000825730A207625642E8C
:1027000025642E25640A0000A4010020200000207A
:102710000004004804000020030000200200002004
:102720000100002000000020A86100000600002039
:10273000F0B50B30C108C900144F0026144A0FE051
:1027400003688B420BD38B4205D95C1A431845684A
:1027500030C3083B00E04368136002C004E0021D80
:1027600010680028ECD13046002803D138680028D2
:1027700001D00020F0BD064A06481060064A121A31
:10278000D208D20044C001203860D7E73C000020C6
:1027900038000020E4010020E00300200248006827
:1027A0000068406A704700001400002030B50B46F6
:1027B000024600F024F8002801D0012030BD117835
:1027C0005068090140183ACB3AC01078401C000705
:1027D000000F1070002030BD10B50446FF200130FE
:1027E000FFF7A6FF6060204600F027F810BD417893
:1027F0000078814201D10120704700207047417864
:102800000078401C0007000F814201D10120704771
:102810000020704741780278914201D10020704732
:10282000406809014018704741780278914203D00E
:10283000491C0907090F4170704710B5002101704C
:102840004170FF2140680131FDF7B3FC10BD00006D
:10285000F8B5010786070509890FB60F002D58D076
:102860003E4C0329207802D002292DD073E0032E9C
:1028700002D0002E4BD022E085420ED120790028D4
:102880000BD0374FFDF77CFC0F21FDF765FC0806E8
:10289000010C38460843FFF76FFC607885420ED183
:1028A000E07800280BD02E4F3F1DFDF769FC0F216B
:1028B000FDF752FC0806000C3843FFF75DFC002EC4
:1028C00029D0022E2CD046E0032E02D0022E2CD08E
:1028D00041E085420BD16846FFF774FB68460088EB
:1028E0000106490E7F2902D10005000F2070607893
:1028F000854230D16846FFF765FB684600880106CF
:10290000490E7F2927D10005000F607023E0854222
:1029100001D10520F8BD607885421CD10220F8BDA8
:102920006078854217D10320F8BD6078854212D1C6
:1029300001220925D402ED0621462846FDF75BFD5C
:102940000648801DFFF73EFB002221462846FDF782
:1029500052FD0420F8BD0020F8BD0000000000205A
:102960000160000005480021016141618161C16190
:1029700001211030C170817170470000C00100203A
:1029800010B5084C002261892069FDF734FDFF2055
:102990002D30FFF792FC012261892069FDF72BFDA4
:1029A00010BD00000000002012A0FFF757F9144DE1
:1029B0000024295D13A0FFF751F9641C202CF8DBDB
:1029C00011A0FFF74BF90024FF25134E01352946CE
:1029D0003046FDF70CFD6420FDF731FC641C642CCF
:1029E000F5DBBFF34F8F0E490C48C860BFF34F8F24
:1029F00000BFFDE7535049204552524F520A000094
:102A000084010020256420000A7265626F6F74697A
:102A10006E672E2E2E0A0000000400480400FA05FE
:102A200000ED00E0F8B50746FFF7B8FE0C4C00904B
:102A300061892069FDF7D6FC054609E0FFF7AEFE87
:102A40000099461A002F03D0BE4201D9FF20F8BDDD
:102A500061892069FDF7C6FCA842EFD03046F8BD79
:102A600000000020FF351213141517161A1C191D2B
:102A70001B1833300C0D0E0F111020221F23211EA6
:102A8000243600010203050426282529273238FFB1
:102A9000060708090B2D2E2B2F2C7B433A31397A50
:102AA00078637660616264656D47FF595B5C4E5682
:102AB0005758455354555241FFFF0A676FFFFFFFB8
:102AC000FFFFFFFF4C7D4BFF7CFF733E743B3C7769
:102AD0003D797275FFFFFFFF7F51FFFFFFFFFFFF93
:102AE000FF37FFFFFFFFFFFFFFFFFFFFFFFFFFFFBE
:102AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6
:102B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5
:102B1000FFFFFFFFFFFFFFFFFFFFFF696B715553D3
:102B2000423456432050726F746F636F6C20426F53
:102B30006172640A4170706C65204465736B746FD8
:102B400070204275732028414442290A64656B75E0
:102B50004E756B656D20323032320000000000008F
:102B6000000000010203040607080900000000013C
:102B700002030400942B0008000000204000000025
:102B80007C1C0008D42B000840000020A007000097
:102B90008C1C0008000000000000FFFF0000000087
:102BA0000000000000000000000000000000000025
:102BB0000000000000000000000000000000000015
:102BC00000127A0000000000000000000000000079
:042BD0000000000001
:1017E00010B5FEF78BFEFFF7FBFB084C20680028C6
:1017F0000BD000F0F1FF2168884206D900220221B7
:101800000348FEF7F8FD0020206010BD1400002002
:101810000014004810B592B02820009001200890D4
:101820000024079009946846FEF7CEFF002800D0F8
:10183000FEE707200D9003200E900F9401211094D5
:101840000DA8FEF7BDFE002800D0FEE7FEF762FF00
:101850007D21C900FEF76AFCFFF7AAFB0420FFF711
:1018600099FB00221146501EFEF7A6FE12B010BDD5
:10187000134801680122114301604168114A114077
:1018800041600168104A1140016001680122920420
:101890009143016041683F22120491434160C16A53
:1018A00009090901C162016BFF22D432914301632E
:1018B000416B490849004163002181607047000085
:1018C000001002400CB8FF08FFFFF6FEF0B50268FA
:1018D0001A4B0124A4071A4D984203D0A04201D00C
:1018E000A84203D17026B2434E683243154E164FBC
:1018F00098420AD0A04208D0A84206D0134CA04279
:1019000003D0B04201D0B84204D103242402A24340
:10191000CC6822438024A2434C69224302608A6837
:10192000C2620A688262984203D0B04201D0B842D3
:1019300001D10969016301214161F0BD002C014021
:1019400000040040004401400048014000200040E5
:1019500030B58468FF252D021B021343AC430B43B3
:101960002343836030BD826870239A430A43072172
:101970000A438260704730B5036A046A64086400F1
:1019800004628469F025AC43120122430A24A34374
:101990000B438261036230BD30B5036A1024A34358
:1019A00003628469036A0F252D031203AC432243AB
:1019B000A024A343090119438261016230BD10B51F
:1019C000818CC90707D001684A6801235B049A43E8
:1019D000836A1A434A60818C890707D501684A687F
:1019E00001231B049A43C36A1A434A60818C490746
:1019F00007D501684A6801239B049A43036B1A4385
:101A00004A60818C090707D501684A680123DB0316
:101A10009A43436B1A434A60818CC90607D5026812
:101A2000916801231B039943836B19439160818C57
:101A3000890607D501688A6801235B039A43C36B53
:101A40001A438A60818C490612D503685A680121BD
:101A50000905046C8A4322435A60026C8A4207D10A
:101A60000268516803235B059943436C1943516035
:101A7000818C090607D501684A680123DB04806C64
:101A80009A4302434A6010BDF8B500260446C66674
:101A9000FEF7B8FC05461449206888421DD100684D
:101AA000124F000709D501212B4600224905204687
:101AB000009700F0B5F800280DD1206800684007B5
:101AC0000BD501212B46002289052046009700F006
:101AD000A7F8002801D00320F8BD202060346072F0
:101AE000A07226720020F8BD00380140FFFFFF0100
:101AF000F8B504462369A268E5691A4363691020B2
:101B00002B43002125681A432B680E463E4F3B406D
:101B100013432B6023685A6803252D03AA43E56805
:101B20002A435A60236AA26925681A43AB680B27C7
:101B30003F02BB431343AB60344A2568954210D142
:101B4000334A126B9207920F0ED0012A05D0022A57
:101B500005D0032A09D1022007E0042005E008206F
:101B600003E02C4A954200D100200122E369D20310
:101B7000934224D100280CD002280DD0042813D081
:101B8000082817D001260A0912010807400F104340
:101B90002FE0FEF7C5FD09E061681F4A480880187C
:101BA000FEF7C4FA81B2EEE7FEF7CAFD61684000B5
:101BB0004A08F4E76168012248081204EFE70028A8
:101BC00008D0022809D004280BD0082814D00126F8
:101BD0003046F8BDFEF7A4FD05E061680F4A4808ED
:101BE0000CE0FEF7ADFD61684A088018FEF79EFA2A
:101BF00080B22168C860EBE7616848088018FEF78A
:101C000095FA80B2E860E3E7F369FFEF003801403E
:101C100000100240004400400024F40000127A004A
:101C2000FFB581B017460E4604460A9D1DE0681CAC
:101C30001BD0002D05D0FEF7E5FB0499401AA84201
:101C400013D920680168FF22A13291430160206806
:101C50008168490849008160202060346072A07268
:101C600000202072032005B0F0BD2068C169304615
:101C7000884304D00020B842D9D00020F3E70120E7
:101C8000F9E700000FB410B503A9044B044A029809
:101C900000F018F810BC08BC04B018471D23000859
:101CA0003800002002E008C8121F08C1002AFAD13B
:101CB00070477047002001E001C1121F002AFBD1CC
:101CC00070470000FFB58DB00F460546002606E0C0
:101CD00025280AD0109A0F9990476D1C761C2878F9
:101CE0000028F5D1304611B0F0BD00240121674A2B
:101CF000009400E004436D1C2B780846203B98407C
:101D00001042F7D128782E2815D104200443687892
:101D10006D1C2A280AD101CF6D1C00900BE00099A0
:101D20000A225143303940186D1C00902878014632
:101D300030390929F3D92878692843D006DC0028EE
:101D4000D0D063280BD0642804D13BE073280FD097
:101D500075284CD0109A0F999047761C94E03878EB
:101D6000694608720020487202A80190012003E031
:101D7000386801900020C0433F1D61070CD5002446
:101D800000E0641C00998C420FDA8442F9DB01996F
:101D9000095D0029F5D108E0002400E0641C8442BC
:101DA000FCDB0199095D0029F8D1361907E001989B
:101DB00001990078491C0191109A0F999047641E6F
:101DC000F5D261E00A20019001CF002802DA4042FA
:101DD0002D2102E0210504D52B216A461172012133
:101DE00003E0E10701D02021F7E70C9104E00A208D
:101DF000019001CF00210C910BA90B9108E00199F2
:101E0000FEF794F90A460B993032491E0B910A707D
:101E10000028F4D10B9803A9081A2030019060071C
:101E200001D5009801E0012000900199884203DD6E
:101E300001460198081A00E000200024009006E006
:101E400002A8109A005D0F999047641C761C0C98AC
:101E50008442F5DB04E0109A30200F999047761CFD
:101E60000099481E00900029F5DC08E00B980B99BA
:101E70000078491C0B91109A0F999047761C019994
:101E8000481E01900029F1DC6D1C28E7092801009B
:101E900010B5044CE26023812061618100F076F985
:101EA00010BD0000000000201CB5454C6A4601A989
:101EB000444800F0F4FA002844D168460079BA2872
:101EC0001BD24149095CFF2917D039290BD168463B
:101ED0000078012811D13D4A5078401C5070C0074D
:101EE000C00F6A46107068460078002800D0802431
:101EF0004806400C204300F05DF9324800F0DFFA5C
:101F00006846017932486F2906D03A290ED01D293A
:101F100019D0612917D01EE0694609780029018887
:101F200001D02C4A08E00122920309E069460978B1
:101F30000029018802D0284A114002E00122520300
:101F4000114301801CBD6A461278002A028807D01E
:101F5000224B1A4002802A2906D0362904D00BE0F1
:101F60000123DB021A43F5E76A461278002A028849
:101F700007D01B4B1A400280382906D0642904D0B0
:101F80000BE001239B021A43F5E76A461278002A08
:101F900002880DD0134B1A4002807D2901D07E2982
:101FA000D0D1694609780029018805D00E4AC3E7D7
:101FB00001235B021A43EFE7FF220132C0E7000072
:101FC00080800000A8010020A02A00081C0000203A
:101FD00006000020FFBF0000FFDF0000FFF7000049
:101FE000FFFB0000FFFD0000FFFE0000F8B500272A
:101FF0001C4C0780064661892069FEF7F3F9012829
:102000002ED1194D284600F02BFDFF2828D0284658
:1020100000F026FDFF2823D0284600F021FDFF28F0
:102020001ED00025012202211048FEF7E4F9676165
:1020300000240F2700F048F8052810D0391B8840ED
:102040002843641C85B2102CF4DB002202210748CF
:10205000FEF7D1F9044800F003FD35800020F8BDFB
:102060000520F8BD00000020A86100000014004811
:1020700010B5134800F0ECFB00281FD011491048A0
:1020800000F058F90F4B0022587A002801D10122A4
:10209000D203D87A002801D180200243188800B2E8
:1020A00000F0ACF944069888640E144300B200F0C6
:1020B000A5F94006400C204300F07CF810BD00005C
:1020C00024000020C401002070B50D48418900693A
:1020D000FEF788F900280FD10A4D284600F0C0FC11
:1020E0000446284600F0BCFCFF2C05D0FF2803D096
:1020F000A04203DD012070BD052070BD002070BD31
:1021000000000020A8610000F8B5064600203070ED
:1021100000F0ECF9012806D1114800F0A1FC32389A
:10212000292801D30520F8BD0025012202210D48F0
:10213000FEF761F900240727FFF7C6FF0528F2D054
:10214000391B88402843641CC5B2082CF4DB00F01E
:1021500043FB0549FF30F530486135700020F8BD7C
:10216000A8610000001400480000002010B5064CD3
:1021700001222189E068FEF73EF901226189206988
:10218000FEF739F910BD00000000002010B5074C23
:102190000220607003202070FFF7E8FF00206061DC
:1021A000024602210248FEF726F910BD0000002079
:1021B00000140048F8B5204F064601220221384697
:1021C000FEF719F91D4C002565610120A070C8209B
:1021D00000F091F8002261892069FEF70CF92220B5
:1021E00000F089F8012261892069FEF704F9402096
:1021F00000F081F8304600F023F8062814D00022C1
:1022000061892069FEF7F7F8402000F074F8012298
:1022100061892069FEF7EFF8A57000220221384697
:10222000FEF7E9F80020F8BDA5700022022138462B
:10223000FEF7E1F80620F8BD001400480000002079
:1022400010B50446000A00F009F8062805D0E0B2EF
:1022500000F004F8062800D0002010BDF8B50025D5
:102260001C4C06460727791B3046C840C00714D0CF
:10227000002261892069FEF7BEF8222000F03BF8B9
:10228000012261892069FEF7B6F861892069FEF7AD
:10229000A9F8012814D1402015E0002261892069A5
:1022A000FEF7A9F8402000F026F801226189206994
:1022B000FEF7A1F861892069FEF794F8012801D0A2
:1022C0000620F8BD222000F016F86D1C082DCADB90
:1022D0000020F8BD000000200902014308B2704749
:1022E00002687F2A01DD7F2103E07E21C9438A4203
:1022F00000DA0160704700B5014600F06DFA411840
:1023000000F06AFA8842FBD300BD000010B5024914
:102310000860FEF7B9FE10BD1800002013B50A23AF
:10232000012269460248FEF757FF00981CBD0000D5
:10233000F800002070B5054600200860486008726B
:102340004872C872887208730C464873284600F0B9
:102350007FFA002823D0216802688918216061680B
:10236000426889186160217A027A89182172617A3B
:10237000427A11436172E17AC27A1143E172A17A21
:10238000827A1143A172217B027B11432173617B0D
:10239000407B01436173284600F064FAD6E720468B
:1023A000FFF79EFF201DFFF79BFF70BD70B5440631
:1023B000C109640EC901102C1AD20E4D285D0028E7
:1023C00016D0002910D0022812D1032C02D0062CDE
:1023D00008D104E007482C3800F07AF802E00648FB
:1023E00000F049FA012002E0012801D1022028551D
:1023F00070BD0000D401002024000020C11C06296B
:1024000009D93E214010C9433F2801DB3F2002E0AB
:10241000884200DC0846C0B270470000102803D292
:102420000249085C012800D000207047D401002038
:1024300010B50C46034600F027F8002801D0012013
:1024400010BD19785868445419789868425418781F
:10245000401C4007400F1870002010BD10B5044606
:10246000082000F083F96060082000F07FF9A06088
:10247000204600F02DF810BD41780078814201D14E
:10248000012070470020704741780078401C4007C9
:10249000400F814201D1012070470020704710B5E4
:1024A00043780478A34201D1012010BD4468E35C65
:1024B0000B7081684078085C1070002010BD417876
:1024C0000278914203D0491C4907490F4170704777
:1024D00010B5044600202070607008216068FDF788
:1024E00068FE0821A068FDF764FE10BD70B5104CB1
:1024F00061892069FDF776FF0E4D012804D1284639
:1025000000F0AEFAFF280ED00120A070284600F09F
:10251000A7FA7D210901884206DCFF2804D0891032
:10252000884203DA042070BD032070BD012070BD15
:1025300000000020A86100001CB5FDF7E7FFFFF7D1
:1025400069F9FEF7AFFEFEF747FFFEF78DFFFEF7D6
:1025500061FF754873490160032141607349C1609F
:102560008160FDF791FF002800D0FEE70120009078
:10257000022300226E496FA0FFF784FB6A48FDF733
:10258000B5FF69487430FFF7C1FE00F009FA6D48E5
:10259000FFF764FF6C4800F03DF90026092235463C
:1025A0000123D20602216948FFF772FC6548202109
:1025B0004038FDF7FEFD634A5B482023203AD11ADC
:1025C0001030FEF7E1FB604F614C083F5648FDF7C5
:1025D0008DFF3878002801D000F004FA00F0FCF8F4
:1025E0007968884205D9FF21002201315748FDF75B
:1025F00002FF09200821C006FDF7F4FE0028E5D0FF
:102600000320FFF70BFF534A10700620FFF706FF69
:102610002070117801431AD001A8FFF775FD002141
:102620004D4A0328117015D00028CFD16846007993
:10263000000900904348FFF71FFF00280DD04248D3
:1026400000F0F3F8002811D00026354624E0FFF70B
:102650009DFDBBE7FFF79AFDE8E740490098097840
:10266000884201D001260BE000260DE03C4900988D
:102670000978884201D0012500E00025002E03D012
:1026800034480078002804D1002D05D02078002897
:1026900002D000F093F902E0324800F0E1F9684618
:1026A000007900F0F3F8052819D002281DD003287E
:1026B00022D004288AD1234820214038FDF779FD13
:1026C0002049CD2040390870812088702648008834
:1026D000420701D40122CA70C20716D017E0207841
:1026E0000028B6D0FFF7C4FC70E71A48007800282D
:1026F000AFD0FFF7D9FB69E7164800780028A8D0CB
:1027000019480088FFF756FD60E701220A7180072B
:1027100001D401204871092001220221C006FDF7E1
:102720006AFE53E70030004044000020FF0F000025
:102730005A2B000825730A207625642E25642E2541
:10274000640A0000A80100202400002000040048C2
:1027500004000020030000200200002001000020EF
:1027600000000020A861000006000020F0B50B303A
:10277000C108C900144F0026144A0FE003688B42B9
:102780000BD38B4205D95C1A4318456830C3083B0C
:1027900000E04368136002C004E0021D10680028D6
:1027A000ECD13046002803D13868002801D0002041
:1027B000F0BD064A06481060064A121AD208D20036
:1027C00044C001203860D7E7400000203C000020D2
:1027D000EC010020E8030020024800680068406A1D
:1027E000704700001800002030B50B46024600F08C
:1027F00024F8002801D0012030BD1178506809016B
:1028000040183ACB3AC01078401C0007000F1070F7
:10281000002030BD10B50446FF200130FFF7A6FFB1
:102820006060204600F027F810BD417800788142B2
:1028300001D1012070470020704741780078401C8A
:102840000007000F814201D101207047002070472E
:1028500041780278914201D1002070474068090117
:102860004018704741780278914203D0491C09070B
:10287000090F4170704710B5002101704170FF21B0
:1028800040680131FDF795FC10BD0000F8B5010767
:1028900086070509890FB60F002D58D03E4C032935
:1028A000207802D002292DD073E0032E02D0002E12
:1028B0004BD022E085420ED1207900280BD0374F33
:1028C000FDF75EFC0F21FDF747FC0806010C3846BA
:1028D0000843FFF76FFC607885420ED1E07800284E
:1028E0000BD02E4F3F1DFDF74BFC0F21FDF734FCA5
:1028F0000806000C3843FFF75DFC002E29D0022E9D
:102900002CD046E0032E02D0022E2CD041E085428E
:102910000BD16846FFF76AFB684600880106490E3E
:102920007F2902D10005000F20706078854230D1E8
:102930006846FFF75BFB684600880106490E7F2961
:1029400027D10005000F607023E0854201D10520EA
:10295000F8BD607885421CD10220F8BD60788542C0
:1029600017D10320F8BD6078854212D101220925D4
:10297000D402ED0621462846FDF73DFD0648801DA0
:10298000FFF734FB002221462846FDF734FD0420E2
:10299000F8BD0020F8BD000000000020016000002C
:1029A00005480021016141618161C161012110304F
:1029B000C170817170470000C401002010B5084C3F
:1029C000002261892069FDF716FDFF202D30FFF7F9
:1029D00092FC012261892069FDF70DFD10BD000008
:1029E0000000002012A0FFF74DF9144D0024295DCE
:1029F00013A0FFF747F9641C202CF8DB11A0FFF7A8
:102A000041F90024FF25134E013529463046FDF7D4
:102A1000EEFC6420FDF713FC641C642CF5DBBFF3B3
:102A20004F8F0E490C48C860BFF34F8F00BFFDE7C2
:102A3000535049204552524F520A0000880100204D
:102A4000256420000A7265626F6F74696E672E2EAE
:102A50002E0A0000000400480400FA0500ED00E022
:102A6000F8B50746FFF7B8FE0C4C00906189206965
:102A7000FDF7B8FC054609E0FFF7AEFE0099461ADF
:102A8000002F03D0BE4201D9FF20F8BD6189206923
:102A9000FDF7A8FCA842EFD03046F8BD00000020AA
:102AA000FF351213141517161A1C191D1B18333075
:102AB0000C0D0E0F111020221F23211E24360001A1
:102AC0000203050426282529273238FF06070809AE
:102AD0000B2D2E2B2F2C7B433A31397A786376607D
:102AE000616264656D47FF595B5C4E5657584553AC
:102AF00054555241FFFF0A676FFFFFFFFFFFFFFFC3
:102B00004C7D4BFF7CFF733E743B3C773D79727587
:102B1000FFFFFFFF7F51FFFFFFFFFFFFFF37FFFFBB
:102B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5
:102B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5
:102B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95
:102B5000FFFFFFFFFFFFFF696B7155534234564380
:102B60002050726F746F636F6C20426F6172640AE1
:102B70004170706C65204465736B746F7020427592
:102B8000732028414442290A64656B754E756B6554
:102B90006D203230323200000000000000000001E1
:102BA00002030406070809000000000102030400F4
:102BB000D02B00080000002044000000A41C0008E6
:102BC000142C000844000020A4070000B41C0008D6
:102BD000000000000000FFFF0000000000000000F7
:102BE00000000000000000000000000000000000E5
:102BF00000000000000000000000000000000000D5
:102C000000127A0000000000000000000000000038
:042C100000000000C0
: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: Tue Mar 07 00:01:58 2023
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Tue Mar 07 00:17:06 2023
<BR><P>
<H3>Maximum Stack Usage = 180 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
@@ -296,13 +296,15 @@ Global Symbols
</UL>
<P><STRONG><a name="[51]"></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="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<BR><BR>[Called By]<UL><LI><a href="#[5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SysTick_Handler
<LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;send_srq
<LI><a href="#[98]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_write_byte
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_send_response_16b
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_reset
<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_release_lines
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
<LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_listen_16b
@@ -590,11 +592,13 @@ Global Symbols
<P><STRONG><a name="[3]"></a>SVC_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f0xx_it.o(i.SVC_Handler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f042x6.o(RESET)
</UL>
<P><STRONG><a name="[5]"></a>SysTick_Handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, stm32f0xx_it.o(i.SysTick_Handler))
<P><STRONG><a name="[5]"></a>SysTick_Handler</STRONG> (Thumb, 44 bytes, Stack size 8 bytes, stm32f0xx_it.o(i.SysTick_Handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = SysTick_Handler &rArr; HAL_SYSTICK_IRQHandler
</UL>
<BR>[Calls]<UL><LI><a href="#[58]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SYSTICK_IRQHandler
<LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_IncTick
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;micros
<LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f042x6.o(RESET)
</UL>
@@ -689,7 +693,7 @@ Global Symbols
</UL>
<P><STRONG><a name="[76]"></a>adb_keyboard_update</STRONG> (Thumb, 278 bytes, Stack size 16 bytes, main.o(i.adb_keyboard_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 68<LI>Call Chain = adb_keyboard_update &rArr; adb_send_response_16b &rArr; adb_write_16 &rArr; adb_write_byte &rArr; delay_us
<BR><BR>[Stack]<UL><LI>Max Depth = 76<LI>Call Chain = adb_keyboard_update &rArr; adb_send_response_16b &rArr; adb_write_16 &rArr; adb_write_byte &rArr; delay_us
</UL>
<BR>[Calls]<UL><LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_pop
<LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_peek
@@ -698,7 +702,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[7a]"></a>adb_listen_16b</STRONG> (Thumb, 118 bytes, Stack size 24 bytes, adb.o(i.adb_listen_16b))
<P><STRONG><a name="[7a]"></a>adb_listen_16b</STRONG> (Thumb, 120 bytes, Stack size 24 bytes, adb.o(i.adb_listen_16b))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = adb_listen_16b &rArr; adb_read_bit &rArr; wait_until_change
</UL>
<BR>[Calls]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
@@ -710,7 +714,7 @@ Global Symbols
</UL>
<P><STRONG><a name="[7d]"></a>adb_mouse_update</STRONG> (Thumb, 78 bytes, Stack size 8 bytes, main.o(i.adb_mouse_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 60<LI>Call Chain = adb_mouse_update &rArr; adb_send_response_16b &rArr; adb_write_16 &rArr; adb_write_byte &rArr; delay_us
<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="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;int16_to_uint6
<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_consolidated_mouse_event
@@ -730,10 +734,11 @@ Global Symbols
<LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_listen_16b
</UL>
<P><STRONG><a name="[81]"></a>adb_recv_cmd</STRONG> (Thumb, 86 bytes, Stack size 24 bytes, adb.o(i.adb_recv_cmd))
<P><STRONG><a name="[81]"></a>adb_recv_cmd</STRONG> (Thumb, 88 bytes, Stack size 24 bytes, adb.o(i.adb_recv_cmd))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = adb_recv_cmd &rArr; look_for_atten &rArr; wait_until_change
</UL>
<BR>[Calls]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<BR>[Calls]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;micros
<LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_until_change
<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;look_for_atten
<LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_read_bit
@@ -749,17 +754,18 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_reset
</UL>
<P><STRONG><a name="[75]"></a>adb_reset</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, adb.o(i.adb_reset))
<P><STRONG><a name="[75]"></a>adb_reset</STRONG> (Thumb, 32 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="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_release_lines
<BR>[Calls]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[83]">&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="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_init
</UL>
<P><STRONG><a name="[78]"></a>adb_send_response_16b</STRONG> (Thumb, 130 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
<P><STRONG><a name="[78]"></a>adb_send_response_16b</STRONG> (Thumb, 132 bytes, Stack size 24 bytes, adb.o(i.adb_send_response_16b))
<BR><BR>[Stack]<UL><LI>Max Depth = 60<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="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
<LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
@@ -949,10 +955,12 @@ Global Symbols
</UL>
<P><STRONG><a name="[57]"></a>micros</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, delay_us.o(i.micros))
<BR><BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<BR><BR>[Called By]<UL><LI><a href="#[5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SysTick_Handler
<LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
<LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_until_change
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
</UL>
<P><STRONG><a name="[53]"></a>mouse_buf_add</STRONG> (Thumb, 44 bytes, Stack size 12 bytes, helpers.o(i.mouse_buf_add))

View File

@@ -30,9 +30,12 @@ Section Cross References
adb.o(i.adb_recv_cmd) refers to adb.o(i.wait_until_change) for wait_until_change
adb.o(i.adb_recv_cmd) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
adb.o(i.adb_recv_cmd) refers to adb.o(i.adb_read_bit) for adb_read_bit
adb.o(i.adb_recv_cmd) refers to delay_us.o(i.micros) for micros
adb.o(i.adb_recv_cmd) refers to adb.o(.data) for .data
adb.o(i.adb_release_lines) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
adb.o(i.adb_release_lines) refers to adb.o(.data) for .data
adb.o(i.adb_reset) refers to adb.o(i.adb_release_lines) for adb_release_lines
adb.o(i.adb_reset) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
adb.o(i.adb_reset) refers to adb.o(.data) for .data
adb.o(i.adb_send_response_16b) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
adb.o(i.adb_send_response_16b) refers to delay_us.o(i.delay_us) for delay_us
@@ -171,6 +174,9 @@ Section Cross References
stm32f0xx_it.o(i.SPI1_IRQHandler) refers to main.o(.bss) for hspi1
stm32f0xx_it.o(i.SysTick_Handler) refers to stm32f0xx_hal.o(i.HAL_IncTick) for HAL_IncTick
stm32f0xx_it.o(i.SysTick_Handler) refers to stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_IRQHandler) for HAL_SYSTICK_IRQHandler
stm32f0xx_it.o(i.SysTick_Handler) refers to delay_us.o(i.micros) for micros
stm32f0xx_it.o(i.SysTick_Handler) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
stm32f0xx_it.o(i.SysTick_Handler) refers to adb.o(.data) for next_busy_off
stm32f0xx_hal_msp.o(i.HAL_MspInit) refers to stm32f0xx_hal_cortex.o(i.HAL_NVIC_SetPriority) for HAL_NVIC_SetPriority
stm32f0xx_hal_msp.o(i.HAL_SPI_MspDeInit) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_DeInit) for HAL_GPIO_DeInit
stm32f0xx_hal_msp.o(i.HAL_SPI_MspDeInit) refers to stm32f0xx_hal_cortex.o(i.HAL_NVIC_DisableIRQ) for HAL_NVIC_DisableIRQ
@@ -1796,86 +1802,86 @@ Image Symbol Table
SPI_WaitFlagStateUntilTimeout 0x08001753 Thumb Code 140 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)
i.SVC_Handler 0x080017de Section 0 stm32f0xx_it.o(i.SVC_Handler)
i.SysTick_Handler 0x080017e0 Section 0 stm32f0xx_it.o(i.SysTick_Handler)
i.SystemClock_Config 0x080017ec Section 0 main.o(i.SystemClock_Config)
i.SystemInit 0x08001848 Section 0 system_stm32f0xx.o(i.SystemInit)
i.TIM_Base_SetConfig 0x080018a4 Section 0 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
i.TIM_ETR_SetConfig 0x08001928 Section 0 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
i.TIM_ITRx_SetConfig 0x0800193e Section 0 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
TIM_ITRx_SetConfig 0x0800193f Thumb Code 16 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
i.TIM_TI1_ConfigInputStage 0x0800194e Section 0 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
TIM_TI1_ConfigInputStage 0x0800194f Thumb Code 34 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
i.TIM_TI2_ConfigInputStage 0x08001970 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
TIM_TI2_ConfigInputStage 0x08001971 Thumb Code 38 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
i.UART_AdvFeatureConfig 0x08001996 Section 0 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
i.UART_CheckIdleState 0x08001a60 Section 0 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
i.UART_SetConfig 0x08001ac8 Section 0 stm32f0xx_hal_uart.o(i.UART_SetConfig)
i.UART_WaitOnFlagUntilTimeout 0x08001bf8 Section 0 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
i.__0printf$3 0x08001c5c Section 0 printf3.o(i.__0printf$3)
i.__scatterload_copy 0x08001c7c Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x08001c8a Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x08001c8c Section 14 handlers.o(i.__scatterload_zeroinit)
i._printf_core 0x08001c9c Section 0 printf3.o(i._printf_core)
_printf_core 0x08001c9d Thumb Code 456 printf3.o(i._printf_core)
i.adb_init 0x08001e68 Section 0 adb.o(i.adb_init)
i.adb_keyboard_update 0x08001e80 Section 0 main.o(i.adb_keyboard_update)
i.adb_listen_16b 0x08001fc4 Section 0 adb.o(i.adb_listen_16b)
i.adb_mouse_update 0x08002048 Section 0 main.o(i.adb_mouse_update)
i.adb_read_bit 0x080020a0 Section 0 adb.o(i.adb_read_bit)
i.adb_recv_cmd 0x080020e0 Section 0 adb.o(i.adb_recv_cmd)
i.adb_release_lines 0x08002140 Section 0 adb.o(i.adb_release_lines)
i.adb_reset 0x08002160 Section 0 adb.o(i.adb_reset)
i.adb_send_response_16b 0x08002178 Section 0 adb.o(i.adb_send_response_16b)
i.adb_write_16 0x08002204 Section 0 adb.o(i.adb_write_16)
i.adb_write_byte 0x08002220 Section 0 adb.o(i.adb_write_byte)
i.byte_to_int16_t 0x0800229c Section 0 main.o(i.byte_to_int16_t)
i.cap_to_127 0x080022a4 Section 0 main.o(i.cap_to_127)
i.delay_us 0x080022ba Section 0 delay_us.o(i.delay_us)
i.delay_us_init 0x080022d0 Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x080022e0 Section 0 main.o(i.fputc)
i.get_consolidated_mouse_event 0x080022f8 Section 0 main.o(i.get_consolidated_mouse_event)
i.handle_protocol_switch 0x08002370 Section 0 main.o(i.handle_protocol_switch)
i.int16_to_uint6 0x080023c0 Section 0 main.o(i.int16_to_uint6)
i.is_protocol_enabled 0x080023e0 Section 0 main.o(i.is_protocol_enabled)
i.kb_buf_add 0x080023f4 Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x08002420 Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_is_empty 0x0800243c Section 0 helpers.o(i.kb_buf_is_empty)
i.kb_buf_is_full 0x0800244c Section 0 helpers.o(i.kb_buf_is_full)
i.kb_buf_peek 0x08002462 Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x08002482 Section 0 helpers.o(i.kb_buf_pop)
i.kb_buf_reset 0x08002494 Section 0 helpers.o(i.kb_buf_reset)
i.look_for_atten 0x080024b0 Section 0 adb.o(i.look_for_atten)
i.main 0x080024fc Section 0 main.o(i.main)
i.malloc 0x08002730 Section 0 malloc.o(i.malloc)
i.micros 0x0800279c Section 0 delay_us.o(i.micros)
i.mouse_buf_add 0x080027ac Section 0 helpers.o(i.mouse_buf_add)
i.mouse_buf_init 0x080027d8 Section 0 helpers.o(i.mouse_buf_init)
i.mouse_buf_is_empty 0x080027ee Section 0 helpers.o(i.mouse_buf_is_empty)
i.mouse_buf_is_full 0x080027fe Section 0 helpers.o(i.mouse_buf_is_full)
i.mouse_buf_peek 0x08002814 Section 0 helpers.o(i.mouse_buf_peek)
i.mouse_buf_pop 0x08002828 Section 0 helpers.o(i.mouse_buf_pop)
i.mouse_buf_reset 0x0800283a Section 0 helpers.o(i.mouse_buf_reset)
i.parse_adb_cmd 0x08002850 Section 0 adb.o(i.parse_adb_cmd)
i.protocol_status_lookup_init 0x08002964 Section 0 main.o(i.protocol_status_lookup_init)
i.send_srq 0x08002980 Section 0 adb.o(i.send_srq)
i.spi_error_dump_reboot 0x080029a8 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_until_change 0x08002a24 Section 0 adb.o(i.wait_until_change)
.constdata 0x08002a64 Section 186 adb.o(.constdata)
.constdata 0x08002b1e Section 61 main.o(.constdata)
.constdata 0x08002b5b Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08002b6b Section 8 system_stm32f0xx.o(.constdata)
.data 0x20000000 Section 20 adb.o(.data)
.data 0x20000014 Section 4 delay_us.o(.data)
.data 0x20000018 Section 16 main.o(.data)
.data 0x20000028 Section 4 stm32f0xx_hal.o(.data)
.data 0x2000002c Section 4 system_stm32f0xx.o(.data)
.data 0x20000030 Section 4 rand.o(.data)
_rand_state 0x20000030 Data 4 rand.o(.data)
.data 0x20000034 Section 4 stdout.o(.data)
.data 0x20000038 Section 4 mvars.o(.data)
i.SystemClock_Config 0x08001814 Section 0 main.o(i.SystemClock_Config)
i.SystemInit 0x08001870 Section 0 system_stm32f0xx.o(i.SystemInit)
i.TIM_Base_SetConfig 0x080018cc Section 0 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
i.TIM_ETR_SetConfig 0x08001950 Section 0 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
i.TIM_ITRx_SetConfig 0x08001966 Section 0 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
TIM_ITRx_SetConfig 0x08001967 Thumb Code 16 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
i.TIM_TI1_ConfigInputStage 0x08001976 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
TIM_TI1_ConfigInputStage 0x08001977 Thumb Code 34 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
i.TIM_TI2_ConfigInputStage 0x08001998 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
TIM_TI2_ConfigInputStage 0x08001999 Thumb Code 38 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
i.UART_AdvFeatureConfig 0x080019be Section 0 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
i.UART_CheckIdleState 0x08001a88 Section 0 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
i.UART_SetConfig 0x08001af0 Section 0 stm32f0xx_hal_uart.o(i.UART_SetConfig)
i.UART_WaitOnFlagUntilTimeout 0x08001c20 Section 0 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
i.__0printf$3 0x08001c84 Section 0 printf3.o(i.__0printf$3)
i.__scatterload_copy 0x08001ca4 Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x08001cb2 Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x08001cb4 Section 14 handlers.o(i.__scatterload_zeroinit)
i._printf_core 0x08001cc4 Section 0 printf3.o(i._printf_core)
_printf_core 0x08001cc5 Thumb Code 456 printf3.o(i._printf_core)
i.adb_init 0x08001e90 Section 0 adb.o(i.adb_init)
i.adb_keyboard_update 0x08001ea8 Section 0 main.o(i.adb_keyboard_update)
i.adb_listen_16b 0x08001fec Section 0 adb.o(i.adb_listen_16b)
i.adb_mouse_update 0x08002070 Section 0 main.o(i.adb_mouse_update)
i.adb_read_bit 0x080020c8 Section 0 adb.o(i.adb_read_bit)
i.adb_recv_cmd 0x08002108 Section 0 adb.o(i.adb_recv_cmd)
i.adb_release_lines 0x0800216c Section 0 adb.o(i.adb_release_lines)
i.adb_reset 0x0800218c Section 0 adb.o(i.adb_reset)
i.adb_send_response_16b 0x080021b4 Section 0 adb.o(i.adb_send_response_16b)
i.adb_write_16 0x08002240 Section 0 adb.o(i.adb_write_16)
i.adb_write_byte 0x0800225c Section 0 adb.o(i.adb_write_byte)
i.byte_to_int16_t 0x080022d8 Section 0 main.o(i.byte_to_int16_t)
i.cap_to_127 0x080022e0 Section 0 main.o(i.cap_to_127)
i.delay_us 0x080022f6 Section 0 delay_us.o(i.delay_us)
i.delay_us_init 0x0800230c Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x0800231c Section 0 main.o(i.fputc)
i.get_consolidated_mouse_event 0x08002334 Section 0 main.o(i.get_consolidated_mouse_event)
i.handle_protocol_switch 0x080023ac Section 0 main.o(i.handle_protocol_switch)
i.int16_to_uint6 0x080023fc Section 0 main.o(i.int16_to_uint6)
i.is_protocol_enabled 0x0800241c Section 0 main.o(i.is_protocol_enabled)
i.kb_buf_add 0x08002430 Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x0800245c Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_is_empty 0x08002478 Section 0 helpers.o(i.kb_buf_is_empty)
i.kb_buf_is_full 0x08002488 Section 0 helpers.o(i.kb_buf_is_full)
i.kb_buf_peek 0x0800249e Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x080024be Section 0 helpers.o(i.kb_buf_pop)
i.kb_buf_reset 0x080024d0 Section 0 helpers.o(i.kb_buf_reset)
i.look_for_atten 0x080024ec Section 0 adb.o(i.look_for_atten)
i.main 0x08002538 Section 0 main.o(i.main)
i.malloc 0x0800276c Section 0 malloc.o(i.malloc)
i.micros 0x080027d8 Section 0 delay_us.o(i.micros)
i.mouse_buf_add 0x080027e8 Section 0 helpers.o(i.mouse_buf_add)
i.mouse_buf_init 0x08002814 Section 0 helpers.o(i.mouse_buf_init)
i.mouse_buf_is_empty 0x0800282a Section 0 helpers.o(i.mouse_buf_is_empty)
i.mouse_buf_is_full 0x0800283a Section 0 helpers.o(i.mouse_buf_is_full)
i.mouse_buf_peek 0x08002850 Section 0 helpers.o(i.mouse_buf_peek)
i.mouse_buf_pop 0x08002864 Section 0 helpers.o(i.mouse_buf_pop)
i.mouse_buf_reset 0x08002876 Section 0 helpers.o(i.mouse_buf_reset)
i.parse_adb_cmd 0x0800288c Section 0 adb.o(i.parse_adb_cmd)
i.protocol_status_lookup_init 0x080029a0 Section 0 main.o(i.protocol_status_lookup_init)
i.send_srq 0x080029bc Section 0 adb.o(i.send_srq)
i.spi_error_dump_reboot 0x080029e4 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_until_change 0x08002a60 Section 0 adb.o(i.wait_until_change)
.constdata 0x08002aa0 Section 186 adb.o(.constdata)
.constdata 0x08002b5a Section 61 main.o(.constdata)
.constdata 0x08002b97 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08002ba7 Section 8 system_stm32f0xx.o(.constdata)
.data 0x20000000 Section 24 adb.o(.data)
.data 0x20000018 Section 4 delay_us.o(.data)
.data 0x2000001c Section 16 main.o(.data)
.data 0x2000002c Section 4 stm32f0xx_hal.o(.data)
.data 0x20000030 Section 4 system_stm32f0xx.o(.data)
.data 0x20000034 Section 4 rand.o(.data)
_rand_state 0x20000034 Data 4 rand.o(.data)
.data 0x20000038 Section 4 stdout.o(.data)
.data 0x2000003c Section 4 mvars.o(.data)
.bss 0x20000040 Section 416 main.o(.bss)
HEAP 0x200001e0 Section 512 startup_stm32f042x6.o(HEAP)
STACK 0x200003e0 Section 1024 startup_stm32f042x6.o(STACK)
.data 0x20000040 Section 4 mvars.o(.data)
.bss 0x20000044 Section 416 main.o(.bss)
HEAP 0x200001e8 Section 512 startup_stm32f042x6.o(HEAP)
STACK 0x200003e8 Section 1024 startup_stm32f042x6.o(STACK)
Global Symbols
@@ -2029,70 +2035,70 @@ Image Symbol Table
PendSV_Handler 0x080014e9 Thumb Code 2 stm32f0xx_it.o(i.PendSV_Handler)
SPI1_IRQHandler 0x080014ed Thumb Code 10 stm32f0xx_it.o(i.SPI1_IRQHandler)
SVC_Handler 0x080017df Thumb Code 2 stm32f0xx_it.o(i.SVC_Handler)
SysTick_Handler 0x080017e1 Thumb Code 12 stm32f0xx_it.o(i.SysTick_Handler)
SystemClock_Config 0x080017ed Thumb Code 92 main.o(i.SystemClock_Config)
SystemInit 0x08001849 Thumb Code 78 system_stm32f0xx.o(i.SystemInit)
TIM_Base_SetConfig 0x080018a5 Thumb Code 112 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
TIM_ETR_SetConfig 0x08001929 Thumb Code 22 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
UART_AdvFeatureConfig 0x08001997 Thumb Code 202 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
UART_CheckIdleState 0x08001a61 Thumb Code 96 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
UART_SetConfig 0x08001ac9 Thumb Code 280 stm32f0xx_hal_uart.o(i.UART_SetConfig)
UART_WaitOnFlagUntilTimeout 0x08001bf9 Thumb Code 98 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
__0printf$3 0x08001c5d Thumb Code 24 printf3.o(i.__0printf$3)
__1printf$3 0x08001c5d Thumb Code 0 printf3.o(i.__0printf$3)
__2printf 0x08001c5d Thumb Code 0 printf3.o(i.__0printf$3)
__scatterload_copy 0x08001c7d Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x08001c8b Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x08001c8d Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
adb_init 0x08001e69 Thumb Code 18 adb.o(i.adb_init)
adb_keyboard_update 0x08001e81 Thumb Code 278 main.o(i.adb_keyboard_update)
adb_listen_16b 0x08001fc5 Thumb Code 118 adb.o(i.adb_listen_16b)
adb_mouse_update 0x08002049 Thumb Code 78 main.o(i.adb_mouse_update)
adb_read_bit 0x080020a1 Thumb Code 56 adb.o(i.adb_read_bit)
adb_recv_cmd 0x080020e1 Thumb Code 86 adb.o(i.adb_recv_cmd)
adb_release_lines 0x08002141 Thumb Code 26 adb.o(i.adb_release_lines)
adb_reset 0x08002161 Thumb Code 18 adb.o(i.adb_reset)
adb_send_response_16b 0x08002179 Thumb Code 130 adb.o(i.adb_send_response_16b)
adb_write_16 0x08002205 Thumb Code 28 adb.o(i.adb_write_16)
adb_write_byte 0x08002221 Thumb Code 120 adb.o(i.adb_write_byte)
byte_to_int16_t 0x0800229d Thumb Code 8 main.o(i.byte_to_int16_t)
cap_to_127 0x080022a5 Thumb Code 22 main.o(i.cap_to_127)
delay_us 0x080022bb Thumb Code 20 delay_us.o(i.delay_us)
delay_us_init 0x080022d1 Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x080022e1 Thumb Code 18 main.o(i.fputc)
get_consolidated_mouse_event 0x080022f9 Thumb Code 120 main.o(i.get_consolidated_mouse_event)
handle_protocol_switch 0x08002371 Thumb Code 70 main.o(i.handle_protocol_switch)
int16_to_uint6 0x080023c1 Thumb Code 30 main.o(i.int16_to_uint6)
is_protocol_enabled 0x080023e1 Thumb Code 16 main.o(i.is_protocol_enabled)
kb_buf_add 0x080023f5 Thumb Code 44 helpers.o(i.kb_buf_add)
kb_buf_init 0x08002421 Thumb Code 28 helpers.o(i.kb_buf_init)
kb_buf_is_empty 0x0800243d Thumb Code 16 helpers.o(i.kb_buf_is_empty)
kb_buf_is_full 0x0800244d Thumb Code 22 helpers.o(i.kb_buf_is_full)
kb_buf_peek 0x08002463 Thumb Code 32 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x08002483 Thumb Code 18 helpers.o(i.kb_buf_pop)
kb_buf_reset 0x08002495 Thumb Code 28 helpers.o(i.kb_buf_reset)
look_for_atten 0x080024b1 Thumb Code 68 adb.o(i.look_for_atten)
main 0x080024fd Thumb Code 492 main.o(i.main)
malloc 0x08002731 Thumb Code 92 malloc.o(i.malloc)
micros 0x0800279d Thumb Code 10 delay_us.o(i.micros)
mouse_buf_add 0x080027ad Thumb Code 44 helpers.o(i.mouse_buf_add)
mouse_buf_init 0x080027d9 Thumb Code 22 helpers.o(i.mouse_buf_init)
mouse_buf_is_empty 0x080027ef Thumb Code 16 helpers.o(i.mouse_buf_is_empty)
mouse_buf_is_full 0x080027ff Thumb Code 22 helpers.o(i.mouse_buf_is_full)
mouse_buf_peek 0x08002815 Thumb Code 20 helpers.o(i.mouse_buf_peek)
mouse_buf_pop 0x08002829 Thumb Code 18 helpers.o(i.mouse_buf_pop)
mouse_buf_reset 0x0800283b Thumb Code 20 helpers.o(i.mouse_buf_reset)
parse_adb_cmd 0x08002851 Thumb Code 266 adb.o(i.parse_adb_cmd)
protocol_status_lookup_init 0x08002965 Thumb Code 22 main.o(i.protocol_status_lookup_init)
send_srq 0x08002981 Thumb Code 34 adb.o(i.send_srq)
spi_error_dump_reboot 0x080029a9 Thumb Code 76 main.o(i.spi_error_dump_reboot)
wait_until_change 0x08002a25 Thumb Code 60 adb.o(i.wait_until_change)
linux_ev_to_adb_lookup 0x08002a64 Data 186 adb.o(.constdata)
boot_message 0x08002b1e Data 61 main.o(.constdata)
AHBPrescTable 0x08002b5b Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08002b6b Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08002b74 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08002b94 Number 0 anon$$obj.o(Region$$Table)
SysTick_Handler 0x080017e1 Thumb Code 44 stm32f0xx_it.o(i.SysTick_Handler)
SystemClock_Config 0x08001815 Thumb Code 92 main.o(i.SystemClock_Config)
SystemInit 0x08001871 Thumb Code 78 system_stm32f0xx.o(i.SystemInit)
TIM_Base_SetConfig 0x080018cd Thumb Code 112 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
TIM_ETR_SetConfig 0x08001951 Thumb Code 22 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
UART_AdvFeatureConfig 0x080019bf Thumb Code 202 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
UART_CheckIdleState 0x08001a89 Thumb Code 96 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
UART_SetConfig 0x08001af1 Thumb Code 280 stm32f0xx_hal_uart.o(i.UART_SetConfig)
UART_WaitOnFlagUntilTimeout 0x08001c21 Thumb Code 98 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
__0printf$3 0x08001c85 Thumb Code 24 printf3.o(i.__0printf$3)
__1printf$3 0x08001c85 Thumb Code 0 printf3.o(i.__0printf$3)
__2printf 0x08001c85 Thumb Code 0 printf3.o(i.__0printf$3)
__scatterload_copy 0x08001ca5 Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x08001cb3 Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x08001cb5 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
adb_init 0x08001e91 Thumb Code 18 adb.o(i.adb_init)
adb_keyboard_update 0x08001ea9 Thumb Code 278 main.o(i.adb_keyboard_update)
adb_listen_16b 0x08001fed Thumb Code 120 adb.o(i.adb_listen_16b)
adb_mouse_update 0x08002071 Thumb Code 78 main.o(i.adb_mouse_update)
adb_read_bit 0x080020c9 Thumb Code 56 adb.o(i.adb_read_bit)
adb_recv_cmd 0x08002109 Thumb Code 88 adb.o(i.adb_recv_cmd)
adb_release_lines 0x0800216d Thumb Code 26 adb.o(i.adb_release_lines)
adb_reset 0x0800218d Thumb Code 32 adb.o(i.adb_reset)
adb_send_response_16b 0x080021b5 Thumb Code 132 adb.o(i.adb_send_response_16b)
adb_write_16 0x08002241 Thumb Code 28 adb.o(i.adb_write_16)
adb_write_byte 0x0800225d Thumb Code 120 adb.o(i.adb_write_byte)
byte_to_int16_t 0x080022d9 Thumb Code 8 main.o(i.byte_to_int16_t)
cap_to_127 0x080022e1 Thumb Code 22 main.o(i.cap_to_127)
delay_us 0x080022f7 Thumb Code 20 delay_us.o(i.delay_us)
delay_us_init 0x0800230d Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x0800231d Thumb Code 18 main.o(i.fputc)
get_consolidated_mouse_event 0x08002335 Thumb Code 120 main.o(i.get_consolidated_mouse_event)
handle_protocol_switch 0x080023ad Thumb Code 70 main.o(i.handle_protocol_switch)
int16_to_uint6 0x080023fd Thumb Code 30 main.o(i.int16_to_uint6)
is_protocol_enabled 0x0800241d Thumb Code 16 main.o(i.is_protocol_enabled)
kb_buf_add 0x08002431 Thumb Code 44 helpers.o(i.kb_buf_add)
kb_buf_init 0x0800245d Thumb Code 28 helpers.o(i.kb_buf_init)
kb_buf_is_empty 0x08002479 Thumb Code 16 helpers.o(i.kb_buf_is_empty)
kb_buf_is_full 0x08002489 Thumb Code 22 helpers.o(i.kb_buf_is_full)
kb_buf_peek 0x0800249f Thumb Code 32 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x080024bf Thumb Code 18 helpers.o(i.kb_buf_pop)
kb_buf_reset 0x080024d1 Thumb Code 28 helpers.o(i.kb_buf_reset)
look_for_atten 0x080024ed Thumb Code 68 adb.o(i.look_for_atten)
main 0x08002539 Thumb Code 492 main.o(i.main)
malloc 0x0800276d Thumb Code 92 malloc.o(i.malloc)
micros 0x080027d9 Thumb Code 10 delay_us.o(i.micros)
mouse_buf_add 0x080027e9 Thumb Code 44 helpers.o(i.mouse_buf_add)
mouse_buf_init 0x08002815 Thumb Code 22 helpers.o(i.mouse_buf_init)
mouse_buf_is_empty 0x0800282b Thumb Code 16 helpers.o(i.mouse_buf_is_empty)
mouse_buf_is_full 0x0800283b Thumb Code 22 helpers.o(i.mouse_buf_is_full)
mouse_buf_peek 0x08002851 Thumb Code 20 helpers.o(i.mouse_buf_peek)
mouse_buf_pop 0x08002865 Thumb Code 18 helpers.o(i.mouse_buf_pop)
mouse_buf_reset 0x08002877 Thumb Code 20 helpers.o(i.mouse_buf_reset)
parse_adb_cmd 0x0800288d Thumb Code 266 adb.o(i.parse_adb_cmd)
protocol_status_lookup_init 0x080029a1 Thumb Code 22 main.o(i.protocol_status_lookup_init)
send_srq 0x080029bd Thumb Code 34 adb.o(i.send_srq)
spi_error_dump_reboot 0x080029e5 Thumb Code 76 main.o(i.spi_error_dump_reboot)
wait_until_change 0x08002a61 Thumb Code 60 adb.o(i.wait_until_change)
linux_ev_to_adb_lookup 0x08002aa0 Data 186 adb.o(.constdata)
boot_message 0x08002b5a Data 61 main.o(.constdata)
AHBPrescTable 0x08002b97 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08002ba7 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08002bb0 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08002bd0 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_rw_in_progress 0x20000002 Data 1 adb.o(.data)
@@ -2103,29 +2109,30 @@ Image Symbol Table
adb_data_pin 0x2000000a Data 2 adb.o(.data)
adb_psw_port 0x2000000c Data 4 adb.o(.data)
adb_data_port 0x20000010 Data 4 adb.o(.data)
us_timer 0x20000014 Data 4 delay_us.o(.data)
spi_error_occured 0x20000018 Data 1 main.o(.data)
capslock_counter 0x20000019 Data 1 main.o(.data)
ACT_LED_off_ts 0x2000001c Data 4 main.o(.data)
my_mouse_buf 0x20000020 Data 8 main.o(.data)
uwTick 0x20000028 Data 4 stm32f0xx_hal.o(.data)
SystemCoreClock 0x2000002c Data 4 system_stm32f0xx.o(.data)
__stdout 0x20000034 Data 4 stdout.o(.data)
__microlib_freelist 0x20000038 Data 4 mvars.o(.data)
__microlib_freelist_initialised 0x2000003c Data 4 mvars.o(.data)
hiwdg 0x20000040 Data 16 main.o(.bss)
hspi1 0x20000050 Data 100 main.o(.bss)
htim2 0x200000b4 Data 64 main.o(.bss)
huart2 0x200000f4 Data 112 main.o(.bss)
spi_transmit_buf 0x20000164 Data 32 main.o(.bss)
spi_recv_buf 0x20000184 Data 32 main.o(.bss)
my_kb_buf 0x200001a4 Data 12 main.o(.bss)
latest_mouse_event 0x200001b0 Data 16 main.o(.bss)
consolidated_mouse_event 0x200001c0 Data 16 main.o(.bss)
protocol_status_lookup 0x200001d0 Data 16 main.o(.bss)
__heap_base 0x200001e0 Data 0 startup_stm32f042x6.o(HEAP)
__heap_limit 0x200003e0 Data 0 startup_stm32f042x6.o(HEAP)
__initial_sp 0x200007e0 Data 0 startup_stm32f042x6.o(STACK)
next_busy_off 0x20000014 Data 4 adb.o(.data)
us_timer 0x20000018 Data 4 delay_us.o(.data)
spi_error_occured 0x2000001c Data 1 main.o(.data)
capslock_counter 0x2000001d Data 1 main.o(.data)
ACT_LED_off_ts 0x20000020 Data 4 main.o(.data)
my_mouse_buf 0x20000024 Data 8 main.o(.data)
uwTick 0x2000002c Data 4 stm32f0xx_hal.o(.data)
SystemCoreClock 0x20000030 Data 4 system_stm32f0xx.o(.data)
__stdout 0x20000038 Data 4 stdout.o(.data)
__microlib_freelist 0x2000003c Data 4 mvars.o(.data)
__microlib_freelist_initialised 0x20000040 Data 4 mvars.o(.data)
hiwdg 0x20000044 Data 16 main.o(.bss)
hspi1 0x20000054 Data 100 main.o(.bss)
htim2 0x200000b8 Data 64 main.o(.bss)
huart2 0x200000f8 Data 112 main.o(.bss)
spi_transmit_buf 0x20000168 Data 32 main.o(.bss)
spi_recv_buf 0x20000188 Data 32 main.o(.bss)
my_kb_buf 0x200001a8 Data 12 main.o(.bss)
latest_mouse_event 0x200001b4 Data 16 main.o(.bss)
consolidated_mouse_event 0x200001c4 Data 16 main.o(.bss)
protocol_status_lookup 0x200001d4 Data 16 main.o(.bss)
__heap_base 0x200001e8 Data 0 startup_stm32f042x6.o(HEAP)
__heap_limit 0x200003e8 Data 0 startup_stm32f042x6.o(HEAP)
__initial_sp 0x200007e8 Data 0 startup_stm32f042x6.o(STACK)
@@ -2135,9 +2142,9 @@ Memory Map of the image
Image Entry point : 0x080000c1
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00002bd4, Max: 0x00008000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00002c14, Max: 0x00008000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00002b94, Max: 0x00008000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00002bd0, Max: 0x00008000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
@@ -2229,95 +2236,96 @@ Memory Map of the image
0x080016bc 0x080016bc 0x00000096 Code RO 2064 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x08001752 0x08001752 0x0000008c Code RO 2065 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x080017de 0x080017de 0x00000002 Code RO 506 i.SVC_Handler stm32f0xx_it.o
0x080017e0 0x080017e0 0x0000000c Code RO 507 i.SysTick_Handler stm32f0xx_it.o
0x080017ec 0x080017ec 0x0000005c Code RO 363 i.SystemClock_Config main.o
0x08001848 0x08001848 0x0000005c Code RO 3628 i.SystemInit system_stm32f0xx.o
0x080018a4 0x080018a4 0x00000084 Code RO 2441 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08001928 0x08001928 0x00000016 Code RO 2448 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x0800193e 0x0800193e 0x00000010 Code RO 2449 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x0800194e 0x0800194e 0x00000022 Code RO 2455 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x08001970 0x08001970 0x00000026 Code RO 2457 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x08001996 0x08001996 0x000000ca Code RO 3264 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08001a60 0x08001a60 0x00000068 Code RO 3265 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x08001ac8 0x08001ac8 0x00000130 Code RO 3280 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08001bf8 0x08001bf8 0x00000062 Code RO 3282 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x08001c5a 0x08001c5a 0x00000002 PAD
0x08001c5c 0x08001c5c 0x00000020 Code RO 3762 i.__0printf$3 mc_p.l(printf3.o)
0x08001c7c 0x08001c7c 0x0000000e Code RO 4008 i.__scatterload_copy mc_p.l(handlers.o)
0x08001c8a 0x08001c8a 0x00000002 Code RO 4009 i.__scatterload_null mc_p.l(handlers.o)
0x08001c8c 0x08001c8c 0x0000000e Code RO 4010 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08001c9a 0x08001c9a 0x00000002 PAD
0x08001c9c 0x08001c9c 0x000001cc Code RO 3769 i._printf_core mc_p.l(printf3.o)
0x08001e68 0x08001e68 0x00000018 Code RO 12 i.adb_init adb.o
0x08001e80 0x08001e80 0x00000144 Code RO 365 i.adb_keyboard_update main.o
0x08001fc4 0x08001fc4 0x00000084 Code RO 13 i.adb_listen_16b adb.o
0x08002048 0x08002048 0x00000058 Code RO 366 i.adb_mouse_update main.o
0x080020a0 0x080020a0 0x00000040 Code RO 14 i.adb_read_bit adb.o
0x080020e0 0x080020e0 0x00000060 Code RO 15 i.adb_recv_cmd adb.o
0x08002140 0x08002140 0x00000020 Code RO 16 i.adb_release_lines adb.o
0x08002160 0x08002160 0x00000018 Code RO 17 i.adb_reset adb.o
0x08002178 0x08002178 0x0000008c Code RO 18 i.adb_send_response_16b adb.o
0x08002204 0x08002204 0x0000001c Code RO 19 i.adb_write_16 adb.o
0x08002220 0x08002220 0x0000007c Code RO 20 i.adb_write_byte adb.o
0x0800229c 0x0800229c 0x00000008 Code RO 367 i.byte_to_int16_t main.o
0x080022a4 0x080022a4 0x00000016 Code RO 368 i.cap_to_127 main.o
0x080022ba 0x080022ba 0x00000014 Code RO 227 i.delay_us delay_us.o
0x080022ce 0x080022ce 0x00000002 PAD
0x080022d0 0x080022d0 0x00000010 Code RO 228 i.delay_us_init delay_us.o
0x080022e0 0x080022e0 0x00000018 Code RO 369 i.fputc main.o
0x080022f8 0x080022f8 0x00000078 Code RO 370 i.get_consolidated_mouse_event main.o
0x08002370 0x08002370 0x00000050 Code RO 371 i.handle_protocol_switch main.o
0x080023c0 0x080023c0 0x0000001e Code RO 372 i.int16_to_uint6 main.o
0x080023de 0x080023de 0x00000002 PAD
0x080023e0 0x080023e0 0x00000014 Code RO 373 i.is_protocol_enabled main.o
0x080023f4 0x080023f4 0x0000002c Code RO 262 i.kb_buf_add helpers.o
0x08002420 0x08002420 0x0000001c Code RO 263 i.kb_buf_init helpers.o
0x0800243c 0x0800243c 0x00000010 Code RO 264 i.kb_buf_is_empty helpers.o
0x0800244c 0x0800244c 0x00000016 Code RO 265 i.kb_buf_is_full helpers.o
0x08002462 0x08002462 0x00000020 Code RO 266 i.kb_buf_peek helpers.o
0x08002482 0x08002482 0x00000012 Code RO 267 i.kb_buf_pop helpers.o
0x08002494 0x08002494 0x0000001c Code RO 268 i.kb_buf_reset helpers.o
0x080024b0 0x080024b0 0x0000004c Code RO 21 i.look_for_atten adb.o
0x080024fc 0x080024fc 0x00000234 Code RO 374 i.main main.o
0x08002730 0x08002730 0x0000006c Code RO 3935 i.malloc mc_p.l(malloc.o)
0x0800279c 0x0800279c 0x00000010 Code RO 229 i.micros delay_us.o
0x080027ac 0x080027ac 0x0000002c Code RO 269 i.mouse_buf_add helpers.o
0x080027d8 0x080027d8 0x00000016 Code RO 270 i.mouse_buf_init helpers.o
0x080027ee 0x080027ee 0x00000010 Code RO 271 i.mouse_buf_is_empty helpers.o
0x080027fe 0x080027fe 0x00000016 Code RO 272 i.mouse_buf_is_full helpers.o
0x08002814 0x08002814 0x00000014 Code RO 273 i.mouse_buf_peek helpers.o
0x08002828 0x08002828 0x00000012 Code RO 274 i.mouse_buf_pop helpers.o
0x0800283a 0x0800283a 0x00000014 Code RO 275 i.mouse_buf_reset helpers.o
0x0800284e 0x0800284e 0x00000002 PAD
0x08002850 0x08002850 0x00000114 Code RO 22 i.parse_adb_cmd adb.o
0x08002964 0x08002964 0x0000001c Code RO 375 i.protocol_status_lookup_init main.o
0x08002980 0x08002980 0x00000028 Code RO 23 i.send_srq adb.o
0x080029a8 0x080029a8 0x0000007c Code RO 376 i.spi_error_dump_reboot main.o
0x08002a24 0x08002a24 0x00000040 Code RO 24 i.wait_until_change adb.o
0x08002a64 0x08002a64 0x000000ba Data RO 25 .constdata adb.o
0x08002b1e 0x08002b1e 0x0000003d Data RO 382 .constdata main.o
0x08002b5b 0x08002b5b 0x00000010 Data RO 3629 .constdata system_stm32f0xx.o
0x08002b6b 0x08002b6b 0x00000008 Data RO 3630 .constdata system_stm32f0xx.o
0x08002b73 0x08002b73 0x00000001 PAD
0x08002b74 0x08002b74 0x00000020 Data RO 4006 Region$$Table anon$$obj.o
0x080017e0 0x080017e0 0x00000034 Code RO 507 i.SysTick_Handler stm32f0xx_it.o
0x08001814 0x08001814 0x0000005c Code RO 363 i.SystemClock_Config main.o
0x08001870 0x08001870 0x0000005c Code RO 3628 i.SystemInit system_stm32f0xx.o
0x080018cc 0x080018cc 0x00000084 Code RO 2441 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08001950 0x08001950 0x00000016 Code RO 2448 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x08001966 0x08001966 0x00000010 Code RO 2449 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x08001976 0x08001976 0x00000022 Code RO 2455 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x08001998 0x08001998 0x00000026 Code RO 2457 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x080019be 0x080019be 0x000000ca Code RO 3264 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08001a88 0x08001a88 0x00000068 Code RO 3265 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x08001af0 0x08001af0 0x00000130 Code RO 3280 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08001c20 0x08001c20 0x00000062 Code RO 3282 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x08001c82 0x08001c82 0x00000002 PAD
0x08001c84 0x08001c84 0x00000020 Code RO 3762 i.__0printf$3 mc_p.l(printf3.o)
0x08001ca4 0x08001ca4 0x0000000e Code RO 4008 i.__scatterload_copy mc_p.l(handlers.o)
0x08001cb2 0x08001cb2 0x00000002 Code RO 4009 i.__scatterload_null mc_p.l(handlers.o)
0x08001cb4 0x08001cb4 0x0000000e Code RO 4010 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08001cc2 0x08001cc2 0x00000002 PAD
0x08001cc4 0x08001cc4 0x000001cc Code RO 3769 i._printf_core mc_p.l(printf3.o)
0x08001e90 0x08001e90 0x00000018 Code RO 12 i.adb_init adb.o
0x08001ea8 0x08001ea8 0x00000144 Code RO 365 i.adb_keyboard_update main.o
0x08001fec 0x08001fec 0x00000084 Code RO 13 i.adb_listen_16b adb.o
0x08002070 0x08002070 0x00000058 Code RO 366 i.adb_mouse_update main.o
0x080020c8 0x080020c8 0x00000040 Code RO 14 i.adb_read_bit adb.o
0x08002108 0x08002108 0x00000064 Code RO 15 i.adb_recv_cmd adb.o
0x0800216c 0x0800216c 0x00000020 Code RO 16 i.adb_release_lines adb.o
0x0800218c 0x0800218c 0x00000028 Code RO 17 i.adb_reset adb.o
0x080021b4 0x080021b4 0x0000008c Code RO 18 i.adb_send_response_16b adb.o
0x08002240 0x08002240 0x0000001c Code RO 19 i.adb_write_16 adb.o
0x0800225c 0x0800225c 0x0000007c Code RO 20 i.adb_write_byte adb.o
0x080022d8 0x080022d8 0x00000008 Code RO 367 i.byte_to_int16_t main.o
0x080022e0 0x080022e0 0x00000016 Code RO 368 i.cap_to_127 main.o
0x080022f6 0x080022f6 0x00000014 Code RO 227 i.delay_us delay_us.o
0x0800230a 0x0800230a 0x00000002 PAD
0x0800230c 0x0800230c 0x00000010 Code RO 228 i.delay_us_init delay_us.o
0x0800231c 0x0800231c 0x00000018 Code RO 369 i.fputc main.o
0x08002334 0x08002334 0x00000078 Code RO 370 i.get_consolidated_mouse_event main.o
0x080023ac 0x080023ac 0x00000050 Code RO 371 i.handle_protocol_switch main.o
0x080023fc 0x080023fc 0x0000001e Code RO 372 i.int16_to_uint6 main.o
0x0800241a 0x0800241a 0x00000002 PAD
0x0800241c 0x0800241c 0x00000014 Code RO 373 i.is_protocol_enabled main.o
0x08002430 0x08002430 0x0000002c Code RO 262 i.kb_buf_add helpers.o
0x0800245c 0x0800245c 0x0000001c Code RO 263 i.kb_buf_init helpers.o
0x08002478 0x08002478 0x00000010 Code RO 264 i.kb_buf_is_empty helpers.o
0x08002488 0x08002488 0x00000016 Code RO 265 i.kb_buf_is_full helpers.o
0x0800249e 0x0800249e 0x00000020 Code RO 266 i.kb_buf_peek helpers.o
0x080024be 0x080024be 0x00000012 Code RO 267 i.kb_buf_pop helpers.o
0x080024d0 0x080024d0 0x0000001c Code RO 268 i.kb_buf_reset helpers.o
0x080024ec 0x080024ec 0x0000004c Code RO 21 i.look_for_atten adb.o
0x08002538 0x08002538 0x00000234 Code RO 374 i.main main.o
0x0800276c 0x0800276c 0x0000006c Code RO 3935 i.malloc mc_p.l(malloc.o)
0x080027d8 0x080027d8 0x00000010 Code RO 229 i.micros delay_us.o
0x080027e8 0x080027e8 0x0000002c Code RO 269 i.mouse_buf_add helpers.o
0x08002814 0x08002814 0x00000016 Code RO 270 i.mouse_buf_init helpers.o
0x0800282a 0x0800282a 0x00000010 Code RO 271 i.mouse_buf_is_empty helpers.o
0x0800283a 0x0800283a 0x00000016 Code RO 272 i.mouse_buf_is_full helpers.o
0x08002850 0x08002850 0x00000014 Code RO 273 i.mouse_buf_peek helpers.o
0x08002864 0x08002864 0x00000012 Code RO 274 i.mouse_buf_pop helpers.o
0x08002876 0x08002876 0x00000014 Code RO 275 i.mouse_buf_reset helpers.o
0x0800288a 0x0800288a 0x00000002 PAD
0x0800288c 0x0800288c 0x00000114 Code RO 22 i.parse_adb_cmd adb.o
0x080029a0 0x080029a0 0x0000001c Code RO 375 i.protocol_status_lookup_init main.o
0x080029bc 0x080029bc 0x00000028 Code RO 23 i.send_srq adb.o
0x080029e4 0x080029e4 0x0000007c Code RO 376 i.spi_error_dump_reboot main.o
0x08002a60 0x08002a60 0x00000040 Code RO 24 i.wait_until_change adb.o
0x08002aa0 0x08002aa0 0x000000ba Data RO 25 .constdata adb.o
0x08002b5a 0x08002b5a 0x0000003d Data RO 382 .constdata main.o
0x08002b97 0x08002b97 0x00000010 Data RO 3629 .constdata system_stm32f0xx.o
0x08002ba7 0x08002ba7 0x00000008 Data RO 3630 .constdata system_stm32f0xx.o
0x08002baf 0x08002baf 0x00000001 PAD
0x08002bb0 0x08002bb0 0x00000020 Data RO 4006 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08002b94, Size: 0x000007e0, Max: 0x00001800, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08002bd0, Size: 0x000007e8, Max: 0x00001800, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x08002b94 0x00000014 Data RW 26 .data adb.o
0x20000014 0x08002ba8 0x00000004 Data RW 230 .data delay_us.o
0x20000018 0x08002bac 0x00000010 Data RW 383 .data main.o
0x20000028 0x08002bbc 0x00000004 Data RW 841 .data stm32f0xx_hal.o
0x2000002c 0x08002bc0 0x00000004 Data RW 3631 .data system_stm32f0xx.o
0x20000030 0x08002bc4 0x00000004 Data RW 3669 .data mc_p.l(rand.o)
0x20000034 0x08002bc8 0x00000004 Data RW 3976 .data mc_p.l(stdout.o)
0x20000038 0x08002bcc 0x00000004 Data RW 3983 .data mc_p.l(mvars.o)
0x2000003c 0x08002bd0 0x00000004 Data RW 3984 .data mc_p.l(mvars.o)
0x20000040 - 0x000001a0 Zero RW 377 .bss main.o
0x200001e0 - 0x00000200 Zero RW 2 HEAP startup_stm32f042x6.o
0x200003e0 - 0x00000400 Zero RW 1 STACK startup_stm32f042x6.o
0x20000000 0x08002bd0 0x00000018 Data RW 26 .data adb.o
0x20000018 0x08002be8 0x00000004 Data RW 230 .data delay_us.o
0x2000001c 0x08002bec 0x00000010 Data RW 383 .data main.o
0x2000002c 0x08002bfc 0x00000004 Data RW 841 .data stm32f0xx_hal.o
0x20000030 0x08002c00 0x00000004 Data RW 3631 .data system_stm32f0xx.o
0x20000034 0x08002c04 0x00000004 Data RW 3669 .data mc_p.l(rand.o)
0x20000038 0x08002c08 0x00000004 Data RW 3976 .data mc_p.l(stdout.o)
0x2000003c 0x08002c0c 0x00000004 Data RW 3983 .data mc_p.l(mvars.o)
0x20000040 0x08002c10 0x00000004 Data RW 3984 .data mc_p.l(mvars.o)
0x20000044 - 0x000001a0 Zero RW 377 .bss main.o
0x200001e4 0x08002c14 0x00000004 PAD
0x200001e8 - 0x00000200 Zero RW 2 HEAP startup_stm32f042x6.o
0x200003e8 - 0x00000400 Zero RW 1 STACK startup_stm32f042x6.o
==============================================================================
@@ -2327,7 +2335,7 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Object Name
1120 92 186 20 0 460586 adb.o
1140 92 186 24 0 460508 adb.o
52 10 0 4 0 1923 delay_us.o
350 0 0 0 0 7511 helpers.o
2396 274 61 16 416 19601 main.o
@@ -2343,13 +2351,13 @@ Image component sizes
556 20 0 0 0 6376 stm32f0xx_hal_tim.o
72 0 0 0 0 1256 stm32f0xx_hal_tim_ex.o
1026 32 0 0 0 5933 stm32f0xx_hal_uart.o
46 6 0 0 0 2946 stm32f0xx_it.o
86 14 0 0 0 2966 stm32f0xx_it.o
92 14 24 4 0 1123 system_stm32f0xx.o
----------------------------------------------------------------------
9816 736 496 48 1952 546939 Object Totals
9876 744 496 52 1956 546881 Object Totals
0 0 32 0 0 0 (incl. Generated)
30 0 1 0 0 0 (incl. Padding)
30 0 1 0 4 0 (incl. Padding)
----------------------------------------------------------------------
@@ -2394,15 +2402,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
10660 792 496 64 1952 542663 Grand Totals
10660 792 496 64 1952 542663 ELF Image Totals
10660 792 496 64 0 0 ROM Totals
10720 800 496 68 1956 542605 Grand Totals
10720 800 496 68 1956 542605 ELF Image Totals
10720 800 496 68 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 11156 ( 10.89kB)
Total RW Size (RW Data + ZI Data) 2016 ( 1.97kB)
Total ROM Size (Code + RO Data + RW Data) 11220 ( 10.96kB)
Total RO Size (Code + RO Data) 11216 ( 10.95kB)
Total RW Size (RW Data + ZI Data) 2024 ( 1.98kB)
Total ROM Size (Code + RO Data + RW Data) 11284 ( 11.02kB)
==============================================================================

View File

@@ -1,7 +1,7 @@
Dependencies for Project 'my_adb', Target 'my_adb': (DO NOT MODIFY !)
CompilerVersion: 5060750::V5.06 update 6 (build 750)::ARMCC
F (startup_stm32f042x6.s)(0x640675F4)(--cpu Cortex-M0 -g --apcs=interwork --pd "__MICROLIB SETA 1"
-I.\RTE\_my_adb
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
@@ -39,7 +39,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x5DFA0892)
I (../Drivers/CMSIS/Include/core_cmFunc.h)(0x5DFA0892)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h)(0x5DFA0880)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma.h)(0x5DFA0893)
@@ -114,10 +114,10 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
-IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F042x6 -DUSE_HAL_DRIVER -DSTM32F042x6
-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)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A)
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)
I (../Inc/helpers.h)(0x637DDD5C)
@@ -156,8 +156,8 @@ I (C:\Keil_v5\ARM\ARMCC\include\stdlib.h)(0x5D9B429A)
I (../Inc/shared.h)(0x637DDD5C)
F (..\Inc\adb.h)(0x64068139)()
F (..\Inc\delay_us.h)(0x637DDD5C)()
F (..\Inc\helpers.h)(0x637DDD5C)()
F (../Src/main.c)(0x64067EF3)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include
F (..\Inc\helpers.h)(0x637DDD5C)()
F (../Src/main.c)(0x6406826B)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include
-I.\RTE\_my_adb
@@ -192,6 +192,8 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_i2c.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_i2c_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_iwdg.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_pwr.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_pwr_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_spi.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_spi_ex.h)(0x5DFA0893)

View File

Binary file not shown.

View File

@@ -34,3 +34,5 @@ my_adb\stm32f0xx_it.o: ../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.
my_adb\stm32f0xx_it.o: ../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart.h
my_adb\stm32f0xx_it.o: ../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart_ex.h
my_adb\stm32f0xx_it.o: ../Inc/stm32f0xx_it.h
my_adb\stm32f0xx_it.o: ../Inc/adb.h
my_adb\stm32f0xx_it.o: ../Inc/delay_us.h

View File

Binary file not shown.

View File

@@ -22,9 +22,6 @@ uint8_t kb_enabled, mouse_enabled;
#define ADB_READ_DATA_PIN() HAL_GPIO_ReadPin(adb_data_port, adb_data_pin)
#define PCARD_BUSY_HI() HAL_GPIO_WritePin(BUSY_GPIO_Port, BUSY_Pin, GPIO_PIN_SET)
#define PCARD_BUSY_LOW() HAL_GPIO_WritePin(BUSY_GPIO_Port, BUSY_Pin, GPIO_PIN_RESET)
const uint8_t linux_ev_to_adb_lookup[EV_TO_ADB_LOOKUP_SIZE] =
{
ADB_KEY_UNKNOWN, // EV0 KEY_RESERVED
@@ -226,6 +223,8 @@ void adb_reset(void)
adb_kb_current_addr = ADB_KB_DEFAULT_ADDR;
adb_mouse_current_addr = ADB_MOUSE_DEFAULT_ADDR;
adb_release_lines();
next_busy_off = 0;
PCARD_BUSY_LOW();
}
void adb_init(GPIO_TypeDef* data_port, uint16_t data_pin, GPIO_TypeDef* psw_port, uint16_t psw_pin)
@@ -277,6 +276,8 @@ uint8_t adb_read_bit(void)
return hi_time > lo_time;
}
volatile uint32_t next_busy_off;
uint8_t adb_recv_cmd(uint8_t* data)
{
*data = 0;
@@ -296,7 +297,8 @@ uint8_t adb_recv_cmd(uint8_t* data)
return ADB_ERROR;
temp |= this_bit << (7 - i);
}
PCARD_BUSY_LOW();
// PCARD_BUSY_LOW();
next_busy_off = micros() + 500;
*data = temp;
return ADB_OK;
}
@@ -341,6 +343,7 @@ uint8_t adb_write_16(uint16_t data)
uint8_t adb_send_response_16b(uint16_t data)
{
PCARD_BUSY_HI();
next_busy_off = 0;
adb_rw_in_progress = 1;
delay_us(200); // stop-to-start time
ADB_DATA_LOW();
@@ -377,6 +380,7 @@ uint8_t adb_listen_16b(uint16_t* data)
uint16_t temp = 0;
PCARD_BUSY_HI();
next_busy_off = 0;
for (int i = 0; i < 16; ++i)
{
uint8_t this_bit = adb_read_bit();

View File

@@ -36,7 +36,8 @@
#include "stm32f0xx_it.h"
/* USER CODE BEGIN 0 */
#include "adb.h"
#include "delay_us.h"
/* USER CODE END 0 */
/* External variables --------------------------------------------------------*/
@@ -115,6 +116,12 @@ void SysTick_Handler(void)
HAL_SYSTICK_IRQHandler();
/* USER CODE BEGIN SysTick_IRQn 1 */
if(next_busy_off != 0 && micros() > next_busy_off)
{
PCARD_BUSY_LOW();
next_busy_off = 0;
}
/* USER CODE END SysTick_IRQn 1 */
}