keyboard and mouse srq working

This commit is contained in:
dekunukem
2022-01-02 22:18:38 +00:00
parent 796a61eea4
commit d4a5603ada
14 changed files with 1112 additions and 1082 deletions

View File

@@ -45,13 +45,14 @@
#define ADB_CLK_65 64
void adb_init(GPIO_TypeDef* data_port, uint16_t data_pin, GPIO_TypeDef* psw_port, uint16_t psw_pin);
uint8_t adb_recv_cmd(uint8_t* data, uint8_t srq);
uint8_t adb_recv_cmd(uint8_t* data);
uint8_t parse_adb_cmd(uint8_t data);
void adb_reset(void);
void adb_release_lines(void);
uint8_t adb_send_response_16b(uint16_t data);
void send_srq(void);
extern uint8_t adb_mouse_current_addr, adb_kb_current_addr, adb_write_in_progress;
extern uint8_t adb_mouse_current_addr, adb_kb_current_addr, adb_rw_in_progress;
void wtf(void);

View File

File diff suppressed because one or more lines are too long

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

@@ -28,15 +28,13 @@ Project File Date: 01/01/2022
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'my_adb'
compiling main.c...
../Src/main.c(155): warning: #188-D: enumerated type mixed with another type
HAL_GPIO_WritePin(DEBUG0_GPIO_Port, DEBUG0_Pin, adb_write_in_progress);
../Src/main.c(370): warning: #188-D: enumerated type mixed with another type
HAL_GPIO_WritePin(DEBUG1_GPIO_Port, DEBUG1_Pin, kb_srq);
../Src/main.c: 2 warnings, 0 errors
HAL_GPIO_WritePin(DEBUG1_GPIO_Port, DEBUG1_Pin, kb_srq || mouse_srq);
../Src/main.c: 1 warning, 0 errors
linking...
Program Size: Code=9540 RO-data=312 RW-data=56 ZI-data=1920
Program Size: Code=9684 RO-data=312 RW-data=60 ZI-data=1916
FromELF: creating hex file...
"my_adb\my_adb.axf" - 0 Error(s), 2 Warning(s).
"my_adb\my_adb.axf" - 0 Error(s), 1 Warning(s).
<h2>Software Packages used:</h2>

View File

@@ -1,37 +1,37 @@
:020000040800F2
:10000000B8070020D5000008C1130008011200083D
:10000000B8070020D5000008C9130008091200082D
:1000100000000000000000000000000000000000E0
:10002000000000000000000000000000FF160008B3
:10003000000000000000000009140008011700087B
:1000200000000000000000000000000007170008AA
:10003000000000000000000011140008091700086B
:100040000501000805010008050100080501000878
:100050000501000805010008050100080501000868
:100060000501000805010008050100080501000858
:100070000501000805010008050100080501000848
:100080000501000800000000000000000501000854
:100090000000000005010008050100080501000836
:1000A000000000000D14000805010008050100080B
:1000A0000000000015140008050100080501000803
:1000B0000501000800000000050100080501000816
:1000C0000348854600F092F800480047592200088E
:1000C0000348854600F092F8004800474D2200089A
:1000D000B80700200C4880F308880C480168090E16
:1000E0000B4A914205D10B480B4901600B480C4962
:1000F00001600C4880470C480047FEE7FEE7FEE73A
:10010000FEE7FEE7FEE70000B8070020040000005D
:100110001F00000018100240010000000000014014
:100120000000000069170008C100000830B50B4648
:100120000000000071170008C100000830B50B4640
:10013000014600202022012409E00D46D5409D42C1
:1001400005D31D469540491B254695404019154647
:10015000521E002DF1DC30BD70B50024254600286C
:1001600001DA01244042002901DA01254942FFF762
:10017000DDFFAC4200D04042002C00D0494270BDAF
:100180000549064A08685043054A80180860400837
:100190007047014908607047280000206D4EC64135
:1001900070470149086070472C0000206D4EC64131
:1001A0003930000003460B439B0703D009E008C920
:1001B000121F08C0042AFAD203E00B780370401C17
:1001C000491C521EF9D27047D2B201E00270401CA5
:1001D000491EFBD270470022F6E710B513460A46C7
:1001E00004461946FFF7F0FF204610BD064C0125D6
:1001F000064E05E0E36807CC2B430C3C98471034CF
:10020000B442F7D3FFF760FF5C2600087C260008A5
:10020000B442F7D3FFF760FFEC2600080C27000884
:1002100070B50024014620314A78022A03D0042117
:100220008163012416E0026813680E25AB43136056
:10023000026813685B085B0013600122056C1346BB
@@ -60,19 +60,19 @@
:1003A000000001400004004800080048000401402B
:1003B0000069084000D00120704742694A4042610C
:1003C0007047002A01D08161704781627047000048
:1003D00001480068704700002000002070B504004C
:1003D00001480068704700002400002070B5040048
:1003E00005D025466035687A002802D006E0012055
:1003F00070BD00202872204600F07AFE242068722A
:1004000020680168490849000160204601F0ECFAC3
:100410000128EDD0606A002802D0204601F04BFA96
:1003F00070BD00202872204600F07EFE2420687226
:1004000020680168490849000160204601F0F0FABF
:100410000128EDD0606A002802D0204601F04FFA92
:10042000206841680922D2029143416020688168B6
:1004300022229143816020688168082211438160F3
:1004400020680168012211430160204601F098FAFA
:1004400020680168012211430160204601F09CFAF6
:1004500070BD000002480168491C0160704700003F
:100460002000002010B506480168102211430160E9
:100460002400002010B506480168102211430160E5
:10047000002000F007F800F017F8002010BD000081
:100480000020024010B5044600F0F0F87D21C900BC
:10049000FFF74CFE00F03CFD00222146501E00F00C
:10049000FFF74CFE00F040FD00222146501E00F008
:1004A00037F8002010BD000008B51248816901220C
:1004B00011438161816911400091C26901040A43BD
:1004C000C261C0690022084000901146501F00F030
@@ -80,7 +80,7 @@
:1004E000501E00F015F80448016810221143016005
:1004F00008BD00000010024000000140C106C90E06
:1005000001208840014908607047000000E100E0D8
:1005100010B500F057FF10BDF8B505464E480E4621
:1005100010B500F05BFF10BDF8B505464E480E461D
:100520000068C007C00FB0420AD24B4801684908B2
:100530004900314301600068C007C00FB04270D16C
:100540002878464C800705D56068F0218843A96863
@@ -101,10 +101,10 @@
:1006300009028843E9680843606000F02DF86168AA
:10064000084A0906090F515CC840074908600020A4
:10065000FFF718FF0020F8BD002002400010024004
:10066000881300004126000824000020014800688B
:1006700070470000240000200448054900684968CC
:10068000044A4905490F515CC840704724000020C6
:10069000001002405126000830B516A30FCB89B0D8
:1006600088130000D12600082800002001480068F7
:1006700070470000280000200448054900684968C8
:10068000044A4905490F515CC840704728000020C2
:1006900000100240E126000830B516A30FCB89B048
:1006A0006C460FC417A30FCB0FC41A494A680C201D
:1006B000144604401848042C05D0184B082C04D0CC
:1006C0000C2C00D1184609B030BD9402240F6D46A1
@@ -187,7 +187,7 @@
:100B900018D020684168890889004160A06D0B4D1C
:100BA000002803D04563A06DFFF732FB606D00287D
:100BB000B8D04563606DFFF72BFBF8BDC168806856
:100BC0000090F8BD2046FFF797FFF8BD7F1500089D
:100BC0000090F8BD2046FFF797FFF8BD8715000895
:100BD000F8B5040007D0002625464035A662687F98
:100BE000002802D005E00120F8BD2E77204600F055
:100BF0004BF802236B772068016840229143016023
@@ -217,407 +217,416 @@
:100D700003D301684B68934302E001684B68134357
:100D80004B6001684A68E0231A434A6000680168C2
:100D9000490603D4016840221143016000202077F6
:100DA0002846F0BD1D140008B114000853140008B3
:100DB000E5140008F8B5012211024848FFF701FBCD
:100DC000474F01213A784748FFF7FBFA464C012587
:100DD0002078464EDE2800D0B570A078082805D1CE
:100DE0004148A2792179203001F0ADF93878002806
:100DF00067D1A078092806D0032827D001282CD055
:100E0000022855D05DE06179207901F045F9364A34
:100E10002C321080E179A07901F03EF95080617A9E
:100E2000207A01F039F940429080607B9071A07B7C
:100E30001072E07BD071207C5072607C90722A49E5
:100E40002A482C31001D01F0BFFA3AE009200022A7
:100E50000221C006FFF7B5FA33E0234820212038ED
:100E6000FFF7B9F92048CD21203801706178417031
:100E7000802383700221C17071780171002141715A
:100E8000857108220546C17158356C5C002C0BD069
:100E9000022C02D0012C02D004E0815402E00C4666
:100EA0001C438454521CD2B2491C1029EDDB08E0CB
:100EB0000325605D002804D001F010F96D1C202D81
:100EC000F7DB094A2023D11A0948FFF709FFFF2160
:100ED000002201310148FFF774FAF8BD0004004810
:100EE00002000020001400486C01002014000020C3
:100EF00038000020042204490428086902D09043E5
:100F0000086170471043FBE700E000E07047000015
:100F1000094910B5401E884201D9012010BD074C77
:100F200060610321081F00F04DFA0020A061072036
:100F30002061002010BD0000FFFFFF0000E000E086
:100F400010B5FFF7E3FF10BD70B502462032137FE6
:100F5000012B1BD0012313770224547704686568A2
:100F60007026B5436560046865680E683543656042
:100F70000468A5688026B543A56000688468496850
:100F80000C43846053770020107770BD022070BD41
:100F900070B5040005D025462035687F002802D0B2
:100FA00006E0012070BD00202877204600F00AF8F6
:100FB00002206877211D206800F004FC012068777A
:100FC000002070BD08B5006801218907884207D15B
:100FD0000448C16901221143C161C06910400090F9
:100FE00008BD0000001002400222014620314A776D
:100FF000026813680120034313604877002070479C
:10100000F8B5054604462035287F012817D001276A
:101010002F7702206877226890687726FF23B043F5
:101020001B02984390600868502837D00EDC2028B7
:1010300057D006DC00284ED0102840D14EE00220C8
:10104000F8BD302850D0402839D13CE060282DD060
:10105000702817D001221203801A0ED090422ED190
:10106000CB684A688968206800F0EEFB20688168D8
:10107000012292031143816021E020688168C90840
:10108000C900F8E7CB684A688968206800F0DCFB93
:1010900021688868B0433043886010E0CA684968B6
:1010A000206800F0E4FB5021206806E0CA68496827
:1010B000206800F0EDFB6021206800F0D0FB6F7726
:1010C00000202877F8BDCA684968206800F0CFFB87
:1010D00040212068F1E700212068EEE71021206818
:1010E000EBE720212068E8E730212068E5E70000F1
:1010F00000B500680E4987B0884216D10D48C26914
:10110000012149040A43C261C069084005900420D6
:10111000009012200190012103200390029104917C
:1011200009206946C006FFF7A5F807B000BD00001A
:101130000044004000100240FFB5064604466036F9
:10114000707A83B00D46202858D1002D0CD0059818
:10115000002809D00120A1680003814207D120693D
:10116000002804D1E80702D0012007B0F0BD307A92
:10117000012843D0012030720020E06621207072E7
:10118000FFF726F9019027464037059838820598E1
:10119000788218E0788A401E7882069800900022B3
:1011A00080212046019B00F0B7FC002818D10120C7
:1011B000A1680003814202D12069002812D0216871
:1011C000287808856D1C788A0028E3D1069800905D
:1011D000002240212046019B00F09EFC002808D000
:1011E0000320C2E728882168C005C00D0885AD1C12
:1011F000E9E72020707200203072B6E70220B4E7E1
:10120000FEE70000F0B5384887B042690121890443
:101210000A43426142690A400592426909010A4350
:10122000426142690A400592426949110A4342619A
:1012300040694C1208400590002221462B48FFF7D8
:10124000C0F82B4E002203213046FFF7BAF80122E6
:1012500009201146C006FFF7B4F809200022022138
:10126000C006FFF7AEF8012202212048FFF7A9F8D7
:101270000094002401250195029469461B480394BB
:10128000FEF7F8FF0320009002946946019503944D
:101290003046FEF7EFFF1127092002946946C00689
:1012A000019700950394FEF7E5FF022609200294BA
:1012B0006946C006009601950394FEF7DBFF0820FF
:1012C00000900C480190092069460296C006FEF77E
:1012D000D1FF029469460548019700960394FEF7F2
:1012E000C9FF07B0F0BD0000001002400004004834
:1012F000001400480000211010B50D480B49016092
:1013000000214160816001614161816107220162C8
:1013100012024162C260816207220163C2624163BC
:10132000FFF756FC002800D0FEE710BD003001405A
:101330003800002010B50121124886B089070160ED
:1013400000242F21846041600461611E8461C160BA
:10135000FFF71EFE002800D0FEE7012000030090EA
:1013600069460848FFF74CFE002800D0FEE70494C9
:1013700004A904480594FFF7E7FD002800D0FEE724
:1013800006B010BD9C00002010B50C480A49016051
:10139000E1214902416000218160C16001618161F8
:1013A000C1610822016242614162FFF717F800281B
:1013B00000D0FEE710BD000000440040DC0000202B
:1013C000704700008307FF22DB0E9A408907090E51
:1013D000994000280BDA0007000F083883080848F6
:1013E0009B001818C36993430B43C361704783087C
:1013F00004489B001B181868904308431860704706
:1014000000ED00E000E400E07047000010B5024885
:10141000FFF774FB10BD00003800002010B5016814
:10142000C968026C1180016C891C0164014640315D
:10143000CA88521ECA80C988002909D101684A6831
:1014400040239A434A60C18F002901D100F06EF811
:1014500010BD10B501464031CC880368026C012CE8
:1014600011D9DB681380026C921C0264CA88921E38
:10147000CA80CA88012A0DD1026853680124240356
:101480002343536006E01C7B531C03641470CA881A
:10149000521ECA80C988002909D101684A686023A0
:1014A0009A434A60C18F002901D100F03FF810BD76
:1014B00010B5816B02680988D160816B891C8163DA
:1014C000C18F491EC187C18F00290AD101684A68AE
:1014D00080239A434A604621095A002901D100F02D
:1014E00025F810BD10B5C38F0268816B022B07D39E
:1014F0000988D160816B891C8163C18F891E05E0D9
:101500004B1C836309781173C18F491EC187C18F3A
:1015100000290AD101684A6880239A434A6046211B
:10152000095A002901D100F001F810BD70B5044638
:10153000FEF74EFF0246206841682025A94341601E
:101540006421204600F024F8002802D0206E2843B1
:101550002066226E204601214030002A04D04177C7
:101560002046FFF7C9FA70BD427F4177042A204622
:1015700002D0FFF71FFC70BDFFF7B0FB70BD10B5C8
:10158000406A002146221152C187FFF7B5FA10BD0B
:10159000F8B50F460B46154600920321044600227B
:1015A000C90200F01BF82026002812D13B46002279
:1015B00080212046009500F05CF8002809D1032125
:1015C0003B46002249022046009500F007F800281B
:1015D00003D0206E304320660320F8BDF8B51D46C9
:1015E00017460E4604463DE0032149028E4205D1CE
:1015F000002F03D1017B684601700078681C31D050
:10160000002D05D0FEF7E4FE0699401AA84229D322
:1016100020684168E022914341606068C11FFD3944
:101620000CD10121A068C903884202D04911884227
:1016300004D1206801684022914301600120A16A21
:101640004003814207D121680A6882430A60216809
:101650000A6802430A600120403460770020207746
:101660000320F8BD206881683140B942BCD1002018
:10167000F8BDF8B51D4617460E46044633E0681C13
:1016800031D0002D05D0FEF7A3FE0699401AA842DE
:1016900029D320684168E022914341606068C11FFE
:1016A000FD390CD10121A068C903884202D049113B
:1016B000884204D1206801684022914301600120E2
:1016C000A16A4003814207D121680A6882430A6007
:1016D00021680A6802430A600120403460770020D4
:1016E00020770320F8BD206881683046884304D005
:1016F0000020B842C3D10020F8BD0120F9E77047AF
:1017000010B5FEF7A7FEFFF71BFC10BD10B592B099
:101710002020009001200024089009946846FEF7DC
:10172000FFFF002800D0FEE707200D9003200E9059
:101730000F94012110940DA8FEF7EEFE002800D0B2
:10174000FEE7FEF793FF7D21C900FEF7EFFCFFF7F0
:10175000DFFB0420FFF7CEFB00221146501EFEF7F0
:10176000D7FE12B010BD00001348016801221143DA
:1017700001604168114A114041600168104A1140FE
:1017800001600168012292049143016041683F2297
:10179000120491434160C16A09090901C162016BE8
:1017A000FF22D43291430163416B490849004163F0
:1017B0000021816070470000001002400CB8FF0853
:1017C000FFFFF6FEF0B502681A4B0124A4071A4D7C
:1017D000984203D0A04201D0A84203D17026B24360
:1017E0004E683243154E164F98420AD0A04208D098
:1017F000A84206D0134CA04203D0B04201D0B84258
:1018000004D103242402A243CC6822438024A243AF
:101810004C69224302608A68C2620A688262984206
:1018200003D0B04201D0B84201D10969016301215E
:101830004161F0BD002C0140000400400044014023
:10184000004801400020004030B58468FF252D028B
:101850001B021343AC430B432343836030BD8268B8
:1018600070239A430A4307210A438260704730B5C8
:10187000036A046A6408640004628469F025AC4366
:10188000120122430A24A3430B438261036230BD49
:1018900030B5036A1024A34303628469036A0F25E9
:1018A0002D031203AC432243A024A343090119438F
:1018B0008261016230BD10B5818CC90707D0016813
:1018C0004A6801235B049A43836A1A434A60818C05
:1018D000890707D501684A6801231B049A43C36A34
:1018E0001A434A60818C490707D501684A68012379
:1018F0009B049A43036B1A434A60818C090707D5FE
:1019000001684A680123DB039A43436B1A434A6028
:10191000818CC90607D50268916801231B0399438E
:10192000836B19439160818C890607D501688A68A9
:1019300001235B039A43C36B1A438A60818C490677
:1019400012D503685A6801210905046C8A432243B1
:101950005A60026C8A4207D10268516803235B0512
:101960009943436C19435160818C090607D501687E
:101970004A680123DB04806C9A4302434A6010BD2D
:10198000F8B500260446C666FEF722FD0546144952
:10199000206888421DD10068124F000709D5012137
:1019A0002B46002249052046009700F0B5F8002894
:1019B0000DD12068006840070BD501212B4600227D
:1019C00089052046009700F0A7F8002801D00320E1
:1019D000F8BD202060346072A07226720020F8BD2D
:1019E00000380140FFFFFF01F8B504462369A268F3
:1019F000E5691A43636910202B43002125681A43C7
:101A00002B680E463E4F3B4013432B6023685A68B9
:101A100003252D03AA43E5682A435A60236AA26975
:101A200025681A43AB680B273F02BB431343AB60E7
:101A3000344A2568954210D1334A126B9207920FAF
:101A40000ED0012A05D0022A05D0032A09D102208E
:101A500007E0042005E0082003E02C4A954200D16D
:101A600000200122E369D203934224D100280CD044
:101A700002280DD0042813D0082817D001260A09FF
:101A800012010807400F10432FE0FEF7F5FD09E0B3
:101A900061681F4A48088018FEF748FB81B2EEE7EC
:101AA000FEF7FAFD616840004A08F4E76168012228
:101AB00048081204EFE7002808D0022809D00428BB
:101AC0000BD0082814D001263046F8BDFEF7D4FD0F
:101AD00005E061680F4A48080CE0FEF7DDFD61682B
:101AE0004A088018FEF722FB80B22168C860EBE745
:101AF000616848088018FEF719FB80B2E860E3E7E8
:101B0000F369FFEF0038014000100240004400403C
:101B10000024F40000127A00FFB581B017460E468B
:101B200004460A9D1DE0681C1BD0002D05D0FEF761
:101B30004FFC0499401AA84213D920680168FF227B
:101B4000A1329143016020688168490849008160A1
:101B5000202060346072A07200202072032005B043
:101B6000F0BD2068C1693046884304D00020B842E7
:101B7000D9D00020F3E70120F9E700000FB410B539
:101B800003A9044B044A029800F018F810BC08BCE2
:101B900004B01847C52000082C00002002E008C847
:101BA000121F08C1002AFAD170477047002001E0D7
:101BB00001C1121F002AFBD170470000FFB58DB094
:101BC0000F460546002606E025280AD0109A0F99F0
:101BD00090476D1C761C28780028F5D1304611B04E
:101BE000F0BD00240121674A009400E004436D1C0D
:101BF0002B780846203B98401042F7D128782E28B1
:101C000015D10420044368786D1C2A280AD101CF1D
:101C10006D1C00900BE000990A22514330394018A6
:101C20006D1C00902878014630390929F3D92878AD
:101C3000692843D006DC0028D0D063280BD0642864
:101C400004D13BE073280FD075284CD0109A0F991F
:101C50009047761C94E038786946087200204872F4
:101C600002A80190012003E0386801900020C043E1
:101C70003F1D61070CD5002400E0641C00998C42D4
:101C80000FDA8442F9DB0199095D0029F5D108E0FA
:101C9000002400E0641C8442FCDB0199095D0029FA
:101CA000F8D1361907E0019801990078491C019193
:101CB000109A0F999047641EF5D261E00A200190B6
:101CC00001CF002802DA40422D2102E0210504D58F
:101CD0002B216A461172012103E0E10701D0202186
:101CE000F7E70C9104E00A20019001CF00210C914C
:101CF0000BA90B9108E00199FEF718FA0A460B9917
:101D00003032491E0B910A700028F4D10B9803A9B8
:101D1000081A20300190600701D5009801E00120E9
:101D200000900199884203DD01460198081A00E0FD
:101D300000200024009006E002A8109A005D0F9990
:101D40009047641C761C0C988442F5DB04E0109AE2
:101D500030200F999047761C0099481E009000296A
:101D6000F5DC08E00B980B990078491C0B91109A50
:101D70000F999047761C0199481E01900029F1DCCB
:101D80006D1C28E70928010010B5044CA260A3804F
:101D9000E060E18000F0F4F810BD000000000020D9
:101DA0001CB56A4601A90B4800F003FA00280FD1C0
:101DB00068460078002802D00B20C00100E00648E9
:101DC00000F0EAF8034800F004FA04490020087023
:101DD0001CBD00008C010020808000001400002049
:101DE000F8B50646002030801648C188C068FEF766
:101DF000DFFA012823D1144C204600F0E1FB401CFF
:101E00001DD0204600F0DCFB401C18D0204600F01E
:101E1000D7FB401C13D000252C460F2700F044F8B8
:101E200005280BD0391B88402843641C85B2102C30
:101E3000F4DB054800F0C4FB35800020F8BD052028
:101E4000F8BD0000000000201027000010B5144865
:101E500000F0EDFA020022D090790023002801D191
:101E60000123DB03107A002801D1802003430020E6
:101E7000105E00F059F94406640E02201C43105E07
:101E800000F052F94006400C204300F085F8044869
:101E900000F0D8FA002201210248FEF792FA10BDA4
:101EA000180000200014004870B50D48C188C068B3
:101EB000FEF77EFA00280FD10A4D284600F080FB7D
:101EC0000446284600F07CFB611C05D0411C03D071
:101ED000A04203DD012070BD052070BD002070BD53
:101EE0000000002010270000F3B5064681B0002056
:101EF000307000F089F9012806D1174800F060FB26
:101F00003238292801D30520FEBD00252C4607279D
:101F1000FFF7CAFF0528F7D0391B88402843641C07
:101F2000C5B2082CF4DB0298002811D00B4C00221B
:101F3000E188E068FEF745FAFF202D3000F0B0F8A8
:101F40000122E188E068FEF73CFA35700020FEBD12
:101F5000014800F035FBF8E71027000000000020E2
:101F600010B5064C0122A188A068FEF72AFA0122CA
:101F7000E188E068FEF725FA10BD000000000020AF
:101F800010B504480221417003210170FFF7E8FFFA
:101F900010BD00000000002070B50546174C012060
:101FA000A070C82000F07CF80022E188E068FEF70D
:101FB00008FA222000F074F80122E188E068FEF7B8
:101FC00000FA402000F06CF8284600F019F80025CF
:101FD00006280FD00022E188E068FEF7F2F94020E1
:101FE00000F05EF80122E188E068FEF7EAF9A570EA
:101FF000002070BDA570062070BD0000000000200C
:1020000010B50446000A00F009F8062805D0E0B231
:1020100000F004F8062800D0002010BDF8B5002517
:102020001C4C06460727791B3046C840C00714D011
:102030000022E188E068FEF7C4F9222000F030F8C1
:102040000122E188E068FEF7BCF9E188E068FEF76C
:10205000AFF9012814D1402015E00022E188E068A2
:10206000FEF7AFF9402000F01BF80122E188E0689C
:10207000FEF7A7F9E188E068FEF79AF9012801D098
:102080000620F8BD222000F00BF86D1C082DCADBDD
:102090000020F8BD000000200902014308B270478B
:1020A00000B5014600F088F9411800F085F9884232
:1020B000FBD300BD10B502490860FEF795FF10BDC7
:1020C0001000002013B50A23012269460248FFF7D9
:1020D00033F800981CBD0000DC00002070B54406F9
:1020E000C109640EC901102C0FD20E4D285D0028C5
:1020F0000BD000290AD0022807D1032C01D0062CCE
:1021000001D1FFF73DFF0120285570BD0128FCD10A
:1021100002202855032C01D0062CF6D1FFF730FF02
:1021200070BD0000A4010020C11C062909D93E2170
:102130004010C9433F2801DB3F2002E0884200DC19
:102140000846C0B2704770B515460E46044600F00A
:1021500022F8002801D0012070BD21786068465423
:102160002178A06845542078A178401CFDF7DEFF57
:102170002170002070BD70B50D4604468170284660
:1021800000F0E4F86060284600F0E0F8A060204627
:1021900000F02BF870BD10B5044681780078401C23
:1021A000FDF7C4FF6078814201D1012010BD0020FD
:1021B00010BD10B543780478A34201D1012010BDB1
:1021C0004468E35C0B7081684078085C1070002004
:1021D00010BD10B5044640782178884204D0A1781B
:1021E000401CFDF7A3FF617010BD10B50446002030
:1021F00020706070A1786068FDF7EDFFA178A0689D
:10220000FDF7E9FF10BD000010B51148C188C06896
:10221000FEF7CEF80F4C012804D1204600F0D0F98B
:10222000401C0ED0204600F0CBF97D2109018842E8
:1022300009DC411C07D0FF21F531884205DA042072
:1022400010BDFF2010BD032010BD012010BD0000F7
:1022500000000020102700000EB5FEF703F9FFF77D
:1022600055FAFEF7CFFFFFF747F8FFF78DF8FFF7B6
:1022700061F8002101202B4C019100900B466278FF
:1022800029492AA0FFF77AFC2D48FFF713FF00F039
:102290004BF92B481021F030FFF76DFF1021201D66
:1022A00000F0ABF80925ED0601232A460221254856
:1022B000FFF76AFD22482021B030FDF78CFF204A4D
:1022C0001F482023D032D11A6438FEF709FD1E4E74
:1022D000A078002801D000F035F908212846FEF743
:1022E00067F80028F4D0217802A8FFF7FDFD032845
:1022F0000AD00028ECD16846007A00F0AFF8032835
:1023000005D0022806D007E0FFF73AFEF3E7FFF713
:102310009DFD01E0FFF744FD227802213046FEF7E3
:1023200050F8D5E7140000200426000825730A722F
:1023300065762564207625642E25642E25640A00A2
:102340009C0000200004004800140048F0B50B3049
:10235000C108C900144F0026144A0FE003688B42DD
:102360000BD38B4205D95C1A4318456830C3083B30
:1023700000E04368136002C004E0021D10680028FA
:10238000ECD13046002803D13868002801D0002065
:10239000F0BD064A06481060064A121AD208D2005A
:1023A00044C001203860D7E734000020300000200E
:1023B000BC010020B8030020024800680068406AA1
:1023C000704700001000002070B50D46044600F074
:1023D00020F8002801D0012070BD20780C2261680F
:1023E000504308182946FDF7DDFE2078A178401CEF
:1023F000FDF79CFE2170002070BD10B50446817071
:102400000C204843FFF7A2FF6060204600F01AF856
:1024100010BD10B5044681780078401CFDF786FE9B
:102420006078814201D1012010BD002010BD4178AB
:102430000278914201D10020704740680C2251433C
:102440004018704710B500210170417081780C224E
:1024500051434068FDF7BFFE10BD0000F8B501070D
:1024600086070509890FB60F002D06D02C4C0329CD
:10247000207804D0022928D050E00520F8BD032E92
:1024800002D0002E41D01DE085420BD1254FFDF733
:1024900077FE0F21FDF760FE0806010C3846084361
:1024A000FFF77AFD607885420CD11E4F3F1DFDF786
:1024B00067FE0F21FDF750FE0806010C0F4338465A
:1024C000FFF76AFD002E24D028E0032E26D1854296
:1024D0000BD16846FFF784FC684600880106490E68
:1024E0007F2902D10005000F20706078854215D148
:1024F0006846FFF775FC684600880106490E7F298B
:102500000CD10005000F607008E0854201D1032066
:10251000F8BD6078854201D10220F8BD0020F8BDE9
:10252000000000200160000005480021C16601672D
:102530004167816701216C30C17081717047000073
:102540003801002012A0FFF719FB144D0024295D6B
:1025500013A0FFF713FB641C202CF8DB11A0FFF77E
:102560000DFB0024FF25134E013529463046FDF7AB
:1025700024FF6420FDF770FE641C642CF5DBBFF3C0
:102580004F8F0E490C48C860BFF34F8F00BFFDE767
:10259000535049204552524F520A00006C0100200E
:1025A000256420000A7265626F6F74696E672E2E53
:1025B0002E0A0000000400480400FA0500ED00E0C7
:1025C000F8B50746FFF7F8FE0D4C0090E188E0688B
:1025D000FDF7EEFE05460AE0FFF7EEFE0099461A0B
:1025E000002F04D0BE4202D90020C043F8BDE188CC
:1025F000E068FDF7DDFEA842EED03046F8BD0000F1
:10260000000000205553423456432050726F746FBF
:10261000636F6C20426F6172640A4170706C652058
:102620004465736B746F7020427573202841444277
:10263000290A64656B754E756B656D2032303232D8
:10264000000000000000000000010203040607086B
:102650000900000000010203040000007C260008BD
:1026600000000020380000009C1B0008B426000871
:102670003800002080070000AC1B000800000000AC
:10268000000000000000000000000000000000004A
:10269000000000000000000000000000000000003A
:1026A00000127A000000000000000000000000009E
:0426B0000000000026
:100DA0002846F0BD25140008B91400085B1400089B
:100DB000ED140008F8B50122170239464A48FFF73A
:100DC00000FB01F025FB494D6968411A7D20C000F8
:100DD00081427AD3464C01262078DE2800D06E70FE
:100DE000A078082805D14248A2792179203001F065
:100DF0009CF940480078002867D1A078092806D0DF
:100E0000032827D001282CD0022855D05DE0617935
:100E1000207901F033F9364A2C321080E179A0793B
:100E200001F02CF95080617A207A01F027F94042D4
:100E30009080607B9071A07B1072E07BD071207CF1
:100E40005072607C90722A4928482C31083001F099
:100E5000E7FA3AE0092000220221C006FFF7B1FAC2
:100E600033E0234820212038FFF7B5F92048CD2171
:100E70002038017061784170802383700221C17035
:100E80002978017100214171867108220646C171DD
:100E90005836745C002C0BD0022C02D0012C02D0EE
:100EA00004E0815402E00C461C438454521CD2B22C
:100EB000491C1029EDDB08E00326A05D002804D0C2
:100EC00001F0FEF8761C202EF7DB01F0A1FA084AAB
:100ED00020236860D11A0848FFF702FF0022394634
:100EE0000148FFF76EFAF8BD000400481400002026
:100EF00070010020020000203C0000200422044970
:100F00000428086902D09043086170471043FBE74A
:100F100000E000E070470000094910B5401E88421B
:100F200001D9012010BD074C60610321081F00F0AA
:100F30004DFA0020A06107202061002010BD0000B4
:100F4000FFFFFF0000E000E010B5FFF7E3FF10BD7A
:100F500070B502462032137F012B1BD0012313777B
:100F600002245477046865687026B5436560046898
:100F700065680E68354365600468A5688026B543DA
:100F8000A5600068846849680C438460537700203A
:100F9000107770BD022070BD70B5040005D02546E5
:100FA0002035687F002802D006E0012070BD0020B7
:100FB0002877204600F00AF802206877211D206873
:100FC00000F004FC01206877002070BD08B50068BF
:100FD00001218907884207D10448C16901221143D0
:100FE000C161C0691040009008BD000000100240BF
:100FF0000222014620314A77026813680120034328
:101000001360487700207047F8B505460446203540
:10101000287F012817D001272F77022068772268C0
:1010200090687726FF23B0431B02984390600868BE
:10103000502837D00EDC202857D006DC00284ED0B0
:10104000102840D14EE00220F8BD302850D0402872
:1010500039D13CE060282DD0702817D0012212032E
:10106000801A0ED090422ED1CB684A6889682068D9
:1010700000F0EEFB20688168012292031143816039
:1010800021E020688168C908C900F8E7CB684A6890
:101090008968206800F0DCFB21688868B043304331
:1010A000886010E0CA684968206800F0E4FB5021BD
:1010B000206806E0CA684968206800F0EDFB6021FE
:1010C000206800F0D0FB6F7700202877F8BDCA6851
:1010D0004968206800F0CFFB40212068F1E700213B
:1010E0002068EEE710212068EBE720212068E8E780
:1010F00030212068E5E7000000B500680E4987B0A0
:10110000884216D10D48C269012149040A43C261CF
:10111000C069084005900420009012200190012130
:10112000032003900291049109206946C006FFF74D
:10113000A1F807B000BD00000044004000100240CC
:10114000FFB5064604466036707A83B00D46202807
:1011500058D1002D0CD00598002809D00120A16895
:101160000003814207D12069002804D1E80702D09A
:10117000012007B0F0BD307A012843D00120307241
:101180000020E06621207072FFF722F901902746C7
:101190004037059838820598788218E0788A401E92
:1011A000788206980090002280212046019B00F062
:1011B000B7FC002818D10120A1680003814202D1A8
:1011C0002069002812D02168287808856D1C788A4B
:1011D0000028E3D106980090002240212046019B80
:1011E00000F09EFC002808D00320C2E72888216870
:1011F000C005C00D0885AD1CE9E7202070720020F5
:101200003072B6E70220B4E7FEE70000F0B53848D8
:1012100087B04269012189040A43426142690A4058
:101220000592426909010A43426142690A400592F6
:10123000426949110A43426140694C1208400590D5
:10124000002221462B48FFF7BCF82B4E0022032139
:101250003046FFF7B6F8012209201146C006FFF715
:10126000B0F8092000220221C006FFF7AAF80122E7
:1012700002212048FFF7A5F80094002401250195DC
:10128000029469461B480394FEF7F4FF0320009084
:1012900002946946019503943046FEF7EBFF11274F
:1012A000092002946946C006019700950394FEF751
:1012B000E1FF0226092002946946C00600960195C6
:1012C0000394FEF7D7FF082000900C4801900920F6
:1012D00069460296C006FEF7CDFF029469460548AE
:1012E000019700960394FEF7C5FF07B0F0BD00001C
:1012F00000100240000400480014004800002110C3
:1013000010B50D480B490160002141608160016109
:10131000416181610722016212024162C260816201
:1013200007220163C2624163FFF752FC002800D02C
:10133000FEE710BD003001403C00002010B5012147
:10134000124886B08907016000242F218460416023
:101350000461611E8461C160FFF71EFE002800D099
:10136000FEE701200003009069460848FFF74CFEA5
:10137000002800D0FEE7049404A904480594FFF770
:10138000E7FD002800D0FEE706B010BDA000002059
:1013900010B50C480A490160E12149024160002171
:1013A0008160C16001618161C161082201624261A5
:1013B0004162FFF713F8002800D0FEE710BD0000DF
:1013C00000440040E0000020704700008307FF2237
:1013D000DB0E9A408907090E994000280BDA0007B6
:1013E000000F0838830808489B001818C369934306
:1013F0000B43C3617047830804489B001B1818689F
:10140000904308431860704700ED00E000E400E0FE
:101410007047000010B50248FFF770FB10BD0000D8
:101420003C00002010B50168C968026C1180016C95
:10143000891C016401464031CA88521ECA80C9888D
:10144000002909D101684A6840239A434A60C18F44
:10145000002901D100F06EF810BD10B501464031F1
:10146000CC880368026C012C11D9DB681380026CF4
:10147000921C0264CA88921ECA80CA88012A0DD1B1
:1014800002685368012424032343536006E01C7B55
:10149000531C03641470CA88521ECA80C98800296C
:1014A00009D101684A6860239A434A60C18F0029C4
:1014B00001D100F03FF810BD10B5816B02680988BA
:1014C000D160816B891C8163C18F491EC187C18F27
:1014D00000290AD101684A6880239A434A6046215C
:1014E000095A002901D100F025F810BD10B5C38FAD
:1014F0000268816B022B07D30988D160816B891C3C
:101500008163C18F891E05E04B1C836309781173C9
:10151000C18F491EC187C18F00290AD101684A685D
:1015200080239A434A604621095A002901D100F0DC
:1015300001F810BD70B50446FEF74AFF0246206868
:1015400041682025A94341606421204600F024F829
:10155000002802D0206E28432066226E20460121FA
:101560004030002A04D041772046FFF7C5FA70BD0D
:10157000427F4177042A204602D0FFF71BFC70BD52
:10158000FFF7ACFB70BD10B5406A00214622115236
:10159000C187FFF7B1FA10BDF8B50F460B461546E7
:1015A0000092032104460022C90200F01BF8202605
:1015B000002812D13B46002280212046009500F0F1
:1015C0005CF8002809D103213B460022490220464D
:1015D000009500F007F8002803D0206E3043206605
:1015E0000320F8BDF8B51D4617460E4604463DE0FB
:1015F000032149028E4205D1002F03D1017B6846A9
:1016000001700078681C31D0002D05D0FEF7E0FE97
:101610000699401AA84229D320684168E0229143E4
:1016200041606068C11FFD390CD10121A068C90368
:10163000884202D04911884204D1206801684022C2
:10164000914301600120A16A4003814207D12168D2
:101650000A6882430A6021680A6802430A6001201E
:1016600040346077002020770320F8BD206881682F
:101670003140B942BCD10020F8BDF8B51D4617462F
:101680000E46044633E0681C31D0002D05D0FEF72D
:101690009FFE0699401AA84229D320684168E0229B
:1016A000914341606068C11FFD390CD10121A068E0
:1016B000C903884202D04911884204D120680168D8
:1016C0004022914301600120A16A4003814207D179
:1016D00021680A6882430A6021680A6802430A6036
:1016E000012040346077002020770320F8BD206877
:1016F00081683046884304D00020B842C3D100201E
:10170000F8BD0120F9E7704710B5FEF7A3FEFFF71B
:101710001BFC10BD10B592B02020009001200024C9
:10172000089009946846FEF7FBFF002800D0FEE70A
:1017300007200D9003200E900F94012110940DA806
:10174000FEF7EAFE002800D0FEE7FEF78FFF7D21BE
:10175000C900FEF7EBFCFFF7DFFB0420FFF7CEFB31
:1017600000221146501EFEF7D3FE12B010BD00003D
:10177000134801680122114301604168114A114078
:1017800041600168104A1140016001680122920421
:101790009143016041683F22120491434160C16A54
:1017A00009090901C162016BFF22D432914301632F
:1017B000416B490849004163002181607047000086
:1017C000001002400CB8FF08FFFFF6FEF0B50268FB
:1017D0001A4B0124A4071A4D984203D0A04201D00D
:1017E000A84203D17026B2434E683243154E164FBD
:1017F00098420AD0A04208D0A84206D0134CA0427A
:1018000003D0B04201D0B84204D103242402A24341
:10181000CC6822438024A2434C69224302608A6838
:10182000C2620A688262984203D0B04201D0B842D4
:1018300001D10969016301214161F0BD002C014022
:1018400000040040004401400048014000200040E6
:1018500030B58468FF252D021B021343AC430B43B4
:101860002343836030BD826870239A430A43072173
:101870000A438260704730B5036A046A64086400F2
:1018800004628469F025AC43120122430A24A34375
:101890000B438261036230BD30B5036A1024A34359
:1018A00003628469036A0F252D031203AC432243AC
:1018B000A024A343090119438261016230BD10B520
:1018C000818CC90707D001684A6801235B049A43E9
:1018D000836A1A434A60818C890707D501684A6880
:1018E00001231B049A43C36A1A434A60818C490747
:1018F00007D501684A6801239B049A43036B1A4386
:101900004A60818C090707D501684A680123DB0317
:101910009A43436B1A434A60818CC90607D5026813
:10192000916801231B039943836B19439160818C58
:10193000890607D501688A6801235B039A43C36B54
:101940001A438A60818C490612D503685A680121BE
:101950000905046C8A4322435A60026C8A4207D10B
:101960000268516803235B059943436C1943516036
:10197000818C090607D501684A680123DB04806C65
:101980009A4302434A6010BDF8B500260446C66675
:10199000FEF71EFD05461449206888421DD10068E7
:1019A000124F000709D501212B4600224905204688
:1019B000009700F0B5F800280DD1206800684007B6
:1019C0000BD501212B46002289052046009700F007
:1019D000A7F8002801D00320F8BD202060346072F1
:1019E000A07226720020F8BD00380140FFFFFF0101
:1019F000F8B504462369A268E5691A4363691020B3
:101A00002B43002125681A432B680E463E4F3B406E
:101A100013432B6023685A6803252D03AA43E56806
:101A20002A435A60236AA26925681A43AB680B27C8
:101A30003F02BB431343AB60344A2568954210D143
:101A4000334A126B9207920F0ED0012A05D0022A58
:101A500005D0032A09D1022007E0042005E0082070
:101A600003E02C4A954200D100200122E369D20311
:101A7000934224D100280CD002280DD0042813D082
:101A8000082817D001260A0912010807400F104341
:101A90002FE0FEF7F1FD09E061681F4A4808801851
:101AA000FEF744FB81B2EEE7FEF7F6FD6168400009
:101AB0004A08F4E76168012248081204EFE70028A9
:101AC00008D0022809D004280BD0082814D00126F9
:101AD0003046F8BDFEF7D0FD05E061680F4A4808C2
:101AE0000CE0FEF7D9FD61684A088018FEF71EFB7E
:101AF00080B22168C860EBE7616848088018FEF78B
:101B000015FB80B2E860E3E7F369FFEF00380140BE
:101B100000100240004400400024F40000127A004B
:101B2000FFB581B017460E4604460A9D1DE0681CAD
:101B30001BD0002D05D0FEF74BFC0499401AA8429B
:101B400013D920680168FF22A13291430160206807
:101B50008168490849008160202060346072A07269
:101B600000202072032005B0F0BD2068C169304616
:101B7000884304D00020B842D9D00020F3E70120E8
:101B8000F9E700000FB410B503A9044B044A02980A
:101B900000F018F810BC08BC04B01847A9200008D1
:101BA0003000002002E008C8121F08C1002AFAD144
:101BB00070477047002001E001C1121F002AFBD1CD
:101BC00070470000FFB58DB00F460546002606E0C1
:101BD00025280AD0109A0F9990476D1C761C2878FA
:101BE0000028F5D1304611B0F0BD00240121674A2C
:101BF000009400E004436D1C2B780846203B98407D
:101C00001042F7D128782E2815D104200443687893
:101C10006D1C2A280AD101CF6D1C00900BE00099A1
:101C20000A225143303940186D1C00902878014633
:101C300030390929F3D92878692843D006DC0028EF
:101C4000D0D063280BD0642804D13BE073280FD098
:101C500075284CD0109A0F999047761C94E03878EC
:101C6000694608720020487202A80190012003E032
:101C7000386801900020C0433F1D61070CD5002447
:101C800000E0641C00998C420FDA8442F9DB019970
:101C9000095D0029F5D108E0002400E0641C8442BD
:101CA000FCDB0199095D0029F8D1361907E001989C
:101CB00001990078491C0191109A0F999047641E70
:101CC000F5D261E00A20019001CF002802DA4042FB
:101CD0002D2102E0210504D52B216A461172012134
:101CE00003E0E10701D02021F7E70C9104E00A208E
:101CF000019001CF00210C910BA90B9108E00199F3
:101D0000FEF714FA0A460B993032491E0B910A70FD
:101D10000028F4D10B9803A9081A2030019060071D
:101D200001D5009801E0012000900199884203DD6F
:101D300001460198081A00E000200024009006E007
:101D400002A8109A005D0F999047641C761C0C98AD
:101D50008442F5DB04E0109A30200F999047761CFE
:101D60000099481E00900029F5DC08E00B980B99BB
:101D70000078491C0B91109A0F999047761C019995
:101D8000481E01900029F1DC6D1C28E7092801009C
:101D900010B5044CA260A380E060E18000F0E2F89E
:101DA00010BD0000000000201CB56A4601A90F48C4
:101DB00000F0F9F9002817D10D4C012211462046F8
:101DC000FEF7FFFA68460078002802D00B20C00119
:101DD00000E0084800F0D2F8002201212046FEF77A
:101DE000F0FA024800F0EFF91CBD0000900100205D
:101DF0000014004880800000F8B5064600203080BE
:101E00001648C188C068FEF7D3FA012823D1144CC4
:101E1000204600F01DFC401C1DD0204600F018FCA0
:101E2000401C18D0204600F013FC401C13D00025A5
:101E30002C460F2700F03EF805280BD0391B8840B0
:101E40002843641C85B2102CF4DB054800F000FC2C
:101E500035800020F8BD0520F8BD000000000020FE
:101E60001027000010B5124800F015FB02001DD02D
:101E700090790023002801D10123DB03107A002888
:101E800001D1802003430020105E00F03FF944069A
:101E9000640E02201C43105E00F038F94006400C2E
:101EA000204300F06BF8024800F000FB10BD00007A
:101EB0001C00002070B50D48C188C068FEF778FA94
:101EC00000280FD10A4D284600F0C2FB04462846E0
:101ED00000F0BEFB611C05D0411C03D0A04203DD15
:101EE000012070BD052070BD002070BD00000020E5
:101EF00010270000F8B506460020307000F07EF98B
:101F0000012808D10D4988700D4800F0A1FB323836
:101F1000292801D30520F8BD00252C460727FFF707
:101F2000C9FF0528F7D0391B88402843641CC5B277
:101F3000082CF4DB35700020F8BD00000000002004
:101F40001027000010B5064C0122A188A068FEF7FA
:101F500038FA0122E188E068FEF733FA10BD00008C
:101F60000000002010B504480221417003210170D7
:101F7000FFF7E8FF10BD00000000002070B5054627
:101F8000174C0120A070C82000F07CF80022E188E6
:101F9000E068FEF716FA222000F074F80122E188CA
:101FA000E068FEF70EFA402000F06CF8284600F0DA
:101FB00019F8002506280FD00022E188E068FEF716
:101FC00000FA402000F05EF80122E188E068FEF7A8
:101FD000F8F9A570002070BDA570062070BD000046
:101FE0000000002010B50446000A00F009F8062899
:101FF00005D0E0B200F004F8062800D0002010BDA3
:10200000F8B500251C4C06460727791B3046C8400A
:10201000C00714D00022E188E068FEF7D2F9222040
:1020200000F030F80122E188E068FEF7CAF9E188A3
:10203000E068FEF7BDF9012814D1402015E0002228
:10204000E188E068FEF7BDF9402000F01BF80122AE
:10205000E188E068FEF7B5F9E188E068FEF7A8F9E5
:10206000012801D00620F8BD222000F00BF86D1CDD
:10207000082DCADB0020F8BD000000200902014342
:1020800008B2704700B5014600F0C2F9411800F0EF
:10209000BFF98842FBD300BD10B502490860FEF7C6
:1020A000A7FF10BD1000002013B50A2301226946C6
:1020B0000248FFF745F800981CBD0000E000002032
:1020C00070B54406C109640EC901102C0FD20E4D23
:1020D000285D00280BD000290AD0022807D1032C44
:1020E00001D0062C01D1FFF73DFF0120285570BD1E
:1020F0000128FCD102202855032C01D0062CF6D152
:10210000FFF730FF70BD0000A8010020C11C0629A8
:1021100009D93E214010C9433F2801DB3F2002E09E
:10212000884200DC0846C0B2704770B515460E46BE
:10213000044600F02AF8002801D0012070BD217863
:10214000606846542178A06845542078A178401CE6
:10215000FDF7ECFF2170002070BD70B50D46044600
:102160008170284600F01EF96060284600F01AF9D8
:10217000A060204600F033F870BD417800788142BD
:1021800001D1012070470020704710B504468178C6
:102190000078401CFDF7CAFF6078814201D1012020
:1021A00010BD002010BD10B543780478A34201D1C2
:1021B000012010BD4468E35C0B7081684078085CC6
:1021C0001070002010BD10B5044640782178884278
:1021D00004D0A178401CFDF7A9FF617010BD10B5B7
:1021E0000446002020706070A1786068FDF7F3FF5E
:1021F000A178A068FDF7EFFF10BD000010B51148F1
:10220000C188C068FEF7D4F80F4C012804D12046DD
:1022100000F01EFA401C0ED0204600F019FA7D2175
:102220000901884209DC411C07D0FF21F5318842B1
:1022300005DA042010BDFF2010BD032010BD0120D1
:1022400010BD000000000020102700000EB5FEF7B2
:1022500009F9FFF75FFAFEF7D9FFFFF751F8FFF72B
:1022600097F8FFF76BF800210120414F0191009092
:102270000B463A783F4940A0FFF784FC4348FFF7FC
:102280000BFF00F085F941481021F030FFF765FFA2
:1022900038461021083000F0DCF8002409222646D8
:1022A0000123D20602213A48FFF772FD3748202168
:1022B000B030FDF790FF354A34482023D032D11A90
:1022C0006438FEF70DFD7878002801D000F082F91F
:1022D00009200821C006FEF76BF80028F3D002A8F9
:1022E000FFF708FE00212B4A0328117011D00028A7
:1022F000E9D16846007A05092448F030FFF73DFF30
:10230000002809D01A48083000F0AFF800280BD098
:1023100011E0FFF727FEECE71F480078854201D067
:10232000012408E0002406E01C480078854201D022
:10233000012600E000262546354301D000F036F99D
:102340006846007A00F0BEF8032802D0022803D0C5
:1023500004E0FFF787FD01E0FFF726FD002D01D027
:10236000012200E0002202210D48FEF72AF8AAE728
:10237000140000209426000825730A7265762564EF
:10238000207625642E25642E25640A00A0000020F6
:10239000000400480200002001000020000000208E
:1023A00000140048F0B50B30C108C900144F0026D6
:1023B000144A0FE003688B420BD38B4205D95C1A99
:1023C0004318456830C3083B00E04368136002C00F
:1023D00004E0021D10680028ECD13046002803D12B
:1023E0003868002801D00020F0BD064A0648106079
:1023F000064A121AD208D20044C001203860D7E73A
:102400003800002034000020BC010020B803002068
:10241000024800680068406A704700001000002011
:1024200070B50D46044600F028F8002801D00120C0
:1024300070BD20780C226168504308182946FDF7CA
:10244000B1FE2078A178401CFDF770FE21700020BD
:1024500070BD10B5044681700C204843FFF7A2FF01
:102460006060204600F022F810BD4178007881427B
:1024700001D1012070470020704710B504468178D3
:102480000078401CFDF752FE6078814201D10120A6
:1024900010BD002010BD41780278914201D100208A
:1024A000704740680C2251434018704710B5002116
:1024B0000170417081780C2251434068FDF78BFE1A
:1024C00010BD0000F8B5010786070509890FB60F92
:1024D000002D06D02C4C0329207804D0022928D0C6
:1024E00050E00520F8BD032E02D0002E41D01DE0A3
:1024F00085420BD1254FFDF743FE0F21FDF72CFE42
:102500000806010C38460843FFF738FD607885421D
:102510000CD11E4F3F1DFDF733FE0F21FDF71CFEB2
:102520000806010C0F433846FFF728FD002E24D083
:1025300028E0032E26D185420BD16846FFF75CFCCC
:10254000684600880106490E7F2902D10005000F68
:1025500020706078854215D16846FFF74DFC6846CB
:1025600000880106490E7F290CD10005000F60701C
:1025700008E0854201D10320F8BD6078854201D191
:102580000220F8BD0020F8BD00000020016000001E
:1025900005480021C16601674167816701216C30F0
:1025A000C1708171704700003C01002010B5084CDB
:1025B0000022E188E068FDF704FFFF202D30FFF7DF
:1025C00061FD0122E188E068FDF7FBFE10BD00001F
:1025D0000000002012A0FFF7D5FA144D0024295D59
:1025E00013A0FFF7CFFA641C202CF8DB11A0FFF733
:1025F000C9FA0024FF25134E013529463046FDF760
:10260000DCFE6420FDF728FE641C642CF5DBBFF3C0
:102610004F8F0E490C48C860BFF34F8F00BFFDE7D6
:10262000535049204552524F520A00007001002079
:10263000256420000A7265626F6F74696E672E2EC2
:102640002E0A0000000400480400FA0500ED00E036
:10265000F8B50746FFF7DCFE0D4C0090E188E06816
:10266000FDF7A6FE05460AE0FFF7D2FE0099461ADE
:10267000002F04D0BE4202D90020C043F8BDE1883B
:10268000E068FDF795FEA842EED03046F8BD0000A8
:10269000000000205553423456432050726F746F2F
:1026A000636F6C20426F6172640A4170706C6520C8
:1026B0004465736B746F70204275732028414442E7
:1026C000290A64656B754E756B656D203230323248
:1026D00000000000000000000001020304060708DB
:1026E0000900000000010203040000000C2700089C
:1026F000000000203C000000A41B00084827000840
:102700003C0000207C070000B41B00080000000013
:1027100000000000000000000000000000000000B9
:1027200000000000000000000000000000000000A9
:102730000000000000127A0000000000000000000D
:08274000000000000000000091
:04000005080000C12E
:00000001FF

View File

File diff suppressed because it is too large Load Diff

View File

@@ -27,8 +27,6 @@ Section Cross References
adb.o(i.adb_recv_cmd) refers to adb.o(i.look_for_atten) for look_for_atten
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 adb.o(i.adb_read_bit) for adb_read_bit
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 delay_us.o(i.delay_us) for delay_us
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
@@ -51,6 +49,9 @@ Section Cross References
adb.o(i.parse_adb_cmd) refers to adb.o(i.adb_send_response_16b) for adb_send_response_16b
adb.o(i.parse_adb_cmd) refers to adb.o(i.adb_listen_16b) for adb_listen_16b
adb.o(i.parse_adb_cmd) refers to adb.o(.data) for .data
adb.o(i.send_srq) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
adb.o(i.send_srq) refers to delay_us.o(i.delay_us) for delay_us
adb.o(i.send_srq) refers to adb.o(.data) for .data
adb.o(i.wait_until_change) refers to delay_us.o(i.micros) for micros
adb.o(i.wait_until_change) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_ReadPin) for HAL_GPIO_ReadPin
adb.o(i.wait_until_change) refers to adb.o(.data) for .data
@@ -74,15 +75,16 @@ Section Cross References
helpers.o(i.mouse_buf_pop) refers to uidiv.o(.text) for __aeabi_uidivmod
helpers.o(i.mouse_buf_reset) refers to memseta.o(.text) for __aeabi_memclr
main.o(i.HAL_SPI_TxRxCpltCallback) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
main.o(i.HAL_SPI_TxRxCpltCallback) refers to delay_us.o(i.micros) for micros
main.o(i.HAL_SPI_TxRxCpltCallback) refers to helpers.o(i.kb_buf_add) for kb_buf_add
main.o(i.HAL_SPI_TxRxCpltCallback) refers to main.o(i.byte_to_int16_t) for byte_to_int16_t
main.o(i.HAL_SPI_TxRxCpltCallback) refers to helpers.o(i.mouse_buf_add) for mouse_buf_add
main.o(i.HAL_SPI_TxRxCpltCallback) refers to memseta.o(.text) for __aeabi_memclr4
main.o(i.HAL_SPI_TxRxCpltCallback) refers to main.o(i.handle_protocol_switch) for handle_protocol_switch
main.o(i.HAL_SPI_TxRxCpltCallback) refers to stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT) for HAL_SPI_TransmitReceive_IT
main.o(i.HAL_SPI_TxRxCpltCallback) refers to adb.o(.data) for adb_write_in_progress
main.o(i.HAL_SPI_TxRxCpltCallback) refers to main.o(.bss) for .bss
main.o(i.HAL_SPI_TxRxCpltCallback) refers to main.o(.data) for .data
main.o(i.HAL_SPI_TxRxCpltCallback) refers to main.o(.bss) for .bss
main.o(i.HAL_SPI_TxRxCpltCallback) refers to adb.o(.data) for adb_rw_in_progress
main.o(i.MX_GPIO_Init) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
main.o(i.MX_GPIO_Init) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_Init) for HAL_GPIO_Init
main.o(i.MX_SPI1_Init) refers to stm32f0xx_hal_spi.o(i.HAL_SPI_Init) for HAL_SPI_Init
@@ -101,15 +103,14 @@ Section Cross References
main.o(i.SystemClock_Config) refers to stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_CLKSourceConfig) for HAL_SYSTICK_CLKSourceConfig
main.o(i.SystemClock_Config) refers to stm32f0xx_hal_cortex.o(i.HAL_NVIC_SetPriority) for HAL_NVIC_SetPriority
main.o(i.adb_keyboard_update) refers to helpers.o(i.kb_buf_peek) for kb_buf_peek
main.o(i.adb_keyboard_update) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
main.o(i.adb_keyboard_update) refers to adb.o(i.adb_send_response_16b) for adb_send_response_16b
main.o(i.adb_keyboard_update) refers to helpers.o(i.kb_buf_pop) for kb_buf_pop
main.o(i.adb_keyboard_update) refers to main.o(.bss) for .bss
main.o(i.adb_keyboard_update) refers to main.o(.data) for .data
main.o(i.adb_mouse_update) refers to helpers.o(i.mouse_buf_peek) for mouse_buf_peek
main.o(i.adb_mouse_update) refers to main.o(i.int16_to_uint6) for int16_to_uint6
main.o(i.adb_mouse_update) refers to adb.o(i.adb_send_response_16b) for adb_send_response_16b
main.o(i.adb_mouse_update) refers to helpers.o(i.mouse_buf_reset) for mouse_buf_reset
main.o(i.adb_mouse_update) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
main.o(i.adb_mouse_update) refers to main.o(.data) for .data
main.o(i.fputc) refers to stm32f0xx_hal_uart.o(i.HAL_UART_Transmit) for HAL_UART_Transmit
main.o(i.fputc) refers to main.o(.bss) for .bss
@@ -133,14 +134,18 @@ Section Cross References
main.o(i.main) refers to main.o(i.spi_error_dump_reboot) for spi_error_dump_reboot
main.o(i.main) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_ReadPin) for HAL_GPIO_ReadPin
main.o(i.main) refers to adb.o(i.adb_recv_cmd) for adb_recv_cmd
main.o(i.main) refers to adb.o(i.parse_adb_cmd) for parse_adb_cmd
main.o(i.main) refers to helpers.o(i.kb_buf_is_empty) for kb_buf_is_empty
main.o(i.main) refers to helpers.o(i.mouse_buf_is_empty) for mouse_buf_is_empty
main.o(i.main) refers to adb.o(i.adb_reset) for adb_reset
main.o(i.main) refers to adb.o(i.send_srq) for send_srq
main.o(i.main) refers to adb.o(i.parse_adb_cmd) for parse_adb_cmd
main.o(i.main) refers to main.o(i.adb_mouse_update) for adb_mouse_update
main.o(i.main) refers to main.o(i.adb_keyboard_update) for adb_keyboard_update
main.o(i.main) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
main.o(i.main) refers to main.o(.data) for .data
main.o(i.main) refers to main.o(.constdata) for .constdata
main.o(i.main) refers to main.o(.bss) for .bss
main.o(i.main) refers to adb.o(.data) for adb_rw_in_progress
main.o(i.protocol_status_lookup_init) refers to main.o(.bss) for .bss
main.o(i.spi_error_dump_reboot) refers to printf3.o(i.__0printf$3) for __2printf
main.o(i.spi_error_dump_reboot) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_TogglePin) for HAL_GPIO_TogglePin
@@ -1082,15 +1087,12 @@ Removing Unused input sections from the image.
Removing adb.o(.rev16_text), (4 bytes).
Removing adb.o(.revsh_text), (4 bytes).
Removing adb.o(i.wtf), (2 bytes).
Removing adb.o(.data), (83 bytes).
Removing adb.o(.data), (1 bytes).
Removing delay_us.o(.rev16_text), (4 bytes).
Removing delay_us.o(.revsh_text), (4 bytes).
Removing helpers.o(.rev16_text), (4 bytes).
Removing helpers.o(.revsh_text), (4 bytes).
Removing helpers.o(i.kb_buf_is_empty), (16 bytes).
Removing helpers.o(i.mouse_buf_is_empty), (16 bytes).
Removing helpers.o(i.mouse_buf_pop), (24 bytes).
Removing main.o(.rev16_text), (4 bytes).
Removing main.o(.revsh_text), (4 bytes).
@@ -1573,7 +1575,7 @@ Removing Unused input sections from the image.
Removing stm32f0xx_hal_tim.o(i.__ARM_common_switch8), (26 bytes).
Removing depilogue.o(i.__ARM_clz), (46 bytes).
492 unused section(s) (total 34832 bytes) removed from the image.
489 unused section(s) (total 34798 bytes) removed from the image.
==============================================================================
@@ -1605,46 +1607,46 @@ Image Symbol Table
../Src/main.c 0x00000000 Number 0 main.o ABSOLUTE
../Src/stm32f0xx_hal_msp.c 0x00000000 Number 0 stm32f0xx_hal_msp.o ABSOLUTE
../Src/stm32f0xx_it.c 0x00000000 Number 0 stm32f0xx_it.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 idiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE
../clib/microlib/malloc/mvars.c 0x00000000 Number 0 mvars.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE
../clib/microlib/printf/stubs.s 0x00000000 Number 0 stubs.o ABSOLUTE
../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE
../clib/microlib/stdlib/rand.c 0x00000000 Number 0 rand.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE
../clib/microlib/string/memset.c 0x00000000 Number 0 memseta.o ABSOLUTE
../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE
../fplib/microlib/fpadd.c 0x00000000 Number 0 dadd.o ABSOLUTE
@@ -1729,121 +1731,124 @@ Image Symbol Table
i.HAL_SPI_RxCpltCallback 0x08000cdc Section 0 stm32f0xx_hal_spi.o(i.HAL_SPI_RxCpltCallback)
i.HAL_SPI_TransmitReceive_IT 0x08000ce0 Section 0 stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT)
i.HAL_SPI_TxRxCpltCallback 0x08000db4 Section 0 main.o(i.HAL_SPI_TxRxCpltCallback)
i.HAL_SYSTICK_CLKSourceConfig 0x08000ef4 Section 0 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_CLKSourceConfig)
i.HAL_SYSTICK_Callback 0x08000f0c Section 0 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Callback)
i.HAL_SYSTICK_Config 0x08000f10 Section 0 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Config)
i.HAL_SYSTICK_IRQHandler 0x08000f40 Section 0 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_IRQHandler)
i.HAL_TIMEx_MasterConfigSynchronization 0x08000f48 Section 0 stm32f0xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization)
i.HAL_TIM_Base_Init 0x08000f90 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Init)
i.HAL_TIM_Base_MspInit 0x08000fc4 Section 0 stm32f0xx_hal_msp.o(i.HAL_TIM_Base_MspInit)
i.HAL_TIM_Base_Start 0x08000fe8 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start)
i.HAL_TIM_ConfigClockSource 0x08001000 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_ConfigClockSource)
i.HAL_UART_MspInit 0x080010f0 Section 0 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit)
i.HAL_UART_Transmit 0x08001138 Section 0 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit)
i.HardFault_Handler 0x08001200 Section 0 stm32f0xx_it.o(i.HardFault_Handler)
i.MX_GPIO_Init 0x08001204 Section 0 main.o(i.MX_GPIO_Init)
MX_GPIO_Init 0x08001205 Thumb Code 226 main.o(i.MX_GPIO_Init)
i.MX_SPI1_Init 0x080012f8 Section 0 main.o(i.MX_SPI1_Init)
MX_SPI1_Init 0x080012f9 Thumb Code 52 main.o(i.MX_SPI1_Init)
i.MX_TIM2_Init 0x08001334 Section 0 main.o(i.MX_TIM2_Init)
MX_TIM2_Init 0x08001335 Thumb Code 80 main.o(i.MX_TIM2_Init)
i.MX_USART2_UART_Init 0x08001388 Section 0 main.o(i.MX_USART2_UART_Init)
MX_USART2_UART_Init 0x08001389 Thumb Code 46 main.o(i.MX_USART2_UART_Init)
i.NMI_Handler 0x080013c0 Section 0 stm32f0xx_it.o(i.NMI_Handler)
i.NVIC_SetPriority 0x080013c4 Section 0 stm32f0xx_hal_cortex.o(i.NVIC_SetPriority)
NVIC_SetPriority 0x080013c5 Thumb Code 60 stm32f0xx_hal_cortex.o(i.NVIC_SetPriority)
i.PendSV_Handler 0x08001408 Section 0 stm32f0xx_it.o(i.PendSV_Handler)
i.SPI1_IRQHandler 0x0800140c Section 0 stm32f0xx_it.o(i.SPI1_IRQHandler)
i.SPI_2linesRxISR_16BIT 0x0800141c Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT)
SPI_2linesRxISR_16BIT 0x0800141d Thumb Code 54 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT)
i.SPI_2linesRxISR_8BIT 0x08001452 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT)
SPI_2linesRxISR_8BIT 0x08001453 Thumb Code 94 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT)
i.SPI_2linesTxISR_16BIT 0x080014b0 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT)
SPI_2linesTxISR_16BIT 0x080014b1 Thumb Code 52 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT)
i.SPI_2linesTxISR_8BIT 0x080014e4 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT)
SPI_2linesTxISR_8BIT 0x080014e5 Thumb Code 72 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT)
i.SPI_CloseRxTx_ISR 0x0800152c Section 0 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR)
SPI_CloseRxTx_ISR 0x0800152d Thumb Code 82 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR)
i.SPI_DMAAbortOnError 0x0800157e Section 0 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError)
SPI_DMAAbortOnError 0x0800157f Thumb Code 18 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError)
i.SPI_EndRxTxTransaction 0x08001590 Section 0 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction)
SPI_EndRxTxTransaction 0x08001591 Thumb Code 76 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction)
i.SPI_WaitFifoStateUntilTimeout 0x080015dc Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout)
SPI_WaitFifoStateUntilTimeout 0x080015dd Thumb Code 150 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout)
i.SPI_WaitFlagStateUntilTimeout 0x08001672 Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)
SPI_WaitFlagStateUntilTimeout 0x08001673 Thumb Code 140 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)
i.SVC_Handler 0x080016fe Section 0 stm32f0xx_it.o(i.SVC_Handler)
i.SysTick_Handler 0x08001700 Section 0 stm32f0xx_it.o(i.SysTick_Handler)
i.SystemClock_Config 0x0800170c Section 0 main.o(i.SystemClock_Config)
i.SystemInit 0x08001768 Section 0 system_stm32f0xx.o(i.SystemInit)
i.TIM_Base_SetConfig 0x080017c4 Section 0 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
i.TIM_ETR_SetConfig 0x08001848 Section 0 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
i.TIM_ITRx_SetConfig 0x0800185e Section 0 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
TIM_ITRx_SetConfig 0x0800185f Thumb Code 16 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
i.TIM_TI1_ConfigInputStage 0x0800186e Section 0 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
TIM_TI1_ConfigInputStage 0x0800186f Thumb Code 34 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
i.TIM_TI2_ConfigInputStage 0x08001890 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
TIM_TI2_ConfigInputStage 0x08001891 Thumb Code 38 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
i.UART_AdvFeatureConfig 0x080018b6 Section 0 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
i.UART_CheckIdleState 0x08001980 Section 0 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
i.UART_SetConfig 0x080019e8 Section 0 stm32f0xx_hal_uart.o(i.UART_SetConfig)
i.UART_WaitOnFlagUntilTimeout 0x08001b18 Section 0 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
i.__0printf$3 0x08001b7c Section 0 printf3.o(i.__0printf$3)
i.__scatterload_copy 0x08001b9c Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x08001baa Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x08001bac Section 14 handlers.o(i.__scatterload_zeroinit)
i._printf_core 0x08001bbc Section 0 printf3.o(i._printf_core)
_printf_core 0x08001bbd Thumb Code 456 printf3.o(i._printf_core)
i.adb_init 0x08001d88 Section 0 adb.o(i.adb_init)
i.adb_keyboard_update 0x08001da0 Section 0 main.o(i.adb_keyboard_update)
i.adb_listen_16b 0x08001de0 Section 0 adb.o(i.adb_listen_16b)
i.adb_mouse_update 0x08001e4c Section 0 main.o(i.adb_mouse_update)
i.adb_read_bit 0x08001ea8 Section 0 adb.o(i.adb_read_bit)
i.adb_recv_cmd 0x08001ee8 Section 0 adb.o(i.adb_recv_cmd)
i.adb_release_lines 0x08001f60 Section 0 adb.o(i.adb_release_lines)
i.adb_reset 0x08001f80 Section 0 adb.o(i.adb_reset)
i.adb_send_response_16b 0x08001f98 Section 0 adb.o(i.adb_send_response_16b)
i.adb_write_16 0x08002000 Section 0 adb.o(i.adb_write_16)
i.adb_write_byte 0x0800201c Section 0 adb.o(i.adb_write_byte)
i.byte_to_int16_t 0x08002098 Section 0 main.o(i.byte_to_int16_t)
i.delay_us 0x080020a0 Section 0 delay_us.o(i.delay_us)
i.delay_us_init 0x080020b4 Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x080020c4 Section 0 main.o(i.fputc)
i.handle_protocol_switch 0x080020dc Section 0 main.o(i.handle_protocol_switch)
i.int16_to_uint6 0x08002128 Section 0 main.o(i.int16_to_uint6)
i.kb_buf_add 0x08002146 Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x08002176 Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_is_full 0x08002196 Section 0 helpers.o(i.kb_buf_is_full)
i.kb_buf_peek 0x080021b2 Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x080021d2 Section 0 helpers.o(i.kb_buf_pop)
i.kb_buf_reset 0x080021ea Section 0 helpers.o(i.kb_buf_reset)
i.look_for_atten 0x08002208 Section 0 adb.o(i.look_for_atten)
i.main 0x08002258 Section 0 main.o(i.main)
i.malloc 0x0800234c Section 0 malloc.o(i.malloc)
i.micros 0x080023b8 Section 0 delay_us.o(i.micros)
i.mouse_buf_add 0x080023c8 Section 0 helpers.o(i.mouse_buf_add)
i.mouse_buf_init 0x080023fa Section 0 helpers.o(i.mouse_buf_init)
i.mouse_buf_is_full 0x08002412 Section 0 helpers.o(i.mouse_buf_is_full)
i.mouse_buf_peek 0x0800242e Section 0 helpers.o(i.mouse_buf_peek)
i.mouse_buf_reset 0x08002444 Section 0 helpers.o(i.mouse_buf_reset)
i.parse_adb_cmd 0x0800245c Section 0 adb.o(i.parse_adb_cmd)
i.protocol_status_lookup_init 0x08002528 Section 0 main.o(i.protocol_status_lookup_init)
i.spi_error_dump_reboot 0x08002544 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_until_change 0x080025c0 Section 0 adb.o(i.wait_until_change)
.constdata 0x08002604 Section 61 main.o(.constdata)
.constdata 0x08002641 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08002651 Section 8 system_stm32f0xx.o(.constdata)
i.HAL_SYSTICK_CLKSourceConfig 0x08000efc Section 0 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_CLKSourceConfig)
i.HAL_SYSTICK_Callback 0x08000f14 Section 0 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Callback)
i.HAL_SYSTICK_Config 0x08000f18 Section 0 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Config)
i.HAL_SYSTICK_IRQHandler 0x08000f48 Section 0 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_IRQHandler)
i.HAL_TIMEx_MasterConfigSynchronization 0x08000f50 Section 0 stm32f0xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization)
i.HAL_TIM_Base_Init 0x08000f98 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Init)
i.HAL_TIM_Base_MspInit 0x08000fcc Section 0 stm32f0xx_hal_msp.o(i.HAL_TIM_Base_MspInit)
i.HAL_TIM_Base_Start 0x08000ff0 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start)
i.HAL_TIM_ConfigClockSource 0x08001008 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_ConfigClockSource)
i.HAL_UART_MspInit 0x080010f8 Section 0 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit)
i.HAL_UART_Transmit 0x08001140 Section 0 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit)
i.HardFault_Handler 0x08001208 Section 0 stm32f0xx_it.o(i.HardFault_Handler)
i.MX_GPIO_Init 0x0800120c Section 0 main.o(i.MX_GPIO_Init)
MX_GPIO_Init 0x0800120d Thumb Code 226 main.o(i.MX_GPIO_Init)
i.MX_SPI1_Init 0x08001300 Section 0 main.o(i.MX_SPI1_Init)
MX_SPI1_Init 0x08001301 Thumb Code 52 main.o(i.MX_SPI1_Init)
i.MX_TIM2_Init 0x0800133c Section 0 main.o(i.MX_TIM2_Init)
MX_TIM2_Init 0x0800133d Thumb Code 80 main.o(i.MX_TIM2_Init)
i.MX_USART2_UART_Init 0x08001390 Section 0 main.o(i.MX_USART2_UART_Init)
MX_USART2_UART_Init 0x08001391 Thumb Code 46 main.o(i.MX_USART2_UART_Init)
i.NMI_Handler 0x080013c8 Section 0 stm32f0xx_it.o(i.NMI_Handler)
i.NVIC_SetPriority 0x080013cc Section 0 stm32f0xx_hal_cortex.o(i.NVIC_SetPriority)
NVIC_SetPriority 0x080013cd Thumb Code 60 stm32f0xx_hal_cortex.o(i.NVIC_SetPriority)
i.PendSV_Handler 0x08001410 Section 0 stm32f0xx_it.o(i.PendSV_Handler)
i.SPI1_IRQHandler 0x08001414 Section 0 stm32f0xx_it.o(i.SPI1_IRQHandler)
i.SPI_2linesRxISR_16BIT 0x08001424 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT)
SPI_2linesRxISR_16BIT 0x08001425 Thumb Code 54 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT)
i.SPI_2linesRxISR_8BIT 0x0800145a Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT)
SPI_2linesRxISR_8BIT 0x0800145b Thumb Code 94 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT)
i.SPI_2linesTxISR_16BIT 0x080014b8 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT)
SPI_2linesTxISR_16BIT 0x080014b9 Thumb Code 52 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT)
i.SPI_2linesTxISR_8BIT 0x080014ec Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT)
SPI_2linesTxISR_8BIT 0x080014ed Thumb Code 72 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT)
i.SPI_CloseRxTx_ISR 0x08001534 Section 0 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR)
SPI_CloseRxTx_ISR 0x08001535 Thumb Code 82 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR)
i.SPI_DMAAbortOnError 0x08001586 Section 0 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError)
SPI_DMAAbortOnError 0x08001587 Thumb Code 18 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError)
i.SPI_EndRxTxTransaction 0x08001598 Section 0 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction)
SPI_EndRxTxTransaction 0x08001599 Thumb Code 76 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction)
i.SPI_WaitFifoStateUntilTimeout 0x080015e4 Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout)
SPI_WaitFifoStateUntilTimeout 0x080015e5 Thumb Code 150 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout)
i.SPI_WaitFlagStateUntilTimeout 0x0800167a Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)
SPI_WaitFlagStateUntilTimeout 0x0800167b Thumb Code 140 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)
i.SVC_Handler 0x08001706 Section 0 stm32f0xx_it.o(i.SVC_Handler)
i.SysTick_Handler 0x08001708 Section 0 stm32f0xx_it.o(i.SysTick_Handler)
i.SystemClock_Config 0x08001714 Section 0 main.o(i.SystemClock_Config)
i.SystemInit 0x08001770 Section 0 system_stm32f0xx.o(i.SystemInit)
i.TIM_Base_SetConfig 0x080017cc Section 0 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
i.TIM_ETR_SetConfig 0x08001850 Section 0 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
i.TIM_ITRx_SetConfig 0x08001866 Section 0 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
TIM_ITRx_SetConfig 0x08001867 Thumb Code 16 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
i.TIM_TI1_ConfigInputStage 0x08001876 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
TIM_TI1_ConfigInputStage 0x08001877 Thumb Code 34 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
i.TIM_TI2_ConfigInputStage 0x08001898 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
TIM_TI2_ConfigInputStage 0x08001899 Thumb Code 38 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
i.UART_AdvFeatureConfig 0x080018be Section 0 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
i.UART_CheckIdleState 0x08001988 Section 0 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
i.UART_SetConfig 0x080019f0 Section 0 stm32f0xx_hal_uart.o(i.UART_SetConfig)
i.UART_WaitOnFlagUntilTimeout 0x08001b20 Section 0 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
i.__0printf$3 0x08001b84 Section 0 printf3.o(i.__0printf$3)
i.__scatterload_copy 0x08001ba4 Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x08001bb2 Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x08001bb4 Section 14 handlers.o(i.__scatterload_zeroinit)
i._printf_core 0x08001bc4 Section 0 printf3.o(i._printf_core)
_printf_core 0x08001bc5 Thumb Code 456 printf3.o(i._printf_core)
i.adb_init 0x08001d90 Section 0 adb.o(i.adb_init)
i.adb_keyboard_update 0x08001da8 Section 0 main.o(i.adb_keyboard_update)
i.adb_listen_16b 0x08001df8 Section 0 adb.o(i.adb_listen_16b)
i.adb_mouse_update 0x08001e64 Section 0 main.o(i.adb_mouse_update)
i.adb_read_bit 0x08001eb4 Section 0 adb.o(i.adb_read_bit)
i.adb_recv_cmd 0x08001ef4 Section 0 adb.o(i.adb_recv_cmd)
i.adb_release_lines 0x08001f44 Section 0 adb.o(i.adb_release_lines)
i.adb_reset 0x08001f64 Section 0 adb.o(i.adb_reset)
i.adb_send_response_16b 0x08001f7c Section 0 adb.o(i.adb_send_response_16b)
i.adb_write_16 0x08001fe4 Section 0 adb.o(i.adb_write_16)
i.adb_write_byte 0x08002000 Section 0 adb.o(i.adb_write_byte)
i.byte_to_int16_t 0x0800207c Section 0 main.o(i.byte_to_int16_t)
i.delay_us 0x08002084 Section 0 delay_us.o(i.delay_us)
i.delay_us_init 0x08002098 Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x080020a8 Section 0 main.o(i.fputc)
i.handle_protocol_switch 0x080020c0 Section 0 main.o(i.handle_protocol_switch)
i.int16_to_uint6 0x0800210c Section 0 main.o(i.int16_to_uint6)
i.kb_buf_add 0x0800212a Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x0800215a Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_is_empty 0x0800217a Section 0 helpers.o(i.kb_buf_is_empty)
i.kb_buf_is_full 0x0800218a Section 0 helpers.o(i.kb_buf_is_full)
i.kb_buf_peek 0x080021a6 Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x080021c6 Section 0 helpers.o(i.kb_buf_pop)
i.kb_buf_reset 0x080021de Section 0 helpers.o(i.kb_buf_reset)
i.look_for_atten 0x080021fc Section 0 adb.o(i.look_for_atten)
i.main 0x0800224c Section 0 main.o(i.main)
i.malloc 0x080023a4 Section 0 malloc.o(i.malloc)
i.micros 0x08002410 Section 0 delay_us.o(i.micros)
i.mouse_buf_add 0x08002420 Section 0 helpers.o(i.mouse_buf_add)
i.mouse_buf_init 0x08002452 Section 0 helpers.o(i.mouse_buf_init)
i.mouse_buf_is_empty 0x0800246a Section 0 helpers.o(i.mouse_buf_is_empty)
i.mouse_buf_is_full 0x0800247a Section 0 helpers.o(i.mouse_buf_is_full)
i.mouse_buf_peek 0x08002496 Section 0 helpers.o(i.mouse_buf_peek)
i.mouse_buf_reset 0x080024ac Section 0 helpers.o(i.mouse_buf_reset)
i.parse_adb_cmd 0x080024c4 Section 0 adb.o(i.parse_adb_cmd)
i.protocol_status_lookup_init 0x08002590 Section 0 main.o(i.protocol_status_lookup_init)
i.send_srq 0x080025ac Section 0 adb.o(i.send_srq)
i.spi_error_dump_reboot 0x080025d4 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_until_change 0x08002650 Section 0 adb.o(i.wait_until_change)
.constdata 0x08002694 Section 61 main.o(.constdata)
.constdata 0x080026d1 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x080026e1 Section 8 system_stm32f0xx.o(.constdata)
.data 0x20000000 Section 16 adb.o(.data)
.data 0x20000010 Section 4 delay_us.o(.data)
.data 0x20000014 Section 12 main.o(.data)
.data 0x20000020 Section 4 stm32f0xx_hal.o(.data)
.data 0x20000024 Section 4 system_stm32f0xx.o(.data)
.data 0x20000028 Section 4 rand.o(.data)
_rand_state 0x20000028 Data 4 rand.o(.data)
.data 0x2000002c Section 4 stdout.o(.data)
.data 0x20000030 Section 4 mvars.o(.data)
.data 0x20000014 Section 16 main.o(.data)
.data 0x20000024 Section 4 stm32f0xx_hal.o(.data)
.data 0x20000028 Section 4 system_stm32f0xx.o(.data)
.data 0x2000002c Section 4 rand.o(.data)
_rand_state 0x2000002c Data 4 rand.o(.data)
.data 0x20000030 Section 4 stdout.o(.data)
.data 0x20000034 Section 4 mvars.o(.data)
.bss 0x20000038 Section 380 main.o(.bss)
.data 0x20000038 Section 4 mvars.o(.data)
.bss 0x2000003c Section 380 main.o(.bss)
HEAP 0x200001b8 Section 512 startup_stm32f042x6.o(HEAP)
STACK 0x200003b8 Section 1024 startup_stm32f042x6.o(STACK)
@@ -1981,104 +1986,107 @@ Image Symbol Table
HAL_SPI_MspInit 0x08000c89 Thumb Code 76 stm32f0xx_hal_msp.o(i.HAL_SPI_MspInit)
HAL_SPI_RxCpltCallback 0x08000cdd Thumb Code 2 stm32f0xx_hal_spi.o(i.HAL_SPI_RxCpltCallback)
HAL_SPI_TransmitReceive_IT 0x08000ce1 Thumb Code 196 stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT)
HAL_SPI_TxRxCpltCallback 0x08000db5 Thumb Code 296 main.o(i.HAL_SPI_TxRxCpltCallback)
HAL_SYSTICK_CLKSourceConfig 0x08000ef5 Thumb Code 20 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_CLKSourceConfig)
HAL_SYSTICK_Callback 0x08000f0d Thumb Code 2 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Callback)
HAL_SYSTICK_Config 0x08000f11 Thumb Code 38 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Config)
HAL_SYSTICK_IRQHandler 0x08000f41 Thumb Code 8 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_IRQHandler)
HAL_TIMEx_MasterConfigSynchronization 0x08000f49 Thumb Code 72 stm32f0xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization)
HAL_TIM_Base_Init 0x08000f91 Thumb Code 52 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Init)
HAL_TIM_Base_MspInit 0x08000fc5 Thumb Code 30 stm32f0xx_hal_msp.o(i.HAL_TIM_Base_MspInit)
HAL_TIM_Base_Start 0x08000fe9 Thumb Code 24 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start)
HAL_TIM_ConfigClockSource 0x08001001 Thumb Code 238 stm32f0xx_hal_tim.o(i.HAL_TIM_ConfigClockSource)
HAL_UART_MspInit 0x080010f1 Thumb Code 62 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit)
HAL_UART_Transmit 0x08001139 Thumb Code 200 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit)
HardFault_Handler 0x08001201 Thumb Code 2 stm32f0xx_it.o(i.HardFault_Handler)
NMI_Handler 0x080013c1 Thumb Code 2 stm32f0xx_it.o(i.NMI_Handler)
PendSV_Handler 0x08001409 Thumb Code 2 stm32f0xx_it.o(i.PendSV_Handler)
SPI1_IRQHandler 0x0800140d Thumb Code 10 stm32f0xx_it.o(i.SPI1_IRQHandler)
SVC_Handler 0x080016ff Thumb Code 2 stm32f0xx_it.o(i.SVC_Handler)
SysTick_Handler 0x08001701 Thumb Code 12 stm32f0xx_it.o(i.SysTick_Handler)
SystemClock_Config 0x0800170d Thumb Code 90 main.o(i.SystemClock_Config)
SystemInit 0x08001769 Thumb Code 78 system_stm32f0xx.o(i.SystemInit)
TIM_Base_SetConfig 0x080017c5 Thumb Code 112 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
TIM_ETR_SetConfig 0x08001849 Thumb Code 22 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
UART_AdvFeatureConfig 0x080018b7 Thumb Code 202 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
UART_CheckIdleState 0x08001981 Thumb Code 96 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
UART_SetConfig 0x080019e9 Thumb Code 280 stm32f0xx_hal_uart.o(i.UART_SetConfig)
UART_WaitOnFlagUntilTimeout 0x08001b19 Thumb Code 98 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
__0printf$3 0x08001b7d Thumb Code 24 printf3.o(i.__0printf$3)
__1printf$3 0x08001b7d Thumb Code 0 printf3.o(i.__0printf$3)
__2printf 0x08001b7d Thumb Code 0 printf3.o(i.__0printf$3)
__scatterload_copy 0x08001b9d Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x08001bab Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x08001bad Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
adb_init 0x08001d89 Thumb Code 18 adb.o(i.adb_init)
adb_keyboard_update 0x08001da1 Thumb Code 50 main.o(i.adb_keyboard_update)
adb_listen_16b 0x08001de1 Thumb Code 98 adb.o(i.adb_listen_16b)
adb_mouse_update 0x08001e4d Thumb Code 84 main.o(i.adb_mouse_update)
adb_read_bit 0x08001ea9 Thumb Code 56 adb.o(i.adb_read_bit)
adb_recv_cmd 0x08001ee9 Thumb Code 112 adb.o(i.adb_recv_cmd)
adb_release_lines 0x08001f61 Thumb Code 26 adb.o(i.adb_release_lines)
adb_reset 0x08001f81 Thumb Code 18 adb.o(i.adb_reset)
adb_send_response_16b 0x08001f99 Thumb Code 98 adb.o(i.adb_send_response_16b)
adb_write_16 0x08002001 Thumb Code 28 adb.o(i.adb_write_16)
adb_write_byte 0x0800201d Thumb Code 120 adb.o(i.adb_write_byte)
byte_to_int16_t 0x08002099 Thumb Code 8 main.o(i.byte_to_int16_t)
delay_us 0x080020a1 Thumb Code 20 delay_us.o(i.delay_us)
delay_us_init 0x080020b5 Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x080020c5 Thumb Code 18 main.o(i.fputc)
handle_protocol_switch 0x080020dd Thumb Code 70 main.o(i.handle_protocol_switch)
int16_to_uint6 0x08002129 Thumb Code 30 main.o(i.int16_to_uint6)
kb_buf_add 0x08002147 Thumb Code 48 helpers.o(i.kb_buf_add)
kb_buf_init 0x08002177 Thumb Code 32 helpers.o(i.kb_buf_init)
kb_buf_is_full 0x08002197 Thumb Code 28 helpers.o(i.kb_buf_is_full)
kb_buf_peek 0x080021b3 Thumb Code 32 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x080021d3 Thumb Code 24 helpers.o(i.kb_buf_pop)
kb_buf_reset 0x080021eb Thumb Code 28 helpers.o(i.kb_buf_reset)
look_for_atten 0x08002209 Thumb Code 70 adb.o(i.look_for_atten)
main 0x08002259 Thumb Code 204 main.o(i.main)
malloc 0x0800234d Thumb Code 92 malloc.o(i.malloc)
micros 0x080023b9 Thumb Code 10 delay_us.o(i.micros)
mouse_buf_add 0x080023c9 Thumb Code 50 helpers.o(i.mouse_buf_add)
mouse_buf_init 0x080023fb Thumb Code 24 helpers.o(i.mouse_buf_init)
mouse_buf_is_full 0x08002413 Thumb Code 28 helpers.o(i.mouse_buf_is_full)
mouse_buf_peek 0x0800242f Thumb Code 22 helpers.o(i.mouse_buf_peek)
mouse_buf_reset 0x08002445 Thumb Code 22 helpers.o(i.mouse_buf_reset)
parse_adb_cmd 0x0800245d Thumb Code 196 adb.o(i.parse_adb_cmd)
protocol_status_lookup_init 0x08002529 Thumb Code 22 main.o(i.protocol_status_lookup_init)
spi_error_dump_reboot 0x08002545 Thumb Code 76 main.o(i.spi_error_dump_reboot)
wait_until_change 0x080025c1 Thumb Code 62 adb.o(i.wait_until_change)
boot_message 0x08002604 Data 61 main.o(.constdata)
AHBPrescTable 0x08002641 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08002651 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x0800265c Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x0800267c Number 0 anon$$obj.o(Region$$Table)
HAL_SPI_TxRxCpltCallback 0x08000db5 Thumb Code 308 main.o(i.HAL_SPI_TxRxCpltCallback)
HAL_SYSTICK_CLKSourceConfig 0x08000efd Thumb Code 20 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_CLKSourceConfig)
HAL_SYSTICK_Callback 0x08000f15 Thumb Code 2 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Callback)
HAL_SYSTICK_Config 0x08000f19 Thumb Code 38 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Config)
HAL_SYSTICK_IRQHandler 0x08000f49 Thumb Code 8 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_IRQHandler)
HAL_TIMEx_MasterConfigSynchronization 0x08000f51 Thumb Code 72 stm32f0xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization)
HAL_TIM_Base_Init 0x08000f99 Thumb Code 52 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Init)
HAL_TIM_Base_MspInit 0x08000fcd Thumb Code 30 stm32f0xx_hal_msp.o(i.HAL_TIM_Base_MspInit)
HAL_TIM_Base_Start 0x08000ff1 Thumb Code 24 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start)
HAL_TIM_ConfigClockSource 0x08001009 Thumb Code 238 stm32f0xx_hal_tim.o(i.HAL_TIM_ConfigClockSource)
HAL_UART_MspInit 0x080010f9 Thumb Code 62 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit)
HAL_UART_Transmit 0x08001141 Thumb Code 200 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit)
HardFault_Handler 0x08001209 Thumb Code 2 stm32f0xx_it.o(i.HardFault_Handler)
NMI_Handler 0x080013c9 Thumb Code 2 stm32f0xx_it.o(i.NMI_Handler)
PendSV_Handler 0x08001411 Thumb Code 2 stm32f0xx_it.o(i.PendSV_Handler)
SPI1_IRQHandler 0x08001415 Thumb Code 10 stm32f0xx_it.o(i.SPI1_IRQHandler)
SVC_Handler 0x08001707 Thumb Code 2 stm32f0xx_it.o(i.SVC_Handler)
SysTick_Handler 0x08001709 Thumb Code 12 stm32f0xx_it.o(i.SysTick_Handler)
SystemClock_Config 0x08001715 Thumb Code 90 main.o(i.SystemClock_Config)
SystemInit 0x08001771 Thumb Code 78 system_stm32f0xx.o(i.SystemInit)
TIM_Base_SetConfig 0x080017cd Thumb Code 112 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
TIM_ETR_SetConfig 0x08001851 Thumb Code 22 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
UART_AdvFeatureConfig 0x080018bf Thumb Code 202 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
UART_CheckIdleState 0x08001989 Thumb Code 96 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
UART_SetConfig 0x080019f1 Thumb Code 280 stm32f0xx_hal_uart.o(i.UART_SetConfig)
UART_WaitOnFlagUntilTimeout 0x08001b21 Thumb Code 98 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
__0printf$3 0x08001b85 Thumb Code 24 printf3.o(i.__0printf$3)
__1printf$3 0x08001b85 Thumb Code 0 printf3.o(i.__0printf$3)
__2printf 0x08001b85 Thumb Code 0 printf3.o(i.__0printf$3)
__scatterload_copy 0x08001ba5 Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x08001bb3 Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x08001bb5 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
adb_init 0x08001d91 Thumb Code 18 adb.o(i.adb_init)
adb_keyboard_update 0x08001da9 Thumb Code 66 main.o(i.adb_keyboard_update)
adb_listen_16b 0x08001df9 Thumb Code 98 adb.o(i.adb_listen_16b)
adb_mouse_update 0x08001e65 Thumb Code 74 main.o(i.adb_mouse_update)
adb_read_bit 0x08001eb5 Thumb Code 56 adb.o(i.adb_read_bit)
adb_recv_cmd 0x08001ef5 Thumb Code 70 adb.o(i.adb_recv_cmd)
adb_release_lines 0x08001f45 Thumb Code 26 adb.o(i.adb_release_lines)
adb_reset 0x08001f65 Thumb Code 18 adb.o(i.adb_reset)
adb_send_response_16b 0x08001f7d Thumb Code 98 adb.o(i.adb_send_response_16b)
adb_write_16 0x08001fe5 Thumb Code 28 adb.o(i.adb_write_16)
adb_write_byte 0x08002001 Thumb Code 120 adb.o(i.adb_write_byte)
byte_to_int16_t 0x0800207d Thumb Code 8 main.o(i.byte_to_int16_t)
delay_us 0x08002085 Thumb Code 20 delay_us.o(i.delay_us)
delay_us_init 0x08002099 Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x080020a9 Thumb Code 18 main.o(i.fputc)
handle_protocol_switch 0x080020c1 Thumb Code 70 main.o(i.handle_protocol_switch)
int16_to_uint6 0x0800210d Thumb Code 30 main.o(i.int16_to_uint6)
kb_buf_add 0x0800212b Thumb Code 48 helpers.o(i.kb_buf_add)
kb_buf_init 0x0800215b Thumb Code 32 helpers.o(i.kb_buf_init)
kb_buf_is_empty 0x0800217b Thumb Code 16 helpers.o(i.kb_buf_is_empty)
kb_buf_is_full 0x0800218b Thumb Code 28 helpers.o(i.kb_buf_is_full)
kb_buf_peek 0x080021a7 Thumb Code 32 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x080021c7 Thumb Code 24 helpers.o(i.kb_buf_pop)
kb_buf_reset 0x080021df Thumb Code 28 helpers.o(i.kb_buf_reset)
look_for_atten 0x080021fd Thumb Code 70 adb.o(i.look_for_atten)
main 0x0800224d Thumb Code 292 main.o(i.main)
malloc 0x080023a5 Thumb Code 92 malloc.o(i.malloc)
micros 0x08002411 Thumb Code 10 delay_us.o(i.micros)
mouse_buf_add 0x08002421 Thumb Code 50 helpers.o(i.mouse_buf_add)
mouse_buf_init 0x08002453 Thumb Code 24 helpers.o(i.mouse_buf_init)
mouse_buf_is_empty 0x0800246b Thumb Code 16 helpers.o(i.mouse_buf_is_empty)
mouse_buf_is_full 0x0800247b Thumb Code 28 helpers.o(i.mouse_buf_is_full)
mouse_buf_peek 0x08002497 Thumb Code 22 helpers.o(i.mouse_buf_peek)
mouse_buf_reset 0x080024ad Thumb Code 22 helpers.o(i.mouse_buf_reset)
parse_adb_cmd 0x080024c5 Thumb Code 196 adb.o(i.parse_adb_cmd)
protocol_status_lookup_init 0x08002591 Thumb Code 22 main.o(i.protocol_status_lookup_init)
send_srq 0x080025ad Thumb Code 34 adb.o(i.send_srq)
spi_error_dump_reboot 0x080025d5 Thumb Code 76 main.o(i.spi_error_dump_reboot)
wait_until_change 0x08002651 Thumb Code 62 adb.o(i.wait_until_change)
boot_message 0x08002694 Data 61 main.o(.constdata)
AHBPrescTable 0x080026d1 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x080026e1 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x080026ec Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x0800270c Number 0 anon$$obj.o(Region$$Table)
adb_mouse_current_addr 0x20000000 Data 1 adb.o(.data)
adb_kb_current_addr 0x20000001 Data 1 adb.o(.data)
adb_write_in_progress 0x20000002 Data 1 adb.o(.data)
adb_rw_in_progress 0x20000002 Data 1 adb.o(.data)
adb_psw_pin 0x20000004 Data 2 adb.o(.data)
adb_data_pin 0x20000006 Data 2 adb.o(.data)
adb_psw_port 0x20000008 Data 4 adb.o(.data)
adb_data_port 0x2000000c Data 4 adb.o(.data)
us_timer 0x20000010 Data 4 delay_us.o(.data)
kb_srq 0x20000014 Data 1 main.o(.data)
hw_revision 0x20000015 Data 1 main.o(.data)
spi_error_occured 0x20000016 Data 1 main.o(.data)
my_mouse_buf 0x20000018 Data 8 main.o(.data)
uwTick 0x20000020 Data 4 stm32f0xx_hal.o(.data)
SystemCoreClock 0x20000024 Data 4 system_stm32f0xx.o(.data)
__stdout 0x2000002c Data 4 stdout.o(.data)
__microlib_freelist 0x20000030 Data 4 mvars.o(.data)
__microlib_freelist_initialised 0x20000034 Data 4 mvars.o(.data)
hspi1 0x20000038 Data 100 main.o(.bss)
htim2 0x2000009c Data 64 main.o(.bss)
huart2 0x200000dc Data 112 main.o(.bss)
spi_transmit_buf 0x2000014c Data 32 main.o(.bss)
spi_recv_buf 0x2000016c Data 32 main.o(.bss)
my_kb_buf 0x2000018c Data 12 main.o(.bss)
latest_mouse_event 0x20000198 Data 12 main.o(.bss)
protocol_status_lookup 0x200001a4 Data 16 main.o(.bss)
hw_revision 0x20000014 Data 1 main.o(.data)
spi_error_occured 0x20000015 Data 1 main.o(.data)
last_spi_ts 0x20000018 Data 4 main.o(.data)
my_mouse_buf 0x2000001c Data 8 main.o(.data)
uwTick 0x20000024 Data 4 stm32f0xx_hal.o(.data)
SystemCoreClock 0x20000028 Data 4 system_stm32f0xx.o(.data)
__stdout 0x20000030 Data 4 stdout.o(.data)
__microlib_freelist 0x20000034 Data 4 mvars.o(.data)
__microlib_freelist_initialised 0x20000038 Data 4 mvars.o(.data)
hspi1 0x2000003c Data 100 main.o(.bss)
htim2 0x200000a0 Data 64 main.o(.bss)
huart2 0x200000e0 Data 112 main.o(.bss)
spi_transmit_buf 0x20000150 Data 32 main.o(.bss)
spi_recv_buf 0x20000170 Data 32 main.o(.bss)
my_kb_buf 0x20000190 Data 12 main.o(.bss)
latest_mouse_event 0x2000019c Data 12 main.o(.bss)
protocol_status_lookup 0x200001a8 Data 16 main.o(.bss)
__heap_base 0x200001b8 Data 0 startup_stm32f042x6.o(HEAP)
__heap_limit 0x200003b8 Data 0 startup_stm32f042x6.o(HEAP)
__initial_sp 0x200007b8 Data 0 startup_stm32f042x6.o(STACK)
@@ -2091,9 +2099,9 @@ Memory Map of the image
Image Entry point : 0x080000c1
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000026b4, Max: 0x00008000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00002748, Max: 0x00008000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000267c, Max: 0x00008000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000270c, Max: 0x00008000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
@@ -2144,122 +2152,124 @@ Memory Map of the image
0x08000cdc 0x08000cdc 0x00000002 Code RO 610 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x08000cde 0x08000cde 0x00000002 PAD
0x08000ce0 0x08000ce0 0x000000d4 Code RO 615 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x08000db4 0x08000db4 0x00000140 Code RO 355 i.HAL_SPI_TxRxCpltCallback main.o
0x08000ef4 0x08000ef4 0x00000018 Code RO 3167 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x08000f0c 0x08000f0c 0x00000002 Code RO 3168 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x08000f0e 0x08000f0e 0x00000002 PAD
0x08000f10 0x08000f10 0x00000030 Code RO 3169 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x08000f40 0x08000f40 0x00000008 Code RO 3170 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x08000f48 0x08000f48 0x00000048 Code RO 1594 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x08000f90 0x08000f90 0x00000034 Code RO 938 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x08000fc4 0x08000fc4 0x00000024 Code RO 541 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08000fe8 0x08000fe8 0x00000018 Code RO 941 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x08001000 0x08001000 0x000000ee Code RO 947 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x080010ee 0x080010ee 0x00000002 PAD
0x080010f0 0x080010f0 0x00000048 Code RO 543 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x08001138 0x08001138 0x000000c8 Code RO 1844 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x08001200 0x08001200 0x00000002 Code RO 483 i.HardFault_Handler stm32f0xx_it.o
0x08001202 0x08001202 0x00000002 PAD
0x08001204 0x08001204 0x000000f4 Code RO 356 i.MX_GPIO_Init main.o
0x080012f8 0x080012f8 0x0000003c Code RO 357 i.MX_SPI1_Init main.o
0x08001334 0x08001334 0x00000054 Code RO 358 i.MX_TIM2_Init main.o
0x08001388 0x08001388 0x00000038 Code RO 359 i.MX_USART2_UART_Init main.o
0x080013c0 0x080013c0 0x00000002 Code RO 484 i.NMI_Handler stm32f0xx_it.o
0x080013c2 0x080013c2 0x00000002 PAD
0x080013c4 0x080013c4 0x00000044 Code RO 3171 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08001408 0x08001408 0x00000002 Code RO 485 i.PendSV_Handler stm32f0xx_it.o
0x0800140a 0x0800140a 0x00000002 PAD
0x0800140c 0x0800140c 0x00000010 Code RO 486 i.SPI1_IRQHandler stm32f0xx_it.o
0x0800141c 0x0800141c 0x00000036 Code RO 622 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x08001452 0x08001452 0x0000005e Code RO 623 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x080014b0 0x080014b0 0x00000034 Code RO 624 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x080014e4 0x080014e4 0x00000048 Code RO 625 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x0800152c 0x0800152c 0x00000052 Code RO 628 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x0800157e 0x0800157e 0x00000012 Code RO 631 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x08001590 0x08001590 0x0000004c Code RO 642 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x080015dc 0x080015dc 0x00000096 Code RO 647 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x08001672 0x08001672 0x0000008c Code RO 648 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x080016fe 0x080016fe 0x00000002 Code RO 487 i.SVC_Handler stm32f0xx_it.o
0x08001700 0x08001700 0x0000000c Code RO 488 i.SysTick_Handler stm32f0xx_it.o
0x0800170c 0x0800170c 0x0000005a Code RO 360 i.SystemClock_Config main.o
0x08001766 0x08001766 0x00000002 PAD
0x08001768 0x08001768 0x0000005c Code RO 3578 i.SystemInit system_stm32f0xx.o
0x080017c4 0x080017c4 0x00000084 Code RO 1024 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08001848 0x08001848 0x00000016 Code RO 1031 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x0800185e 0x0800185e 0x00000010 Code RO 1032 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x0800186e 0x0800186e 0x00000022 Code RO 1038 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x08001890 0x08001890 0x00000026 Code RO 1040 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x080018b6 0x080018b6 0x000000ca Code RO 1849 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08001980 0x08001980 0x00000068 Code RO 1850 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x080019e8 0x080019e8 0x00000130 Code RO 1865 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08001b18 0x08001b18 0x00000062 Code RO 1867 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x08001b7a 0x08001b7a 0x00000002 PAD
0x08001b7c 0x08001b7c 0x00000020 Code RO 3716 i.__0printf$3 mc_p.l(printf3.o)
0x08001b9c 0x08001b9c 0x0000000e Code RO 3958 i.__scatterload_copy mc_p.l(handlers.o)
0x08001baa 0x08001baa 0x00000002 Code RO 3959 i.__scatterload_null mc_p.l(handlers.o)
0x08001bac 0x08001bac 0x0000000e Code RO 3960 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08001bba 0x08001bba 0x00000002 PAD
0x08001bbc 0x08001bbc 0x000001cc Code RO 3723 i._printf_core mc_p.l(printf3.o)
0x08001d88 0x08001d88 0x00000018 Code RO 12 i.adb_init adb.o
0x08001da0 0x08001da0 0x00000040 Code RO 362 i.adb_keyboard_update main.o
0x08001de0 0x08001de0 0x0000006c Code RO 13 i.adb_listen_16b adb.o
0x08001e4c 0x08001e4c 0x0000005c Code RO 363 i.adb_mouse_update main.o
0x08001ea8 0x08001ea8 0x00000040 Code RO 14 i.adb_read_bit adb.o
0x08001ee8 0x08001ee8 0x00000078 Code RO 15 i.adb_recv_cmd adb.o
0x08001f60 0x08001f60 0x00000020 Code RO 16 i.adb_release_lines adb.o
0x08001f80 0x08001f80 0x00000018 Code RO 17 i.adb_reset adb.o
0x08001f98 0x08001f98 0x00000068 Code RO 18 i.adb_send_response_16b adb.o
0x08002000 0x08002000 0x0000001c Code RO 19 i.adb_write_16 adb.o
0x0800201c 0x0800201c 0x0000007c Code RO 20 i.adb_write_byte adb.o
0x08002098 0x08002098 0x00000008 Code RO 364 i.byte_to_int16_t main.o
0x080020a0 0x080020a0 0x00000014 Code RO 225 i.delay_us delay_us.o
0x080020b4 0x080020b4 0x00000010 Code RO 226 i.delay_us_init delay_us.o
0x080020c4 0x080020c4 0x00000018 Code RO 365 i.fputc main.o
0x080020dc 0x080020dc 0x0000004c Code RO 366 i.handle_protocol_switch main.o
0x08002128 0x08002128 0x0000001e Code RO 367 i.int16_to_uint6 main.o
0x08002146 0x08002146 0x00000030 Code RO 260 i.kb_buf_add helpers.o
0x08002176 0x08002176 0x00000020 Code RO 261 i.kb_buf_init helpers.o
0x08002196 0x08002196 0x0000001c Code RO 263 i.kb_buf_is_full helpers.o
0x080021b2 0x080021b2 0x00000020 Code RO 264 i.kb_buf_peek helpers.o
0x080021d2 0x080021d2 0x00000018 Code RO 265 i.kb_buf_pop helpers.o
0x080021ea 0x080021ea 0x0000001c Code RO 266 i.kb_buf_reset helpers.o
0x08002206 0x08002206 0x00000002 PAD
0x08002208 0x08002208 0x00000050 Code RO 21 i.look_for_atten adb.o
0x08002258 0x08002258 0x000000f4 Code RO 369 i.main main.o
0x0800234c 0x0800234c 0x0000006c Code RO 3889 i.malloc mc_p.l(malloc.o)
0x080023b8 0x080023b8 0x00000010 Code RO 227 i.micros delay_us.o
0x080023c8 0x080023c8 0x00000032 Code RO 267 i.mouse_buf_add helpers.o
0x080023fa 0x080023fa 0x00000018 Code RO 268 i.mouse_buf_init helpers.o
0x08002412 0x08002412 0x0000001c Code RO 270 i.mouse_buf_is_full helpers.o
0x0800242e 0x0800242e 0x00000016 Code RO 271 i.mouse_buf_peek helpers.o
0x08002444 0x08002444 0x00000016 Code RO 273 i.mouse_buf_reset helpers.o
0x0800245a 0x0800245a 0x00000002 PAD
0x0800245c 0x0800245c 0x000000cc Code RO 22 i.parse_adb_cmd adb.o
0x08002528 0x08002528 0x0000001c Code RO 370 i.protocol_status_lookup_init main.o
0x08002544 0x08002544 0x0000007c Code RO 371 i.spi_error_dump_reboot main.o
0x080025c0 0x080025c0 0x00000044 Code RO 23 i.wait_until_change adb.o
0x08002604 0x08002604 0x0000003d Data RO 377 .constdata main.o
0x08002641 0x08002641 0x00000010 Data RO 3579 .constdata system_stm32f0xx.o
0x08002651 0x08002651 0x00000008 Data RO 3580 .constdata system_stm32f0xx.o
0x08002659 0x08002659 0x00000003 PAD
0x0800265c 0x0800265c 0x00000020 Data RO 3956 Region$$Table anon$$obj.o
0x08000db4 0x08000db4 0x00000148 Code RO 355 i.HAL_SPI_TxRxCpltCallback main.o
0x08000efc 0x08000efc 0x00000018 Code RO 3167 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x08000f14 0x08000f14 0x00000002 Code RO 3168 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x08000f16 0x08000f16 0x00000002 PAD
0x08000f18 0x08000f18 0x00000030 Code RO 3169 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x08000f48 0x08000f48 0x00000008 Code RO 3170 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x08000f50 0x08000f50 0x00000048 Code RO 1594 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x08000f98 0x08000f98 0x00000034 Code RO 938 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x08000fcc 0x08000fcc 0x00000024 Code RO 541 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08000ff0 0x08000ff0 0x00000018 Code RO 941 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x08001008 0x08001008 0x000000ee Code RO 947 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x080010f6 0x080010f6 0x00000002 PAD
0x080010f8 0x080010f8 0x00000048 Code RO 543 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x08001140 0x08001140 0x000000c8 Code RO 1844 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x08001208 0x08001208 0x00000002 Code RO 483 i.HardFault_Handler stm32f0xx_it.o
0x0800120a 0x0800120a 0x00000002 PAD
0x0800120c 0x0800120c 0x000000f4 Code RO 356 i.MX_GPIO_Init main.o
0x08001300 0x08001300 0x0000003c Code RO 357 i.MX_SPI1_Init main.o
0x0800133c 0x0800133c 0x00000054 Code RO 358 i.MX_TIM2_Init main.o
0x08001390 0x08001390 0x00000038 Code RO 359 i.MX_USART2_UART_Init main.o
0x080013c8 0x080013c8 0x00000002 Code RO 484 i.NMI_Handler stm32f0xx_it.o
0x080013ca 0x080013ca 0x00000002 PAD
0x080013cc 0x080013cc 0x00000044 Code RO 3171 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08001410 0x08001410 0x00000002 Code RO 485 i.PendSV_Handler stm32f0xx_it.o
0x08001412 0x08001412 0x00000002 PAD
0x08001414 0x08001414 0x00000010 Code RO 486 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001424 0x08001424 0x00000036 Code RO 622 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x0800145a 0x0800145a 0x0000005e Code RO 623 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x080014b8 0x080014b8 0x00000034 Code RO 624 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x080014ec 0x080014ec 0x00000048 Code RO 625 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x08001534 0x08001534 0x00000052 Code RO 628 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x08001586 0x08001586 0x00000012 Code RO 631 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x08001598 0x08001598 0x0000004c Code RO 642 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x080015e4 0x080015e4 0x00000096 Code RO 647 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x0800167a 0x0800167a 0x0000008c Code RO 648 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x08001706 0x08001706 0x00000002 Code RO 487 i.SVC_Handler stm32f0xx_it.o
0x08001708 0x08001708 0x0000000c Code RO 488 i.SysTick_Handler stm32f0xx_it.o
0x08001714 0x08001714 0x0000005a Code RO 360 i.SystemClock_Config main.o
0x0800176e 0x0800176e 0x00000002 PAD
0x08001770 0x08001770 0x0000005c Code RO 3578 i.SystemInit system_stm32f0xx.o
0x080017cc 0x080017cc 0x00000084 Code RO 1024 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08001850 0x08001850 0x00000016 Code RO 1031 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x08001866 0x08001866 0x00000010 Code RO 1032 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x08001876 0x08001876 0x00000022 Code RO 1038 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x08001898 0x08001898 0x00000026 Code RO 1040 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x080018be 0x080018be 0x000000ca Code RO 1849 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08001988 0x08001988 0x00000068 Code RO 1850 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x080019f0 0x080019f0 0x00000130 Code RO 1865 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08001b20 0x08001b20 0x00000062 Code RO 1867 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x08001b82 0x08001b82 0x00000002 PAD
0x08001b84 0x08001b84 0x00000020 Code RO 3716 i.__0printf$3 mc_p.l(printf3.o)
0x08001ba4 0x08001ba4 0x0000000e Code RO 3958 i.__scatterload_copy mc_p.l(handlers.o)
0x08001bb2 0x08001bb2 0x00000002 Code RO 3959 i.__scatterload_null mc_p.l(handlers.o)
0x08001bb4 0x08001bb4 0x0000000e Code RO 3960 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08001bc2 0x08001bc2 0x00000002 PAD
0x08001bc4 0x08001bc4 0x000001cc Code RO 3723 i._printf_core mc_p.l(printf3.o)
0x08001d90 0x08001d90 0x00000018 Code RO 12 i.adb_init adb.o
0x08001da8 0x08001da8 0x00000050 Code RO 362 i.adb_keyboard_update main.o
0x08001df8 0x08001df8 0x0000006c Code RO 13 i.adb_listen_16b adb.o
0x08001e64 0x08001e64 0x00000050 Code RO 363 i.adb_mouse_update main.o
0x08001eb4 0x08001eb4 0x00000040 Code RO 14 i.adb_read_bit adb.o
0x08001ef4 0x08001ef4 0x00000050 Code RO 15 i.adb_recv_cmd adb.o
0x08001f44 0x08001f44 0x00000020 Code RO 16 i.adb_release_lines adb.o
0x08001f64 0x08001f64 0x00000018 Code RO 17 i.adb_reset adb.o
0x08001f7c 0x08001f7c 0x00000068 Code RO 18 i.adb_send_response_16b adb.o
0x08001fe4 0x08001fe4 0x0000001c Code RO 19 i.adb_write_16 adb.o
0x08002000 0x08002000 0x0000007c Code RO 20 i.adb_write_byte adb.o
0x0800207c 0x0800207c 0x00000008 Code RO 364 i.byte_to_int16_t main.o
0x08002084 0x08002084 0x00000014 Code RO 225 i.delay_us delay_us.o
0x08002098 0x08002098 0x00000010 Code RO 226 i.delay_us_init delay_us.o
0x080020a8 0x080020a8 0x00000018 Code RO 365 i.fputc main.o
0x080020c0 0x080020c0 0x0000004c Code RO 366 i.handle_protocol_switch main.o
0x0800210c 0x0800210c 0x0000001e Code RO 367 i.int16_to_uint6 main.o
0x0800212a 0x0800212a 0x00000030 Code RO 260 i.kb_buf_add helpers.o
0x0800215a 0x0800215a 0x00000020 Code RO 261 i.kb_buf_init helpers.o
0x0800217a 0x0800217a 0x00000010 Code RO 262 i.kb_buf_is_empty helpers.o
0x0800218a 0x0800218a 0x0000001c Code RO 263 i.kb_buf_is_full helpers.o
0x080021a6 0x080021a6 0x00000020 Code RO 264 i.kb_buf_peek helpers.o
0x080021c6 0x080021c6 0x00000018 Code RO 265 i.kb_buf_pop helpers.o
0x080021de 0x080021de 0x0000001c Code RO 266 i.kb_buf_reset helpers.o
0x080021fa 0x080021fa 0x00000002 PAD
0x080021fc 0x080021fc 0x00000050 Code RO 21 i.look_for_atten adb.o
0x0800224c 0x0800224c 0x00000158 Code RO 369 i.main main.o
0x080023a4 0x080023a4 0x0000006c Code RO 3889 i.malloc mc_p.l(malloc.o)
0x08002410 0x08002410 0x00000010 Code RO 227 i.micros delay_us.o
0x08002420 0x08002420 0x00000032 Code RO 267 i.mouse_buf_add helpers.o
0x08002452 0x08002452 0x00000018 Code RO 268 i.mouse_buf_init helpers.o
0x0800246a 0x0800246a 0x00000010 Code RO 269 i.mouse_buf_is_empty helpers.o
0x0800247a 0x0800247a 0x0000001c Code RO 270 i.mouse_buf_is_full helpers.o
0x08002496 0x08002496 0x00000016 Code RO 271 i.mouse_buf_peek helpers.o
0x080024ac 0x080024ac 0x00000016 Code RO 273 i.mouse_buf_reset helpers.o
0x080024c2 0x080024c2 0x00000002 PAD
0x080024c4 0x080024c4 0x000000cc Code RO 22 i.parse_adb_cmd adb.o
0x08002590 0x08002590 0x0000001c Code RO 370 i.protocol_status_lookup_init main.o
0x080025ac 0x080025ac 0x00000028 Code RO 23 i.send_srq adb.o
0x080025d4 0x080025d4 0x0000007c Code RO 371 i.spi_error_dump_reboot main.o
0x08002650 0x08002650 0x00000044 Code RO 24 i.wait_until_change adb.o
0x08002694 0x08002694 0x0000003d Data RO 377 .constdata main.o
0x080026d1 0x080026d1 0x00000010 Data RO 3579 .constdata system_stm32f0xx.o
0x080026e1 0x080026e1 0x00000008 Data RO 3580 .constdata system_stm32f0xx.o
0x080026e9 0x080026e9 0x00000003 PAD
0x080026ec 0x080026ec 0x00000020 Data RO 3956 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0800267c, Size: 0x000007b8, Max: 0x00001800, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0800270c, Size: 0x000007b8, Max: 0x00001800, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x0800267c 0x00000010 Data RW 26 .data adb.o
0x20000010 0x0800268c 0x00000004 Data RW 228 .data delay_us.o
0x20000014 0x08002690 0x0000000c Data RW 378 .data main.o
0x20000020 0x0800269c 0x00000004 Data RW 2410 .data stm32f0xx_hal.o
0x20000024 0x080026a0 0x00000004 Data RW 3581 .data system_stm32f0xx.o
0x20000028 0x080026a4 0x00000004 Data RW 3619 .data mc_p.l(rand.o)
0x2000002c 0x080026a8 0x00000004 Data RW 3930 .data mc_p.l(stdout.o)
0x20000030 0x080026ac 0x00000004 Data RW 3933 .data mc_p.l(mvars.o)
0x20000034 0x080026b0 0x00000004 Data RW 3934 .data mc_p.l(mvars.o)
0x20000038 - 0x0000017c Zero RW 372 .bss main.o
0x200001b4 0x080026b4 0x00000004 PAD
0x20000000 0x0800270c 0x00000010 Data RW 26 .data adb.o
0x20000010 0x0800271c 0x00000004 Data RW 228 .data delay_us.o
0x20000014 0x08002720 0x00000010 Data RW 378 .data main.o
0x20000024 0x08002730 0x00000004 Data RW 2410 .data stm32f0xx_hal.o
0x20000028 0x08002734 0x00000004 Data RW 3581 .data system_stm32f0xx.o
0x2000002c 0x08002738 0x00000004 Data RW 3619 .data mc_p.l(rand.o)
0x20000030 0x0800273c 0x00000004 Data RW 3930 .data mc_p.l(stdout.o)
0x20000034 0x08002740 0x00000004 Data RW 3933 .data mc_p.l(mvars.o)
0x20000038 0x08002744 0x00000004 Data RW 3934 .data mc_p.l(mvars.o)
0x2000003c - 0x0000017c Zero RW 372 .bss main.o
0x200001b8 - 0x00000200 Zero RW 2 HEAP startup_stm32f042x6.o
0x200003b8 - 0x00000400 Zero RW 1 STACK startup_stm32f042x6.o
@@ -2271,10 +2281,10 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Object Name
980 78 0 16 0 458156 adb.o
980 86 0 16 0 458448 adb.o
52 10 0 4 0 1931 delay_us.o
338 0 0 0 0 6236 helpers.o
1544 192 61 12 380 16614 main.o
370 0 0 0 0 7263 helpers.o
1656 198 61 16 380 16799 main.o
88 38 192 0 1536 640 startup_stm32f042x6.o
122 18 0 4 0 3591 stm32f0xx_hal.o
178 28 0 0 0 10483 stm32f0xx_hal_cortex.o
@@ -2290,9 +2300,9 @@ Image component sizes
92 14 24 4 0 1123 system_stm32f0xx.o
----------------------------------------------------------------------
8660 614 312 40 1920 537604 Object Totals
8804 628 312 44 1916 539108 Object Totals
0 0 32 0 0 0 (incl. Generated)
28 0 3 0 4 0 (incl. Padding)
28 0 3 0 0 0 (incl. Padding)
----------------------------------------------------------------------
@@ -2338,15 +2348,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
9540 670 312 56 1920 533872 Grand Totals
9540 670 312 56 1920 533872 ELF Image Totals
9540 670 312 56 0 0 ROM Totals
9684 684 312 60 1916 535244 Grand Totals
9684 684 312 60 1916 535244 ELF Image Totals
9684 684 312 60 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 9852 ( 9.62kB)
Total RO Size (Code + RO Data) 9996 ( 9.76kB)
Total RW Size (RW Data + ZI Data) 1976 ( 1.93kB)
Total ROM Size (Code + RO Data + RW Data) 9908 ( 9.68kB)
Total ROM Size (Code + RO Data + RW Data) 10056 ( 9.82kB)
==============================================================================

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)(0x61D0CD73)(--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
@@ -38,7 +38,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Drivers/CMSIS/Include/core_cmInstr.h)(0x5DFA0892)
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/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h)(0x5DFA0880)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio_ex.h)(0x5DFA0893)
@@ -111,10 +111,10 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
-IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F042x6 -DUSE_HAL_DRIVER -DSTM32F042x6
-o my_adb\helpers.o --omf_browse my_adb\helpers.crf --depend my_adb\helpers.d)
-o my_adb\helpers.o --omf_browse my_adb\helpers.crf --depend my_adb\helpers.d)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A)
I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x5D9B4298)
I (C:\Keil_v5\ARM\ARMCC\include\stdlib.h)(0x5D9B429A)
@@ -152,7 +152,7 @@ I (C:\Keil_v5\ARM\ARMCC\include\stdlib.h)(0x5D9B429A)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart_ex.h)(0x5DFA0893)
I (../Inc/shared.h)(0x617487BD)
F (..\Inc\adb.h)(0x61D2212E)()
F (..\Inc\delay_us.h)(0x617487C7)()
F (..\Inc\delay_us.h)(0x617487C7)()
F (..\Inc\helpers.h)(0x61D1C814)()
F (../Src/main.c)(0x61D22455)(--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

View File

@@ -10,7 +10,7 @@ GPIO_TypeDef* adb_psw_port;
uint16_t adb_psw_pin;
GPIO_TypeDef* adb_data_port;
uint16_t adb_data_pin;
uint8_t adb_mouse_current_addr, adb_kb_current_addr, adb_write_in_progress;
uint8_t adb_mouse_current_addr, adb_kb_current_addr, adb_rw_in_progress;
#define ADB_PSW_HI() HAL_GPIO_WritePin(adb_psw_port, adb_psw_pin, GPIO_PIN_SET)
#define ADB_PSW_LOW() HAL_GPIO_WritePin(adb_psw_port, adb_psw_pin, GPIO_PIN_RESET)
@@ -170,12 +170,13 @@ uint8_t adb_read_bit(void)
return hi_time > lo_time;
}
uint8_t adb_recv_cmd(uint8_t* data, uint8_t srq)
uint8_t adb_recv_cmd(uint8_t* data)
{
*data = 0;
uint8_t atten_result = look_for_atten();
if(atten_result != ADB_LINE_STATUS_ATTEN)
return atten_result;
adb_rw_in_progress = 1;
int32_t sync_duration = wait_until_change(ADB_DEFAULT_TIMEOUT_US);
if(sync_duration > 90 || sync_duration < 50)
return ADB_ERROR;
@@ -189,15 +190,6 @@ uint8_t adb_recv_cmd(uint8_t* data, uint8_t srq)
temp |= this_bit << (7 - i);
}
if(srq == 0)
wait_until_change(ADB_DEFAULT_TIMEOUT_US);
else
{
ADB_DATA_LOW();
delay_us(300);
ADB_DATA_HI();
}
*data = temp;
return ADB_OK;
}
@@ -241,7 +233,7 @@ uint8_t adb_write_16(uint16_t data)
// to be called right after a LISTEN command from host
uint8_t adb_send_response_16b(uint16_t data)
{
adb_write_in_progress = 1;
adb_rw_in_progress = 1;
delay_us(200); // stop-to-start time
ADB_DATA_LOW();
delay_us(ADB_CLK_35);
@@ -249,13 +241,13 @@ uint8_t adb_send_response_16b(uint16_t data)
delay_us(ADB_CLK_65);
if(adb_write_16(data) == ADB_LINE_STATUS_COLLISION)
{
adb_write_in_progress = 0;
adb_rw_in_progress = 0;
return ADB_LINE_STATUS_COLLISION;
}
ADB_DATA_LOW();
delay_us(ADB_CLK_65);
ADB_DATA_HI();
adb_write_in_progress = 0;
adb_rw_in_progress = 0;
return ADB_OK;
}
@@ -339,11 +331,11 @@ uint8_t parse_adb_cmd(uint8_t data)
return ADB_OK;
}
void wtf(void)
void send_srq(void)
{
// DEBUG0_HI();
// printf("%d\n", adb_mouse_current_addr);
// DEBUG0_LOW();
ADB_DATA_LOW();
delay_us(300);
ADB_DATA_HI();
}

View File

@@ -149,16 +149,19 @@ void handle_protocol_switch(uint8_t spi_byte)
}
}
uint32_t last_spi_ts;
void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi)
{
HAL_GPIO_WritePin(USER_LED_GPIO_Port, USER_LED_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(DEBUG0_GPIO_Port, DEBUG0_Pin, adb_write_in_progress);
// HAL_GPIO_WritePin(DEBUG0_GPIO_Port, DEBUG0_Pin, adb_rw_in_progress);
if(micros() - last_spi_ts < 1000)
goto spi_isr_end;
if(spi_recv_buf[0] != 0xde)
spi_error_occured = 1;
if(spi_recv_buf[SPI_BUF_INDEX_MSG_TYPE] == SPI_MOSI_MSG_TYPE_KEYBOARD_EVENT)
kb_buf_add(&my_kb_buf, spi_recv_buf[4], spi_recv_buf[6]);
if(adb_write_in_progress)
if(adb_rw_in_progress)
goto spi_isr_end;
if(spi_recv_buf[SPI_BUF_INDEX_MSG_TYPE] == SPI_MOSI_MSG_TYPE_MOUSE_EVENT)
{
@@ -209,6 +212,7 @@ void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi)
}
}
spi_isr_end:
last_spi_ts = micros();
HAL_SPI_TransmitReceive_IT(&hspi1, spi_transmit_buf, spi_recv_buf, SPI_BUF_SIZE);
HAL_GPIO_WritePin(USER_LED_GPIO_Port, USER_LED_Pin, GPIO_PIN_RESET);
}
@@ -238,7 +242,6 @@ void protocol_status_lookup_init(void)
uint8_t int16_to_uint6(int16_t value)
{
// int8_t result = value; // maybe 1 or 2?
if(abs(value) <= 3)
return (uint8_t)value;
value = value >> 1;
@@ -249,8 +252,6 @@ uint8_t int16_to_uint6(int16_t value)
return (uint8_t)value;
}
uint8_t kb_srq = 0;
void adb_mouse_update(void)
{
mouse_event* this_mouse_event = mouse_buf_peek(&my_mouse_buf);
@@ -265,7 +266,7 @@ void adb_mouse_update(void)
response |= (int16_to_uint6(this_mouse_event->movement_y) & 0x7f) << 8;
adb_send_response_16b(response);
mouse_buf_reset(&my_mouse_buf);
DEBUG0_LOW();
// DEBUG0_LOW();
}
void adb_keyboard_update(void)
@@ -273,14 +274,13 @@ void adb_keyboard_update(void)
uint8_t buffered_code, buffered_value;
if(kb_buf_peek(&my_kb_buf, &buffered_code, &buffered_value) == 0)
{
// DEBUG0_HI();
DEBUG0_HI();
if(buffered_value)
adb_send_response_16b(0x580);
else
adb_send_response_16b(0x8080);
// DEBUG0_LOW();
DEBUG0_LOW();
kb_buf_pop(&my_kb_buf);
kb_srq = 0;
}
}
@@ -324,7 +324,9 @@ int main(void)
protocol_status_lookup_init();
kb_buf_init(&my_kb_buf, 16);
mouse_buf_init(&my_mouse_buf, 16);
uint8_t adb_data, adb_status;
uint8_t adb_data, adb_status, this_addr;
uint8_t kb_srq = 0;
uint8_t mouse_srq = 0;
adb_init(ADB_DATA_GPIO_Port, ADB_DATA_Pin, ADB_PSW_GPIO_Port, ADB_PSW_Pin);
memset(spi_transmit_buf, 0, SPI_BUF_SIZE);
HAL_SPI_TransmitReceive_IT(&hspi1, spi_transmit_buf, spi_recv_buf, SPI_BUF_SIZE);
@@ -332,8 +334,6 @@ int main(void)
/* Infinite loop */
/* USER CODE BEGIN WHILE */
uint8_t last_addr = adb_mouse_current_addr;
uint8_t this_addr = last_addr;
while (1)
{
if(spi_error_occured)
@@ -344,30 +344,30 @@ int main(void)
if(IS_ADB_DEVICE_PRESENT() == 0)
continue;
// if(!mouse_buf_is_empty(&my_mouse_buf))
// mouse_srq = 1;
// if(!kb_buf_is_empty(&my_kb_buf))
// kb_srq = 1;
adb_status = adb_recv_cmd(&adb_data, kb_srq);
adb_status = adb_recv_cmd(&adb_data);
adb_rw_in_progress = 0;
if(adb_status == ADB_LINE_STATUS_RESET)
adb_reset();
else if(adb_status != ADB_OK)
continue;
// this_addr = adb_data >> 4;
// we are just at the end of a ADB command, check address, assert SRQ if needed
this_addr = adb_data >> 4;
if(!kb_buf_is_empty(&my_kb_buf))
kb_srq = (this_addr != adb_kb_current_addr);
else if(!mouse_buf_is_empty(&my_mouse_buf))
mouse_srq = (this_addr != adb_mouse_current_addr);
// if(!kb_buf_is_empty(&my_kb_buf) && this_addr != adb_kb_current_addr)
// kb_srq = 1;
if(kb_srq || mouse_srq)
send_srq();
adb_status = parse_adb_cmd(adb_data);
if(adb_status == ADB_MOUSE_POLL)
adb_mouse_update();
if(adb_status == ADB_KB_POLL)
adb_keyboard_update();
// printf("%x\n", adb_data);
last_addr = this_addr;
HAL_GPIO_WritePin(DEBUG1_GPIO_Port, DEBUG1_Pin, kb_srq);
HAL_GPIO_WritePin(DEBUG1_GPIO_Port, DEBUG1_Pin, kb_srq || mouse_srq);
}
/* USER CODE END 3 */