working on another way of interrupt handling

This commit is contained in:
dekunukem
2022-01-02 19:14:33 +00:00
parent 6eb2ab8bd4
commit e66a4a6b3d
10 changed files with 409 additions and 417 deletions

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

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

View File

@@ -11,7 +11,7 @@
:100090000000000005010008050100080501000836
:1000A00000000000211300080501000805010008F8
:1000B0000501000800000000050100080501000816
:1000C0000348854600F092F800480047992100084F
:1000C0000348854600F092F8004800479121000857
:1000D000D80700200C4880F308880C480168090EF6
:1000E0000B4A914205D10B480B4901600B480C4962
:1000F00001600C4880470C480047FEE7FEE7FEE73A
@@ -31,7 +31,7 @@
:1001D000491EFBD270470022F6E710B513460A46C7
:1001E00004461946FFF7F0FF204610BD064C0125D6
:1001F000064E05E0E36807CC2B430C3C98471034CF
:10020000B442F7D3FFF760FFEC2600080C27000884
:10020000B442F7D3FFF760FFC0260008E0260008DD
:1002100070B50024014620314A78022A03D0042117
:100220008163012416E0026813680E25AB43136056
:10023000026813685B085B0013600122056C1346BB
@@ -101,10 +101,10 @@
:1006300009028843E9680843606000F02DF86168AA
:10064000084A0906090F515CC840074908600020A4
:10065000FFF718FF0020F8BD002002400010024004
:1006600088130000D12600082400002001480068FB
:1006600088130000A5260008240000200148006827
:1006700070470000240000200448054900684968CC
:10068000044A4905490F515CC840704724000020C6
:1006900000100240E126000830B516A30FCB89B048
:1006900000100240B526000830B516A30FCB89B074
:1006A0006C460FC417A30FCB0FC41A494A680C201D
:1006B000144604401848042C05D0184B082C04D0CC
:1006C0000C2C00D1184609B030BD9402240F6D46A1
@@ -220,7 +220,7 @@
:100DA0002846F0BD31130008C5130008671300087A
:100DB000F913000870B501220F4D14022146284690
:100DC000FFF7FFFA0D480078DE2802D00C49012019
:100DD000C8700A492022881AFFF7E4F9074A20233D
:100DD00088700A492022881AFFF7E4F9074A20237D
:100DE000114640390748FFF77BFF0022214628467D
:100DF000FFF7E7FA70BD0000000400488C010020F6
:100E00001400002038000020042204490428086946
@@ -425,7 +425,7 @@
:101A7000032005B0F0BD2068C1693046884304D01A
:101A80000020B842D9D00020F3E70120F9E7000098
:101A90000FB410B503A9044B044A029800F018F8DB
:101AA00010BC08BC04B01847F91F00082C00002027
:101AA00010BC08BC04B01847F11F00082C0000202F
:101AB00002E008C8121F08C1002AFAD17047704717
:101AC000002001E001C1121F002AFBD17047000075
:101AD000FFB58DB00F460546002606E025280AD042
@@ -457,176 +457,173 @@
:101C700000900029F5DC08E00B980B990078491CCE
:101C80000B91109A0F999047761C0199481E01906C
:101C90000029F1DC6D1C28E70928010010B5044C6F
:101CA000A2606380E060A18000F00CF910BD00002C
:101CB000000000201CB56A4601A9104800F019FA7E
:101CA000A2606380E060A18000F008F910BD000030
:101CB000000000201CB56A4601A9104800F015FA82
:101CC00000281AD10E4C012211462046FEF779FB5E
:101CD00068460078002802D00B20C00100E00948C7
:101CE00000F0FCF8002201212046FEF76AFB0348C1
:101CF00000F00FFA0449002048701CBDAC01002020
:101CE00000F0F8F8002201212046FEF76AFB0348C5
:101CF00000F00BFA0449002008701CBDAC01002064
:101D0000001400488080000014000020F8B506464A
:101D10000020308016488188C068FEF749FB012802
:101D200023D1144C204600F093FC401C1DD02046CB
:101D300000F08EFC401C18D0204600F089FC401CAE
:101D400013D000252C460F2700F050F805280BD0A3
:101D200023D1144C204600F07DFC401C1DD02046E1
:101D300000F078FC401C18D0204600F073FC401CDA
:101D400013D000252C460F2700F04CF805280BD0A7
:101D5000391B88402843641C85B2102CF4DB0548ED
:101D600000F076FC35800020F8BD0520F8BD0000AD
:101D7000000000201027000070B51A4800F017FB83
:101D800002002DD090790023002801D10123DB032C
:101D600000F060FC35800020F8BD0520F8BD0000C3
:101D7000000000201027000070B5184800F001FB9B
:101D8000020029D090790023002801D10123DB0330
:101D9000107A002801D1802003430020105E00F05B
:101DA0005DF945066D0E02201D43105E00F056F9E8
:101DB0004006440C2C430C4D012211462846FEF7E8
:101DC00000FB204600F08AF8002201212846FEF799
:101DD000F8FA044800F0F6FA02490020091F0870DA
:101DE00070BD0000180000200014004870B50D48B8
:101DF0008188C068FEF7DCFA00280FD10A4D28461A
:101E000000F026FC0446284600F022FC611C05D0A8
:101E1000411C03D0A04203DD012070BD052070BD30
:101E2000002070BD0000002010270000F3B506461A
:101E300081B00020307000F087F9012806D11748E2
:101E400000F006FC3238292801D30520FEBD00250C
:101E50002C460727FFF7CAFF0528F7D0391B884013
:101E60002843641CC5B2082CF4DB0298002811D06A
:101E70000B4C0022A188E068FEF7A3FAFF202D306A
:101E800000F0A8F80122A188E068FEF79AFA357000
:101E90000020FEBD014800F0DBFBF8E71027000042
:101EA0000000002010B5064C01226188A068FEF7F2
:101EB00088FA0122A188E068FEF783FA10BD0000CD
:101EC0000000002010B50448022141700321017078
:101ED000FFF7E8FF10BD00000000002070B50546C8
:101EE000C82000F077F8124C0022A188E068FEF7C5
:101EF00068FA222000F06EF80122A188E068FEF75F
:101F000060FA402000F066F8284600F013F8062832
:101F10000DD00022A188E068FEF753FA402000F0BF
:101F200059F80122A188E068FEF74BFA002070BD45
:101F30000000002010B50446000A00F009F8062849
:101F400005D0E0B200F004F8062800D0002010BD53
:101F5000F8B500251C4C06460727791B3046C840BB
:101F6000C00714D00022A188E068FEF72AFA2220D8
:101F700000F030F80122A188E068FEF722FAA1887B
:101F8000E068FEF715FA012814D1402015E0002280
:101F9000A188E068FEF715FA402000F01BF8012246
:101FA000A188E068FEF70DFAA188E068FEF700FA64
:101FB000012801D00620F8BD222000F00BF86D1C8E
:101FC000082DCADB0020F8BD0000002009020143F3
:101FD00008B2704700B5014600F0A6F9411800F0BC
:101FE000A3F98842FBD300BD10B502490860FEF793
:101FF00085FF10BD1000002013B50A230122694699
:102000000248FFF723F800981CBD0000DC00002008
:1020100070B54406C109640EC901102C0FD20E4DD3
:10202000285D00280BD000290AD0022807D1032CF4
:1020300001D0062C01D1FFF745FF0120285570BDC6
:102040000128FCD102202855032C01D0062CF6D102
:10205000FFF738FF70BD0000C401002080103E2152
:1020600040B2C9433F2801DB3F2002E0884200DC48
:102070000846C0B2704770B515460E46044600F0DB
:102080002AF8002801D0012070BD217860684654EC
:102090002178A06845542078A178401CFEF746F8C6
:1020A0002170002070BD70B50D4604468170284631
:1020B00000F004F96060284600F000F9A0602046B6
:1020C00000F033F870BD41780078814201D10120E1
:1020D00070470020704710B5044681780078401C96
:1020E000FEF724F86078814201D1012010BD002064
:1020F00010BD10B543780478A34201D1012010BD72
:102100004468E35C0B7081684078085C10700020C4
:1021100010BD10B5044640782178884204D0A178DB
:10212000401CFEF703F8617010BD10B50446002096
:1021300020706070A1786068FEF74DF8A178A06803
:10214000FEF749F810BD000010B511488188C0683D
:10215000FEF72EF90F4C012804D1204600F078FA42
:10216000401C0ED0204600F073FA7D210901884200
:1021700009DC411C07D0FF21F531884205DA042033
:1021800010BDFF2010BD032010BD012010BD0000B8
:1021900000000020102700000EB5FEF763F9FFF7DE
:1021A0003FFAFEF7B9FFFFF731F8FFF777F8FFF7CF
:1021B0004BF800200125364C019003460095A2788B
:1021C000344935A0FFF764FC3848FFF70DFF00F0F5
:1021D000F3F910213648FFF766FF1021201D00F0AB
:1021E000C4F80926F6060123324602213148FFF7DA
:1021F00055FD2F4820216038FDF7EDFF2C4A2B4874
:10220000203A1146202340396438FEF769FD00F07A
:102210004BF908213046FEF7CBF80028F7D020789C
:102220006178084301D0012100E0002102A8FFF7F6
:10223000FDFD03280AD00028E9D16846007A00F0A5
:10224000CDF8032805D002280CD014E0FFF73AFEA1
:10225000F3E7FFF791FD1648FFF735FF00280AD195
:10226000657008E0FFF726FD0948001D00F089F8B9
:10227000002800D1257020786178084301D0012220
:1022800000E0002202210C48FEF79BF8BFE70000A7
:10229000140000209426000825730A7265762564D0
:1022A000207625642E25642E25640A009C000020DB
:1022B000AC0100200004004800140048F0B50B30C9
:1022C000C108C900144F0026144A0FE003688B426E
:1022D0000BD38B4205D95C1A4318456830C3083BC1
:1022E00000E04368136002C004E0021D106800288B
:1022F000ECD13046002803D13868002801D00020F6
:10230000F0BD064A06481060064A121AD208D200EA
:1023100044C001203860D7E734000020300000209E
:10232000DC010020D8030020024800680068406AF1
:10233000704700001000002070B50D46044600F004
:1023400028F8002801D0012070BD20780C22616897
:10235000504308182946FDF725FF2078A178401C36
:10236000FDF7E4FE2170002070BD10B504468170B9
:102370000C204843FFF7A2FF6060204600F022F8DF
:1023800010BD41780078814201D1012070470020C2
:10239000704710B5044681780078401CFDF7C6FEF2
:1023A0006078814201D1012010BD002010BD41782C
:1023B0000278914201D10020704740680C225143BD
:1023C0004018704710B500210170417081780C22CF
:1023D00051434068FDF7FFFE10BD0000F8B501074E
:1023E00086070509890FB60F002D06D02C4C03294E
:1023F000207804D0022928D050E00520F8BD032E13
:1024000002D0002E41D01DE085420BD1254FFDF7B3
:10241000B7FE0F21FDF7A0FE0806010C3846084361
:10242000FFF75CFD607885420CD11E4F3F1DFDF724
:10243000A7FE0F21FDF790FE0806010C0F4338465A
:10244000FFF74CFD002E24D028E0032E26D1854234
:102450000BD16846FFF75AFC684600880106490E12
:102460007F2902D10005000F20706078854215D1C8
:102470006846FFF74BFC684600880106490E7F2935
:102480000CD10005000F607008E0854201D10320E7
:10249000F8BD6078854201D10220F8BD0020F8BD6A
:1024A000000000200160000070B5414C2078002839
:1024B0007DD0404DE878002801D000F08BF83C48F2
:1024C000A2780079082A08D0092A0DD0032A2DD035
:1024D000012A32D0022A5DD065E001463448A27953
:1024E0004030FFF7C8FD5EE06179FFF76FFD304ACD
:1024F0004C321080E179A079FFF768FD5080617A55
:10250000207AFFF763FD40429080607B9071A07B52
:102510001072E07BD071207C5072607C90722449F4
:1025200024484C31001DFFF707FF3CE00920002242
:102530000221C006FDF745FF35E01D482021203867
:10254000FDF749FE1A49CD2020390870607848709F
:1025500080248C700220C870A8780871002048710F
:1025600001228A7108220D46C87178352B5C002B38
:102570000BD0022B02D0012B02D004E0885402E0E1
:10258000034623438B54521CD2B2401C1028EDDB6F
:1025900009E00CE00325605D002804D0FFF738FD5A
:1025A0006D1C202DF7DB20210148FDF714FE70BDC6
:1025B0006C0100201400002005480021C160016169
:1025C0004161816101210C30C1708171704700004F
:1025D000B801002012A0FFF75BFA144D0024295D1A
:1025E00013A0FFF755FA641C202CF8DB11A0FFF7AD
:1025F0004FFA0024FF25134E013529463046FDF7DA
:10260000DCFE6420FDF728FE641C642CF5DBBFF3C0
:102610004F8F0E490C48C860BFF34F8F00BFFDE7D6
:10262000535049204552524F520A00006C0100207D
:10263000256420000A7265626F6F74696E672E2EC2
:102640002E0A0000000400480400FA0500ED00E036
:10265000F8B50746FFF768FE0D4C0090A188E068CA
:10266000FDF7A6FE05460AE0FFF75EFE0099461A52
:10267000002F04D0BE4202D90020C043F8BDA1887B
:10268000E068FDF795FEA842EED03046F8BD0000A8
:10269000000000205553423456432050726F746F2F
:1026A000636F6C20426F6172640A4170706C6520C8
:1026B0004465736B746F70204275732028414442E7
:1026C000290A64656B754E756B656D203230323248
:1026D00000000000000000000001020304060708DB
:1026E0000900000000010203040000000C2700089C
:1026F0000000002038000000B01A0008442700083D
:1027000038000020A0070000C01A000800000000E8
:1027100000000000000000000000000000000000B9
:1027200000000000000000000000000000000000A9
:1027300000127A000000000000000000000000000D
:042740000000000095
:101DA00059F945066D0E02201D43105E00F052F9F0
:101DB0004006440C2C430A4D012211462846FEF7EA
:101DC00000FB204600F086F8002201212846FEF79D
:101DD000F8FA024800F0E0FA70BD00001800002098
:101DE0000014004870B50D488188C068FEF7E0FA1D
:101DF00000280FD10A4D284600F014FC044628465E
:101E000000F010FC611C05D0411C03D0A04203DD92
:101E1000012070BD052070BD002070BD00000020B5
:101E200010270000F3B5064681B00020307000F0A6
:101E300087F9012806D1174800F0F4FB3238292829
:101E400001D30520FEBD00252C460727FFF7CAFF5A
:101E50000528F7D0391B88402843641CC5B2082CDC
:101E6000F4DB0298002811D00B4C0022A188E06816
:101E7000FEF7A7FAFF202D3000F0A8F80122A18874
:101E8000E068FEF79EFA35700020FEBD014800F0C4
:101E9000C9FBF8E7102700000000002010B5064C31
:101EA00001226188A068FEF78CFA0122A188E0680F
:101EB000FEF787FA10BD00000000002010B50448AE
:101EC0000221417003210170FFF7E8FF10BD0000FF
:101ED0000000002070B50546C82000F077F8124CCD
:101EE0000022A188E068FEF76CFA222000F06EF86C
:101EF0000122A188E068FEF764FA402000F066F84D
:101F0000284600F013F806280DD00022A188E068CA
:101F1000FEF757FA402000F059F80122A188E06846
:101F2000FEF74FFA002070BD0000002010B50446F7
:101F3000000A00F009F8062805D0E0B200F004F825
:101F4000062800D0002010BDF8B500251C4C064620
:101F50000727791B3046C840C00714D00022A1884B
:101F6000E068FEF72EFA222000F030F80122A18866
:101F7000E068FEF726FAA188E068FEF719FA012862
:101F800014D1402015E00022A188E068FEF719FA7C
:101F9000402000F01BF80122A188E068FEF711FA4A
:101FA000A188E068FEF704FA012801D00620F8BDF8
:101FB000222000F00BF86D1C082DCADB0020F8BDB4
:101FC000000000200902014308B2704700B5014635
:101FD00000F09CF9411800F099F98842FBD300BD4C
:101FE00010B502490860FEF789FF10BD10000020FF
:101FF00013B50A23012269460248FFF727F8009823
:102000001CBD0000DC00002070B54406C109640E50
:10201000C901102C0FD20E4D285D00280BD00029CD
:102020000AD0022807D1032C01D0062C01D1FFF7DA
:1020300045FF0120285570BD0128FCD102202855FC
:10204000032C01D0062CF6D1FFF738FF70BD00003D
:10205000C401002040103E2140B2C9433F2801DBAB
:102060003F2002E0884200DC0846C0B2704770B5ED
:1020700015460E46044600F02AF8002801D001203B
:1020800070BD2178606846542178A0684554207856
:10209000A178401CFEF74AF82170002070BD70B591
:1020A0000D4604468170284600F0FAF86060284624
:1020B00000F0F6F8A060204600F033F870BD4178DB
:1020C0000078814201D1012070470020704710B58F
:1020D000044681780078401CFEF728F86078814239
:1020E00001D1012010BD002010BD10B54378047847
:1020F000A34201D1012010BD4468E35C0B708168EC
:102100004078085C1070002010BD10B5044640787F
:102110002178884204D0A178401CFEF707F861704E
:1021200010BD10B50446002020706070A178606872
:10213000FEF751F8A178A068FEF74DF810BD000039
:1021400010B511488188C068FEF732F90F4C01289C
:1021500004D1204600F066FA401C0ED0204600F064
:1021600061FA7D210901884209DC411C07D0FF2169
:10217000F531884205DA042010BDFF2010BD032090
:1021800010BD012010BD000000000020102700003D
:102190000EB5FEF767F9FFF743FAFEF7BDFFFFF74D
:1021A00035F8FFF77BF8FFF74FF800200125304C9A
:1021B00001900346009562782E492FA0FFF768FC36
:1021C0003248FFF70DFF00F0E1F910213048FFF72A
:1021D00066FF1021201D00F0BAF809220123D20663
:1021E00002212C48FFF75AFD294820216038FDF7CD
:1021F000F2FF274A2548203A114620234039643807
:10220000FEF76EFD244F00F039F909200821C006C1
:10221000FEF7CEF80028F6D0217802A8FFF702FEDC
:1022200003280AD00028EED16846007A060918482B
:10223000FFF745FF002803D006E0FFF73FFEF3E776
:102240003878864200D025706846007A00F0B0F8F1
:10225000032802D0022803D004E0FFF78DFD01E03F
:10226000FFF728FD227802210C48FEF7AAF8CAE7FA
:10227000140000206826000825730A72657625641C
:10228000207625642E25642E25640A009C000020FB
:10229000AC010020000400480100002000140048A8
:1022A000F0B50B30C108C900144F0026144A0FE0E6
:1022B00003688B420BD38B4205D95C1A43184568DF
:1022C00030C3083B00E04368136002C004E0021D15
:1022D00010680028ECD13046002803D13868002867
:1022E00001D00020F0BD064A06481060064A121AC6
:1022F000D208D20044C001203860D7E73400002063
:1023000030000020DC010020D803002002480068D3
:102310000068406A704700001000002070B50D464C
:10232000044600F020F8002801D0012070BD20787C
:102330000C226168504308182946FDF733FF2078C6
:10234000A178401CFDF7F2FE2170002070BD10B591
:10235000044681700C204843FFF7A2FF60602046CE
:1023600000F01AF810BD10B5044681780078401CC2
:10237000FDF7DCFE6078814201D1012010BD002014
:1023800010BD41780278914201D100207047406829
:102390000C2251434018704710B500210170417064
:1023A00081780C2251434068FDF715FF10BD0000F5
:1023B000F8B5010786070509890FB60F002D06D06D
:1023C0002C4C0329207804D0022928D050E0052085
:1023D000F8BD032E02D0002E41D01DE085420BD166
:1023E000254FFDF7CDFE0F21FDF7B6FE0806010CC7
:1023F00038460843FFF76EFD607885420CD11E4FCA
:102400003F1DFDF7BDFE0F21FDF7A6FE0806010CDE
:102410000F433846FFF75EFD002E24D028E0032E40
:1024200026D185420BD16846FFF770FC68460088CC
:102430000106490E7F2902D10005000F2070607847
:10244000854215D16846FFF761FC684600880106A1
:10245000490E7F290CD10005000F607008E085420D
:1024600001D10320F8BD6078854201D10220F8BD7A
:102470000020F8BD000000200160000070B5414C54
:10248000207800287DD0404DA878002801D000F0A9
:102490008BF83C48A2780079082A08D0092A0DD088
:1024A000032A2DD0012A32D0022A5DD065E00146F0
:1024B0003448A2794030FFF7DAFD5EE06179FFF73A
:1024C00081FD304A4C321080E179A079FFF77AFD26
:1024D0005080617A207AFFF775FD40429080607BE2
:1024E0009071A07B1072E07BD071207C5072607C78
:1024F0009072244924484C31001DFFF70FFF3CE047
:10250000092000220221C006FDF75BFF35E01D48CF
:1025100020212038FDF75FFE1A49CD2020390870B0
:102520006078487080248C700220C87068780871C8
:102530000020487101228A7108220D46C871783541
:102540002B5C002B0BD0022B02D0012B02D004E01D
:10255000885402E0034623438B54521CD2B2401CE1
:102560001028EDDB09E00CE00325605D002804D0B5
:10257000FFF74AFD6D1C202DF7DB20210148FDF7F8
:102580002AFE70BD6C0100201400002005480021C7
:10259000C16001614161816101210C30C1708171B3
:1025A00070470000B801002012A0FFF771FA144D27
:1025B0000024295D13A0FFF76BFA641C202CF8DBC4
:1025C00011A0FFF765FA0024FF25134E01352946B7
:1025D0003046FDF7F2FE6420FDF73EFE641C642CDD
:1025E000F5DBBFF34F8F0E490C48C860BFF34F8F28
:1025F00000BFFDE7535049204552524F520A000098
:102600006C010020256420000A7265626F6F746996
:102610006E672E2E2E0A0000000400480400FA0502
:1026200000ED00E0F8B50746FFF770FE0D4C009096
:10263000A188E068FDF7BCFE05460AE0FFF766FEEC
:102640000099461A002F04D0BE4202D90020C04390
:10265000F8BDA188E068FDF7ABFEA842EED0304699
:10266000F8BD00000000002055534234564320506E
:10267000726F746F636F6C20426F6172640A417095
:10268000706C65204465736B746F702042757320A5
:1026900028414442290A64656B754E756B656D204F
:1026A000323032320000000000000000000102035E
:1026B00004060708090000000001020304000000EE
:1026C000E02600080000002038000000B01A0008D2
:1026D0001827000838000020A0070000C01A0008D2
:1026E00000000000000000000000000000000000EA
:1026F00000000000000000000000000000000000DA
:102700000000000000127A0000000000000000003D
:082710000000000000000000C1
:04000005080000C12E
:00000001FF

View File

@@ -3,7 +3,7 @@
<title>Static Call Graph - [my_adb\my_adb.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image my_adb\my_adb.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Sun Jan 02 17:51:36 2022
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Sun Jan 02 19:09:56 2022
<BR><P>
<H3>Maximum Stack Usage = 180 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
@@ -68,7 +68,7 @@ Global Symbols
<P><STRONG><a name="[23]"></a>__main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f042x6.o(.text)
</UL>
<P><STRONG><a name="[96]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[95]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[2a]"></a>_main_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[2b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
@@ -78,15 +78,15 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[2b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL>
<P><STRONG><a name="[97]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[96]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[98]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[97]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[99]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[98]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[9a]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[99]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[9b]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[9a]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[0]"></a>Reset_Handler</STRONG> (Thumb, 38 bytes, Stack size 0 bytes, startup_stm32f042x6.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f042x6.o(RESET)
@@ -173,14 +173,14 @@ Global Symbols
<P><STRONG><a name="[6]"></a>WWDG_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f042x6.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f042x6.o(RESET)
</UL>
<P><STRONG><a name="[9c]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[9b]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[2d]"></a>__aeabi_uidivmod</STRONG> (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = __aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
<LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_is_full
<LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
<LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_is_full
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
<LI><a href="#[6f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_pop
<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_is_full
<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_add
@@ -191,40 +191,40 @@ Global Symbols
<LI><a href="#[2c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_idivmod
</UL>
<P><STRONG><a name="[9d]"></a>__aeabi_idiv</STRONG> (Thumb, 0 bytes, Stack size 16 bytes, idiv.o(.text), UNUSED)
<P><STRONG><a name="[9c]"></a>__aeabi_idiv</STRONG> (Thumb, 0 bytes, Stack size 16 bytes, idiv.o(.text), UNUSED)
<P><STRONG><a name="[2c]"></a>__aeabi_idivmod</STRONG> (Thumb, 40 bytes, Stack size 16 bytes, idiv.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = __aeabi_idivmod &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[2d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
<BR>[Called By]<UL><LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
</UL>
<P><STRONG><a name="[92]"></a>rand</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, rand.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
<P><STRONG><a name="[91]"></a>rand</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, rand.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
</UL>
<P><STRONG><a name="[9e]"></a>srand</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, rand.o(.text), UNUSED)
<P><STRONG><a name="[9d]"></a>srand</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, rand.o(.text), UNUSED)
<P><STRONG><a name="[91]"></a>__aeabi_memcpy</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
<P><STRONG><a name="[90]"></a>__aeabi_memcpy</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
</UL>
<P><STRONG><a name="[4c]"></a>__aeabi_memcpy4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
</UL>
<P><STRONG><a name="[9f]"></a>__aeabi_memcpy8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
<P><STRONG><a name="[9e]"></a>__aeabi_memcpy8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)
<P><STRONG><a name="[2f]"></a>__aeabi_memset</STRONG> (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[30]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_memset$wrapper
<LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<P><STRONG><a name="[a0]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[9f]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[a1]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[a0]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[2e]"></a>__aeabi_memclr</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
@@ -238,7 +238,7 @@ Global Symbols
<LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[a2]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[a1]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[30]"></a>_memset$wrapper</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[2f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
@@ -250,7 +250,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[2a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
</UL>
<P><STRONG><a name="[a3]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[a2]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[44]"></a>HAL_DMA_Abort_IT</STRONG> (Thumb, 72 bytes, Stack size 16 bytes, stm32f0xx_hal_dma.o(i.HAL_DMA_Abort_IT))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = HAL_DMA_Abort_IT
@@ -263,7 +263,7 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[33]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL>
<BR>[Called By]<UL><LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<BR>[Called By]<UL><LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
</UL>
<P><STRONG><a name="[48]"></a>HAL_GPIO_Init</STRONG> (Thumb, 294 bytes, Stack size 24 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_Init))
@@ -283,8 +283,8 @@ Global Symbols
<LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_listen_16b
</UL>
<P><STRONG><a name="[95]"></a>HAL_GPIO_TogglePin</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_TogglePin))
<BR><BR>[Called By]<UL><LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<P><STRONG><a name="[94]"></a>HAL_GPIO_TogglePin</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_TogglePin))
<BR><BR>[Called By]<UL><LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
</UL>
<P><STRONG><a name="[4b]"></a>HAL_GPIO_WritePin</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin))
@@ -637,20 +637,20 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[a4]"></a>__1printf$3</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)
<P><STRONG><a name="[a3]"></a>__1printf$3</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3), UNUSED)
<P><STRONG><a name="[87]"></a>__2printf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printf3.o(i.__0printf$3))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = __2printf
</UL>
<BR>[Called By]<UL><LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<BR>[Called By]<UL><LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[a5]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[a4]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[a6]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[a5]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[a7]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[a6]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[6a]"></a>adb_init</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, adb.o(i.adb_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = adb_init &rArr; adb_reset &rArr; adb_release_lines
@@ -678,10 +678,10 @@ Global Symbols
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_until_change
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_read_bit
</UL>
<BR>[Called By]<UL><LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
<BR>[Called By]<UL><LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
</UL>
<P><STRONG><a name="[74]"></a>adb_mouse_update</STRONG> (Thumb, 106 bytes, Stack size 16 bytes, main.o(i.adb_mouse_update))
<P><STRONG><a name="[74]"></a>adb_mouse_update</STRONG> (Thumb, 98 bytes, Stack size 16 bytes, main.o(i.adb_mouse_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 68<LI>Call Chain = adb_mouse_update &rArr; adb_send_response_16b &rArr; adb_write_16 &rArr; adb_write_byte &rArr; delay_us
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;int16_to_uint6
@@ -742,7 +742,7 @@ Global Symbols
</UL>
<BR>[Called By]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_mouse_update
<LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_keyboard_update
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
<LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
</UL>
<P><STRONG><a name="[7c]"></a>adb_write_16</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, adb.o(i.adb_write_16))
@@ -763,7 +763,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_write_16
</UL>
<P><STRONG><a name="[94]"></a>byte_to_int16_t</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, main.o(i.byte_to_int16_t))
<P><STRONG><a name="[93]"></a>byte_to_int16_t</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, main.o(i.byte_to_int16_t))
<BR><BR>[Called By]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
</UL>
@@ -822,7 +822,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[8d]"></a>kb_buf_is_empty</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, helpers.o(i.kb_buf_is_empty))
<P><STRONG><a name="[8c]"></a>kb_buf_is_empty</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, helpers.o(i.kb_buf_is_empty))
<BR><BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
@@ -865,7 +865,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
</UL>
<P><STRONG><a name="[21]"></a>main</STRONG> (Thumb, 246 bytes, Stack size 16 bytes, main.o(i.main))
<P><STRONG><a name="[21]"></a>main</STRONG> (Thumb, 224 bytes, Stack size 16 bytes, main.o(i.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 180<LI>Call Chain = main &rArr; SystemClock_Config &rArr; HAL_RCC_ClockConfig &rArr; HAL_RCC_GetSysClockFreq &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[4d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TransmitReceive_IT
@@ -879,14 +879,13 @@ Global Symbols
<LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM2_Init
<LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_SPI1_Init
<LI><a href="#[5a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_is_empty
<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_init
<LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_is_empty
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_is_empty
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_init
<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_init
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
<LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;parse_adb_cmd
<LI><a href="#[6b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_reset
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
<LI><a href="#[6a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_init
@@ -907,11 +906,11 @@ Global Symbols
<LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_until_change
</UL>
<P><STRONG><a name="[8f]"></a>mouse_buf_add</STRONG> (Thumb, 50 bytes, Stack size 16 bytes, helpers.o(i.mouse_buf_add))
<P><STRONG><a name="[8e]"></a>mouse_buf_add</STRONG> (Thumb, 50 bytes, Stack size 16 bytes, helpers.o(i.mouse_buf_add))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = mouse_buf_add &rArr; mouse_buf_is_full &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_is_full
<LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<BR>[Calls]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_is_full
<LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memcpy
<LI><a href="#[2d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;process_spi_data
@@ -926,16 +925,12 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[8e]"></a>mouse_buf_is_empty</STRONG> (Thumb, 16 bytes, Stack size 0 bytes, helpers.o(i.mouse_buf_is_empty))
<BR><BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[90]"></a>mouse_buf_is_full</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_is_full))
<P><STRONG><a name="[8f]"></a>mouse_buf_is_full</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, helpers.o(i.mouse_buf_is_full))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = mouse_buf_is_full &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[2d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
<BR>[Called By]<UL><LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
</UL>
<P><STRONG><a name="[75]"></a>mouse_buf_peek</STRONG> (Thumb, 22 bytes, Stack size 0 bytes, helpers.o(i.mouse_buf_peek))
@@ -951,12 +946,12 @@ Global Symbols
<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_init
</UL>
<P><STRONG><a name="[8c]"></a>parse_adb_cmd</STRONG> (Thumb, 196 bytes, Stack size 24 bytes, adb.o(i.parse_adb_cmd))
<P><STRONG><a name="[8d]"></a>parse_adb_cmd</STRONG> (Thumb, 196 bytes, Stack size 24 bytes, adb.o(i.parse_adb_cmd))
<BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = parse_adb_cmd &rArr; adb_listen_16b &rArr; adb_read_bit &rArr; wait_until_change
</UL>
<BR>[Calls]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_send_response_16b
<LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_listen_16b
<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rand
<LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;rand
<LI><a href="#[2c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_idivmod
</UL>
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
@@ -965,10 +960,10 @@ Global Symbols
<P><STRONG><a name="[8b]"></a>process_spi_data</STRONG> (Thumb, 264 bytes, Stack size 16 bytes, main.o(i.process_spi_data))
<BR><BR>[Stack]<UL><LI>Max Depth = 52<LI>Call Chain = process_spi_data &rArr; mouse_buf_add &rArr; mouse_buf_is_full &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<BR>[Calls]<UL><LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;spi_error_dump_reboot
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;handle_protocol_switch
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;byte_to_int16_t
<LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
<LI><a href="#[93]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;byte_to_int16_t
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_add
<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_add
<LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
@@ -980,10 +975,10 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[93]"></a>spi_error_dump_reboot</STRONG> (Thumb, 76 bytes, Stack size 0 bytes, main.o(i.spi_error_dump_reboot))
<P><STRONG><a name="[92]"></a>spi_error_dump_reboot</STRONG> (Thumb, 76 bytes, Stack size 0 bytes, main.o(i.spi_error_dump_reboot))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = spi_error_dump_reboot &rArr; __2printf
</UL>
<BR>[Calls]<UL><LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_TogglePin
<BR>[Calls]<UL><LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_TogglePin
<LI><a href="#[32]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
</UL>

View File

@@ -129,16 +129,16 @@ Section Cross References
main.o(i.main) refers to main.o(i.process_spi_data) for process_spi_data
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 adb.o(i.adb_reset) for adb_reset
main.o(i.main) refers to main.o(i.adb_mouse_update) for adb_mouse_update
main.o(i.main) refers to helpers.o(i.kb_buf_is_empty) for kb_buf_is_empty
main.o(i.main) refers to adb.o(i.adb_reset) for adb_reset
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 helpers.o(i.mouse_buf_is_empty) for mouse_buf_is_empty
main.o(i.main) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
main.o(i.main) refers to main.o(.data) for .data
main.o(i.main) refers to main.o(.constdata) for .constdata
main.o(i.main) refers to main.o(.bss) for .bss
main.o(i.main) refers to adb.o(.data) for adb_kb_current_addr
main.o(i.process_spi_data) refers to main.o(i.spi_error_dump_reboot) for spi_error_dump_reboot
main.o(i.process_spi_data) refers to helpers.o(i.kb_buf_add) for kb_buf_add
main.o(i.process_spi_data) refers to main.o(i.byte_to_int16_t) for byte_to_int16_t
@@ -1096,6 +1096,7 @@ Removing Unused input sections from the image.
Removing delay_us.o(.revsh_text), (4 bytes).
Removing helpers.o(.rev16_text), (4 bytes).
Removing helpers.o(.revsh_text), (4 bytes).
Removing helpers.o(i.mouse_buf_is_empty), (16 bytes).
Removing helpers.o(i.mouse_buf_pop), (24 bytes).
Removing main.o(.rev16_text), (4 bytes).
Removing main.o(.revsh_text), (4 bytes).
@@ -1578,7 +1579,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).
490 unused section(s) (total 34800 bytes) removed from the image.
491 unused section(s) (total 34816 bytes) removed from the image.
==============================================================================
@@ -1614,36 +1615,36 @@ Image Symbol Table
../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 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/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/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE
../clib/microlib/malloc/mvars.c 0x00000000 Number 0 mvars.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE
../clib/microlib/printf/stubs.s 0x00000000 Number 0 stubs.o ABSOLUTE
../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE
@@ -1803,44 +1804,43 @@ Image Symbol Table
i.adb_keyboard_update 0x08001cb4 Section 0 main.o(i.adb_keyboard_update)
i.adb_listen_16b 0x08001d0c Section 0 adb.o(i.adb_listen_16b)
i.adb_mouse_update 0x08001d78 Section 0 main.o(i.adb_mouse_update)
i.adb_read_bit 0x08001dec Section 0 adb.o(i.adb_read_bit)
i.adb_recv_cmd 0x08001e2c Section 0 adb.o(i.adb_recv_cmd)
i.adb_release_lines 0x08001ea4 Section 0 adb.o(i.adb_release_lines)
i.adb_reset 0x08001ec4 Section 0 adb.o(i.adb_reset)
i.adb_send_response_16b 0x08001edc Section 0 adb.o(i.adb_send_response_16b)
i.adb_write_16 0x08001f34 Section 0 adb.o(i.adb_write_16)
i.adb_write_byte 0x08001f50 Section 0 adb.o(i.adb_write_byte)
i.byte_to_int16_t 0x08001fcc Section 0 main.o(i.byte_to_int16_t)
i.delay_us 0x08001fd4 Section 0 delay_us.o(i.delay_us)
i.delay_us_init 0x08001fe8 Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x08001ff8 Section 0 main.o(i.fputc)
i.handle_protocol_switch 0x08002010 Section 0 main.o(i.handle_protocol_switch)
i.int16_to_uint6 0x0800205c Section 0 main.o(i.int16_to_uint6)
i.kb_buf_add 0x08002076 Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x080020a6 Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_is_empty 0x080020c6 Section 0 helpers.o(i.kb_buf_is_empty)
i.kb_buf_is_full 0x080020d6 Section 0 helpers.o(i.kb_buf_is_full)
i.kb_buf_peek 0x080020f2 Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x08002112 Section 0 helpers.o(i.kb_buf_pop)
i.kb_buf_reset 0x0800212a Section 0 helpers.o(i.kb_buf_reset)
i.look_for_atten 0x08002148 Section 0 adb.o(i.look_for_atten)
i.main 0x08002198 Section 0 main.o(i.main)
i.malloc 0x080022bc Section 0 malloc.o(i.malloc)
i.micros 0x08002328 Section 0 delay_us.o(i.micros)
i.mouse_buf_add 0x08002338 Section 0 helpers.o(i.mouse_buf_add)
i.mouse_buf_init 0x0800236a Section 0 helpers.o(i.mouse_buf_init)
i.mouse_buf_is_empty 0x08002382 Section 0 helpers.o(i.mouse_buf_is_empty)
i.mouse_buf_is_full 0x08002392 Section 0 helpers.o(i.mouse_buf_is_full)
i.mouse_buf_peek 0x080023ae Section 0 helpers.o(i.mouse_buf_peek)
i.mouse_buf_reset 0x080023c4 Section 0 helpers.o(i.mouse_buf_reset)
i.parse_adb_cmd 0x080023dc Section 0 adb.o(i.parse_adb_cmd)
i.process_spi_data 0x080024a8 Section 0 main.o(i.process_spi_data)
i.protocol_status_lookup_init 0x080025b8 Section 0 main.o(i.protocol_status_lookup_init)
i.spi_error_dump_reboot 0x080025d4 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_until_change 0x08002650 Section 0 adb.o(i.wait_until_change)
.constdata 0x08002694 Section 61 main.o(.constdata)
.constdata 0x080026d1 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x080026e1 Section 8 system_stm32f0xx.o(.constdata)
i.adb_read_bit 0x08001de4 Section 0 adb.o(i.adb_read_bit)
i.adb_recv_cmd 0x08001e24 Section 0 adb.o(i.adb_recv_cmd)
i.adb_release_lines 0x08001e9c Section 0 adb.o(i.adb_release_lines)
i.adb_reset 0x08001ebc Section 0 adb.o(i.adb_reset)
i.adb_send_response_16b 0x08001ed4 Section 0 adb.o(i.adb_send_response_16b)
i.adb_write_16 0x08001f2c Section 0 adb.o(i.adb_write_16)
i.adb_write_byte 0x08001f48 Section 0 adb.o(i.adb_write_byte)
i.byte_to_int16_t 0x08001fc4 Section 0 main.o(i.byte_to_int16_t)
i.delay_us 0x08001fcc Section 0 delay_us.o(i.delay_us)
i.delay_us_init 0x08001fe0 Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x08001ff0 Section 0 main.o(i.fputc)
i.handle_protocol_switch 0x08002008 Section 0 main.o(i.handle_protocol_switch)
i.int16_to_uint6 0x08002054 Section 0 main.o(i.int16_to_uint6)
i.kb_buf_add 0x0800206e Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x0800209e Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_is_empty 0x080020be Section 0 helpers.o(i.kb_buf_is_empty)
i.kb_buf_is_full 0x080020ce Section 0 helpers.o(i.kb_buf_is_full)
i.kb_buf_peek 0x080020ea Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x0800210a Section 0 helpers.o(i.kb_buf_pop)
i.kb_buf_reset 0x08002122 Section 0 helpers.o(i.kb_buf_reset)
i.look_for_atten 0x08002140 Section 0 adb.o(i.look_for_atten)
i.main 0x08002190 Section 0 main.o(i.main)
i.malloc 0x080022a0 Section 0 malloc.o(i.malloc)
i.micros 0x0800230c Section 0 delay_us.o(i.micros)
i.mouse_buf_add 0x0800231c Section 0 helpers.o(i.mouse_buf_add)
i.mouse_buf_init 0x0800234e Section 0 helpers.o(i.mouse_buf_init)
i.mouse_buf_is_full 0x08002366 Section 0 helpers.o(i.mouse_buf_is_full)
i.mouse_buf_peek 0x08002382 Section 0 helpers.o(i.mouse_buf_peek)
i.mouse_buf_reset 0x08002398 Section 0 helpers.o(i.mouse_buf_reset)
i.parse_adb_cmd 0x080023b0 Section 0 adb.o(i.parse_adb_cmd)
i.process_spi_data 0x0800247c Section 0 main.o(i.process_spi_data)
i.protocol_status_lookup_init 0x0800258c Section 0 main.o(i.protocol_status_lookup_init)
i.spi_error_dump_reboot 0x080025a8 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_until_change 0x08002624 Section 0 adb.o(i.wait_until_change)
.constdata 0x08002668 Section 61 main.o(.constdata)
.constdata 0x080026a5 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x080026b5 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)
@@ -2024,47 +2024,46 @@ Image Symbol Table
adb_init 0x08001c9d Thumb Code 18 adb.o(i.adb_init)
adb_keyboard_update 0x08001cb5 Thumb Code 72 main.o(i.adb_keyboard_update)
adb_listen_16b 0x08001d0d Thumb Code 98 adb.o(i.adb_listen_16b)
adb_mouse_update 0x08001d79 Thumb Code 106 main.o(i.adb_mouse_update)
adb_read_bit 0x08001ded Thumb Code 56 adb.o(i.adb_read_bit)
adb_recv_cmd 0x08001e2d Thumb Code 112 adb.o(i.adb_recv_cmd)
adb_release_lines 0x08001ea5 Thumb Code 26 adb.o(i.adb_release_lines)
adb_reset 0x08001ec5 Thumb Code 18 adb.o(i.adb_reset)
adb_send_response_16b 0x08001edd Thumb Code 84 adb.o(i.adb_send_response_16b)
adb_write_16 0x08001f35 Thumb Code 28 adb.o(i.adb_write_16)
adb_write_byte 0x08001f51 Thumb Code 120 adb.o(i.adb_write_byte)
byte_to_int16_t 0x08001fcd Thumb Code 8 main.o(i.byte_to_int16_t)
delay_us 0x08001fd5 Thumb Code 20 delay_us.o(i.delay_us)
delay_us_init 0x08001fe9 Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x08001ff9 Thumb Code 18 main.o(i.fputc)
handle_protocol_switch 0x08002011 Thumb Code 70 main.o(i.handle_protocol_switch)
int16_to_uint6 0x0800205d Thumb Code 26 main.o(i.int16_to_uint6)
kb_buf_add 0x08002077 Thumb Code 48 helpers.o(i.kb_buf_add)
kb_buf_init 0x080020a7 Thumb Code 32 helpers.o(i.kb_buf_init)
kb_buf_is_empty 0x080020c7 Thumb Code 16 helpers.o(i.kb_buf_is_empty)
kb_buf_is_full 0x080020d7 Thumb Code 28 helpers.o(i.kb_buf_is_full)
kb_buf_peek 0x080020f3 Thumb Code 32 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x08002113 Thumb Code 24 helpers.o(i.kb_buf_pop)
kb_buf_reset 0x0800212b Thumb Code 28 helpers.o(i.kb_buf_reset)
look_for_atten 0x08002149 Thumb Code 70 adb.o(i.look_for_atten)
main 0x08002199 Thumb Code 246 main.o(i.main)
malloc 0x080022bd Thumb Code 92 malloc.o(i.malloc)
micros 0x08002329 Thumb Code 10 delay_us.o(i.micros)
mouse_buf_add 0x08002339 Thumb Code 50 helpers.o(i.mouse_buf_add)
mouse_buf_init 0x0800236b Thumb Code 24 helpers.o(i.mouse_buf_init)
mouse_buf_is_empty 0x08002383 Thumb Code 16 helpers.o(i.mouse_buf_is_empty)
mouse_buf_is_full 0x08002393 Thumb Code 28 helpers.o(i.mouse_buf_is_full)
mouse_buf_peek 0x080023af Thumb Code 22 helpers.o(i.mouse_buf_peek)
mouse_buf_reset 0x080023c5 Thumb Code 22 helpers.o(i.mouse_buf_reset)
parse_adb_cmd 0x080023dd Thumb Code 196 adb.o(i.parse_adb_cmd)
process_spi_data 0x080024a9 Thumb Code 264 main.o(i.process_spi_data)
protocol_status_lookup_init 0x080025b9 Thumb Code 22 main.o(i.protocol_status_lookup_init)
spi_error_dump_reboot 0x080025d5 Thumb Code 76 main.o(i.spi_error_dump_reboot)
wait_until_change 0x08002651 Thumb Code 62 adb.o(i.wait_until_change)
boot_message 0x08002694 Data 61 main.o(.constdata)
AHBPrescTable 0x080026d1 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x080026e1 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x080026ec Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x0800270c Number 0 anon$$obj.o(Region$$Table)
adb_mouse_update 0x08001d79 Thumb Code 98 main.o(i.adb_mouse_update)
adb_read_bit 0x08001de5 Thumb Code 56 adb.o(i.adb_read_bit)
adb_recv_cmd 0x08001e25 Thumb Code 112 adb.o(i.adb_recv_cmd)
adb_release_lines 0x08001e9d Thumb Code 26 adb.o(i.adb_release_lines)
adb_reset 0x08001ebd Thumb Code 18 adb.o(i.adb_reset)
adb_send_response_16b 0x08001ed5 Thumb Code 84 adb.o(i.adb_send_response_16b)
adb_write_16 0x08001f2d Thumb Code 28 adb.o(i.adb_write_16)
adb_write_byte 0x08001f49 Thumb Code 120 adb.o(i.adb_write_byte)
byte_to_int16_t 0x08001fc5 Thumb Code 8 main.o(i.byte_to_int16_t)
delay_us 0x08001fcd Thumb Code 20 delay_us.o(i.delay_us)
delay_us_init 0x08001fe1 Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x08001ff1 Thumb Code 18 main.o(i.fputc)
handle_protocol_switch 0x08002009 Thumb Code 70 main.o(i.handle_protocol_switch)
int16_to_uint6 0x08002055 Thumb Code 26 main.o(i.int16_to_uint6)
kb_buf_add 0x0800206f Thumb Code 48 helpers.o(i.kb_buf_add)
kb_buf_init 0x0800209f Thumb Code 32 helpers.o(i.kb_buf_init)
kb_buf_is_empty 0x080020bf Thumb Code 16 helpers.o(i.kb_buf_is_empty)
kb_buf_is_full 0x080020cf Thumb Code 28 helpers.o(i.kb_buf_is_full)
kb_buf_peek 0x080020eb Thumb Code 32 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x0800210b Thumb Code 24 helpers.o(i.kb_buf_pop)
kb_buf_reset 0x08002123 Thumb Code 28 helpers.o(i.kb_buf_reset)
look_for_atten 0x08002141 Thumb Code 70 adb.o(i.look_for_atten)
main 0x08002191 Thumb Code 224 main.o(i.main)
malloc 0x080022a1 Thumb Code 92 malloc.o(i.malloc)
micros 0x0800230d Thumb Code 10 delay_us.o(i.micros)
mouse_buf_add 0x0800231d Thumb Code 50 helpers.o(i.mouse_buf_add)
mouse_buf_init 0x0800234f Thumb Code 24 helpers.o(i.mouse_buf_init)
mouse_buf_is_full 0x08002367 Thumb Code 28 helpers.o(i.mouse_buf_is_full)
mouse_buf_peek 0x08002383 Thumb Code 22 helpers.o(i.mouse_buf_peek)
mouse_buf_reset 0x08002399 Thumb Code 22 helpers.o(i.mouse_buf_reset)
parse_adb_cmd 0x080023b1 Thumb Code 196 adb.o(i.parse_adb_cmd)
process_spi_data 0x0800247d Thumb Code 264 main.o(i.process_spi_data)
protocol_status_lookup_init 0x0800258d Thumb Code 22 main.o(i.protocol_status_lookup_init)
spi_error_dump_reboot 0x080025a9 Thumb Code 76 main.o(i.spi_error_dump_reboot)
wait_until_change 0x08002625 Thumb Code 62 adb.o(i.wait_until_change)
boot_message 0x08002668 Data 61 main.o(.constdata)
AHBPrescTable 0x080026a5 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x080026b5 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x080026c0 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x080026e0 Number 0 anon$$obj.o(Region$$Table)
adb_mouse_current_addr 0x20000000 Data 1 adb.o(.data)
adb_kb_current_addr 0x20000001 Data 1 adb.o(.data)
adb_psw_pin 0x20000002 Data 2 adb.o(.data)
@@ -2072,10 +2071,9 @@ Image Symbol Table
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)
mouse_srq 0x20000014 Data 1 main.o(.data)
kb_srq 0x20000015 Data 1 main.o(.data)
hw_revision 0x20000016 Data 1 main.o(.data)
spi_error_occured 0x20000017 Data 1 main.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)
@@ -2103,9 +2101,9 @@ Memory Map of the image
Image Entry point : 0x080000c1
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00002744, Max: 0x00008000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00002718, Max: 0x00008000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000270c, Max: 0x00008000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000026e0, Max: 0x00008000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
@@ -2215,66 +2213,65 @@ Memory Map of the image
0x08001c9c 0x08001c9c 0x00000018 Code RO 12 i.adb_init adb.o
0x08001cb4 0x08001cb4 0x00000058 Code RO 362 i.adb_keyboard_update main.o
0x08001d0c 0x08001d0c 0x0000006c Code RO 13 i.adb_listen_16b adb.o
0x08001d78 0x08001d78 0x00000074 Code RO 363 i.adb_mouse_update main.o
0x08001dec 0x08001dec 0x00000040 Code RO 14 i.adb_read_bit adb.o
0x08001e2c 0x08001e2c 0x00000078 Code RO 15 i.adb_recv_cmd adb.o
0x08001ea4 0x08001ea4 0x00000020 Code RO 16 i.adb_release_lines adb.o
0x08001ec4 0x08001ec4 0x00000018 Code RO 17 i.adb_reset adb.o
0x08001edc 0x08001edc 0x00000058 Code RO 18 i.adb_send_response_16b adb.o
0x08001f34 0x08001f34 0x0000001c Code RO 19 i.adb_write_16 adb.o
0x08001f50 0x08001f50 0x0000007c Code RO 20 i.adb_write_byte adb.o
0x08001fcc 0x08001fcc 0x00000008 Code RO 364 i.byte_to_int16_t main.o
0x08001fd4 0x08001fd4 0x00000014 Code RO 225 i.delay_us delay_us.o
0x08001fe8 0x08001fe8 0x00000010 Code RO 226 i.delay_us_init delay_us.o
0x08001ff8 0x08001ff8 0x00000018 Code RO 365 i.fputc main.o
0x08002010 0x08002010 0x0000004c Code RO 366 i.handle_protocol_switch main.o
0x0800205c 0x0800205c 0x0000001a Code RO 367 i.int16_to_uint6 main.o
0x08002076 0x08002076 0x00000030 Code RO 260 i.kb_buf_add helpers.o
0x080020a6 0x080020a6 0x00000020 Code RO 261 i.kb_buf_init helpers.o
0x080020c6 0x080020c6 0x00000010 Code RO 262 i.kb_buf_is_empty helpers.o
0x080020d6 0x080020d6 0x0000001c Code RO 263 i.kb_buf_is_full helpers.o
0x080020f2 0x080020f2 0x00000020 Code RO 264 i.kb_buf_peek helpers.o
0x08002112 0x08002112 0x00000018 Code RO 265 i.kb_buf_pop helpers.o
0x0800212a 0x0800212a 0x0000001c Code RO 266 i.kb_buf_reset helpers.o
0x08002146 0x08002146 0x00000002 PAD
0x08002148 0x08002148 0x00000050 Code RO 21 i.look_for_atten adb.o
0x08002198 0x08002198 0x00000124 Code RO 369 i.main main.o
0x080022bc 0x080022bc 0x0000006c Code RO 3895 i.malloc mc_p.l(malloc.o)
0x08002328 0x08002328 0x00000010 Code RO 227 i.micros delay_us.o
0x08002338 0x08002338 0x00000032 Code RO 267 i.mouse_buf_add helpers.o
0x0800236a 0x0800236a 0x00000018 Code RO 268 i.mouse_buf_init helpers.o
0x08002382 0x08002382 0x00000010 Code RO 269 i.mouse_buf_is_empty helpers.o
0x08002392 0x08002392 0x0000001c Code RO 270 i.mouse_buf_is_full helpers.o
0x080023ae 0x080023ae 0x00000016 Code RO 271 i.mouse_buf_peek helpers.o
0x080023c4 0x080023c4 0x00000016 Code RO 273 i.mouse_buf_reset helpers.o
0x080023da 0x080023da 0x00000002 PAD
0x080023dc 0x080023dc 0x000000cc Code RO 22 i.parse_adb_cmd adb.o
0x080024a8 0x080024a8 0x00000110 Code RO 370 i.process_spi_data main.o
0x080025b8 0x080025b8 0x0000001c Code RO 371 i.protocol_status_lookup_init main.o
0x080025d4 0x080025d4 0x0000007c Code RO 372 i.spi_error_dump_reboot main.o
0x08002650 0x08002650 0x00000044 Code RO 23 i.wait_until_change adb.o
0x08002694 0x08002694 0x0000003d Data RO 378 .constdata main.o
0x080026d1 0x080026d1 0x00000010 Data RO 3585 .constdata system_stm32f0xx.o
0x080026e1 0x080026e1 0x00000008 Data RO 3586 .constdata system_stm32f0xx.o
0x080026e9 0x080026e9 0x00000003 PAD
0x080026ec 0x080026ec 0x00000020 Data RO 3962 Region$$Table anon$$obj.o
0x08001d78 0x08001d78 0x0000006c Code RO 363 i.adb_mouse_update main.o
0x08001de4 0x08001de4 0x00000040 Code RO 14 i.adb_read_bit adb.o
0x08001e24 0x08001e24 0x00000078 Code RO 15 i.adb_recv_cmd adb.o
0x08001e9c 0x08001e9c 0x00000020 Code RO 16 i.adb_release_lines adb.o
0x08001ebc 0x08001ebc 0x00000018 Code RO 17 i.adb_reset adb.o
0x08001ed4 0x08001ed4 0x00000058 Code RO 18 i.adb_send_response_16b adb.o
0x08001f2c 0x08001f2c 0x0000001c Code RO 19 i.adb_write_16 adb.o
0x08001f48 0x08001f48 0x0000007c Code RO 20 i.adb_write_byte adb.o
0x08001fc4 0x08001fc4 0x00000008 Code RO 364 i.byte_to_int16_t main.o
0x08001fcc 0x08001fcc 0x00000014 Code RO 225 i.delay_us delay_us.o
0x08001fe0 0x08001fe0 0x00000010 Code RO 226 i.delay_us_init delay_us.o
0x08001ff0 0x08001ff0 0x00000018 Code RO 365 i.fputc main.o
0x08002008 0x08002008 0x0000004c Code RO 366 i.handle_protocol_switch main.o
0x08002054 0x08002054 0x0000001a Code RO 367 i.int16_to_uint6 main.o
0x0800206e 0x0800206e 0x00000030 Code RO 260 i.kb_buf_add helpers.o
0x0800209e 0x0800209e 0x00000020 Code RO 261 i.kb_buf_init helpers.o
0x080020be 0x080020be 0x00000010 Code RO 262 i.kb_buf_is_empty helpers.o
0x080020ce 0x080020ce 0x0000001c Code RO 263 i.kb_buf_is_full helpers.o
0x080020ea 0x080020ea 0x00000020 Code RO 264 i.kb_buf_peek helpers.o
0x0800210a 0x0800210a 0x00000018 Code RO 265 i.kb_buf_pop helpers.o
0x08002122 0x08002122 0x0000001c Code RO 266 i.kb_buf_reset helpers.o
0x0800213e 0x0800213e 0x00000002 PAD
0x08002140 0x08002140 0x00000050 Code RO 21 i.look_for_atten adb.o
0x08002190 0x08002190 0x00000110 Code RO 369 i.main main.o
0x080022a0 0x080022a0 0x0000006c Code RO 3895 i.malloc mc_p.l(malloc.o)
0x0800230c 0x0800230c 0x00000010 Code RO 227 i.micros delay_us.o
0x0800231c 0x0800231c 0x00000032 Code RO 267 i.mouse_buf_add helpers.o
0x0800234e 0x0800234e 0x00000018 Code RO 268 i.mouse_buf_init helpers.o
0x08002366 0x08002366 0x0000001c Code RO 270 i.mouse_buf_is_full helpers.o
0x08002382 0x08002382 0x00000016 Code RO 271 i.mouse_buf_peek helpers.o
0x08002398 0x08002398 0x00000016 Code RO 273 i.mouse_buf_reset helpers.o
0x080023ae 0x080023ae 0x00000002 PAD
0x080023b0 0x080023b0 0x000000cc Code RO 22 i.parse_adb_cmd adb.o
0x0800247c 0x0800247c 0x00000110 Code RO 370 i.process_spi_data main.o
0x0800258c 0x0800258c 0x0000001c Code RO 371 i.protocol_status_lookup_init main.o
0x080025a8 0x080025a8 0x0000007c Code RO 372 i.spi_error_dump_reboot main.o
0x08002624 0x08002624 0x00000044 Code RO 23 i.wait_until_change adb.o
0x08002668 0x08002668 0x0000003d Data RO 378 .constdata main.o
0x080026a5 0x080026a5 0x00000010 Data RO 3585 .constdata system_stm32f0xx.o
0x080026b5 0x080026b5 0x00000008 Data RO 3586 .constdata system_stm32f0xx.o
0x080026bd 0x080026bd 0x00000003 PAD
0x080026c0 0x080026c0 0x00000020 Data RO 3962 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0800270c, Size: 0x000007d8, Max: 0x00001800, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080026e0, Size: 0x000007d8, Max: 0x00001800, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x0800270c 0x00000010 Data RW 26 .data adb.o
0x20000010 0x0800271c 0x00000004 Data RW 228 .data delay_us.o
0x20000014 0x08002720 0x0000000c Data RW 379 .data main.o
0x20000020 0x0800272c 0x00000004 Data RW 2416 .data stm32f0xx_hal.o
0x20000024 0x08002730 0x00000004 Data RW 3587 .data system_stm32f0xx.o
0x20000028 0x08002734 0x00000004 Data RW 3625 .data mc_p.l(rand.o)
0x2000002c 0x08002738 0x00000004 Data RW 3936 .data mc_p.l(stdout.o)
0x20000030 0x0800273c 0x00000004 Data RW 3939 .data mc_p.l(mvars.o)
0x20000034 0x08002740 0x00000004 Data RW 3940 .data mc_p.l(mvars.o)
0x20000000 0x080026e0 0x00000010 Data RW 26 .data adb.o
0x20000010 0x080026f0 0x00000004 Data RW 228 .data delay_us.o
0x20000014 0x080026f4 0x0000000c Data RW 379 .data main.o
0x20000020 0x08002700 0x00000004 Data RW 2416 .data stm32f0xx_hal.o
0x20000024 0x08002704 0x00000004 Data RW 3587 .data system_stm32f0xx.o
0x20000028 0x08002708 0x00000004 Data RW 3625 .data mc_p.l(rand.o)
0x2000002c 0x0800270c 0x00000004 Data RW 3936 .data mc_p.l(stdout.o)
0x20000030 0x08002710 0x00000004 Data RW 3939 .data mc_p.l(mvars.o)
0x20000034 0x08002714 0x00000004 Data RW 3940 .data mc_p.l(mvars.o)
0x20000038 - 0x0000019c Zero RW 373 .bss main.o
0x200001d4 0x08002744 0x00000004 PAD
0x200001d4 0x08002718 0x00000004 PAD
0x200001d8 - 0x00000200 Zero RW 2 HEAP startup_stm32f042x6.o
0x200003d8 - 0x00000400 Zero RW 1 STACK startup_stm32f042x6.o
@@ -2288,8 +2285,8 @@ Image component sizes
964 76 0 16 0 458042 adb.o
52 10 0 4 0 1931 delay_us.o
370 0 0 0 0 7263 helpers.o
1672 204 61 12 412 17228 main.o
354 0 0 0 0 6746 helpers.o
1644 206 61 12 412 17262 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
@@ -2305,7 +2302,7 @@ Image component sizes
92 14 24 4 0 1123 system_stm32f0xx.o
----------------------------------------------------------------------
8804 624 312 40 1952 539131 Object Totals
8760 626 312 40 1952 538648 Object Totals
0 0 32 0 0 0 (incl. Generated)
28 0 3 0 4 0 (incl. Padding)
@@ -2353,15 +2350,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
9684 680 312 56 1952 535267 Grand Totals
9684 680 312 56 1952 535267 ELF Image Totals
9684 680 312 56 0 0 ROM Totals
9640 682 312 56 1952 534828 Grand Totals
9640 682 312 56 1952 534828 ELF Image Totals
9640 682 312 56 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 9996 ( 9.76kB)
Total RO Size (Code + RO Data) 9952 ( 9.72kB)
Total RW Size (RW Data + ZI Data) 2008 ( 1.96kB)
Total ROM Size (Code + RO Data + RW Data) 10052 ( 9.82kB)
Total ROM Size (Code + RO Data + RW Data) 10008 ( 9.77kB)
==============================================================================

View File

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

View File

@@ -253,7 +253,7 @@ void process_spi_data(void)
uint8_t int16_to_uint6(int16_t value)
{
int8_t result = value >> 2;
int8_t result = value >> 1; // maybe 2?
if(result >= 63)
result = 63;
if(result <= -63)
@@ -261,7 +261,6 @@ uint8_t int16_to_uint6(int16_t value)
return (uint8_t)result;
}
uint8_t mouse_srq = 0;
uint8_t kb_srq = 0;
void adb_mouse_update(void)
@@ -280,7 +279,6 @@ void adb_mouse_update(void)
adb_send_response_16b(response);
DEBUG0_LOW();
mouse_buf_reset(&my_mouse_buf);
mouse_srq = 0;
}
void adb_keyboard_update(void)
@@ -341,14 +339,14 @@ int main(void)
mouse_buf_init(&my_mouse_buf, 16);
uint8_t adb_data, adb_status;
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);
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
uint8_t last_addr = adb_mouse_current_addr;
uint8_t this_addr = last_addr;
while (1)
{
process_spi_data();
@@ -357,26 +355,31 @@ int main(void)
/* USER CODE BEGIN 3 */
if(IS_ADB_DEVICE_PRESENT() == 0)
continue;
adb_status = adb_recv_cmd(&adb_data, mouse_srq || kb_srq);
// 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);
if(adb_status == ADB_LINE_STATUS_RESET)
adb_reset();
else if(adb_status != ADB_OK)
continue;
this_addr = adb_data >> 4;
if(!kb_buf_is_empty(&my_kb_buf) && this_addr != adb_kb_current_addr)
kb_srq = 1;
adb_status = parse_adb_cmd(adb_data);
if(adb_status == ADB_MOUSE_POLL)
{
adb_mouse_update();
if(!kb_buf_is_empty(&my_kb_buf))
kb_srq = 1;
}
if(adb_status == ADB_KB_POLL)
{
adb_keyboard_update();
if(!mouse_buf_is_empty(&my_mouse_buf))
mouse_srq = 1;
}
HAL_GPIO_WritePin(DEBUG1_GPIO_Port, DEBUG1_Pin, mouse_srq || kb_srq);
// printf("%x\n", adb_data);
last_addr = this_addr;
HAL_GPIO_WritePin(DEBUG1_GPIO_Port, DEBUG1_Pin, kb_srq);
}
/* USER CODE END 3 */