diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml index 791d41f..a0ed50f 100644 --- a/.settings/language.settings.xml +++ b/.settings/language.settings.xml @@ -4,7 +4,7 @@ - + diff --git a/Debug/UCCBEmbedded.hex b/Debug/UCCBEmbedded.hex index 7a2599c..47748c8 100644 --- a/Debug/UCCBEmbedded.hex +++ b/Debug/UCCBEmbedded.hex @@ -1,21 +1,21 @@ :020000040800F2 -:100000000018002019530008654D0008674D0008CE +:10000000001800201D530008694D00086B4D0008C2 :1000100000000000000000000000000000000000E0 -:10002000000000000000000000000000694D000812 -:1000300000000000000000006B4D00086D4D00083E -:100040008953000889530008895300088953000820 -:100050008953000889530008895300088953000810 -:10006000895300088953000889530008794D000816 -:1000700089530008895300088953000889530008F0 -:1000800089530008000000000000000089530008A8 -:1000900000000000895300088953000889530008B4 -:1000A00000000000895300088953000889530008A4 -:1000B000B14D000800000000A14D0008914D00085E +:100020000000000000000000000000006D4D00080E +:1000300000000000000000006F4D0008714D000836 +:100040008D5300088D5300088D5300088D53000810 +:100050008D5300088D5300088D5300088D53000800 +:100060008D5300088D5300088D5300087D4D000806 +:100070008D5300088D5300088D5300088D530008E0 +:100080008D53000800000000000000008D530008A0 +:10009000000000008D5300088D5300088D530008A8 +:1000A000000000008D5300088D5300088D53000898 +:1000B000B54D000800000000A54D0008954D000852 :1000C00010B5064C2378002B07D1054B002B02D02E :1000D000044800E000BF0123237010BD6001002030 -:1000E00000000000F8530008044B10B5002B03D0AB +:1000E00000000000FC530008044B10B5002B03D0A7 :1000F0000349044800E000BF10BDC04600000000F6 -:1001000064010020F85300080023C25C0133002A78 +:1001000064010020FC5300080023C25C0133002A74 :10011000FBD1581E7047000002B4714649084900DF :10012000095649008E4402BC7047C04602B471466D :1001300049084900095C49008E4402BC7047C0462A @@ -40,7 +40,7 @@ :10026000FA218900FFF76CFF00F08AFC00222100D0 :100270000120404200F03EFC002010BD10B5064AAF :10028000136810210B4313600020FFF7E5FF04F013 -:10029000B5FC002010BDC04600200240024A136891 +:10029000B7FC002010BDC04600200240024A13688F :1002A000013313607047C04674040020014B186886 :1002B0007047C0467404002030B583B00190FFF74A :1002C000F5FF0500019C631C00D00134FFF7EEFF31 @@ -76,7 +76,7 @@ :1004A0005A681442F6D15B6823400BD12B643D237C :1004B0000020EC5405E03D2303220320EA54013BD5 :1004C000EC54F8BD04223D23EA540120F9E73C2214 -:1004D000835404F0BDFB81E780211A680A431A6047 +:1004D000835404F0BFFB81E780211A680A431A6045 :1004E0009FE703223D23EA540022013BEA54032004 :1004F000E7E704211A680A431A60B7E708211A6877 :100500000A431A60ABE710211A680A431A609FE792 @@ -127,7 +127,7 @@ :1007D0000A4202D05969490532D4702299690A4205 :1007E00002D05969090511D4226C002A0DD00421C8 :1007F0005A6820000A435A603D220339A1545A69BD -:10080000A1490A405A6103F031FDF8BD5969090454 +:10080000A1490A405A6103F033FDF8BD5969090452 :10081000EAD599690A40302A00D164E100D841E163 :10082000502A00D139E1602A00D156E1402A02D194 :10083000216C0A43226470219A698A439A61D3E742 @@ -151,7 +151,7 @@ :1009500016398A435A613D22A15C22297BD0A25CD0 :10096000322A78D03D22A35CDBB2622B00D1A6E014 :10097000722B00D1A0E0422B00D18BE00123A354C5 -:10098000200003F079FC236808E7E0200421400000 +:10098000200003F07BFC236808E7E02004214000FE :100990001E58A26B3140916059D11958490D116010 :1009A000E021012049005958E22649080140D16060 :1009B0000F2176009F59394011619959106209043D @@ -162,7 +162,7 @@ :100A00005A6930318A435A613D22A15C222927D09C :100A1000A25C322A24D03D22A35CDBB2622B54D0EC :100A2000722B4FD0522B26D00123A354200003F069 -:100A300023FC2368B9E65A6915490A405A6133E72D +:100A300025FC2368B9E65A6915490A405A6133E72B :100A40003223A3543EE71958C90851604FE719589B :100A5000C9085160A4E75A690D490A405A6181E703 :100A60005A690B490A405A61D5E7203BA35429E74C @@ -305,7 +305,7 @@ :1012F00055550000AAAA00000368024A1A6000209F :101300007047C046AAAA000070B5041E58D0EA2350 :10131000FF33C35C002B05D00322EA23FF33E254E2 -:10132000002218E00022E933FF33C25403F016FE16 +:10132000002218E00022E933FF33C25403F018FE14 :10133000F2E7D100891A8B00E31819002931012046 :10134000087001390A7018002B30002101705963B0 :101350009963D963013260688242EAD3002214E0C3 @@ -505,14 +505,14 @@ :101F7000B5E10388A94A1340038029685023CB5A4E :101F80002822AA5CD2009B185B18A54A9446634499 :101F90001B889B059B0D2B64AA6B94466344AB6323 -:101FA0000021280003F013F82423EB5C002B00D160 +:101FA0000021280003F015F82423EB5C002B00D15E :101FB00095E1EB6B002B00D091E12422AB5C8021FA :101FC00049420B43DBB2CC31286843520023AB5467 :101FD00085E15023C35A84225200AA5CD2009B1888 :101FE0001B18904A944663441B889B059B0D2A004E :101FF0000932FF3293612900ED31FF319288FFF7FA :102000009BFF2A68138888490B401380280002F040 -:10201000C5FF64E1140092882169FFF78DFF2369F1 +:10201000C7FF64E1140092882169FFF78DFF2369EF :10202000A26994466344236195E14B089BB2C907BA :1020300001D501339BB29B021380A9E1A600801950 :10204000028801AB1A801B881BB2002B31DB01AB6D @@ -537,7 +537,7 @@ :102170001A001932FF3210688446674417601D3315 :10218000FF331B68002B08D0E200121B90002818B8 :102190001530FF300268914234D2E200121B9300E6 -:1021A000EB180933FF331978280002F001FF4EE7DE +:1021A000EB180933FF331978280002F003FF4EE7DC :1021B000E200121B9300EB181A000F32FF32128854 :1021C0001933FF3319683B00FFF7B6FEB4E750221E :1021D000825ADB00D3181B18124A944663441F88A6 @@ -556,7 +556,7 @@ :1022A000EB18190028310978C9005218121854493E :1022B0008C46624412889205920D1A64996B8C4682 :1022C00062449A63DB6B002B00D08CE0E3001C1BA4 -:1022D000A300EB1828331978280002F078FE28684C +:1022D000A300EB1828331978280002F07AFE28684A :1022E0004423C35A9BB26A46D3801BB2002B00DB47 :1022F00083E06B46DC880F231C4000D09EE66B46D3 :1023000006331B88DB0600D433E6028801AB1A8053 @@ -564,7 +564,7 @@ :10232000DDDA0388394A1340038028685023C35AF2 :1023300084225200AA5CD2009B181B18344A94468F :1023400063441B889B059B0D2A000932FF32936171 -:10235000002B00D05EE60021280002F029FE2B6849 +:10235000002B00D05EE60021280002F02BFE2B6847 :1023600050229A5A9A182A4B9C4662442B000933F1 :10237000FF33D9683E2900D857E64B099BB2C906FE :1023800001D1013B9BB29B029BB222490B431380BC @@ -588,11 +588,11 @@ :1024A00031D5236844229A5A920530D423684422B5 :1024B0009A5AD20504D544215A5A1C4802405A520D :1024C00070BDFFF74FFDB3E744215A5A1848024048 -:1024D0005A52200002F08FFD00212000FEF780FFFD +:1024D0005A52200002F091FD00212000FEF780FFFB :1024E000ABE74022995A042081439952114B21684D -:1024F0008B52200002F09EFD216844228B5A0E4828 -:1025000003408B52B2E7200002F082FDC9E744216C -:102510005A5A0A4802405A52200002F065FDC5E7A7 +:1024F0008B52200002F0A0FD216844228B5A0E4826 +:1025000003408B52B2E7200002F084FDC9E744216A +:102510005A5A0A4802405A52200002F067FDC5E7A5 :10252000FFBFFFFFFFDFFFFFFFF7FFFFFFFEFFFF24 :10253000FFFBFFFF00BDFFFFFFEFFFFFFFFDFFFF02 :1025400010B50C060FD57F242140CC00611A8C00F9 @@ -642,7 +642,7 @@ :10280000C95CC0235B021A4080235B029A4208D055 :10281000C0235B029A4209D00A48FDF791FC60434D :10282000E3E70848FDF78CFC6043DEE70648FDF768 -:1028300087FC6043D9E70448D7E7C0461054000836 +:1028300087FC6043D9E70448D7E7C0461454000832 :102840000010024000127A00006CDC0270B5050036 :102850000C00594B1A68012313408B420BD2564986 :102860000B680122934323430B600B681A40944288 @@ -667,10 +667,10 @@ :102990005360FFF711FF094B5A6812090F231340C8 :1029A000094AD35CD840094B18600020FDF754FC5D :1029B000002070BD0120FCE7002002400010024012 -:1029C00088130000FFF8FFFF3C56000818010020A4 +:1029C00088130000FFF8FFFF4056000818010020A0 :1029D000014B18687047C0461801002010B5FFF77A :1029E000F7FF044B5A68120A07231340024AD35CCC -:1029F000D84010BD001002404C56000870B582B09F +:1029F000D84010BD001002405056000870B582B09B :102A000004000368DB0335D5464BDB69DB005CD48F :102A1000444AD169802040050143D161D369034014 :102A20000193019B0125404B1B68DB054FD53D4BB6 @@ -720,20 +720,20 @@ :102CE000FFF72CFF002070BD2021036810B51B6882 :102CF000426A0B400CD1110052310B8080211368C5 :102D00009A688A439A60402219680A431A6010BD83 -:102D1000100001F09FFAFAE7704710B5406AFFF71C +:102D1000100001F0A1FAFAE7704710B5406AFFF71A :102D2000FBFF10BD0368426A20201B6810B50340FA :102D300013D111005A310B8013680A4C19682140D5 :102D4000196099680334FF34A143996099683F344E -:102D5000A143996013006A331870100001F094FACF +:102D5000A143996013006A331870100001F096FACD :102D600010BDC046FFFEFFFF704710B5406AFFF779 :102D7000FBFF10BD10B5446A210069310B78212B8F :102D80000DD123689A68120609D52200002052321C :102D900010801A68C03082431A6020230B70230011 :102DA0006A331B78222B0AD123689B685B0606D501 :102DB000230000225A331A802000FFF7BFFE1023A1 -:102DC000E26E20001343E36601F046FA10BD406A4C +:102DC000E26E20001343E36601F048FA10BD406A4A :102DD0000023020010B55A321380083A138001F024 -:102DE0003BFA10BD70B504000568C26983680069CC +:102DE0003DFA10BD70B504000568C26983680069CA :102DF0002968034360693F4E03433F481343014042 :102E00000B432B606B683D49206A0B40E1680B4324 :102E10006B60A369A9680343394801400B43AB6069 @@ -751,7 +751,7 @@ :102ED00080B2F060F4E7FFF76FFC61684B08F4E73D :102EE000802361681B024808EFE79A42DCD001208A :102EF000D1E7C04600380140F369FFEFFFCFFFFF85 -:102F0000FFF4FFFF0010024030540008004400406E +:102F0000FFF4FFFF0010024034540008004400406A :102F10000024F40000127A00436A30B5DA0706D5BF :102F20000168284C4A682240846A22434A609A0712 :102F300006D50168244C4A682240C46A22434A608C @@ -780,7 +780,7 @@ :1030A0000093890303002000FFF79EFF0028E4D06F :1030B0000320DEE700380140FFFFFF0170B5041E6A :1030C00001D1012070BD050069352B78DBB2002BE2 -:1030D00004D102006832137001F0E2FD24230121C3 +:1030D00004D102006832137001F0E4FD24230121C1 :1030E00022682B70136820008B431360FFF77AFE71 :1030F0000128E6D0636A002B02D02000FFF70CFF06 :10310000236808495A6820000A402A215A609A68B0 @@ -793,13 +793,13 @@ :10317000C005C00D0885D3642388013B9BB2238022 :10318000E9E7581CD0641B780B85F5E740210268FD :1031900010B513688B4313600300202269331A7043 -:1031A00001F058F8002010BD020070B56A321178A5 +:1031A00001F05AF8002010BD020070B56A321178A3 :1031B000036822292DD1010080245C310D88998C6F :1031C000640129408568436DA5421ED10469002C25 :1031D0001BD1198002334365010000245A310B884A :1031E000013B9BB20B80A3420DD103680C4D1968C3 :1031F0002940196099682335FF35A9439960202338 -:10320000137001F041F8200070BD5C1C446519701A +:10320000137001F043F8200070BD5C1C4465197018 :10321000E2E70822996902240A439A61F3E7C0466B :10322000DFFEFFFF0F210268F8B5D36904001940E3 :10323000106808D120252B4205D0284203D0200059 @@ -815,7 +815,7 @@ :1032D0001AD0FFF733FC402123689A680A420FD0C6 :1032E0009A68606E8A439A60002809D01A4B43633B :1032F000FDF7FEFC0028A5D0606E436B9847A1E760 -:10330000200000F0A9FF9DE700F0A6FFE56699E721 +:10330000200000F0ABFF9DE700F0A8FFE56699E71D :10331000802149030B420BD0750209D511622200AE :103320002023693213702000537000F017F889E7EA :103330008022134205D0104203D02000FFF7F4FE94 @@ -829,7 +829,7 @@ :1033B00000487047380000204323038000487047CE :1033C0007C0000204323038000487047CC0000208D :1033D0000A23038000487047C000002070B5040035 -:1033E0008626B600855901F020FF83239B00E85014 +:1033E0008626B600855901F022FF83239B00E85012 :1033F000A359002B0BD087239B00E358DB68832263 :103400009200A918083AA8589847002070BD0220D9 :10341000FCE7000070B505000C0086239B00C65831 @@ -841,43 +841,43 @@ :10347000C3589B68607800222100984702E0637877 :103480000A2B01D0002070BD0122034900F0E8FCA6 :10349000F8E7C046010200007C01002070B504007E -:1034A000812101F048FE0121200001F044FE82212B -:1034B000200001F040FE86239B00E358002B0BD038 +:1034A000812101F04AFE0121200001F046FE822127 +:1034B000200001F042FE86239B00E358002B0BD036 :1034C00087239B00E3585B6898478625AD006059C9 -:1034D00001F0B6FE00236351002070BD70B50400FA +:1034D00001F0B8FE00236351002070BD70B50400F8 :1034E000037C002B34D18025AD002B0002228121EA -:1034F00001F00EFE2B0002220121200001F008FE47 -:10350000082303228221200001F002FE8720800090 -:1035100001F092FE050086239B00E05000282DD08C +:1034F00001F010FE2B0002220121200001F00AFE43 +:10350000082303228221200001F004FE872080008E +:1035100001F094FE050086239B00E05000282DD08A :103520000433E3581B689847002385229200AB5070 :103530000432AB50237C002B16D081239B00EA5829 -:10354000C53BFF3B0121200001F05FFE002070BD64 -:1035500040230222812101F0DBFD402302220121D0 -:10356000200001F0D5FDCBE781239B00EA58043B06 -:103570000121200001F049FE0020E8E70120E6E7F4 +:10354000C53BFF3B0121200001F061FE002070BD62 +:1035500040230222812101F0DDFD402302220121CE +:10356000200001F0D7FDCBE781239B00EA58043B04 +:103570000121200001F04BFE0020E8E70120E6E7F2 :10358000002904D087239B00C150002070470220EF :10359000FCE786239B00C3588220800019508421B9 :1035A00089005A500020704786239B00C258143B64 :1035B000D1500020704710B586239B00C258002AC6 :1035C00014D0043BD358002B01D0012010BD0121A1 :1035D00085239B00D150043BD35A82218900525845 -:1035E0008839FF3901F001FE0020EFE70220EDE706 +:1035E0008839FF3901F003FE0020EFE70220EDE704 :1035F00010B586239B00C358002B15D0027C002AEF -:1036000008D0812292009A584023012101F0FDFD4B +:1036000008D0812292009A584023012101F0FFFD49 :10361000002010BD812292009A5880239B00012136 -:1036200001F0F3FD0020F4E70220F2E710B50028D6 +:1036200001F0F5FD0020F4E70220F2E710B50028D4 :1036300016D085239B00C358002B03D0002485237C :103640009B00C450002902D084239B00C15001215B -:10365000FE235B00C154027001F002FD002010BD8A +:10365000FE235B00C154027001F004FD002010BD88 :103660000220FCE7002904D085239B00C1500020E4 -:1036700070470220FCE710B501F03AFD002010BDB4 +:1036700070470220FCE710B501F03CFD002010BDB2 :1036800010B585239B00C358002B05D01B689847B5 :10369000002803D0022000E0022010BD0020FCE73B :1036A00010B585239B00C3585B689847002010BD68 :1036B00070B5040082239B00C518280000F02FF984 :1036C0000122FA235B00E250124BE25A163BE25011 :1036D0001033E15CEA3BFF3B0B40012B0FD0002B8A -:1036E00007D0022B10D07F239943200001F033FD37 +:1036E00007D0022B10D07F239943200001F035FD35 :1036F00003E02900200000F0B7FA002070BD290087 :10370000200000F0D5FAF8E72900200000F0EEFADA :10371000F3E7C0460E02000010B5040013000029B4 @@ -895,14 +895,14 @@ :1037D0005B00E3589E421BD385239B00E358DB68C4 :1037E000002B04D0FE225200A25C032A1ED020002F :1037F00000F070FBD7E7521BC26192B2190000F0D3 -:103800003DFB002300220021200001F0FEFCCAE75E +:103800003DFB002300220021200001F000FDCAE75B :103810000022200000F032FB0022FC235B00E2507B -:1038200000230021200001F0F0FCBCE720009847B5 +:1038200000230021200001F0F2FCBCE720009847B3 :10383000DDE7002280239B00E254B9E785239B004B :10384000C3585B69002BB3D0FE225200825C032A6E :10385000AED19847ACE770B50400402300220021A8 -:1038600001F056FC402588235B00E550D03B002248 -:103870008021200001F04CFC25620122FE235B0028 +:1038600001F058FC402588235B00E550D03B002246 +:103870008021200001F04EFC25620122FE235B0026 :10388000E2541C33E358002B06D085239B00E358F9 :103890005B68217920009847002070BD01740020EA :1038A0007047FE235B00C15CFE22FF328154FA3A6E @@ -915,8 +915,8 @@ :10391000C3589B689847200000F0D0FAF2E70B7874 :1039200003704B7843708B78CA7812029B184380DF :103930000B794A7912029B1883808B79CA7912021B -:103940009B18C380704710B50400802101F003FC70 -:103950000021200001F0FFFB10BD000030B583B056 +:103940009B18C380704710B50400802101F005FC6E +:103950000021200001F001FC10BD000030B583B053 :1039600004000D004A88130A072B00D98EE09B0043 :103970004F49CB589F4684239B00C3581B68007C4B :103980006A46911D98476B4606331B88002B03D06F @@ -938,10 +938,10 @@ :103A8000437080E72900FFF75EFF85E729002000EB :103A9000FFF759FF80E7191C934200D9111C8AB225 :103AA0006B46D9800100200000F0DAF974E7C046C7 -:103AB000345400085454000870B504008B88002B5F +:103AB000385400085854000870B504008B88002B57 :103AC00022D1CB88002B1FD18B787F251D40FE2370 :103AD0005B00C35C032B0FD0FF235B00C5542900A0 -:103AE00001F073FB200000F0E9F9002D07D002225D +:103AE00001F075FB200000F0E9F9002D07D002225B :103AF000FE235B00E2540AE0FFF725FF07E0012206 :103B0000FE235B00E25402E02000FFF71CFF70BDC3 :103B100070B504000D008978284B197001290AD866 @@ -969,7 +969,7 @@ :103C70009B000E4AD3589F46FFF770FE002010BDF0 :103C8000FFF71AFFFAE7FFF743FFF7E7FFF798FFA1 :103C9000F4E7FFF7B3FFF1E7FFF72FFEEEE7FFF7DB -:103CA000C7FFEBE7FFF74FFEE8E7C0466C5400089C +:103CA000C7FFEBE7FFF74FFEE8E7C0467054000898 :103CB00070B504000D00FE235B00C35C032B12D122 :103CC0000B79012B03D9FFF73EFE002070BD852341 :103CD0009B00C3589B689847EB88002BF5D12000C8 @@ -979,18 +979,18 @@ :103D1000FF33EB5C022B0FD0032B15D021002800C2 :103D2000FFF711FE06E0F533FF33EB589B682100E7 :103D300028009847002070BD0029FBD08029F9D0C9 -:103D4000280001F008FAF5E76388002B06D1002966 -:103D500004D0802902D0280001F0FDF985239B00C2 +:103D4000280001F00AFAF5E76388002B06D1002964 +:103D500004D0802902D0280001F0FFF985239B00C0 :103D6000EB589B68210028009847280000F0A6F82F :103D7000E0E7FE235B00EB5C022B06D0032B0CD0AC :103D800021002800FFF7DFFDD4E70029D2D08029E9 -:103D9000D0D0280001F0DFF9CCE76388002BC9D12F +:103D9000D0D0280001F0E1F9CCE76388002BC9D12D :103DA0004B0603D1280000F089F8C3E7280001F092 -:103DB000E2F985239B00EB589B6821002800984777 +:103DB000E4F985239B00EB589B6821002800984775 :103DC000F0E7FE235B00EB5C022B06D0032B0AD04E :103DD00021002800FFF7B7FDACE74B06AAD028006A -:103DE00001F0B9F9A6E7130612D47F240C40103471 -:103DF00024012C190434280001F0CDF900280ED03C +:103DE00001F0BBF9A6E7130612D47F240C4010346F +:103DF00024012C190434280001F0CFF900280ED03A :103E00000123236002222100280000F029F891E715 :103E10007F240C40013424012C190434EBE70023E7 :103E20002360EFE770B504000D001600002816D0DF @@ -998,14 +998,14 @@ :103E40006B70013B08E05A1CD2B20134E9540233D2 :103E5000DBB2AA180021117021780029F3D170BDBE :103E600010B513000224FA22520084508361C3610A -:103E70000A00002101F0B9F9002010BD10B51300AF -:103E80000A00002101F0B1F9002010BD10B51300A7 +:103E70000A00002101F0BBF9002010BD10B51300AD +:103E80000A00002101F0B3F9002010BD10B51300A5 :103E90000324FA2252008450EC3A835004328350B7 -:103EA0000A00002101F0B1F9002010BD10B5130087 -:103EB0000A00002101F0A9F9002010BD10B504226C -:103EC000FA235B00C25000230022002101F08DF98B +:103EA0000A00002101F0B3F9002010BD10B5130085 +:103EB0000A00002101F0ABF9002010BD10B504226A +:103EC000FA235B00C25000230022002101F08FF989 :103ED000002010BD10B50522FA235B00C25000235C -:103EE0000022002101F091F9002010BD00B587B03B +:103EE0000022002101F093F9002010BD00B587B039 :103EF0006846FDF7F1F80423009373336A46537361 :103F0000FCF780FFFCF79AFFFDF722F86846FDF703 :103F10004DF8FCF7A7FFFCF787FFFCF7D9FF07B0C8 @@ -1021,395 +1021,396 @@ :103FB00025FD041E00D0FEE7FEF70AFDFA21890068 :103FC000FCF7BEF8FCF7DCFD0420FCF7F5FD012052 :103FD000220021004042FCF78DFD19B030BD0000E9 -:103FE000884BF0B51B6889B01A6816231202134378 -:103FF000854A864D1360FFF794FFFCF73FF9FFF702 +:103FE000894BF0B51B6889B01A6816231202134377 +:103FF000864A874D1360FFF794FFFCF73FF9FFF700 :10400000ADFF80216A6989020A436A616B69822473 :104010000B4080210193019B6A69C9020A436A61CE -:104020006B69E4000B4000222100029378480026CF -:10403000029BFDF727F9012303A975480394049314 -:1040400005960696FDF75EF8724C734B20002360D0 +:104020006B69E4000B4000222100029379480026CE +:10403000029BFDF727F9012303A976480394049313 +:1040400005960696FDF75EF8734C744B20002360CE :104050000323636080235B04E360A0231B032361CD :10406000C0239B0363610123A660A661E36126620E :104070006662A662E662FCF7A7F90700B04200D0CC -:10408000FEE701226B69010013436B616B69634EAC +:10408000FEE701226B69010013436B616B69644EAB :104090001340039302000B20039BFCF72BFD0B2026 -:1040A000FCF75AFD5E4D5F4B28006B600C232E60C1 -:1040B000AF60EF602F616B61AF61EF612F62FEF760 -:1040C000FDFF002800D0FEE700F0C2FE5648574B27 -:1040D000036004234360564BC3608360FDF7DCF844 -:1040E000071E00D0FEE7534B2363534B6363534BD0 -:1040F000187000F09BFC02221E201100FCF7FAFC55 -:1041000039002000FCF7A4FA012233680120934310 -:1041100033601023726813437360D02372681B05E9 -:104120001343736080233268DB0113432022336022 -:10413000336893433360FCF7BFF80122336840498A -:10414000134333601D322800FEF74EFD3A0039005C -:104150001C20FCF7CFFC80223A4B52051A6000F07D -:1041600069F9394800F0F6F900F086F9374F3B78E5 -:10417000002B15D0324E1E220021300001F033F901 -:1041800008212B6828009A690A439A6110229969CC -:104190000A439A6131001E22FEF726FD00233B7080 -:1041A000264B1B78002B0CD0606B00F0E5FB012246 -:1041B000224B00211B7820009343204A1370FCF708 -:1041C00047FAFCF773F8224E3368C01AF9280DD964 -:1041D000FCF76CF8306000F0C9FB012801D0022820 -:1041E00008D180210A48C900FDF752F80E48FDF7B2 -:1041F00083F8B6E780210122C9000548FDF742F89F -:10420000F4E7C046100100209C0500200010024089 -:1042100000040048F0040020006400400044004016 -:10422000DC05002080841E00E004002000300040F7 -:10423000FF0F0000C005002078050020DC040020EE -:10424000A005002000E100E088010020840100209A -:1042500080010020C36E704710B51E220249C36E54 -:10426000FEF7C2FC10BDC046A005002010B500211D -:10427000FCF7EEF910BD00000123024A11780B4350 -:1042800013707047DC040020012210B5024B034874 -:104290001A7000F01FF910BD84010020A005002055 -:1042A000FEE70000074B1B78DBB21F2B08D8054A3E -:1042B0001378DBB20449C85413780133DBB21370AE -:1042C0007047C046510200204C06002010B5092856 -:1042D00004D83030C0B2FFF7E5FF10BD3730C0B2B0 -:1042E000F9E710B504000009FFF7F0FF0F202040A8 -:1042F000FFF7ECFF10BD30B50023136009E01D008F -:10430000413DEDB2052D18D85B18373B13600130E5 -:1043100021004C1EE4B2002918D00378002B16D0DF -:1043200013681901116003781D00303DEDB2092DAD -:10433000E5D85B18303B1360E9E71D00613DEDB245 -:10434000052D06D85B18573B1360E0E701231800E2 -:1043500030BD0023FBE70000F0B583B00500037813 -:10436000722B42D0522B40D0314B1B6B0022DA60B3 -:104370002B78592B3ED8681C01AA0821FFF7BBFFF8 -:10438000002853D02A4B1A6B042191601B6B019AB1 -:104390005A60082007000130281801AA0121FFF700 -:1043A000AAFF002842D0224B1A6B019911611B6BA6 -:1043B000DA68002A2ED11E7C082E00D90826002497 -:1043C000B44227D2BB1C62009818281801AA022107 -:1043D000FFF791FF002829D0154B1B6B1B196A466C -:1043E00012791A750134E4B2EAE7114B1B6B022211 -:1043F000DA60BDE7681C01AA0321FFF77CFF0028F3 -:1044000014D00B4B1A6B002191601B6B019A1A6040 -:104410000320BFE71E20FCF7A9FB00210448FCF79E -:1044200081F804001E20FCF797FB200003B0F0BDCC -:10443000F004002010B5082000F0A4FB0022074B78 -:104440009A6000F0E3FA002800D010BD1E30FCF79F -:1044500083FB0222024B1A70F7E7C046F0040020EB -:104460005202002010B51E20FCF780FB0022014BF9 -:104470001A7010BD5202002010B5124B1B78002B91 -:104480000ED0FE235B00104AD35C032B09D00D4BEA -:104490001A780E490E48FEF761FB0022094B1A708C -:1044A00010BD86239B00084AD258043BD358002BEA -:1044B000F7D1044B1978054800F02CFD0028F8D1FD -:1044C000EBE7C046510200206C0600204C0600209D -:1044D000DC05002070B505000122094B1A70094C5B -:1044E00063320021200000F07EFF2800FBF70CFE65 -:1044F00002002900200000F06DFF002070BDC046C2 -:10450000850100208801002070B50D280CD00A28F4 -:1045100015D00D4B1B780D4AD054622B11D80133A6 -:10452000094A1370002070BD074C22780749002506 -:104530008D54074800F04EFF25700120F3E700205E -:10454000F1E70020EFE7C04650020020EC01002018 -:104550008801002030B595B004000078002817D0FD -:104560004338C3B2332B00D9F4E19800AE4B1B584B -:104570009F46AE4B1B780D2B0CD00D22AB4B1A7007 -:10458000AA4B1D78002323702800FFF78BFE012023 -:1045900015B030BD0A22A54B1A70F1E7A44B1B7869 -:1045A000002B00D0D8E16378303BDAB2092A00D979 -:1045B000D4E193009F4AD3589F46002000F0E2FACE -:1045C0009A4B1D78DEE7012000F0DCFA974B1D784E -:1045D000D8E7022000F0D6FA944B1D78D2E70320EA -:1045E00000F0D0FA914B1D78CCE7042000F0CAFA15 -:1045F0008E4B1D78C6E7052000F0C4FA8B4B1D7862 -:10460000C0E7062000F0BEFA884B1D78BAE7072005 -:1046100000F0B8FA854B1D78B4E7082000F0B2FA34 -:10462000824B1D78AEE7242000F0ACFA7F4B1D785A -:10463000A8E77E4B1D78A5E77D4B1B78002B01D0AA -:1046400007259FE7601C07AA0221FFF754FE0028F8 -:1046500001D1072596E7E01C08AA0221FFF74BFECF -:10466000002801D107258DE7601D09AA0221FFF767 -:1046700042FE002801D1072584E7E01D0AAA042193 -:10468000FFF739FE002801D107257BE76A4B079A1F -:10469000DA60089A1A61099A5A610A9A5A6000F017 -:1046A000B5F9624B1D786DE75620FFF7FBFD012041 -:1046B000FFF717FE0120FFF714FE5C4B1D7861E742 -:1046C0007620FFF7EFFD0420FFF70BFE0120FFF738 -:1046D00008FE6820FFF7E6FD544B1D7852E74E2098 -:1046E000FFF7E0FD554D2868C0B2FFF7FAFD2868D6 -:1046F0000012C0B2FFF7F5FD28680014C0B2FFF742 -:10470000F0FD2868000EFFF7ECFD484B1D7839E7F7 -:104710000022494B9A6000F079F9002801D0072562 -:1047200030E71E30FCF718FA0222414B1A703F4B5B -:104730001D7827E78022D2053F4B9A601E20FCF7A8 -:104740000BFA00F063F90222394B1A70374B1D78CF -:1047500018E7374B1B78002B01D0072512E7802282 -:104760001206354B9A601E20FCF7F6F900F04EF960 -:1047700001222F4B1A702D4B1D7803E7304B1B780D -:10478000002B01D00725FDE61E20FCF7EFF90022E3 -:10479000274B1A70254B1D78F4E6254B1B78022B0E -:1047A00001D00725EEE62000FFF7D6FD002800D057 -:1047B000D6E02378592B05D85A30FFF773FD1B4BF1 -:1047C0001D78DFE67A20FFF76DFDF8E71A48FCF761 -:1047D0008FF9C5B24620FFF765FD2800FFF781FD80 -:1047E000124B1D78CEE6601C0AAA0121FFF783FD5B -:1047F000002802D00D4B1D78C4E60725C2E6637879 -:10480000642B08D0601C03AA0221FFF774FD002866 -:1048100018D10725B6E600F009F9044B1D784D20A4 -:10482000FFF740FDAEE6C046945400081401002096 -:104830005202002064550008F00400209C0500206E -:1048400085010020E01C04AA0221FFF754FD002886 -:10485000DFD0601D05AA0121FFF74DFD0028D8D04B -:10486000A01D08AA0821FFF746FD0028D1D006AAFE -:10487000012120000E30FFF73EFD0028C9D009AA13 -:10488000082120000F30FFF736FD0028C1D007AA0D -:10489000012120001730FFF72EFD0028B9D005AB0D -:1048A0001B785B0731D50899069800F0D9F801907C -:1048B0000999079800F0D4F80290039B0F93049B8A -:1048C000139305AB1B78DA07D20F12929A07D20F17 -:1048D00010925A07D20F11921B07DB0F0E9301ABF8 -:1048E0001A880A925B880B9302AB1A880C925B8839 -:1048F0000D934D20FFF7D6FC0AA91A48FBF7EEFCF2 -:1049000000280DD1184B1D783CE60899069800F058 -:10491000E1F801900999079800F0DCF80290CCE7E3 -:1049200007252FE663786F2B01D007252AE6A378A9 -:104930006F2B01D0072525E6E378742B01D00725DE -:1049400020E6002323706370A370E370FFF7CEFAB4 -:10495000072517E6072515E6072513E6072511E6BF -:1049600007250FE6F004002014010020014B187801 -:104970007047C0465202002070B505008368042BC2 -:1049800018D0C368022B2AD07420FFF78BFC6B78F9 -:104990000F201840FFF79AFC2878FFF7A2FC287C2C -:1049A000FFF794FC2B69002B26D0EB68022B23D059 -:1049B00000241EE0C368022B04D05420FFF772FCD1 -:1049C000042409E05220FFF76DFCF9E72A1D013CA1 -:1049D000105DFFF786FCE4B2002CF7D1DFE7722010 -:1049E000FFF760FCD3E72B19187DFFF77AFC013441 -:1049F000E4B22B699C42F6D1034B1878FFF752FCC6 -:104A0000FFF73AFD002070BD1401002010B502E050 -:104A10000448FCF771FC0448FBF7D6FC0328F7D0E8 -:104A2000002010BDE0040020F004002000B58BB091 -:104A300000230593069301220792009301930293AA -:104A4000039304930892099369460448FBF746FCD4 -:104A5000002801D10BB000BD0120FBE7F0040020CD -:104A600010B582B000236A4613805380C307DB0F62 -:104A7000012213408407E40F224092005B0013439D -:104A80006A469370830711D44A016B4618781F2336 -:104A9000034013436A461370C9085170009B1A0CF7 -:104AA00012041804000C104302B010BDCA006B467B -:104AB00098780723034013436A4693704B09D370D9 -:104AC000490B1F230B4011781F22914319436B465A -:104AD0001970E3E770B582B000236A4613805380F3 -:104AE000C307DB0F012213408407E40F22401201A9 -:104AF000DB0013436A469370C5B2AB0711D54C0176 -:104B000092781F23134022001A43CB086C46E370AF -:104B10000C0A07231C40D3B20722934323436A465F -:104B200093704407E40F01263440E4006B469B7801 -:104B3000082293430207D20F324012012343180088 -:104B40001023984310436B4698702B0712D50A0C1C -:104B50000720024052016B461C781F232340CC0CD7 -:104B60006D466C70090E08401343190007239943E2 -:104B700001432970009B1A0C12041804000C104306 -:104B800002B070BD10B51B4B80225204DA60A02227 -:104B900012031A61C02292035A61242806D88000A9 -:104BA000154B1B589F460322124B5A60FFF72EFFEE -:104BB00010BD06220F4B5A60F8E70C220D4B5A60CD -:104BC000F4E718220B4B5A60F0E71E22094B5A609B -:104BD000ECE73C22074B5A60E8E79622054B5A6007 -:104BE000E4E796225200034B5A60DFE72422014B90 -:104BF0005A60DBE7F00400208C55000800B583B054 -:104C0000124B996901221143996199690A400092F6 -:104C1000009ADA69802149050A43DA61DB690B40B1 -:104C20000193019B0022002105204042FBF762FF17 -:104C30000022002102204042FBF75CFF00220021FD -:104C400001204042FBF756FF03B000BD00100240B8 -:104C500000B587B002680F4B9A4201D007B000BD83 -:104C60000D4AD169802080040143D161D36903409A -:104C70000093009BC0239B00019302230293002317 -:104C80000393033304930133059301A90348FCF70D -:104C900039FAE3E7006400400010024000040048D5 -:104CA00030B587B00400284B02689A4201D007B0A3 -:104CB00030BD264AD169802080020143D161D36989 -:104CC00003400093009B0C2301930A3B02930025B1 -:104CD000039501330493023B059301A99020C0057D -:104CE000FCF710FA1A481B4B0360102343608560E1 -:104CF0007033C360056145618561C561FBF772FF73 -:104D0000002816D1124B23665C621348134B0360D4 -:104D10000023436083608022C2600361436183613A -:104D2000C361FBF75FFF002808D10B4B63665C6231 -:104D3000BDE7AE210A48FFF7B3FAE3E7BE21084812 -:104D4000FFF7AEFAF1E7C046004400400010024011 -:104D5000340500204400024098040020580002401E -:104D6000205600087047FEE77047704710B5FBF704 -:104D700095FAFBF732FF10BD10B50348FBF7DBFFD8 -:104D80000248FBF7D8FF10BD34050020980400202E -:104D900010B50248FDF744FB10BDC0469009002045 -:104DA00010B50248FBF7C8FC10BDC046F004002057 -:104DB00010B50C48FCF7A0FA0B4BDB699B0303D43E -:104DC0000A48FEF72FFA10BD074A116A80239B029A -:104DD0000B431362054C2000FDF754FF2000FFF742 -:104DE00053FAEDE7E004002000440040DC05002019 -:104DF000114B1A6801210A431A605A680F48024091 -:104E00005A601A680E4802401A601A680D4802403B -:104E10001A605A680C4802405A60DA6A0F208243CE -:104E2000DA621A6B094802401A635A6B8A435A6362 -:104E300000229A607047C046001002400CB8FF087C -:104E4000FFFFF6FEFFFFFBFFFFFFC0FF2CFEFFFF93 -:104E500010B5094C002209492000FEF7E7FB08497C -:104E60002000FEF7FFFB07492000FEF789FB20002A -:104E7000FEF701FC10BDC0466C0600202C0100208E -:104E8000000000201C0100200020704770B50500C4 -:104E90000E00002403E0285DFFF736FB0134336881 -:104EA0009C420CD0FFF762FD0028F4D1285DFFF78B -:104EB0002BFB0028F2D00748FFF74CFBEEE7064C2F -:104EC00029002000FEF770FB2000FEF791FB002078 -:104ED00070BDC046880100206C06002010B5222855 -:104EE00001D1FFF7BFFA002010BD000010B5064C3D -:104EF000002206492000FEF74CFB05492000FEF782 -:104F000053FB002010BDC0466C0600201009002095 -:104F10009008002070B50C0086239B000B4AD258E5 -:104F2000043BD358002B01D0012070BD084E0A006D -:104F30000100300000F04EFA044D2200310028003C -:104F4000FEF727FB2800FEF736FBEEE76C06002095 -:104F50001009002010B5FFF701F810BD00B583B0AF -:104F600002680C4B9A4201D003B000BD0A4AD169D5 -:104F7000802000040143D161D36903400193019B68 -:104F8000002200211F20FBF7B5FD1F20FBF7E4FDE9 -:104F9000EAE7C046005C00400010024010B5010086 -:104FA00087239B00C058ED31FF31FEF781FB10BD18 -:104FB00010B50300872292008058CA00521A94004C -:104FC0001B191933FF331A68FEF7A6FB10BD10B585 -:104FD0000300872292008058CA00521A94001B19BD -:104FE0009A6BFEF7D6FB10BD10B587239B00C05807 -:104FF000FEF769FC10BD70B505008724A4000121EF -:105000000059FEF74BFC2859FEF725FC70BD000047 -:1050100010B5040087239B00C058FEF742FCA3692B -:10502000002B04D0024A136906210B43136110BD03 -:1050300000ED00E010B504008369002B05D1872343 -:105040009B00E058FEF738FC10BD044A13690621A6 -:105050008B431361FFF77EFFF1E7C04600ED00E0F0 -:1050600070B504001F4887239B00C4500433E050F0 -:105070001D4B036008234360022282600023C3604B -:1050800002618361C3610362FCF73EF9002823D10A -:105090008825AD001823002200216059FDF750FA41 -:1050A0005823002280216059FDF74AFAC0230022CC -:1050B00081216059FDF744FA88235B000022012119 -:1050C0006059FDF73DFA605980235B000022822180 -:1050D000FDF736FA002070BD9A2149000348FFF71A -:1050E000DFF8D5E790090020005C00405456000826 -:1050F00010B588239B00C058FCF766F9002803D040 -:10510000022803D0022010BD0020FCE70120FAE7AE -:1051100010B514001A0088239B00C0582300FCF728 -:105120007BF9002803D0022803D0022010BD002004 -:10513000FCE70120FAE710B588239B00C058FCF774 -:1051400015FB002803D0022803D0022010BD002048 -:10515000FCE70120FAE710B588239B00C058FCF754 -:10516000F7FC002803D0022803D0022010BD002045 -:10517000FCE70120FAE710B588239B00C058FCF734 -:1051800049FD002803D0022803D0022010BD0020D2 -:10519000FCE70120FAE70A0088239B00C35849B2C4 -:1051A000002909DB7F211140CA00511A8A009B188F -:1051B0000B33FF33187870477F211140C800411A24 -:1051C0008A009B182A331878F5E710B588239B00CE -:1051D000C058FCF705F9002803D0022803D00220AC -:1051E00010BD0020FCE70120FAE710B58824A400D8 -:1051F0000059FCF793FD002803D0022803D00220B9 -:1052000010BD0020FCE70120FAE710B58824A400B7 -:105210000059FCF793FB002803D0022803D002209A -:1052200010BD0020FCE70120FAE710B588239B00A1 -:10523000C058FCF783FC10BD0048704754020020A2 -:105240007047000012230B8000487047480100207F -:1052500004230B80004870475C01002010B50A0051 -:10526000002805D005490648FEF7DCFD034810BDBF -:1052700002490348FEF7D6FDF8E7C046B00B002010 -:105280009056000810B50A00034C21000348FEF7B1 -:10529000C9FD200010BDC046B00B00208456000898 -:1052A00010B50A00002805D005490648FEF7BAFDEA -:1052B000034810BD02490348FEF7B4FDF8E7C046B5 -:1052C000B00B0020AC56000810B50A00002805D02D -:1052D00005490648FEF7A6FD034810BD02490348EC -:1052E000FEF7A0FDF8E7C046B00B002068560008A6 -:1052F00010B50A00002805D005490648FEF792FDC2 -:10530000034810BD02490348FEF78CFDF8E7C0468C -:10531000B00B00207456000813488546042001682D -:10532000090E1F22914205D1104801210160104849 -:10533000002101600F481049104A002302E0D458B0 -:10534000C4500433C4188C42F9D30D4A0D4C0023C9 -:1053500001E013600432A242FBD3FFF749FD00F0E5 -:1053600015F8FEF73DFEFEE7001800201810024079 -:10537000000001400000002060010020C05600082D -:1053800060010020B00D0020FEE7000070B500268F -:105390000C4D0D4C641BA410A64209D1002600F050 -:1053A0002BF80A4D0A4C641BA410A64205D170BD0F -:1053B000B300EB5898470136EEE7B300EB58984737 -:1053C0000136F2E7B8560008B8560008B85600088B -:1053D000BC560008002310B59A4200D110BDCC5C29 -:1053E000C4540133F8E703008218934200D1704798 -:1053F00019700133F9E70000F8B5C046F8BC08BCE5 -:105400009E467047F8B5C046F8BC08BC9E4670473B -:1054100002030405060708090A0B0C0D0E0F1010F5 -:105420000102030405060708090A0B0C0D0E0F10F4 -:10543000000408028C3A0008763900089C390008FC -:10544000CA3900088C3A00088C3A00084C3A000827 -:105450006A3A0008D8390008EA390008FC3900081F -:105460000E3A0008203A0008323A0008923C000840 -:105470009E3C0008A43C0008983C0008A43C00089E -:10548000803C0008783C0008A43C00088C3C0008E4 -:10549000863C00087C47000854490008544900082D -:1054A000CC47000832460008544900085449000817 -:1054B000544900085449000852470008FE470008B4 -:1054C000DE46000810470008544900085449000807 -:1054D0009A4700089C4500089A470008544900086C -:1054E000A8460008324600085449000854490008FC -:1054F000E647000854490008544900085449000888 -:1055000054490008544900085449000872450008ED -:105510002449000854490008544900085449000827 -:1055200054490008544900085449000854490008E7 -:10553000544900085449000834470008FE47000851 -:10554000544900081047000854490008544900080D -:105550009A470008384600089A470008544900084E -:10556000C0460008BA450008C6450008D2450008F4 -:10557000DE450008EA450008F64500080246000836 -:105580000E4600081A46000826460008E24B0008AE -:10559000DA4B0008D24B0008CA4B0008C24B000887 -:1055A000BA4B0008B24B0008AC4B0008A64B0008F1 -:1055B000AC4B0008AC4B0008AC4B0008AC4B0008EF -:1055C000AC4B0008AC4B0008AC4B0008AC4B0008DF -:1055D000AC4B0008AC4B0008AC4B0008AC4B0008CF -:1055E000AC4B0008AC4B0008AC4B0008AC4B0008BF -:1055F000AC4B0008AC4B0008AC4B0008AC4B0008AF -:10560000AC4B0008AC4B0008AC4B0008AC4B00089E -:10561000AC4B0008AC4B0008AC4B0008EC4B00084E -:105620002E2E5C5372635C73746D333266307878FF -:105630005F68616C5F6D73702E6300000000000096 -:105640000000000001020304060708090000000032 -:10565000010203042E2E5C5372635C757362645FF7 -:10566000636F6E662E63000043444320436F6E6693 -:105670006967000043444320496E74657266616344 -:10568000650000004875736172696F6E000000006C -:105690004875736172696F6E205553422D43414EB8 -:1056A00020496E74657266616365000064656164BB -:0856B000626565660000000060 -:0456B800E9000008FD -:0456BC00C100000821 -:1056C000DD3400089D340008153400080000000097 -:1056D000793300085F330008DD3300080000000064 -:1056E0000000000000000000B9330008AD330008DE -:1056F000C5330008D133000809024300020100C08D -:105700003209040000010202010005240010010515 -:105710002401000104240202052406000107058279 -:105720000308001009040100020A00000007050137 -:10573000024000000705810240000000090243000A -:10574000020100C032090400000102020100052428 -:1057500000100105240100010424020205240600B2 -:10576000010705820308001009040100020A000075 -:105770000007050102000200070581020002000087 -:105780000A06000200000040010000000907430073 -:10579000020104C0320904000001020201000524D4 -:1057A0000010010524010001042402020524060062 -:1057B00001070582030800FF09040100020A000036 -:1057C00000070501024000000705810240000000BB -:1057D000B0F7FF1F0D00000000127A00ED4E000828 -:1057E000894E0008DD4E00088D4E00084552000825 -:1057F00051520008855200085D520008A15200086D -:10580000C9520008F15200081201000202020040D1 -:10581000830440570002010203010000040309044D -:040000050800531983 +:1040A000FCF75AFD5F4D604B28006B600C236B6181 +:1040B00080231B022E60AF60EF602F61AF61EB6168 +:1040C0002F62FEF7FBFF002800D0FEE700F0C2FEE3 +:1040D0005648574B036004234360564BC3608360CC +:1040E000FDF7DAF8071E00D0FEE7534B2363534B6E +:1040F0006363534B187000F09BFC02221E201100DA +:10410000FCF7F8FC39002000FCF7A2FA0122336822 +:104110000120934333601023726813437360D023EC +:1041200072681B051343736080233268DB011343FD +:1041300020223360336893433360FCF7BDF80122DB +:1041400033684049134333601D322800FEF74CFDAD +:104150003A0039001C20FCF7CDFC80223A4B520576 +:104160001A6000F069F9394800F0F6F900F086F9B4 +:10417000374F3B78002B15D0324E1E2200213000E5 +:1041800001F033F908212B6828009A690A439A61E3 +:10419000102299690A439A6131001E22FEF724FD1C +:1041A00000233B70264B1B78002B0CD0606B00F07B +:1041B000E5FB0122224B00211B7820009343204A7B +:1041C0001370FCF745FAFCF771F8224E3368C01AF9 +:1041D000F9280DD9FCF76AF8306000F0C9FB012816 +:1041E00001D0022808D180210A48C900FDF750F803 +:1041F0000E48FDF781F8B6E780210122C900054885 +:10420000FDF740F8F4E7C046100100209C050020AF +:104210000010024000040048F00400200064004048 +:1042200000440040DC05002080841E00E0040020E3 +:1042300000300040FF0F0000C0050020780500207E +:10424000DC040020A005002000E100E0880100203F +:104250008401002080010020C36E704710B51E222B +:104260000249C36EFEF7C0FC10BDC046A005002089 +:1042700010B50021FCF7ECF910BD00000123024A43 +:1042800011780B4313707047DC040020012210B535 +:10429000024B03481A7000F01FF910BD8401002082 +:1042A000A0050020FEE70000074B1B78DBB21F2BA8 +:1042B00008D8054A1378DBB20449C854137801338F +:1042C000DBB213707047C046510200204C0600203C +:1042D00010B5092804D83030C0B2FFF7E5FF10BD93 +:1042E0003730C0B2F9E710B504000009FFF7F0FF5E +:1042F0000F202040FFF7ECFF10BD30B50023136006 +:1043000009E01D00413DEDB2052D18D85B18373B83 +:104310001360013021004C1EE4B2002918D003784C +:10432000002B16D013681901116003781D00303D71 +:10433000EDB2092DE5D85B18303B1360E9E71D00AD +:10434000613DEDB2052D06D85B18573B1360E0E7E1 +:104350000123180030BD0023FBE70000F0B583B057 +:1043600005000378722B42D0522B40D0314B1B6B8F +:104370000022DA602B78592B3ED8681C01AA08214C +:10438000FFF7BBFF002853D02A4B1A6B0421916022 +:104390001B6B019A5A60082007000130281801AAF7 +:1043A0000121FFF7AAFF002842D0224B1A6B019986 +:1043B00011611B6BDA68002A2ED11E7C082E00D9F1 +:1043C00008260024B44227D2BB1C62009818281883 +:1043D00001AA0221FFF791FF002829D0154B1B6B82 +:1043E0001B196A4612791A750134E4B2EAE7114BD7 +:1043F0001B6B0222DA60BDE7681C01AA0321FFF7EC +:104400007CFF002814D00B4B1A6B002191601B6BB2 +:10441000019A1A600320BFE71E20FCF7A7FB0021CA +:104420000448FCF77FF804001E20FCF795FB2000F1 +:1044300003B0F0BDF004002010B5082000F0A4FB8C +:104440000022074B9A6000F0E3FA002800D010BD6C +:104450001E30FCF781FB0222024B1A70F7E7C046C0 +:10446000F00400205202002010B51E20FCF77EFB55 +:104470000022014B1A7010BD5202002010B5124BE1 +:104480001B78002B0ED0FE235B00104AD35C032B5D +:1044900009D00D4B1A780E490E48FEF75FFB00223B +:1044A000094B1A7010BD86239B00084AD258043B62 +:1044B000D358002BF7D1044B1978054800F02CFD98 +:1044C0000028F8D1EBE7C046510200206C0600201E +:1044D0004C060020DC05002070B505000122094BC8 +:1044E0001A70094C63320021200000F07EFF280082 +:1044F000FBF70AFE02002900200000F06DFF0020FB +:1045000070BDC046850100208801002070B50D28CF +:104510000CD00A2815D00D4B1B780D4AD054622BB5 +:1045200011D80133094A1370002070BD074C22785E +:10453000074900258D54074800F04EFF25700120E3 +:10454000F3E70020F1E70020EFE7C046500200202B +:10455000EC0100208801002030B595B004000078FF +:10456000002817D04338C3B2332B00D9F4E19800A8 +:10457000AE4B1B589F46AE4B1B780D2B0CD00D221B +:10458000AB4B1A70AA4B1D78002323702800FFF74D +:104590008BFE012015B030BD0A22A54B1A70F1E741 +:1045A000A44B1B78002B00D0D8E16378303BDAB203 +:1045B000092A00D9D4E193009F4AD3589F4600208E +:1045C00000F0E2FA9A4B1D78DEE7012000F0DCFAF9 +:1045D000974B1D78D8E7022000F0D6FA944B1D784F +:1045E000D2E7032000F0D0FA914B1D78CCE70420ED +:1045F00000F0CAFA8E4B1D78C6E7052000F0C4FA19 +:104600008B4B1D78C0E7062000F0BEFA884B1D7862 +:10461000BAE7072000F0B8FA854B1D78B4E7082008 +:1046200000F0B2FA824B1D78AEE7242000F0ACFA1D +:104630007F4B1D78A8E77E4B1D78A5E77D4B1B7847 +:10464000002B01D007259FE7601C07AA0221FFF776 +:1046500054FE002801D1072596E7E01C08AA022194 +:10466000FFF74BFE002801D107258DE7601D09AA41 +:104670000221FFF742FE002801D1072584E7E01D53 +:104680000AAA0421FFF739FE002801D107257BE79C +:104690006A4B079ADA60089A1A61099A5A610A9A6B +:1046A0005A6000F0B5F9624B1D786DE75620FFF7B0 +:1046B000FBFD0120FFF717FE0120FFF714FE5C4B06 +:1046C0001D7861E77620FFF7EFFD0420FFF70BFE72 +:1046D0000120FFF708FE6820FFF7E6FD544B1D7828 +:1046E00052E74E20FFF7E0FD554D2868C0B2FFF7B6 +:1046F000FAFD28680012C0B2FFF7F5FD2868001423 +:10470000C0B2FFF7F0FD2868000EFFF7ECFD484B44 +:104710001D7839E70022494B9A6000F079F90028AA +:1047200001D0072530E71E30FCF716FA0222414B74 +:104730001A703F4B1D7827E78022D2053F4B9A60C5 +:104740001E20FCF709FA00F063F90222394B1A70B7 +:10475000374B1D7818E7374B1B78002B01D0072506 +:1047600012E780221206354B9A601E20FCF7F4F9FE +:1047700000F04EF901222F4B1A702D4B1D7803E7E4 +:10478000304B1B78002B01D00725FDE61E20FCF7DF +:10479000EDF90022274B1A70254B1D78F4E6254BC6 +:1047A0001B78022B01D00725EEE62000FFF7D6FD8F +:1047B000002800D0D6E02378592B05D85A30FFF7CF +:1047C00073FD1B4B1D78DFE67A20FFF76DFDF8E7E0 +:1047D0001A48FCF78DF9C5B24620FFF765FD2800A1 +:1047E000FFF781FD124B1D78CEE6601C0AAA01215D +:1047F000FFF783FD002802D00D4B1D78C4E6072586 +:10480000C2E66378642B08D0601C03AA0221FFF77C +:1048100074FD002818D10725B6E600F009F9044B0D +:104820001D784D20FFF740FDAEE6C04698540008C5 +:10483000140100205202002068550008F0040020F6 +:104840009C05002085010020E01C04AA0221FFF73E +:1048500054FD0028DFD0601D05AA0121FFF74DFDA2 +:104860000028D8D0A01D08AA0821FFF746FD00287F +:10487000D1D006AA012120000E30FFF73EFD00280E +:10488000C9D009AA082120000F30FFF736FD002803 +:10489000C1D007AA012120001730FFF72EFD002804 +:1048A000B9D005AB1B785B0731D50899069800F0A5 +:1048B000D9F801900999079800F0D4F80290039B69 +:1048C0000F93049B139305AB1B78DA07D20F129258 +:1048D0009A07D20F10925A07D20F11921B07DB0FC3 +:1048E0000E9301AB1A880A925B880B9302AB1A886D +:1048F0000C925B880D934D20FFF7D6FC0AA91A484D +:10490000FBF7ECFC00280DD1184B1D783CE608990C +:10491000069800F0E1F801900999079800F0DCF89A +:104920000290CCE707252FE663786F2B01D007258F +:104930002AE6A3786F2B01D0072525E6E378742BB0 +:1049400001D0072520E6002323706370A370E37075 +:10495000FFF7CCFA072517E6072515E6072513E626 +:10496000072511E607250FE6F004002014010020BA +:10497000014B18787047C0465202002070B5050000 +:104980008368042B18D0C368022B2AD07420FFF749 +:104990008BFC6B780F201840FFF79AFC2878FFF704 +:1049A000A2FC287CFFF794FC2B69002B26D0EB6837 +:1049B000022B23D000241EE0C368022B04D0542015 +:1049C000FFF772FC042409E05220FFF76DFCF9E7C1 +:1049D0002A1D013C105DFFF786FCE4B2002CF7D1E4 +:1049E000DFE77220FFF760FCD3E72B19187DFFF794 +:1049F0007AFC0134E4B22B699C42F6D1034B18785F +:104A0000FFF752FCFFF73AFD002070BD14010020B3 +:104A100010B502E00448FCF76FFC0448FBF7D4FC37 +:104A20000328F7D0002010BDE0040020F00400208F +:104A300000B58BB0002305930693012207920093E3 +:104A400001930293039304930892099369460448DF +:104A5000FBF744FC002801D10BB000BD0120FBE7AF +:104A6000F004002010B582B000236A461380538002 +:104A7000C307DB0F012213408407E40F224092009A +:104A80005B0013436A469370830711D44A016B4657 +:104A900018781F23034013436A461370C9085170E6 +:104AA000009B1A0C12041804000C104302B010BD35 +:104AB000CA006B4698780723034013436A469370F5 +:104AC0004B09D370490B1F230B4011781F229143D0 +:104AD00019436B461970E3E770B582B000236A464C +:104AE00013805380C307DB0F012213408407E40FB8 +:104AF00022401201DB0013436A469370C5B2AB0734 +:104B000011D54C0192781F23134022001A43CB0881 +:104B10006C46E3700C0A07231C40D3B20722934370 +:104B200023436A4693704407E40F01263440E400AF +:104B30006B469B78082293430207D20F3240120142 +:104B4000234318001023984310436B4698702B079B +:104B500012D50A0C0720024052016B461C781F2315 +:104B60002340CC0C6D466C70090E084013431900AD +:104B70000723994301432970009B1A0C120418045F +:104B8000000C104302B070BD10B51B4B80225204C4 +:104B9000DA60A02212031A61C02292035A6124280B +:104BA00006D88000154B1B589F460322124B5A60B3 +:104BB000FFF72EFF10BD06220F4B5A60F8E70C22BC +:104BC0000D4B5A60F4E718220B4B5A60F0E71E2297 +:104BD000094B5A60ECE73C22074B5A60E8E7962203 +:104BE000054B5A60E4E796225200034B5A60DFE718 +:104BF0002422014B5A60DBE7F004002090550008A6 +:104C000000B583B0124B99690122114399619969EA +:104C10000A400092009ADA69802149050A43DA6164 +:104C2000DB690B400193019B0022002105204042DB +:104C3000FBF760FF0022002102204042FBF75AFFF1 +:104C40000022002101204042FBF754FF03B000BDC9 +:104C50000010024000B587B002680F4B9A4201D0A5 +:104C600007B000BD0D4AD169802080040143D161A5 +:104C7000D36903400093009BC0239B000193022350 +:104C8000029300230393033304930133059301A993 +:104C90000348FCF737FAE3E70064004000100240E5 +:104CA0000004004830B587B00400284B02689A42DF +:104CB00001D007B030BD264AD1698020800201436F +:104CC000D161D36903400093009B0C2301930A3BFD +:104CD00002930025039501330493023B059301A938 +:104CE0009020C005FCF70EFA1A481B4B03601023F6 +:104CF000436085607033C360056145618561C5614E +:104D0000FBF770FF002816D1124B23665C62134834 +:104D1000134B03600023436083608022C260036101 +:104D200043618361C361FBF75DFF002808D10B4B32 +:104D300063665C62BDE7AE210A48FFF7B3FAE3E7BA +:104D4000BE210848FFF7AEFAF1E7C0460044004034 +:104D50000010024034050020440002409804002066 +:104D600058000240245600087047FEE7704770471D +:104D700010B5FBF793FAFBF730FF10BD10B50348F1 +:104D8000FBF7D9FF0248FBF7D6FF10BD3405002022 +:104D90009804002010B50248FDF742FB10BDC04644 +:104DA0009009002010B50248FBF7C6FC10BDC046B4 +:104DB000F004002010B50C48FCF79EFA0B4BDB69A1 +:104DC0009B0303D40A48FEF72DFA10BD074A116A67 +:104DD00080239B020B431362054C2000FDF752FF1A +:104DE0002000FFF753FAEDE7E00400200044004004 +:104DF000DC050020114B1A6801210A431A605A6829 +:104E00000F4802405A601A680E4802401A601A6839 +:104E10000D4802401A605A680C4802405A60DA6A2B +:104E20000F208243DA621A6B094802401A635A6BF8 +:104E30008A435A6300229A607047C04600100240BD +:104E40000CB8FF08FFFFF6FEFFFFFBFFFFFFC0FFF0 +:104E50002CFEFFFF10B5094C002209492000FEF787 +:104E6000E5FB08492000FEF7FDFB07492000FEF79F +:104E700087FB2000FEF7FFFB10BDC0466C0600203C +:104E80002C010020000000201C01002000207047A1 +:104E900070B505000E00002403E0285DFFF736FB27 +:104EA000013433689C420CD0FFF762FD0028F4D136 +:104EB000285DFFF72BFB0028F2D00748FFF74CFBDB +:104EC000EEE7064C29002000FEF76EFB2000FEF7FF +:104ED0008FFB002070BDC046880100206C060020BA +:104EE00010B5222801D1FFF7BFFA002010BD000045 +:104EF00010B5064C002206492000FEF74AFB054982 +:104F00002000FEF751FB002010BDC0466C060020BB +:104F1000100900209008002070B50C0086239B002B +:104F20000B4AD258043BD358002B01D0012070BD4E +:104F3000084E0A000100300000F04EFA044D220035 +:104F400031002800FEF725FB2800FEF734FBEEE7D2 +:104F50006C0600201009002010B5FEF7FFFF10BD01 +:104F600000B583B002680C4B9A4201D003B000BD7B +:104F70000A4AD169802000040143D161D36903400A +:104F80000193019B002200211F20FBF7B3FD1F208E +:104F9000FBF7E2FDEAE7C046005C0040001002407B +:104FA00010B5010087239B00C058ED31FF31FEF79B +:104FB0007FFB10BD10B50300872292008058CA0005 +:104FC000521A94001B191933FF331A68FEF7A4FB19 +:104FD00010BD10B50300872292008058CA00521AF3 +:104FE00094001B199A6BFEF7D4FB10BD10B58723F4 +:104FF0009B00C058FEF767FC10BD70B50500872404 +:10500000A40001210059FEF749FC2859FEF723FCB2 +:1050100070BD000010B5040087239B00C058FEF748 +:1050200040FCA369002B04D0024A136906210B43FC +:10503000136110BD00ED00E010B504008369002B82 +:1050400005D187239B00E058FEF736FC10BD044ACB +:10505000136906218B431361FFF77EFFF1E7C0461A +:1050600000ED00E070B504001F4887239B00C4508A +:105070000433E0501D4B036008234360022282602A +:105080000023C36002618361C3610362FCF73CF9E2 +:10509000002823D18825AD00182300220021605963 +:1050A000FDF74EFA5823002280216059FDF748FA97 +:1050B000C023002281216059FDF742FA88235B005A +:1050C000002201216059FDF73BFA605980235B0003 +:1050D00000228221FDF734FA002070BD9A21490098 +:1050E0000348FFF7DFF8D5E790090020005C004097 +:1050F0005856000810B588239B00C058FCF764F987 +:10510000002803D0022803D0022010BD0020FCE7B5 +:105110000120FAE710B514001A0088239B00C0583C +:105120002300FCF779F9002803D0022803D00220DD +:1051300010BD0020FCE70120FAE710B588239B0092 +:10514000C058FCF713FB002803D0022803D002202C +:1051500010BD0020FCE70120FAE710B588239B0072 +:10516000C058FCF7F5FC002803D0022803D0022029 +:1051700010BD0020FCE70120FAE710B588239B0052 +:10518000C058FCF747FD002803D0022803D00220B6 +:1051900010BD0020FCE70120FAE70A0088239B00ED +:1051A000C35849B2002909DB7F211140CA00511AB6 +:1051B0008A009B180B33FF33187870477F2111400A +:1051C000C800411A8A009B182A331878F5E710B5F1 +:1051D00088239B00C058FCF703F9002803D002285D +:1051E00003D0022010BD0020FCE70120FAE710B533 +:1051F0008824A4000059FCF791FD002803D0022860 +:1052000003D0022010BD0020FCE70120FAE710B512 +:105210008824A4000059FCF791FB002803D0022841 +:1052200003D0022010BD0020FCE70120FAE710B5F2 +:1052300088239B00C058FCF781FC10BD00487047D4 +:10524000540200207047000012230B800048704772 +:105250004801002004230B80004870475C010020B7 +:1052600010B50A00002805D005490648FEF7DAFD0A +:10527000034810BD02490348FEF7D4FDF8E7C046D5 +:10528000B00B00209456000810B50A00034C210012 +:105290000348FEF7C7FD200010BDC046B00B00203C +:1052A0008856000810B50A00002805D005490648B0 +:1052B000FEF7B8FD034810BD02490348FEF7B2FDF2 +:1052C000F8E7C046B00B0020B056000810B50A0041 +:1052D000002805D005490648FEF7A4FD034810BD87 +:1052E00002490348FEF79EFDF8E7C046B00B0020D8 +:1052F0006C56000810B50A00002805D0054906487C +:10530000FEF790FD034810BD02490348FEF78AFDF1 +:10531000F8E7C046B00B00207856000813488546D1 +:1053200004200168090E1F22914205D11048012175 +:1053300001601048002101600F481049104A002305 +:1053400002E0D458C4500433C4188C42F9D30D4A37 +:105350000D4C002301E013600432A242FBD3FFF79F +:1053600049FD00F015F8FEF73BFEFEE700180020AF +:1053700018100240000001400000002060010020E1 +:10538000C456000860010020B00D0020FEE70000B8 +:1053900070B500260C4D0D4C641BA410A64209D11B +:1053A000002600F02BF80A4D0A4C641BA410A642FC +:1053B00005D170BDB300EB5898470136EEE7B30056 +:1053C000EB5898470136F2E7BC560008BC56000877 +:1053D000BC560008C0560008002310B59A4200D100 +:1053E00010BDCC5CC4540133F8E70300821893422B +:1053F00000D1704719700133F9E70000F8B5C046D5 +:10540000F8BC08BC9E467047F8B5C046F8BC08BC5E +:045410009E467047FD +:1054140002030405060708090A0B0C0D0E0F1010F1 +:105424000102030405060708090A0B0C0D0E0F10F0 +:10543400000408028C3A0008763900089C390008F8 +:10544400CA3900088C3A00088C3A00084C3A000823 +:105454006A3A0008D8390008EA390008FC3900081B +:105464000E3A0008203A0008323A0008923C00083C +:105474009E3C0008A43C0008983C0008A43C00089A +:10548400803C0008783C0008A43C00088C3C0008E0 +:10549400863C00088047000858490008584900081D +:1054A400D047000836460008584900085849000803 +:1054B400584900085849000856470008024800089F +:1054C400E2460008144700085849000858490008F3 +:1054D4009E470008A04500089E4700085849000858 +:1054E400AC460008364600085849000858490008E8 +:1054F400EA47000858490008584900085849000874 +:1055040058490008584900085849000876450008D9 +:105514002849000858490008584900085849000813 +:1055240058490008584900085849000858490008D3 +:10553400584900085849000838470008024800083C +:1055440058490008144700085849000858490008F9 +:105554009E4700083C4600089E470008584900083A +:10556400C4460008BE450008CA450008D6450008E0 +:10557400E2450008EE450008FA4500080646000822 +:10558400124600081E4600082A460008E64B00089A +:10559400DE4B0008D64B0008CE4B0008C64B000873 +:1055A400BE4B0008B64B0008B04B0008AA4B0008DD +:1055B400B04B0008B04B0008B04B0008B04B0008DB +:1055C400B04B0008B04B0008B04B0008B04B0008CB +:1055D400B04B0008B04B0008B04B0008B04B0008BB +:1055E400B04B0008B04B0008B04B0008B04B0008AB +:1055F400B04B0008B04B0008B04B0008B04B00089B +:10560400B04B0008B04B0008B04B0008B04B00088A +:10561400B04B0008B04B0008B04B0008F04B00083A +:105624002E2E5C5372635C73746D333266307878FB +:105634005F68616C5F6D73702E6300000000000092 +:10564400000000000102030406070809000000002E +:10565400010203042E2E5C5372635C757362645FF3 +:10566400636F6E662E63000043444320436F6E668F +:105674006967000043444320496E74657266616340 +:10568400650000004875736172696F6E0000000068 +:105694004875736172696F6E205553422D43414EB4 +:1056A40020496E74657266616365000064656164B7 +:0856B40062656566000000005C +:0456BC00E9000008F9 +:0456C000C10000081D +:1056C400DD3400089D340008153400080000000093 +:1056D400793300085F330008DD3300080000000060 +:1056E4000000000000000000B9330008AD330008DA +:1056F400C5330008D133000809024300020100C089 +:105704003209040000010202010005240010010511 +:105714002401000104240202052406000107058275 +:105724000308001009040100020A00000007050133 +:105734000240000007058102400000000902430006 +:10574400020100C032090400000102020100052424 +:1057540000100105240100010424020205240600AE +:10576400010705820308001009040100020A000071 +:105774000007050102000200070581020002000083 +:105784000A0600020000004001000000090743006F +:10579400020104C0320904000001020201000524D0 +:1057A400001001052401000104240202052406005E +:1057B40001070582030800FF09040100020A000032 +:1057C40000070501024000000705810240000000B7 +:1057D400B0F7FF1F0D00000000127A00F14E000820 +:1057E4008D4E0008E14E0008914E00084952000811 +:1057F400555200088952000861520008A552000859 +:10580400CD520008F55200081201000202020040C5 +:105814008304405700020102030100000403090449 +:040000050800531D7F :00000001FF diff --git a/Debug/UCCBEmbedded.list b/Debug/UCCBEmbedded.list index c2bec72..d1e87a6 100644 --- a/Debug/UCCBEmbedded.list +++ b/Debug/UCCBEmbedded.list @@ -5,19 +5,19 @@ Sections: Idx Name Size VMA LMA File off Algn 0 .isr_vector 000000c0 08000000 08000000 00010000 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA - 1 .text 00005350 080000c0 080000c0 000100c0 2**2 + 1 .text 00005354 080000c0 080000c0 000100c0 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .rodata 000002a8 08005410 08005410 00015410 2**2 + 2 .rodata 000002a8 08005414 08005414 00015414 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA - 3 .init_array 00000004 080056b8 080056b8 000156b8 2**2 + 3 .init_array 00000004 080056bc 080056bc 000156bc 2**2 CONTENTS, ALLOC, LOAD, DATA - 4 .fini_array 00000004 080056bc 080056bc 000156bc 2**2 + 4 .fini_array 00000004 080056c0 080056c0 000156c0 2**2 CONTENTS, ALLOC, LOAD, DATA - 5 .data 00000160 20000000 080056c0 00020000 2**2 + 5 .data 00000160 20000000 080056c4 00020000 2**2 CONTENTS, ALLOC, LOAD, DATA - 6 .bss 00000c50 20000160 08005820 00020160 2**3 + 6 .bss 00000c50 20000160 08005824 00020160 2**3 ALLOC - 7 ._user_heap_stack 00000600 20000db0 08005820 00020db0 2**0 + 7 ._user_heap_stack 00000600 20000db0 08005824 00020db0 2**0 ALLOC 8 .ARM.attributes 00000028 00000000 00000000 00020160 2**0 CONTENTS, READONLY @@ -31,13 +31,13 @@ Idx Name Size VMA LMA File off Algn CONTENTS, READONLY, DEBUGGING 13 .debug_ranges 00001038 00000000 00000000 00052228 2**3 CONTENTS, READONLY, DEBUGGING - 14 .debug_line 00008d23 00000000 00000000 00053260 2**0 + 14 .debug_line 00008d25 00000000 00000000 00053260 2**0 CONTENTS, READONLY, DEBUGGING - 15 .debug_str 0000473c 00000000 00000000 0005bf83 2**0 + 15 .debug_str 0000473c 00000000 00000000 0005bf85 2**0 CONTENTS, READONLY, DEBUGGING - 16 .comment 0000007c 00000000 00000000 000606bf 2**0 + 16 .comment 0000007c 00000000 00000000 000606c1 2**0 CONTENTS, READONLY - 17 .debug_frame 00002258 00000000 00000000 0006073c 2**2 + 17 .debug_frame 00002258 00000000 00000000 00060740 2**2 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -59,7 +59,7 @@ Disassembly of section .text: 80000da: bd10 pop {r4, pc} 80000dc: 20000160 .word 0x20000160 80000e0: 00000000 .word 0x00000000 - 80000e4: 080053f8 .word 0x080053f8 + 80000e4: 080053fc .word 0x080053fc 080000e8 : 80000e8: 4b04 ldr r3, [pc, #16] ; (80000fc ) @@ -74,7 +74,7 @@ Disassembly of section .text: 80000fa: 46c0 nop ; (mov r8, r8) 80000fc: 00000000 .word 0x00000000 8000100: 20000164 .word 0x20000164 - 8000104: 080053f8 .word 0x080053f8 + 8000104: 080053fc .word 0x080053fc 08000108 : 8000108: 2300 movs r3, #0 @@ -299,7 +299,7 @@ __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) 8000288: 2000 movs r0, #0 800028a: f7ff ffe5 bl 8000258 HAL_MspInit(); - 800028e: f004 fcb5 bl 8004bfc + 800028e: f004 fcb7 bl 8004c00 } 8000292: 2000 movs r0, #0 8000294: bd10 pop {r4, pc} @@ -772,7 +772,7 @@ HAL_StatusTypeDef HAL_CAN_ConfigFilter(CAN_HandleTypeDef* hcan, CAN_FilterConfTy 80004ce: 223c movs r2, #60 ; 0x3c 80004d0: 5483 strb r3, [r0, r2] HAL_CAN_MspInit(hcan); - 80004d2: f004 fbbd bl 8004c50 + 80004d2: f004 fbbf bl 8004c54 80004d6: e781 b.n 80003dc SET_BIT(hcan->Instance->MCR, CAN_MCR_TTCM); 80004d8: 2180 movs r1, #128 ; 0x80 @@ -1535,7 +1535,7 @@ void HAL_CAN_IRQHandler(CAN_HandleTypeDef* hcan) 8000802: 400a ands r2, r1 8000804: 615a str r2, [r3, #20] HAL_CAN_ErrorCallback(hcan); - 8000806: f003 fd31 bl 800426c + 8000806: f003 fd33 bl 8004270 } } 800080a: bdf8 pop {r3, r4, r5, r6, r7, pc} @@ -1844,7 +1844,7 @@ static HAL_StatusTypeDef CAN_Transmit_IT(CAN_HandleTypeDef* hcan) /* Receive complete callback */ HAL_CAN_RxCpltCallback(hcan); 8000980: 0020 movs r0, r4 - 8000982: f003 fc79 bl 8004278 + 8000982: f003 fc7b bl 800427c 8000986: 6823 ldr r3, [r4, #0] 8000988: e708 b.n 800079c pRxMsg->IDE = CAN_RI0R_IDE & hcan->Instance->sFIFOMailBox[FIFONumber].RIR; @@ -1955,7 +1955,7 @@ static HAL_StatusTypeDef CAN_Transmit_IT(CAN_HandleTypeDef* hcan) 8000a2a: 54a3 strb r3, [r4, r2] HAL_CAN_RxCpltCallback(hcan); 8000a2c: 0020 movs r0, r4 - 8000a2e: f003 fc23 bl 8004278 + 8000a2e: f003 fc25 bl 800427c 8000a32: 6823 ldr r3, [r4, #0] 8000a34: e6b9 b.n 80007aa __HAL_CAN_DISABLE_IT(hcan, CAN_IT_EWG | @@ -3822,7 +3822,7 @@ HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd) 8001328: 33ff adds r3, #255 ; 0xff 800132a: 54c2 strb r2, [r0, r3] HAL_PCD_MspInit(hpcd); - 800132c: f003 fe16 bl 8004f5c + 800132c: f003 fe18 bl 8004f60 8001330: e7f2 b.n 8001318 { /* Init ep structure */ @@ -5843,7 +5843,7 @@ static HAL_StatusTypeDef PCD_EP_ISR_Handler(PCD_HandleTypeDef *hpcd) HAL_PCD_DataInStageCallback(hpcd, 0U); 8001fa0: 2100 movs r1, #0 8001fa2: 0028 movs r0, r5 - 8001fa4: f003 f813 bl 8004fce + 8001fa4: f003 f815 bl 8004fd2 if((hpcd->USB_Address > 0U)&& ( ep->xfer_len == 0U)) @@ -5912,7 +5912,7 @@ static HAL_StatusTypeDef PCD_EP_ISR_Handler(PCD_HandleTypeDef *hpcd) /* Process SETUP Packet*/ HAL_PCD_SetupStageCallback(hpcd); 800200c: 0028 movs r0, r5 - 800200e: f002 ffc5 bl 8004f9c + 800200e: f002 ffc7 bl 8004fa0 8002012: e164 b.n 80022de /* Get Control Data OUT Packet*/ ep->xfer_count = PCD_GET_EP_RX_CNT(hpcd->Instance, ep->num); @@ -6166,7 +6166,7 @@ static HAL_StatusTypeDef PCD_EP_ISR_Handler(PCD_HandleTypeDef *hpcd) 80021a4: 33ff adds r3, #255 ; 0xff 80021a6: 7819 ldrb r1, [r3, #0] 80021a8: 0028 movs r0, r5 - 80021aa: f002 ff01 bl 8004fb0 + 80021aa: f002 ff03 bl 8004fb4 80021ae: e74e b.n 800204e PCD_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr0, count); 80021b0: 00e2 lsls r2, r4, #3 @@ -6338,7 +6338,7 @@ static HAL_StatusTypeDef PCD_EP_ISR_Handler(PCD_HandleTypeDef *hpcd) 80022d4: 3328 adds r3, #40 ; 0x28 80022d6: 7819 ldrb r1, [r3, #0] 80022d8: 0028 movs r0, r5 - 80022da: f002 fe78 bl 8004fce + 80022da: f002 fe7a bl 8004fd2 while (((wIstr = hpcd->Instance->ISTR) & USB_ISTR_CTR) != 0U) 80022de: 6828 ldr r0, [r5, #0] 80022e0: 2344 movs r3, #68 ; 0x44 @@ -6412,7 +6412,7 @@ static HAL_StatusTypeDef PCD_EP_ISR_Handler(PCD_HandleTypeDef *hpcd) HAL_PCD_DataOutStageCallback(hpcd, 0U); 8002356: 2100 movs r1, #0 8002358: 0028 movs r0, r5 - 800235a: f002 fe29 bl 8004fb0 + 800235a: f002 fe2b bl 8004fb4 PCD_SET_EP_RX_CNT(hpcd->Instance, PCD_ENDP0, ep->maxpacket) 800235e: 682b ldr r3, [r5, #0] 8002360: 2250 movs r2, #80 ; 0x50 @@ -6626,7 +6626,7 @@ static HAL_StatusTypeDef PCD_EP_ISR_Handler(PCD_HandleTypeDef *hpcd) 80024d0: 525a strh r2, [r3, r1] HAL_PCD_ResetCallback(hpcd); 80024d2: 0020 movs r0, r4 - 80024d4: f002 fd8f bl 8004ff6 + 80024d4: f002 fd91 bl 8004ffa HAL_PCD_SetAddress(hpcd, 0U); 80024d8: 2100 movs r1, #0 80024da: 0020 movs r0, r4 @@ -6644,7 +6644,7 @@ static HAL_StatusTypeDef PCD_EP_ISR_Handler(PCD_HandleTypeDef *hpcd) 80024f0: 528b strh r3, [r1, r2] HAL_PCD_ResumeCallback(hpcd); 80024f2: 0020 movs r0, r4 - 80024f4: f002 fd9e bl 8005034 + 80024f4: f002 fda0 bl 8005038 __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_WKUP); 80024f8: 6821 ldr r1, [r4, #0] 80024fa: 2244 movs r2, #68 ; 0x44 @@ -6655,7 +6655,7 @@ static HAL_StatusTypeDef PCD_EP_ISR_Handler(PCD_HandleTypeDef *hpcd) 8002504: e7b2 b.n 800246c HAL_PCD_SuspendCallback(hpcd); 8002506: 0020 movs r0, r4 - 8002508: f002 fd82 bl 8005010 + 8002508: f002 fd84 bl 8005014 800250c: e7c9 b.n 80024a2 __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_SOF); 800250e: 2144 movs r1, #68 ; 0x44 @@ -6665,7 +6665,7 @@ static HAL_StatusTypeDef PCD_EP_ISR_Handler(PCD_HandleTypeDef *hpcd) 8002516: 525a strh r2, [r3, r1] HAL_PCD_SOFCallback(hpcd); 8002518: 0020 movs r0, r4 - 800251a: f002 fd65 bl 8004fe8 + 800251a: f002 fd67 bl 8004fec 800251e: e7c5 b.n 80024ac 8002520: ffffbfff .word 0xffffbfff 8002524: ffffdfff .word 0xffffdfff @@ -7258,7 +7258,7 @@ uint32_t HAL_RCC_GetSysClockFreq(void) return sysclockfreq; 8002838: e7d7 b.n 80027ea 800283a: 46c0 nop ; (mov r8, r8) - 800283c: 08005410 .word 0x08005410 + 800283c: 08005414 .word 0x08005414 8002840: 40021000 .word 0x40021000 8002844: 007a1200 .word 0x007a1200 8002848: 02dc6c00 .word 0x02dc6c00 @@ -7489,7 +7489,7 @@ uint32_t HAL_RCC_GetSysClockFreq(void) 80029bc: 40021000 .word 0x40021000 80029c0: 00001388 .word 0x00001388 80029c4: fffff8ff .word 0xfffff8ff - 80029c8: 0800563c .word 0x0800563c + 80029c8: 08005640 .word 0x08005640 80029cc: 20000118 .word 0x20000118 080029d0 : @@ -7528,7 +7528,7 @@ uint32_t HAL_RCC_GetPCLK1Freq(void) } 80029f2: bd10 pop {r4, pc} 80029f4: 40021000 .word 0x40021000 - 80029f8: 0800564c .word 0x0800564c + 80029f8: 08005650 .word 0x08005650 080029fc : * the backup registers) and RCC_BDCR register are set to their reset values. @@ -8167,7 +8167,7 @@ static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma) 8002d0e: bd10 pop {r4, pc} HAL_UART_TxCpltCallback(huart); 8002d10: 0010 movs r0, r2 - 8002d12: f001 fa9f bl 8004254 + 8002d12: f001 faa1 bl 8004258 } 8002d16: e7fa b.n 8002d0e @@ -8245,7 +8245,7 @@ static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma) HAL_UART_RxCpltCallback(huart); 8002d5a: 0010 movs r0, r2 - 8002d5c: f001 fa94 bl 8004288 + 8002d5c: f001 fa96 bl 800428c } 8002d60: bd10 pop {r4, pc} 8002d62: 46c0 nop ; (mov r8, r8) @@ -8342,7 +8342,7 @@ static void UART_DMAError(DMA_HandleTypeDef *hdma) 8002dc4: 4313 orrs r3, r2 8002dc6: 66e3 str r3, [r4, #108] ; 0x6c HAL_UART_ErrorCallback(huart); - 8002dc8: f001 fa46 bl 8004258 + 8002dc8: f001 fa48 bl 800425c } 8002dcc: bd10 pop {r4, pc} @@ -8367,7 +8367,7 @@ static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma) 8002ddc: 8013 strh r3, [r2, #0] HAL_UART_ErrorCallback(huart); - 8002dde: f001 fa3b bl 8004258 + 8002dde: f001 fa3d bl 800425c } 8002de2: bd10 pop {r4, pc} @@ -8550,7 +8550,7 @@ static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma) 8002efc: ffffcfff .word 0xffffcfff 8002f00: fffff4ff .word 0xfffff4ff 8002f04: 40021000 .word 0x40021000 - 8002f08: 08005430 .word 0x08005430 + 8002f08: 08005434 .word 0x08005434 8002f0c: 40004400 .word 0x40004400 8002f10: 00f42400 .word 0x00f42400 8002f14: 007a1200 .word 0x007a1200 @@ -8833,7 +8833,7 @@ static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma) 80030d4: 3268 adds r2, #104 ; 0x68 80030d6: 7013 strb r3, [r2, #0] HAL_UART_MspInit(huart); - 80030d8: f001 fde2 bl 8004ca0 + 80030d8: f001 fde4 bl 8004ca4 huart->gState = HAL_UART_STATE_BUSY; 80030dc: 2324 movs r3, #36 ; 0x24 __HAL_UART_DISABLE(huart); @@ -8991,7 +8991,7 @@ HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart) 800319e: 701a strb r2, [r3, #0] HAL_UART_TxCpltCallback(huart); - 80031a0: f001 f858 bl 8004254 + 80031a0: f001 f85a bl 8004258 return HAL_OK; } @@ -9080,7 +9080,7 @@ HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart) 80031fe: 2320 movs r3, #32 8003200: 7013 strb r3, [r2, #0] HAL_UART_RxCpltCallback(huart); - 8003202: f001 f841 bl 8004288 + 8003202: f001 f843 bl 800428c /* Clear RXNE interrupt flag */ __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST); @@ -9261,10 +9261,10 @@ HAL_StatusTypeDef UART_EndTransmit_IT(UART_HandleTypeDef *huart) 80032fe: e7a1 b.n 8003244 HAL_UART_ErrorCallback(huart); 8003300: 0020 movs r0, r4 - 8003302: f000 ffa9 bl 8004258 + 8003302: f000 ffab bl 800425c 8003306: e79d b.n 8003244 HAL_UART_ErrorCallback(huart); - 8003308: f000 ffa6 bl 8004258 + 8003308: f000 ffa8 bl 800425c huart->ErrorCode = HAL_UART_ERROR_NONE; 800330c: 66e5 str r5, [r4, #108] ; 0x6c 800330e: e799 b.n 8003244 @@ -9474,7 +9474,7 @@ uint8_t *USBD_CDC_GetDeviceQualifierDescriptor (uint16_t *length) 80033e2: 00b6 lsls r6, r6, #2 80033e4: 5985 ldr r5, [r0, r6] hcdc->RxLength = USBD_LL_GetRxDataSize (pdev, epnum); - 80033e6: f001 ff20 bl 800522a + 80033e6: f001 ff22 bl 800522e 80033ea: 2383 movs r3, #131 ; 0x83 80033ec: 009b lsls r3, r3, #2 80033ee: 50e8 str r0, [r5, r3] @@ -9588,15 +9588,15 @@ uint8_t *USBD_CDC_GetDeviceQualifierDescriptor (uint16_t *length) 800349e: 0004 movs r4, r0 USBD_LL_CloseEP(pdev, 80034a0: 2181 movs r1, #129 ; 0x81 - 80034a2: f001 fe48 bl 8005136 + 80034a2: f001 fe4a bl 800513a USBD_LL_CloseEP(pdev, 80034a6: 2101 movs r1, #1 80034a8: 0020 movs r0, r4 - 80034aa: f001 fe44 bl 8005136 + 80034aa: f001 fe46 bl 800513a USBD_LL_CloseEP(pdev, 80034ae: 2182 movs r1, #130 ; 0x82 80034b0: 0020 movs r0, r4 - 80034b2: f001 fe40 bl 8005136 + 80034b2: f001 fe42 bl 800513a if(pdev->pClassData != NULL) 80034b6: 2386 movs r3, #134 ; 0x86 80034b8: 009b lsls r3, r3, #2 @@ -9613,7 +9613,7 @@ uint8_t *USBD_CDC_GetDeviceQualifierDescriptor (uint16_t *length) 80034ca: 2586 movs r5, #134 ; 0x86 80034cc: 00ad lsls r5, r5, #2 80034ce: 5960 ldr r0, [r4, r5] - 80034d0: f001 feb6 bl 8005240 + 80034d0: f001 feb8 bl 8005244 pdev->pClassData = NULL; 80034d4: 2300 movs r3, #0 80034d6: 5163 str r3, [r4, r5] @@ -9635,23 +9635,23 @@ uint8_t *USBD_CDC_GetDeviceQualifierDescriptor (uint16_t *length) 80034ea: 002b movs r3, r5 80034ec: 2202 movs r2, #2 80034ee: 2181 movs r1, #129 ; 0x81 - 80034f0: f001 fe0e bl 8005110 + 80034f0: f001 fe10 bl 8005114 USBD_LL_OpenEP(pdev, 80034f4: 002b movs r3, r5 80034f6: 2202 movs r2, #2 80034f8: 2101 movs r1, #1 80034fa: 0020 movs r0, r4 - 80034fc: f001 fe08 bl 8005110 + 80034fc: f001 fe0a bl 8005114 USBD_LL_OpenEP(pdev, 8003500: 2308 movs r3, #8 8003502: 2203 movs r2, #3 8003504: 2182 movs r1, #130 ; 0x82 8003506: 0020 movs r0, r4 - 8003508: f001 fe02 bl 8005110 + 8003508: f001 fe04 bl 8005114 pdev->pClassData = USBD_malloc(sizeof (USBD_CDC_HandleTypeDef)); 800350c: 2087 movs r0, #135 ; 0x87 800350e: 0080 lsls r0, r0, #2 - 8003510: f001 fe92 bl 8005238 + 8003510: f001 fe94 bl 800523c 8003514: 0005 movs r5, r0 8003516: 2386 movs r3, #134 ; 0x86 8003518: 009b lsls r3, r3, #2 @@ -9684,7 +9684,7 @@ uint8_t *USBD_CDC_GetDeviceQualifierDescriptor (uint16_t *length) 8003542: 3bff subs r3, #255 ; 0xff 8003544: 2101 movs r1, #1 8003546: 0020 movs r0, r4 - 8003548: f001 fe5f bl 800520a + 8003548: f001 fe61 bl 800520e uint8_t ret = 0; 800354c: 2000 movs r0, #0 } @@ -9693,13 +9693,13 @@ uint8_t *USBD_CDC_GetDeviceQualifierDescriptor (uint16_t *length) 8003550: 2340 movs r3, #64 ; 0x40 8003552: 2202 movs r2, #2 8003554: 2181 movs r1, #129 ; 0x81 - 8003556: f001 fddb bl 8005110 + 8003556: f001 fddd bl 8005114 USBD_LL_OpenEP(pdev, 800355a: 2340 movs r3, #64 ; 0x40 800355c: 2202 movs r2, #2 800355e: 2101 movs r1, #1 8003560: 0020 movs r0, r4 - 8003562: f001 fdd5 bl 8005110 + 8003562: f001 fdd7 bl 8005114 8003566: e7cb b.n 8003500 USBD_LL_PrepareReceive(pdev, 8003568: 2381 movs r3, #129 ; 0x81 @@ -9708,7 +9708,7 @@ uint8_t *USBD_CDC_GetDeviceQualifierDescriptor (uint16_t *length) 800356e: 3b04 subs r3, #4 8003570: 2101 movs r1, #1 8003572: 0020 movs r0, r4 - 8003574: f001 fe49 bl 800520a + 8003574: f001 fe4b bl 800520e uint8_t ret = 0; 8003578: 2000 movs r0, #0 800357a: e7e8 b.n 800354e @@ -9835,7 +9835,7 @@ uint8_t USBD_CDC_TransmitPacket(USBD_HandleTypeDef *pdev) 80035de: 5852 ldr r2, [r2, r1] 80035e0: 3988 subs r1, #136 ; 0x88 80035e2: 39ff subs r1, #255 ; 0xff - 80035e4: f001 fe01 bl 80051ea + 80035e4: f001 fe03 bl 80051ee return USBD_OK; 80035e8: 2000 movs r0, #0 80035ea: e7ef b.n 80035cc @@ -9876,7 +9876,7 @@ uint8_t USBD_CDC_ReceivePacket(USBD_HandleTypeDef *pdev) 8003606: 589a ldr r2, [r3, r2] 8003608: 2340 movs r3, #64 ; 0x40 800360a: 2101 movs r1, #1 - 800360c: f001 fdfd bl 800520a + 800360c: f001 fdff bl 800520e CDC_OUT_EP, hcdc->RxBuffer, CDC_DATA_FS_OUT_PACKET_SIZE); @@ -9897,7 +9897,7 @@ uint8_t USBD_CDC_ReceivePacket(USBD_HandleTypeDef *pdev) 800361a: 2380 movs r3, #128 ; 0x80 800361c: 009b lsls r3, r3, #2 800361e: 2101 movs r1, #1 - 8003620: f001 fdf3 bl 800520a + 8003620: f001 fdf5 bl 800520e return USBD_OK; 8003624: 2000 movs r0, #0 8003626: e7f4 b.n 8003612 @@ -9957,7 +9957,7 @@ USBD_StatusTypeDef USBD_Init(USBD_HandleTypeDef *pdev, USBD_DescriptorsTypeDef * 8003656: 7002 strb r2, [r0, #0] /* Initialize low level driver */ USBD_LL_Init(pdev); - 8003658: f001 fd02 bl 8005060 + 8003658: f001 fd04 bl 8005064 return USBD_OK; 800365c: 2000 movs r0, #0 @@ -10006,7 +10006,7 @@ USBD_StatusTypeDef USBD_Start (USBD_HandleTypeDef *pdev) /* Start the low level driver */ USBD_LL_Start(pdev); - 8003678: f001 fd3a bl 80050f0 + 8003678: f001 fd3c bl 80050f4 return USBD_OK; } @@ -10120,7 +10120,7 @@ USBD_StatusTypeDef USBD_LL_SetupStage(USBD_HandleTypeDef *pdev, uint8_t *psetup) 80036e6: 237f movs r3, #127 ; 0x7f 80036e8: 4399 bics r1, r3 80036ea: 0020 movs r0, r4 - 80036ec: f001 fd33 bl 8005156 + 80036ec: f001 fd35 bl 800515a break; 80036f0: e003 b.n 80036fa USBD_StdDevReq (pdev, &pdev->request); @@ -10345,7 +10345,7 @@ USBD_StatusTypeDef USBD_LL_DataInStage(USBD_HandleTypeDef *pdev ,uint8_t epnum, 8003804: 2200 movs r2, #0 8003806: 2100 movs r1, #0 8003808: 0020 movs r0, r4 - 800380a: f001 fcfe bl 800520a + 800380a: f001 fd00 bl 800520e 800380e: e7ca b.n 80037a6 USBD_CtlContinueSendData(pdev , NULL, 0); 8003810: 2200 movs r2, #0 @@ -10360,7 +10360,7 @@ USBD_StatusTypeDef USBD_LL_DataInStage(USBD_HandleTypeDef *pdev ,uint8_t epnum, 8003820: 2300 movs r3, #0 8003822: 2100 movs r1, #0 8003824: 0020 movs r0, r4 - 8003826: f001 fcf0 bl 800520a + 8003826: f001 fcf2 bl 800520e 800382a: e7bc b.n 80037a6 pdev->pClass->EP0_TxSent(pdev); 800382c: 0020 movs r0, r4 @@ -10404,7 +10404,7 @@ USBD_StatusTypeDef USBD_LL_Reset(USBD_HandleTypeDef *pdev) 800385a: 2340 movs r3, #64 ; 0x40 800385c: 2200 movs r2, #0 800385e: 2100 movs r1, #0 - 8003860: f001 fc56 bl 8005110 + 8003860: f001 fc58 bl 8005114 0x00, USBD_EP_TYPE_CTRL, USB_MAX_EP0_SIZE); @@ -10421,7 +10421,7 @@ USBD_StatusTypeDef USBD_LL_Reset(USBD_HandleTypeDef *pdev) 800386e: 2200 movs r2, #0 8003870: 2180 movs r1, #128 ; 0x80 8003872: 0020 movs r0, r4 - 8003874: f001 fc4c bl 8005110 + 8003874: f001 fc4e bl 8005114 0x80, USBD_EP_TYPE_CTRL, USB_MAX_EP0_SIZE); @@ -10629,11 +10629,11 @@ static uint8_t USBD_GetLen(uint8_t *buf) 8003948: 0004 movs r4, r0 USBD_LL_StallEP(pdev , 0x80); 800394a: 2180 movs r1, #128 ; 0x80 - 800394c: f001 fc03 bl 8005156 + 800394c: f001 fc05 bl 800515a USBD_LL_StallEP(pdev , 0); 8003950: 2100 movs r1, #0 8003952: 0020 movs r0, r4 - 8003954: f001 fbff bl 8005156 + 8003954: f001 fc01 bl 800515a } 8003958: bd10 pop {r4, pc} ... @@ -10844,8 +10844,8 @@ static uint8_t USBD_GetLen(uint8_t *buf) 8003aa8: f000 f9da bl 8003e60 8003aac: e774 b.n 8003998 8003aae: 46c0 nop ; (mov r8, r8) - 8003ab0: 08005434 .word 0x08005434 - 8003ab4: 08005454 .word 0x08005454 + 8003ab0: 08005438 .word 0x08005438 + 8003ab4: 08005458 .word 0x08005458 08003ab8 : { @@ -10874,7 +10874,7 @@ static uint8_t USBD_GetLen(uint8_t *buf) 8003adc: 54c5 strb r5, [r0, r3] USBD_LL_SetUSBAddress(pdev, dev_addr); 8003ade: 0029 movs r1, r5 - 8003ae0: f001 fb73 bl 80051ca + 8003ae0: f001 fb75 bl 80051ce USBD_CtlSendStatus(pdev); 8003ae4: 0020 movs r0, r4 8003ae6: f000 f9e9 bl 8003ebc @@ -11167,7 +11167,7 @@ static uint8_t USBD_GetLen(uint8_t *buf) break; 8003ca8: e7e8 b.n 8003c7c 8003caa: 46c0 nop ; (mov r8, r8) - 8003cac: 0800546c .word 0x0800546c + 8003cac: 08005470 .word 0x08005470 08003cb0 : { @@ -11262,7 +11262,7 @@ static uint8_t USBD_GetLen(uint8_t *buf) 8003d3e: d0f9 beq.n 8003d34 USBD_LL_StallEP(pdev , ep_addr); 8003d40: 0028 movs r0, r5 - 8003d42: f001 fa08 bl 8005156 + 8003d42: f001 fa0a bl 800515a 8003d46: e7f5 b.n 8003d34 if (req->wValue == USB_FEATURE_EP_HALT) 8003d48: 8863 ldrh r3, [r4, #2] @@ -11275,7 +11275,7 @@ static uint8_t USBD_GetLen(uint8_t *buf) 8003d54: d002 beq.n 8003d5c USBD_LL_StallEP(pdev , ep_addr); 8003d56: 0028 movs r0, r5 - 8003d58: f001 f9fd bl 8005156 + 8003d58: f001 f9ff bl 800515a pdev->pClass->Setup (pdev, req); 8003d5c: 2385 movs r3, #133 ; 0x85 8003d5e: 009b lsls r3, r3, #2 @@ -11310,7 +11310,7 @@ static uint8_t USBD_GetLen(uint8_t *buf) 8003d90: d0d0 beq.n 8003d34 USBD_LL_StallEP(pdev , ep_addr); 8003d92: 0028 movs r0, r5 - 8003d94: f001 f9df bl 8005156 + 8003d94: f001 f9e1 bl 800515a 8003d98: e7cc b.n 8003d34 if (req->wValue == USB_FEATURE_EP_HALT) 8003d9a: 8863 ldrh r3, [r4, #2] @@ -11325,7 +11325,7 @@ static uint8_t USBD_GetLen(uint8_t *buf) 8003daa: e7c3 b.n 8003d34 USBD_LL_ClearStallEP(pdev , ep_addr); 8003dac: 0028 movs r0, r5 - 8003dae: f001 f9e2 bl 8005176 + 8003dae: f001 f9e4 bl 800517a pdev->pClass->Setup (pdev, req); 8003db2: 2385 movs r3, #133 ; 0x85 8003db4: 009b lsls r3, r3, #2 @@ -11354,7 +11354,7 @@ static uint8_t USBD_GetLen(uint8_t *buf) 8003ddc: d0aa beq.n 8003d34 USBD_LL_StallEP(pdev , ep_addr); 8003dde: 0028 movs r0, r5 - 8003de0: f001 f9b9 bl 8005156 + 8003de0: f001 f9bb bl 800515a 8003de4: e7a6 b.n 8003d34 pep = ((ep_addr & 0x80) == 0x80) ? &pdev->ep_in[ep_addr & 0x7F]:\ 8003de6: 0613 lsls r3, r2, #24 @@ -11369,7 +11369,7 @@ static uint8_t USBD_GetLen(uint8_t *buf) 8003df4: 3404 adds r4, #4 if(USBD_LL_IsStallEP(pdev, ep_addr)) 8003df6: 0028 movs r0, r5 - 8003df8: f001 f9cd bl 8005196 + 8003df8: f001 f9cf bl 800519a 8003dfc: 2800 cmp r0, #0 8003dfe: d00e beq.n 8003e1e pep->status = 0x0001; @@ -11459,7 +11459,7 @@ USBD_StatusTypeDef USBD_CtlSendData (USBD_HandleTypeDef *pdev, USBD_LL_Transmit (pdev, 0x00, pbuf, len); 8003e70: 000a movs r2, r1 8003e72: 2100 movs r1, #0 - 8003e74: f001 f9b9 bl 80051ea + 8003e74: f001 f9bb bl 80051ee return USBD_OK; } @@ -11479,7 +11479,7 @@ USBD_StatusTypeDef USBD_CtlContinueSendData (USBD_HandleTypeDef *pdev, USBD_LL_Transmit (pdev, 0x00, pbuf, len); 8003e80: 000a movs r2, r1 8003e82: 2100 movs r1, #0 - 8003e84: f001 f9b1 bl 80051ea + 8003e84: f001 f9b3 bl 80051ee return USBD_OK; } @@ -11511,7 +11511,7 @@ USBD_StatusTypeDef USBD_CtlPrepareRx (USBD_HandleTypeDef *pdev, USBD_LL_PrepareReceive (pdev, 8003ea0: 000a movs r2, r1 8003ea2: 2100 movs r1, #0 - 8003ea4: f001 f9b1 bl 800520a + 8003ea4: f001 f9b3 bl 800520e 0, pbuf, len); @@ -11534,7 +11534,7 @@ USBD_StatusTypeDef USBD_CtlContinueRx (USBD_HandleTypeDef *pdev, USBD_LL_PrepareReceive (pdev, 8003eb0: 000a movs r2, r1 8003eb2: 2100 movs r1, #0 - 8003eb4: f001 f9a9 bl 800520a + 8003eb4: f001 f9ab bl 800520e 0, pbuf, len); @@ -11564,7 +11564,7 @@ USBD_StatusTypeDef USBD_CtlSendStatus (USBD_HandleTypeDef *pdev) 8003ec6: 2300 movs r3, #0 8003ec8: 2200 movs r2, #0 8003eca: 2100 movs r1, #0 - 8003ecc: f001 f98d bl 80051ea + 8003ecc: f001 f98f bl 80051ee return USBD_OK; } @@ -11591,7 +11591,7 @@ USBD_StatusTypeDef USBD_CtlReceiveStatus (USBD_HandleTypeDef *pdev) 8003ede: 2300 movs r3, #0 8003ee0: 2200 movs r2, #0 8003ee2: 2100 movs r1, #0 - 8003ee4: f001 f991 bl 800520a + 8003ee4: f001 f993 bl 800520e 0, NULL, 0); @@ -11824,7 +11824,7 @@ void bootloaderSwitcher(){ 08003fe0
: serialNumber = TYPE_ID | (((*uid) << 8) & 0xFFFFFF00); - 8003fe0: 4b88 ldr r3, [pc, #544] ; (8004204 ) + 8003fe0: 4b89 ldr r3, [pc, #548] ; (8004208 ) { 8003fe2: b5f0 push {r4, r5, r6, r7, lr} serialNumber = TYPE_ID | (((*uid) << 8) & 0xFFFFFF00); @@ -11836,14 +11836,14 @@ void bootloaderSwitcher(){ 8003fea: 2316 movs r3, #22 8003fec: 0212 lsls r2, r2, #8 8003fee: 4313 orrs r3, r2 - 8003ff0: 4a85 ldr r2, [pc, #532] ; (8004208 ) + 8003ff0: 4a86 ldr r2, [pc, #536] ; (800420c ) { GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOA_CLK_ENABLE(); - 8003ff2: 4d86 ldr r5, [pc, #536] ; (800420c ) + 8003ff2: 4d87 ldr r5, [pc, #540] ; (8004210 ) serialNumber = TYPE_ID | (((*uid) << 8) & 0xFFFFFF00); 8003ff4: 6013 str r3, [r2, #0] bootloaderSwitcher(); @@ -11887,7 +11887,7 @@ void bootloaderSwitcher(){ __HAL_RCC_GPIOB_CLK_ENABLE(); 800402a: 9302 str r3, [sp, #8] HAL_GPIO_WritePin(CAN_MOD_GPIO_Port, CAN_MOD_Pin|LED_Pin, GPIO_PIN_RESET); - 800402c: 4878 ldr r0, [pc, #480] ; (8004210 ) + 800402c: 4879 ldr r0, [pc, #484] ; (8004214 ) /*Configure GPIO pin : CAN_MOD_Pin */ GPIO_InitStruct.Pin = CAN_MOD_Pin | LED_Pin; @@ -11903,7 +11903,7 @@ void bootloaderSwitcher(){ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(CAN_MOD_GPIO_Port, &GPIO_InitStruct); 8004038: a903 add r1, sp, #12 - 800403a: 4875 ldr r0, [pc, #468] ; (8004210 ) + 800403a: 4876 ldr r0, [pc, #472] ; (8004214 ) GPIO_InitStruct.Pin = CAN_MOD_Pin | LED_Pin; 800403c: 9403 str r4, [sp, #12] GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; @@ -11915,8 +11915,8 @@ void bootloaderSwitcher(){ HAL_GPIO_Init(CAN_MOD_GPIO_Port, &GPIO_InitStruct); 8004044: f7fd f85e bl 8001104 hcan.Instance = CAN; - 8004048: 4c72 ldr r4, [pc, #456] ; (8004214 ) - 800404a: 4b73 ldr r3, [pc, #460] ; (8004218 ) + 8004048: 4c73 ldr r4, [pc, #460] ; (8004218 ) + 800404a: 4b74 ldr r3, [pc, #464] ; (800421c ) if (HAL_CAN_Init(&hcan) != HAL_OK) 800404c: 0020 movs r0, r4 hcan.Instance = CAN; @@ -11968,7 +11968,7 @@ void bootloaderSwitcher(){ 800408a: 616b str r3, [r5, #20] 800408c: 696b ldr r3, [r5, #20] huart2.Instance = USART2; - 800408e: 4e63 ldr r6, [pc, #396] ; (800421c ) + 800408e: 4e64 ldr r6, [pc, #400] ; (8004220 ) __HAL_RCC_DMA1_CLK_ENABLE(); 8004090: 4013 ands r3, r2 8004092: 9303 str r3, [sp, #12] @@ -11983,3564 +11983,3566 @@ void bootloaderSwitcher(){ 800409e: 200b movs r0, #11 80040a0: f7fc fd5a bl 8000b58 huart2.Instance = USART2; - 80040a4: 4d5e ldr r5, [pc, #376] ; (8004220 ) + 80040a4: 4d5f ldr r5, [pc, #380] ; (8004224 ) huart2.Init.BaudRate = 2000000; - 80040a6: 4b5f ldr r3, [pc, #380] ; (8004224 ) + 80040a6: 4b60 ldr r3, [pc, #384] ; (8004228 ) if (HAL_UART_Init(&huart2) != HAL_OK) 80040a8: 0028 movs r0, r5 huart2.Init.BaudRate = 2000000; 80040aa: 606b str r3, [r5, #4] huart2.Init.Mode = UART_MODE_TX_RX; 80040ac: 230c movs r3, #12 + 80040ae: 616b str r3, [r5, #20] + huart2.Init.OverSampling = UART_OVERSAMPLING_8; + 80040b0: 2380 movs r3, #128 ; 0x80 + 80040b2: 021b lsls r3, r3, #8 huart2.Instance = USART2; - 80040ae: 602e str r6, [r5, #0] + 80040b4: 602e str r6, [r5, #0] huart2.Init.WordLength = UART_WORDLENGTH_8B; - 80040b0: 60af str r7, [r5, #8] + 80040b6: 60af str r7, [r5, #8] huart2.Init.StopBits = UART_STOPBITS_1; - 80040b2: 60ef str r7, [r5, #12] + 80040b8: 60ef str r7, [r5, #12] huart2.Init.Parity = UART_PARITY_NONE; - 80040b4: 612f str r7, [r5, #16] - huart2.Init.Mode = UART_MODE_TX_RX; - 80040b6: 616b str r3, [r5, #20] + 80040ba: 612f str r7, [r5, #16] huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; - 80040b8: 61af str r7, [r5, #24] - huart2.Init.OverSampling = UART_OVERSAMPLING_16; - 80040ba: 61ef str r7, [r5, #28] + 80040bc: 61af str r7, [r5, #24] + huart2.Init.OverSampling = UART_OVERSAMPLING_8; + 80040be: 61eb str r3, [r5, #28] huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; - 80040bc: 622f str r7, [r5, #32] + 80040c0: 622f str r7, [r5, #32] if (HAL_UART_Init(&huart2) != HAL_OK) - 80040be: f7fe fffd bl 80030bc - 80040c2: 2800 cmp r0, #0 - 80040c4: d000 beq.n 80040c8 - 80040c6: e7fe b.n 80040c6 + 80040c2: f7fe fffb bl 80030bc + 80040c6: 2800 cmp r0, #0 + 80040c8: d000 beq.n 80040cc + 80040ca: e7fe b.n 80040ca MX_USB_DEVICE_Init(); - 80040c8: f000 fec2 bl 8004e50 + 80040cc: f000 fec2 bl 8004e54 hiwdg.Instance = IWDG; - 80040cc: 4856 ldr r0, [pc, #344] ; (8004228 ) - 80040ce: 4b57 ldr r3, [pc, #348] ; (800422c ) - 80040d0: 6003 str r3, [r0, #0] + 80040d0: 4856 ldr r0, [pc, #344] ; (800422c ) + 80040d2: 4b57 ldr r3, [pc, #348] ; (8004230 ) + 80040d4: 6003 str r3, [r0, #0] hiwdg.Init.Prescaler = IWDG_PRESCALER_64; - 80040d2: 2304 movs r3, #4 - 80040d4: 6043 str r3, [r0, #4] + 80040d6: 2304 movs r3, #4 + 80040d8: 6043 str r3, [r0, #4] hiwdg.Init.Window = 4095; - 80040d6: 4b56 ldr r3, [pc, #344] ; (8004230 ) - 80040d8: 60c3 str r3, [r0, #12] + 80040da: 4b56 ldr r3, [pc, #344] ; (8004234 ) + 80040dc: 60c3 str r3, [r0, #12] hiwdg.Init.Reload = 4095; - 80040da: 6083 str r3, [r0, #8] + 80040de: 6083 str r3, [r0, #8] if (HAL_IWDG_Init(&hiwdg) != HAL_OK) - 80040dc: f7fd f8dc bl 8001298 - 80040e0: 1e07 subs r7, r0, #0 - 80040e2: d000 beq.n 80040e6 - 80040e4: e7fe b.n 80040e4 + 80040e0: f7fd f8da bl 8001298 + 80040e4: 1e07 subs r7, r0, #0 + 80040e6: d000 beq.n 80040ea + 80040e8: e7fe b.n 80040e8 hcan.pTxMsg = &CanTxBuffer; - 80040e6: 4b53 ldr r3, [pc, #332] ; (8004234 ) - 80040e8: 6323 str r3, [r4, #48] ; 0x30 - hcan.pRxMsg = &CanRxBuffer; 80040ea: 4b53 ldr r3, [pc, #332] ; (8004238 ) - 80040ec: 6363 str r3, [r4, #52] ; 0x34 - canRxFlags.flags.byte = 0; + 80040ec: 6323 str r3, [r4, #48] ; 0x30 + hcan.pRxMsg = &CanRxBuffer; 80040ee: 4b53 ldr r3, [pc, #332] ; (800423c ) - 80040f0: 7018 strb r0, [r3, #0] + 80040f0: 6363 str r3, [r4, #52] ; 0x34 + canRxFlags.flags.byte = 0; + 80040f2: 4b53 ldr r3, [pc, #332] ; (8004240 ) + 80040f4: 7018 strb r0, [r3, #0] slcanClearAllFilters(); - 80040f2: f000 fc9b bl 8004a2c + 80040f6: f000 fc9b bl 8004a30 HAL_NVIC_SetPriority(CEC_CAN_IRQn, 2, 2); - 80040f6: 2202 movs r2, #2 - 80040f8: 201e movs r0, #30 - 80040fa: 0011 movs r1, r2 - 80040fc: f7fc fcfa bl 8000af4 + 80040fa: 2202 movs r2, #2 + 80040fc: 201e movs r0, #30 + 80040fe: 0011 movs r1, r2 + 8004100: f7fc fcf8 bl 8000af4 HAL_CAN_Receive_IT(&hcan, CAN_FIFO0); - 8004100: 0039 movs r1, r7 - 8004102: 0020 movs r0, r4 - 8004104: f7fc faa4 bl 8000650 + 8004104: 0039 movs r1, r7 + 8004106: 0020 movs r0, r4 + 8004108: f7fc faa2 bl 8000650 USART2->CR1 &= ~USART_CR1_UE; - 8004108: 2201 movs r2, #1 - 800410a: 6833 ldr r3, [r6, #0] + 800410c: 2201 movs r2, #1 + 800410e: 6833 ldr r3, [r6, #0] HAL_Delay(1); - 800410c: 2001 movs r0, #1 + 8004110: 2001 movs r0, #1 USART2->CR1 &= ~USART_CR1_UE; - 800410e: 4393 bics r3, r2 - 8004110: 6033 str r3, [r6, #0] + 8004112: 4393 bics r3, r2 + 8004114: 6033 str r3, [r6, #0] USART2->CR2 |= USART_CR2_ADDM7; - 8004112: 2310 movs r3, #16 - 8004114: 6872 ldr r2, [r6, #4] - 8004116: 4313 orrs r3, r2 - 8004118: 6073 str r3, [r6, #4] + 8004116: 2310 movs r3, #16 + 8004118: 6872 ldr r2, [r6, #4] + 800411a: 4313 orrs r3, r2 + 800411c: 6073 str r3, [r6, #4] USART2->CR2 |= (uint32_t)(0x0D << USART_CR2_ADD_Pos); - 800411a: 23d0 movs r3, #208 ; 0xd0 - 800411c: 6872 ldr r2, [r6, #4] - 800411e: 051b lsls r3, r3, #20 - 8004120: 4313 orrs r3, r2 - 8004122: 6073 str r3, [r6, #4] + 800411e: 23d0 movs r3, #208 ; 0xd0 + 8004120: 6872 ldr r2, [r6, #4] + 8004122: 051b lsls r3, r3, #20 + 8004124: 4313 orrs r3, r2 + 8004126: 6073 str r3, [r6, #4] USART2->CR1 |= USART_CR1_CMIE; - 8004124: 2380 movs r3, #128 ; 0x80 - 8004126: 6832 ldr r2, [r6, #0] - 8004128: 01db lsls r3, r3, #7 - 800412a: 4313 orrs r3, r2 + 8004128: 2380 movs r3, #128 ; 0x80 + 800412a: 6832 ldr r2, [r6, #0] + 800412c: 01db lsls r3, r3, #7 + 800412e: 4313 orrs r3, r2 USART2->CR1 &= ~USART_CR1_RXNEIE; - 800412c: 2220 movs r2, #32 + 8004130: 2220 movs r2, #32 USART2->CR1 |= USART_CR1_CMIE; - 800412e: 6033 str r3, [r6, #0] + 8004132: 6033 str r3, [r6, #0] USART2->CR1 &= ~USART_CR1_RXNEIE; - 8004130: 6833 ldr r3, [r6, #0] - 8004132: 4393 bics r3, r2 - 8004134: 6033 str r3, [r6, #0] + 8004134: 6833 ldr r3, [r6, #0] + 8004136: 4393 bics r3, r2 + 8004138: 6033 str r3, [r6, #0] HAL_Delay(1); - 8004136: f7fc f8bf bl 80002b8 + 800413a: f7fc f8bd bl 80002b8 USART2->CR1 |= USART_CR1_UE; - 800413a: 2201 movs r2, #1 - 800413c: 6833 ldr r3, [r6, #0] + 800413e: 2201 movs r2, #1 + 8004140: 6833 ldr r3, [r6, #0] HAL_UART_Receive_DMA(&huart2, uart_rxBuffer, UART_RX_BUFFER_SIZE); - 800413e: 4940 ldr r1, [pc, #256] ; (8004240 ) + 8004142: 4940 ldr r1, [pc, #256] ; (8004244 ) USART2->CR1 |= USART_CR1_UE; - 8004140: 4313 orrs r3, r2 - 8004142: 6033 str r3, [r6, #0] + 8004144: 4313 orrs r3, r2 + 8004146: 6033 str r3, [r6, #0] HAL_UART_Receive_DMA(&huart2, uart_rxBuffer, UART_RX_BUFFER_SIZE); - 8004144: 321d adds r2, #29 - 8004146: 0028 movs r0, r5 - 8004148: f7fe fd4e bl 8002be8 + 8004148: 321d adds r2, #29 + 800414a: 0028 movs r0, r5 + 800414c: f7fe fd4c bl 8002be8 HAL_NVIC_SetPriority(USART2_IRQn, 0, 0); - 800414c: 003a movs r2, r7 - 800414e: 0039 movs r1, r7 - 8004150: 201c movs r0, #28 - 8004152: f7fc fccf bl 8000af4 + 8004150: 003a movs r2, r7 + 8004152: 0039 movs r1, r7 + 8004154: 201c movs r0, #28 + 8004156: f7fc fccd bl 8000af4 NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)(int32_t)IRQn) & 0x1FUL)); - 8004156: 2280 movs r2, #128 ; 0x80 - 8004158: 4b3a ldr r3, [pc, #232] ; (8004244 ) - 800415a: 0552 lsls r2, r2, #21 - 800415c: 601a str r2, [r3, #0] + 800415a: 2280 movs r2, #128 ; 0x80 + 800415c: 4b3a ldr r3, [pc, #232] ; (8004248 ) + 800415e: 0552 lsls r2, r2, #21 + 8004160: 601a str r2, [r3, #0] initCanOnStart(); - 800415e: f000 f969 bl 8004434 + 8004162: f000 f969 bl 8004438 slCanCheckCommand(command); - 8004162: 4839 ldr r0, [pc, #228] ; (8004248 ) - 8004164: f000 f9f6 bl 8004554 + 8004166: 4839 ldr r0, [pc, #228] ; (800424c ) + 8004168: f000 f9f6 bl 8004558 slcanOutputFlush(); - 8004168: f000 f986 bl 8004478 + 800416c: f000 f986 bl 800447c if(rxFullFlag) - 800416c: 4f37 ldr r7, [pc, #220] ; (800424c ) - 800416e: 783b ldrb r3, [r7, #0] - 8004170: 2b00 cmp r3, #0 - 8004172: d015 beq.n 80041a0 + 8004170: 4f37 ldr r7, [pc, #220] ; (8004250 ) + 8004172: 783b ldrb r3, [r7, #0] + 8004174: 2b00 cmp r3, #0 + 8004176: d015 beq.n 80041a4 memset(uart_rxBuffer, 0 , UART_RX_BUFFER_SIZE); //clear the buffer - 8004174: 4e32 ldr r6, [pc, #200] ; (8004240 ) - 8004176: 221e movs r2, #30 - 8004178: 2100 movs r1, #0 - 800417a: 0030 movs r0, r6 - 800417c: f001 f933 bl 80053e6 + 8004178: 4e32 ldr r6, [pc, #200] ; (8004244 ) + 800417a: 221e movs r2, #30 + 800417c: 2100 movs r1, #0 + 800417e: 0030 movs r0, r6 + 8004180: f001 f933 bl 80053ea __HAL_UART_FLUSH_DRREGISTER(&huart2); //clear the register - 8004180: 2108 movs r1, #8 - 8004182: 682b ldr r3, [r5, #0] + 8004184: 2108 movs r1, #8 + 8004186: 682b ldr r3, [r5, #0] HAL_UART_Receive_DMA(&huart2, uart_rxBuffer, UART_RX_BUFFER_SIZE); //resume DMA - 8004184: 0028 movs r0, r5 + 8004188: 0028 movs r0, r5 __HAL_UART_FLUSH_DRREGISTER(&huart2); //clear the register - 8004186: 699a ldr r2, [r3, #24] - 8004188: 430a orrs r2, r1 - 800418a: 619a str r2, [r3, #24] - 800418c: 2210 movs r2, #16 - 800418e: 6999 ldr r1, [r3, #24] - 8004190: 430a orrs r2, r1 - 8004192: 619a str r2, [r3, #24] + 800418a: 699a ldr r2, [r3, #24] + 800418c: 430a orrs r2, r1 + 800418e: 619a str r2, [r3, #24] + 8004190: 2210 movs r2, #16 + 8004192: 6999 ldr r1, [r3, #24] + 8004194: 430a orrs r2, r1 + 8004196: 619a str r2, [r3, #24] HAL_UART_Receive_DMA(&huart2, uart_rxBuffer, UART_RX_BUFFER_SIZE); //resume DMA - 8004194: 0031 movs r1, r6 - 8004196: 221e movs r2, #30 - 8004198: f7fe fd26 bl 8002be8 + 8004198: 0031 movs r1, r6 + 800419a: 221e movs r2, #30 + 800419c: f7fe fd24 bl 8002be8 rxFullFlag = 0; - 800419c: 2300 movs r3, #0 - 800419e: 703b strb r3, [r7, #0] - if (canRxFlags.flags.byte != 0) - 80041a0: 4b26 ldr r3, [pc, #152] ; (800423c ) - 80041a2: 781b ldrb r3, [r3, #0] - 80041a4: 2b00 cmp r3, #0 - 80041a6: d00c beq.n 80041c2 + 80041a0: 2300 movs r3, #0 + 80041a2: 703b strb r3, [r7, #0] + if (canRxFlags.flags.byte != 0)// && hdma_usart2_tx.State == HAL_DMA_STATE_READY) // potential fix to uart tx buffer overwriting + 80041a4: 4b26 ldr r3, [pc, #152] ; (8004240 ) + 80041a6: 781b ldrb r3, [r3, #0] + 80041a8: 2b00 cmp r3, #0 + 80041aa: d00c beq.n 80041c6 slcanReciveCanFrame(hcan.pRxMsg); - 80041a8: 6b60 ldr r0, [r4, #52] ; 0x34 - 80041aa: f000 fbe5 bl 8004978 + 80041ac: 6b60 ldr r0, [r4, #52] ; 0x34 + 80041ae: f000 fbe5 bl 800497c canRxFlags.flags.fifo1 = 0; - 80041ae: 2201 movs r2, #1 - 80041b0: 4b22 ldr r3, [pc, #136] ; (800423c ) + 80041b2: 2201 movs r2, #1 + 80041b4: 4b22 ldr r3, [pc, #136] ; (8004240 ) HAL_CAN_Receive_IT(&hcan, CAN_FIFO0); - 80041b2: 2100 movs r1, #0 + 80041b6: 2100 movs r1, #0 canRxFlags.flags.fifo1 = 0; - 80041b4: 781b ldrb r3, [r3, #0] + 80041b8: 781b ldrb r3, [r3, #0] HAL_CAN_Receive_IT(&hcan, CAN_FIFO0); - 80041b6: 0020 movs r0, r4 + 80041ba: 0020 movs r0, r4 canRxFlags.flags.fifo1 = 0; - 80041b8: 4393 bics r3, r2 - 80041ba: 4a20 ldr r2, [pc, #128] ; (800423c ) - 80041bc: 7013 strb r3, [r2, #0] + 80041bc: 4393 bics r3, r2 + 80041be: 4a20 ldr r2, [pc, #128] ; (8004240 ) + 80041c0: 7013 strb r3, [r2, #0] HAL_CAN_Receive_IT(&hcan, CAN_FIFO0); - 80041be: f7fc fa47 bl 8000650 + 80041c2: f7fc fa45 bl 8000650 if(HAL_GetTick() - lastLEDTick >= 250) - 80041c2: f7fc f873 bl 80002ac - 80041c6: 4e22 ldr r6, [pc, #136] ; (8004250 ) - 80041c8: 6833 ldr r3, [r6, #0] - 80041ca: 1ac0 subs r0, r0, r3 - 80041cc: 28f9 cmp r0, #249 ; 0xf9 - 80041ce: d90d bls.n 80041ec + 80041c6: f7fc f871 bl 80002ac + 80041ca: 4e22 ldr r6, [pc, #136] ; (8004254 ) + 80041cc: 6833 ldr r3, [r6, #0] + 80041ce: 1ac0 subs r0, r0, r3 + 80041d0: 28f9 cmp r0, #249 ; 0xf9 + 80041d2: d90d bls.n 80041f0 lastLEDTick = HAL_GetTick(); - 80041d0: f7fc f86c bl 80002ac - 80041d4: 6030 str r0, [r6, #0] + 80041d4: f7fc f86a bl 80002ac + 80041d8: 6030 str r0, [r6, #0] switch(slcan_getState()) - 80041d6: f000 fbc9 bl 800496c - 80041da: 2801 cmp r0, #1 - 80041dc: d001 beq.n 80041e2 - 80041de: 2802 cmp r0, #2 - 80041e0: d108 bne.n 80041f4 + 80041da: f000 fbc9 bl 8004970 + 80041de: 2801 cmp r0, #1 + 80041e0: d001 beq.n 80041e6 + 80041e2: 2802 cmp r0, #2 + 80041e4: d108 bne.n 80041f8 HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); - 80041e2: 2180 movs r1, #128 ; 0x80 - 80041e4: 480a ldr r0, [pc, #40] ; (8004210 ) - 80041e6: 00c9 lsls r1, r1, #3 - 80041e8: f7fd f852 bl 8001290 + 80041e6: 2180 movs r1, #128 ; 0x80 + 80041e8: 480a ldr r0, [pc, #40] ; (8004214 ) + 80041ea: 00c9 lsls r1, r1, #3 + 80041ec: f7fd f850 bl 8001290 HAL_IWDG_Refresh(&hiwdg); - 80041ec: 480e ldr r0, [pc, #56] ; (8004228 ) - 80041ee: f7fd f883 bl 80012f8 + 80041f0: 480e ldr r0, [pc, #56] ; (800422c ) + 80041f2: f7fd f881 bl 80012f8 slCanCheckCommand(command); - 80041f2: e7b6 b.n 8004162 + 80041f6: e7b6 b.n 8004166 HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET); - 80041f4: 2180 movs r1, #128 ; 0x80 - 80041f6: 2201 movs r2, #1 - 80041f8: 00c9 lsls r1, r1, #3 - 80041fa: 4805 ldr r0, [pc, #20] ; (8004210 ) - 80041fc: f7fd f842 bl 8001284 + 80041f8: 2180 movs r1, #128 ; 0x80 + 80041fa: 2201 movs r2, #1 + 80041fc: 00c9 lsls r1, r1, #3 + 80041fe: 4805 ldr r0, [pc, #20] ; (8004214 ) + 8004200: f7fd f840 bl 8001284 break; - 8004200: e7f4 b.n 80041ec - 8004202: 46c0 nop ; (mov r8, r8) - 8004204: 20000110 .word 0x20000110 - 8004208: 2000059c .word 0x2000059c - 800420c: 40021000 .word 0x40021000 - 8004210: 48000400 .word 0x48000400 - 8004214: 200004f0 .word 0x200004f0 - 8004218: 40006400 .word 0x40006400 - 800421c: 40004400 .word 0x40004400 - 8004220: 200005dc .word 0x200005dc - 8004224: 001e8480 .word 0x001e8480 - 8004228: 200004e0 .word 0x200004e0 - 800422c: 40003000 .word 0x40003000 - 8004230: 00000fff .word 0x00000fff - 8004234: 200005c0 .word 0x200005c0 - 8004238: 20000578 .word 0x20000578 - 800423c: 200004dc .word 0x200004dc - 8004240: 200005a0 .word 0x200005a0 - 8004244: e000e100 .word 0xe000e100 - 8004248: 20000188 .word 0x20000188 - 800424c: 20000184 .word 0x20000184 - 8004250: 20000180 .word 0x20000180 - -08004254 : + 8004204: e7f4 b.n 80041f0 + 8004206: 46c0 nop ; (mov r8, r8) + 8004208: 20000110 .word 0x20000110 + 800420c: 2000059c .word 0x2000059c + 8004210: 40021000 .word 0x40021000 + 8004214: 48000400 .word 0x48000400 + 8004218: 200004f0 .word 0x200004f0 + 800421c: 40006400 .word 0x40006400 + 8004220: 40004400 .word 0x40004400 + 8004224: 200005dc .word 0x200005dc + 8004228: 001e8480 .word 0x001e8480 + 800422c: 200004e0 .word 0x200004e0 + 8004230: 40003000 .word 0x40003000 + 8004234: 00000fff .word 0x00000fff + 8004238: 200005c0 .word 0x200005c0 + 800423c: 20000578 .word 0x20000578 + 8004240: 200004dc .word 0x200004dc + 8004244: 200005a0 .word 0x200005a0 + 8004248: e000e100 .word 0xe000e100 + 800424c: 20000188 .word 0x20000188 + 8004250: 20000184 .word 0x20000184 + 8004254: 20000180 .word 0x20000180 + +08004258 : } /* USER CODE BEGIN 4 */ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) { uint32_t err = huart->ErrorCode; - 8004254: 6ec3 ldr r3, [r0, #108] ; 0x6c + 8004258: 6ec3 ldr r3, [r0, #108] ; 0x6c UNUSED(err); } - 8004256: 4770 bx lr + 800425a: 4770 bx lr -08004258 : +0800425c : void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) { - 8004258: b510 push {r4, lr} + 800425c: b510 push {r4, lr} uint32_t err = huart->ErrorCode; // HAL_UART_Transmit(&huart2, sl_frame, sl_frame_len, 100); HAL_UART_Receive_DMA(huart, uart_rxBuffer, UART_RX_BUFFER_SIZE); //resume DMA - 800425a: 221e movs r2, #30 - 800425c: 4902 ldr r1, [pc, #8] ; (8004268 ) + 800425e: 221e movs r2, #30 + 8004260: 4902 ldr r1, [pc, #8] ; (800426c ) uint32_t err = huart->ErrorCode; - 800425e: 6ec3 ldr r3, [r0, #108] ; 0x6c + 8004262: 6ec3 ldr r3, [r0, #108] ; 0x6c HAL_UART_Receive_DMA(huart, uart_rxBuffer, UART_RX_BUFFER_SIZE); //resume DMA - 8004260: f7fe fcc2 bl 8002be8 + 8004264: f7fe fcc0 bl 8002be8 UNUSED(err); } - 8004264: bd10 pop {r4, pc} - 8004266: 46c0 nop ; (mov r8, r8) - 8004268: 200005a0 .word 0x200005a0 + 8004268: bd10 pop {r4, pc} + 800426a: 46c0 nop ; (mov r8, r8) + 800426c: 200005a0 .word 0x200005a0 -0800426c : +08004270 : void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan) { - 800426c: b510 push {r4, lr} + 8004270: b510 push {r4, lr} HAL_CAN_Receive_IT(hcan, CAN_FIFO0); - 800426e: 2100 movs r1, #0 - 8004270: f7fc f9ee bl 8000650 + 8004272: 2100 movs r1, #0 + 8004274: f7fc f9ec bl 8000650 } - 8004274: bd10 pop {r4, pc} + 8004278: bd10 pop {r4, pc} ... -08004278 : +0800427c : void HAL_CAN_RxCpltCallback(CAN_HandleTypeDef* hcan) { canRxFlags.flags.fifo1 = 1; - 8004278: 2301 movs r3, #1 - 800427a: 4a02 ldr r2, [pc, #8] ; (8004284 ) - 800427c: 7811 ldrb r1, [r2, #0] - 800427e: 430b orrs r3, r1 - 8004280: 7013 strb r3, [r2, #0] + 800427c: 2301 movs r3, #1 + 800427e: 4a02 ldr r2, [pc, #8] ; (8004288 ) + 8004280: 7811 ldrb r1, [r2, #0] + 8004282: 430b orrs r3, r1 + 8004284: 7013 strb r3, [r2, #0] // HAL_CAN_Receive_IT(hcan,CAN_FIFO0); } - 8004282: 4770 bx lr - 8004284: 200004dc .word 0x200004dc + 8004286: 4770 bx lr + 8004288: 200004dc .word 0x200004dc -08004288 : +0800428c : void HAL_UART_RxCpltCallback(UART_HandleTypeDef * huart) { rxFullFlag = 1; - 8004288: 2201 movs r2, #1 + 800428c: 2201 movs r2, #1 { - 800428a: b510 push {r4, lr} + 800428e: b510 push {r4, lr} rxFullFlag = 1; - 800428c: 4b02 ldr r3, [pc, #8] ; (8004298 ) + 8004290: 4b02 ldr r3, [pc, #8] ; (800429c ) slCanProccesInputUART((const char*)&uart_rxBuffer); //decode buffer content - 800428e: 4803 ldr r0, [pc, #12] ; (800429c ) + 8004292: 4803 ldr r0, [pc, #12] ; (80042a0 ) rxFullFlag = 1; - 8004290: 701a strb r2, [r3, #0] + 8004294: 701a strb r2, [r3, #0] slCanProccesInputUART((const char*)&uart_rxBuffer); //decode buffer content - 8004292: f000 f91f bl 80044d4 + 8004296: f000 f91f bl 80044d8 // memset(uart_rxBuffer, 0 , UART_RX_BUFFER_SIZE); //clear the buffer // HAL_UART_Receive_DMA(huart, uart_rxBuffer, UART_RX_BUFFER_SIZE); //resume DMA // __HAL_UART_FLUSH_DRREGISTER(huart); //clear the register } - 8004296: bd10 pop {r4, pc} - 8004298: 20000184 .word 0x20000184 - 800429c: 200005a0 .word 0x200005a0 + 800429a: bd10 pop {r4, pc} + 800429c: 20000184 .word 0x20000184 + 80042a0: 200005a0 .word 0x200005a0 -080042a0 <_Error_Handler>: +080042a4 <_Error_Handler>: * @param file: The file name as string. * @param line: The line in file as a number. * @retval None */ void _Error_Handler(char *file, int line) { - 80042a0: e7fe b.n 80042a0 <_Error_Handler> + 80042a4: e7fe b.n 80042a4 <_Error_Handler> ... -080042a4 : +080042a8 : * @param c - data to add * @retval None */ static void slcanSetOutputChar(uint8_t c) { if (sl_frame_len < sizeof(sl_frame)) - 80042a4: 4b07 ldr r3, [pc, #28] ; (80042c4 ) - 80042a6: 781b ldrb r3, [r3, #0] - 80042a8: b2db uxtb r3, r3 - 80042aa: 2b1f cmp r3, #31 - 80042ac: d808 bhi.n 80042c0 + 80042a8: 4b07 ldr r3, [pc, #28] ; (80042c8 ) + 80042aa: 781b ldrb r3, [r3, #0] + 80042ac: b2db uxtb r3, r3 + 80042ae: 2b1f cmp r3, #31 + 80042b0: d808 bhi.n 80042c4 { sl_frame[sl_frame_len] = c; - 80042ae: 4a05 ldr r2, [pc, #20] ; (80042c4 ) - 80042b0: 7813 ldrb r3, [r2, #0] - 80042b2: b2db uxtb r3, r3 - 80042b4: 4904 ldr r1, [pc, #16] ; (80042c8 ) - 80042b6: 54c8 strb r0, [r1, r3] + 80042b2: 4a05 ldr r2, [pc, #20] ; (80042c8 ) + 80042b4: 7813 ldrb r3, [r2, #0] + 80042b6: b2db uxtb r3, r3 + 80042b8: 4904 ldr r1, [pc, #16] ; (80042cc ) + 80042ba: 54c8 strb r0, [r1, r3] sl_frame_len ++; - 80042b8: 7813 ldrb r3, [r2, #0] - 80042ba: 3301 adds r3, #1 - 80042bc: b2db uxtb r3, r3 - 80042be: 7013 strb r3, [r2, #0] + 80042bc: 7813 ldrb r3, [r2, #0] + 80042be: 3301 adds r3, #1 + 80042c0: b2db uxtb r3, r3 + 80042c2: 7013 strb r3, [r2, #0] } } - 80042c0: 4770 bx lr - 80042c2: 46c0 nop ; (mov r8, r8) - 80042c4: 20000251 .word 0x20000251 - 80042c8: 2000064c .word 0x2000064c + 80042c4: 4770 bx lr + 80042c6: 46c0 nop ; (mov r8, r8) + 80042c8: 20000251 .word 0x20000251 + 80042cc: 2000064c .word 0x2000064c -080042cc : +080042d0 : * @brief Add given nible value as hexadecimal string to buffer * @param c - data to add * @retval None */ static void slCanSendNibble(uint8_t ch) { - 80042cc: b510 push {r4, lr} + 80042d0: b510 push {r4, lr} ch = ch > 9 ? ch - 10 + 'A' : ch + '0'; - 80042ce: 2809 cmp r0, #9 - 80042d0: d804 bhi.n 80042dc - 80042d2: 3030 adds r0, #48 ; 0x30 - 80042d4: b2c0 uxtb r0, r0 + 80042d2: 2809 cmp r0, #9 + 80042d4: d804 bhi.n 80042e0 + 80042d6: 3030 adds r0, #48 ; 0x30 + 80042d8: b2c0 uxtb r0, r0 slcanSetOutputChar(ch); - 80042d6: f7ff ffe5 bl 80042a4 + 80042da: f7ff ffe5 bl 80042a8 } - 80042da: bd10 pop {r4, pc} + 80042de: bd10 pop {r4, pc} ch = ch > 9 ? ch - 10 + 'A' : ch + '0'; - 80042dc: 3037 adds r0, #55 ; 0x37 - 80042de: b2c0 uxtb r0, r0 - 80042e0: e7f9 b.n 80042d6 + 80042e0: 3037 adds r0, #55 ; 0x37 + 80042e2: b2c0 uxtb r0, r0 + 80042e4: e7f9 b.n 80042da -080042e2 : +080042e6 : * @brief Add given byte value as hexadecimal string to buffer * @param value - data to add * @retval None */ static void slcanSetOutputAsHex(uint8_t ch) { - 80042e2: b510 push {r4, lr} - 80042e4: 0004 movs r4, r0 + 80042e6: b510 push {r4, lr} + 80042e8: 0004 movs r4, r0 slCanSendNibble(ch >> 4); - 80042e6: 0900 lsrs r0, r0, #4 - 80042e8: f7ff fff0 bl 80042cc + 80042ea: 0900 lsrs r0, r0, #4 + 80042ec: f7ff fff0 bl 80042d0 slCanSendNibble(ch & 0x0F); - 80042ec: 200f movs r0, #15 - 80042ee: 4020 ands r0, r4 - 80042f0: f7ff ffec bl 80042cc + 80042f0: 200f movs r0, #15 + 80042f2: 4020 ands r0, r4 + 80042f4: f7ff ffec bl 80042d0 } - 80042f4: bd10 pop {r4, pc} + 80042f8: bd10 pop {r4, pc} -080042f6 : +080042fa : * @param canmsg - line Input string * len - of characters to interpret * value - Pointer to variable for the resulting decoded value * @retval 0 on error, 1 on success */ static uint8_t parseHex(uint8_t* line, uint8_t len, uint32_t* value) { - 80042f6: b530 push {r4, r5, lr} + 80042fa: b530 push {r4, r5, lr} *value = 0; - 80042f8: 2300 movs r3, #0 - 80042fa: 6013 str r3, [r2, #0] + 80042fc: 2300 movs r3, #0 + 80042fe: 6013 str r3, [r2, #0] while (len--) { - 80042fc: e009 b.n 8004312 + 8004300: e009 b.n 8004316 if (*line == 0) return 0; *value <<= 4; if ((*line >= '0') && (*line <= '9')) { *value += *line - '0'; } else if ((*line >= 'A') && (*line <= 'F')) { - 80042fe: 001d movs r5, r3 - 8004300: 3d41 subs r5, #65 ; 0x41 - 8004302: b2ed uxtb r5, r5 - 8004304: 2d05 cmp r5, #5 - 8004306: d818 bhi.n 800433a + 8004302: 001d movs r5, r3 + 8004304: 3d41 subs r5, #65 ; 0x41 + 8004306: b2ed uxtb r5, r5 + 8004308: 2d05 cmp r5, #5 + 800430a: d818 bhi.n 800433e *value += *line - 'A' + 10; - 8004308: 185b adds r3, r3, r1 - 800430a: 3b37 subs r3, #55 ; 0x37 - 800430c: 6013 str r3, [r2, #0] + 800430c: 185b adds r3, r3, r1 + 800430e: 3b37 subs r3, #55 ; 0x37 + 8004310: 6013 str r3, [r2, #0] } else if ((*line >= 'a') && (*line <= 'f')) { *value += *line - 'a' + 10; } else return 0; line++; - 800430e: 3001 adds r0, #1 + 8004312: 3001 adds r0, #1 while (len--) { - 8004310: 0021 movs r1, r4 - 8004312: 1e4c subs r4, r1, #1 - 8004314: b2e4 uxtb r4, r4 - 8004316: 2900 cmp r1, #0 - 8004318: d018 beq.n 800434c + 8004314: 0021 movs r1, r4 + 8004316: 1e4c subs r4, r1, #1 + 8004318: b2e4 uxtb r4, r4 + 800431a: 2900 cmp r1, #0 + 800431c: d018 beq.n 8004350 if (*line == 0) return 0; - 800431a: 7803 ldrb r3, [r0, #0] - 800431c: 2b00 cmp r3, #0 - 800431e: d016 beq.n 800434e + 800431e: 7803 ldrb r3, [r0, #0] + 8004320: 2b00 cmp r3, #0 + 8004322: d016 beq.n 8004352 *value <<= 4; - 8004320: 6813 ldr r3, [r2, #0] - 8004322: 0119 lsls r1, r3, #4 - 8004324: 6011 str r1, [r2, #0] + 8004324: 6813 ldr r3, [r2, #0] + 8004326: 0119 lsls r1, r3, #4 + 8004328: 6011 str r1, [r2, #0] if ((*line >= '0') && (*line <= '9')) { - 8004326: 7803 ldrb r3, [r0, #0] - 8004328: 001d movs r5, r3 - 800432a: 3d30 subs r5, #48 ; 0x30 - 800432c: b2ed uxtb r5, r5 - 800432e: 2d09 cmp r5, #9 - 8004330: d8e5 bhi.n 80042fe + 800432a: 7803 ldrb r3, [r0, #0] + 800432c: 001d movs r5, r3 + 800432e: 3d30 subs r5, #48 ; 0x30 + 8004330: b2ed uxtb r5, r5 + 8004332: 2d09 cmp r5, #9 + 8004334: d8e5 bhi.n 8004302 *value += *line - '0'; - 8004332: 185b adds r3, r3, r1 - 8004334: 3b30 subs r3, #48 ; 0x30 - 8004336: 6013 str r3, [r2, #0] - 8004338: e7e9 b.n 800430e + 8004336: 185b adds r3, r3, r1 + 8004338: 3b30 subs r3, #48 ; 0x30 + 800433a: 6013 str r3, [r2, #0] + 800433c: e7e9 b.n 8004312 } else if ((*line >= 'a') && (*line <= 'f')) { - 800433a: 001d movs r5, r3 - 800433c: 3d61 subs r5, #97 ; 0x61 - 800433e: b2ed uxtb r5, r5 - 8004340: 2d05 cmp r5, #5 - 8004342: d806 bhi.n 8004352 + 800433e: 001d movs r5, r3 + 8004340: 3d61 subs r5, #97 ; 0x61 + 8004342: b2ed uxtb r5, r5 + 8004344: 2d05 cmp r5, #5 + 8004346: d806 bhi.n 8004356 *value += *line - 'a' + 10; - 8004344: 185b adds r3, r3, r1 - 8004346: 3b57 subs r3, #87 ; 0x57 - 8004348: 6013 str r3, [r2, #0] - 800434a: e7e0 b.n 800430e + 8004348: 185b adds r3, r3, r1 + 800434a: 3b57 subs r3, #87 ; 0x57 + 800434c: 6013 str r3, [r2, #0] + 800434e: e7e0 b.n 8004312 } return 1; - 800434c: 2301 movs r3, #1 + 8004350: 2301 movs r3, #1 } - 800434e: 0018 movs r0, r3 - 8004350: bd30 pop {r4, r5, pc} + 8004352: 0018 movs r0, r3 + 8004354: bd30 pop {r4, r5, pc} } else return 0; - 8004352: 2300 movs r3, #0 - 8004354: e7fb b.n 800434e + 8004356: 2300 movs r3, #0 + 8004358: e7fb b.n 8004352 ... -08004358 : +0800435c : /** * @brief Interprets given line and transmit can message * @param line Line string which contains the transmit command * @retval HAL status */ static uint8_t transmitStd(uint8_t* line) { - 8004358: b5f0 push {r4, r5, r6, r7, lr} - 800435a: b083 sub sp, #12 - 800435c: 0005 movs r5, r0 + 800435c: b5f0 push {r4, r5, r6, r7, lr} + 800435e: b083 sub sp, #12 + 8004360: 0005 movs r5, r0 uint32_t temp; uint8_t idlen; HAL_StatusTypeDef tr; if ((line[0] == 'r') || (line[0] == 'R')) - 800435e: 7803 ldrb r3, [r0, #0] - 8004360: 2b72 cmp r3, #114 ; 0x72 - 8004362: d042 beq.n 80043ea - 8004364: 2b52 cmp r3, #82 ; 0x52 - 8004366: d040 beq.n 80043ea + 8004362: 7803 ldrb r3, [r0, #0] + 8004364: 2b72 cmp r3, #114 ; 0x72 + 8004366: d042 beq.n 80043ee + 8004368: 2b52 cmp r3, #82 ; 0x52 + 800436a: d040 beq.n 80043ee { hcan.pTxMsg->RTR = CAN_RTR_REMOTE; } else { hcan.pTxMsg->RTR = CAN_RTR_DATA; - 8004368: 4b31 ldr r3, [pc, #196] ; (8004430 ) - 800436a: 6b1b ldr r3, [r3, #48] ; 0x30 - 800436c: 2200 movs r2, #0 - 800436e: 60da str r2, [r3, #12] + 800436c: 4b31 ldr r3, [pc, #196] ; (8004434 ) + 800436e: 6b1b ldr r3, [r3, #48] ; 0x30 + 8004370: 2200 movs r2, #0 + 8004372: 60da str r2, [r3, #12] } // upper case -> extended identifier if (line[0] < 'Z') { - 8004370: 782b ldrb r3, [r5, #0] - 8004372: 2b59 cmp r3, #89 ; 0x59 - 8004374: d83e bhi.n 80043f4 + 8004374: 782b ldrb r3, [r5, #0] + 8004376: 2b59 cmp r3, #89 ; 0x59 + 8004378: d83e bhi.n 80043f8 idlen = 8; if (!parseHex(&line[1], idlen, &temp)) return 0; - 8004376: 1c68 adds r0, r5, #1 - 8004378: aa01 add r2, sp, #4 - 800437a: 2108 movs r1, #8 - 800437c: f7ff ffbb bl 80042f6 - 8004380: 2800 cmp r0, #0 - 8004382: d053 beq.n 800442c + 800437a: 1c68 adds r0, r5, #1 + 800437c: aa01 add r2, sp, #4 + 800437e: 2108 movs r1, #8 + 8004380: f7ff ffbb bl 80042fa + 8004384: 2800 cmp r0, #0 + 8004386: d053 beq.n 8004430 hcan.pTxMsg->IDE = CAN_ID_EXT; - 8004384: 4b2a ldr r3, [pc, #168] ; (8004430 ) - 8004386: 6b1a ldr r2, [r3, #48] ; 0x30 - 8004388: 2104 movs r1, #4 - 800438a: 6091 str r1, [r2, #8] + 8004388: 4b2a ldr r3, [pc, #168] ; (8004434 ) + 800438a: 6b1a ldr r2, [r3, #48] ; 0x30 + 800438c: 2104 movs r1, #4 + 800438e: 6091 str r1, [r2, #8] hcan.pTxMsg->ExtId = temp; - 800438c: 6b1b ldr r3, [r3, #48] ; 0x30 - 800438e: 9a01 ldr r2, [sp, #4] - 8004390: 605a str r2, [r3, #4] + 8004390: 6b1b ldr r3, [r3, #48] ; 0x30 + 8004392: 9a01 ldr r2, [sp, #4] + 8004394: 605a str r2, [r3, #4] idlen = 8; - 8004392: 2008 movs r0, #8 + 8004396: 2008 movs r0, #8 hcan.pTxMsg->IDE = CAN_ID_STD; hcan.pTxMsg->StdId = temp; } if (!parseHex(&line[1 + idlen], 1, &temp)) return 0; - 8004394: 0007 movs r7, r0 - 8004396: 3001 adds r0, #1 - 8004398: 1828 adds r0, r5, r0 - 800439a: aa01 add r2, sp, #4 - 800439c: 2101 movs r1, #1 - 800439e: f7ff ffaa bl 80042f6 - 80043a2: 2800 cmp r0, #0 - 80043a4: d042 beq.n 800442c + 8004398: 0007 movs r7, r0 + 800439a: 3001 adds r0, #1 + 800439c: 1828 adds r0, r5, r0 + 800439e: aa01 add r2, sp, #4 + 80043a0: 2101 movs r1, #1 + 80043a2: f7ff ffaa bl 80042fa + 80043a6: 2800 cmp r0, #0 + 80043a8: d042 beq.n 8004430 hcan.pTxMsg->DLC = temp; - 80043a6: 4b22 ldr r3, [pc, #136] ; (8004430 ) - 80043a8: 6b1a ldr r2, [r3, #48] ; 0x30 - 80043aa: 9901 ldr r1, [sp, #4] - 80043ac: 6111 str r1, [r2, #16] + 80043aa: 4b22 ldr r3, [pc, #136] ; (8004434 ) + 80043ac: 6b1a ldr r2, [r3, #48] ; 0x30 + 80043ae: 9901 ldr r1, [sp, #4] + 80043b0: 6111 str r1, [r2, #16] if (hcan.pTxMsg->RTR == CAN_RTR_DATA) { - 80043ae: 6b1b ldr r3, [r3, #48] ; 0x30 - 80043b0: 68da ldr r2, [r3, #12] - 80043b2: 2a00 cmp r2, #0 - 80043b4: d12e bne.n 8004414 + 80043b2: 6b1b ldr r3, [r3, #48] ; 0x30 + 80043b4: 68da ldr r2, [r3, #12] + 80043b6: 2a00 cmp r2, #0 + 80043b8: d12e bne.n 8004418 uint8_t i; uint8_t length = hcan.pTxMsg->DLC; - 80043b6: 7c1e ldrb r6, [r3, #16] + 80043ba: 7c1e ldrb r6, [r3, #16] if (length > 8) length = 8; - 80043b8: 2e08 cmp r6, #8 - 80043ba: d900 bls.n 80043be - 80043bc: 2608 movs r6, #8 + 80043bc: 2e08 cmp r6, #8 + 80043be: d900 bls.n 80043c2 + 80043c0: 2608 movs r6, #8 for (i = 0; i < length; i++) { - 80043be: 2400 movs r4, #0 - 80043c0: 42b4 cmp r4, r6 - 80043c2: d227 bcs.n 8004414 + 80043c2: 2400 movs r4, #0 + 80043c4: 42b4 cmp r4, r6 + 80043c6: d227 bcs.n 8004418 if (!parseHex(&line[idlen + 2 + i*2], 2, &temp)) return 0; - 80043c4: 1cbb adds r3, r7, #2 - 80043c6: 0062 lsls r2, r4, #1 - 80043c8: 1898 adds r0, r3, r2 - 80043ca: 1828 adds r0, r5, r0 - 80043cc: aa01 add r2, sp, #4 - 80043ce: 2102 movs r1, #2 - 80043d0: f7ff ff91 bl 80042f6 - 80043d4: 2800 cmp r0, #0 - 80043d6: d029 beq.n 800442c + 80043c8: 1cbb adds r3, r7, #2 + 80043ca: 0062 lsls r2, r4, #1 + 80043cc: 1898 adds r0, r3, r2 + 80043ce: 1828 adds r0, r5, r0 + 80043d0: aa01 add r2, sp, #4 + 80043d2: 2102 movs r1, #2 + 80043d4: f7ff ff91 bl 80042fa + 80043d8: 2800 cmp r0, #0 + 80043da: d029 beq.n 8004430 hcan.pTxMsg->Data[i] = temp; - 80043d8: 4b15 ldr r3, [pc, #84] ; (8004430 ) - 80043da: 6b1b ldr r3, [r3, #48] ; 0x30 - 80043dc: 191b adds r3, r3, r4 - 80043de: 466a mov r2, sp - 80043e0: 7912 ldrb r2, [r2, #4] - 80043e2: 751a strb r2, [r3, #20] + 80043dc: 4b15 ldr r3, [pc, #84] ; (8004434 ) + 80043de: 6b1b ldr r3, [r3, #48] ; 0x30 + 80043e0: 191b adds r3, r3, r4 + 80043e2: 466a mov r2, sp + 80043e4: 7912 ldrb r2, [r2, #4] + 80043e6: 751a strb r2, [r3, #20] for (i = 0; i < length; i++) { - 80043e4: 3401 adds r4, #1 - 80043e6: b2e4 uxtb r4, r4 - 80043e8: e7ea b.n 80043c0 + 80043e8: 3401 adds r4, #1 + 80043ea: b2e4 uxtb r4, r4 + 80043ec: e7ea b.n 80043c4 hcan.pTxMsg->RTR = CAN_RTR_REMOTE; - 80043ea: 4b11 ldr r3, [pc, #68] ; (8004430 ) - 80043ec: 6b1b ldr r3, [r3, #48] ; 0x30 - 80043ee: 2202 movs r2, #2 - 80043f0: 60da str r2, [r3, #12] - 80043f2: e7bd b.n 8004370 + 80043ee: 4b11 ldr r3, [pc, #68] ; (8004434 ) + 80043f0: 6b1b ldr r3, [r3, #48] ; 0x30 + 80043f2: 2202 movs r2, #2 + 80043f4: 60da str r2, [r3, #12] + 80043f6: e7bd b.n 8004374 if (!parseHex(&line[1], idlen, &temp)) return 0; - 80043f4: 1c68 adds r0, r5, #1 - 80043f6: aa01 add r2, sp, #4 - 80043f8: 2103 movs r1, #3 - 80043fa: f7ff ff7c bl 80042f6 - 80043fe: 2800 cmp r0, #0 - 8004400: d014 beq.n 800442c + 80043f8: 1c68 adds r0, r5, #1 + 80043fa: aa01 add r2, sp, #4 + 80043fc: 2103 movs r1, #3 + 80043fe: f7ff ff7c bl 80042fa + 8004402: 2800 cmp r0, #0 + 8004404: d014 beq.n 8004430 hcan.pTxMsg->IDE = CAN_ID_STD; - 8004402: 4b0b ldr r3, [pc, #44] ; (8004430 ) - 8004404: 6b1a ldr r2, [r3, #48] ; 0x30 - 8004406: 2100 movs r1, #0 - 8004408: 6091 str r1, [r2, #8] + 8004406: 4b0b ldr r3, [pc, #44] ; (8004434 ) + 8004408: 6b1a ldr r2, [r3, #48] ; 0x30 + 800440a: 2100 movs r1, #0 + 800440c: 6091 str r1, [r2, #8] hcan.pTxMsg->StdId = temp; - 800440a: 6b1b ldr r3, [r3, #48] ; 0x30 - 800440c: 9a01 ldr r2, [sp, #4] - 800440e: 601a str r2, [r3, #0] + 800440e: 6b1b ldr r3, [r3, #48] ; 0x30 + 8004410: 9a01 ldr r2, [sp, #4] + 8004412: 601a str r2, [r3, #0] idlen = 3; - 8004410: 2003 movs r0, #3 - 8004412: e7bf b.n 8004394 + 8004414: 2003 movs r0, #3 + 8004416: e7bf b.n 8004398 } } HAL_NVIC_DisableIRQ(CEC_CAN_IRQn); - 8004414: 201e movs r0, #30 - 8004416: f7fc fba9 bl 8000b6c + 8004418: 201e movs r0, #30 + 800441a: f7fc fba7 bl 8000b6c tr = HAL_CAN_Transmit(&hcan, 0); - 800441a: 2100 movs r1, #0 - 800441c: 4804 ldr r0, [pc, #16] ; (8004430 ) - 800441e: f7fc f881 bl 8000524 - 8004422: 0004 movs r4, r0 + 800441e: 2100 movs r1, #0 + 8004420: 4804 ldr r0, [pc, #16] ; (8004434 ) + 8004422: f7fc f87f bl 8000524 + 8004426: 0004 movs r4, r0 HAL_NVIC_EnableIRQ(CEC_CAN_IRQn); - 8004424: 201e movs r0, #30 - 8004426: f7fc fb97 bl 8000b58 + 8004428: 201e movs r0, #30 + 800442a: f7fc fb95 bl 8000b58 return tr; - 800442a: 0020 movs r0, r4 + 800442e: 0020 movs r0, r4 } - 800442c: b003 add sp, #12 - 800442e: bdf0 pop {r4, r5, r6, r7, pc} - 8004430: 200004f0 .word 0x200004f0 + 8004430: b003 add sp, #12 + 8004432: bdf0 pop {r4, r5, r6, r7, pc} + 8004434: 200004f0 .word 0x200004f0 -08004434 : +08004438 : { - 8004434: b510 push {r4, lr} + 8004438: b510 push {r4, lr} slcanSetCANBaudRate(CAN_BR_1M); - 8004436: 2008 movs r0, #8 - 8004438: f000 fba4 bl 8004b84 + 800443a: 2008 movs r0, #8 + 800443c: f000 fba4 bl 8004b88 hcan.Init.Mode = CAN_MODE_NORMAL; - 800443c: 2200 movs r2, #0 - 800443e: 4b07 ldr r3, [pc, #28] ; (800445c ) - 8004440: 609a str r2, [r3, #8] + 8004440: 2200 movs r2, #0 + 8004442: 4b07 ldr r3, [pc, #28] ; (8004460 ) + 8004444: 609a str r2, [r3, #8] if(CANInit() == HAL_OK) - 8004442: f000 fae3 bl 8004a0c - 8004446: 2800 cmp r0, #0 - 8004448: d000 beq.n 800444c + 8004446: f000 fae3 bl 8004a10 + 800444a: 2800 cmp r0, #0 + 800444c: d000 beq.n 8004450 } - 800444a: bd10 pop {r4, pc} + 800444e: bd10 pop {r4, pc} HAL_NVIC_EnableIRQ(CEC_CAN_IRQn); - 800444c: 301e adds r0, #30 - 800444e: f7fc fb83 bl 8000b58 + 8004450: 301e adds r0, #30 + 8004452: f7fc fb81 bl 8000b58 state = STATE_OPEN; - 8004452: 2202 movs r2, #2 - 8004454: 4b02 ldr r3, [pc, #8] ; (8004460 ) - 8004456: 701a strb r2, [r3, #0] + 8004456: 2202 movs r2, #2 + 8004458: 4b02 ldr r3, [pc, #8] ; (8004464 ) + 800445a: 701a strb r2, [r3, #0] } - 8004458: e7f7 b.n 800444a - 800445a: 46c0 nop ; (mov r8, r8) - 800445c: 200004f0 .word 0x200004f0 - 8004460: 20000252 .word 0x20000252 + 800445c: e7f7 b.n 800444e + 800445e: 46c0 nop ; (mov r8, r8) + 8004460: 200004f0 .word 0x200004f0 + 8004464: 20000252 .word 0x20000252 -08004464 : +08004468 : { - 8004464: b510 push {r4, lr} + 8004468: b510 push {r4, lr} HAL_NVIC_DisableIRQ(CEC_CAN_IRQn); - 8004466: 201e movs r0, #30 - 8004468: f7fc fb80 bl 8000b6c + 800446a: 201e movs r0, #30 + 800446c: f7fc fb7e bl 8000b6c state = STATE_CONFIG; - 800446c: 2200 movs r2, #0 - 800446e: 4b01 ldr r3, [pc, #4] ; (8004474 ) - 8004470: 701a strb r2, [r3, #0] + 8004470: 2200 movs r2, #0 + 8004472: 4b01 ldr r3, [pc, #4] ; (8004478 ) + 8004474: 701a strb r2, [r3, #0] } - 8004472: bd10 pop {r4, pc} - 8004474: 20000252 .word 0x20000252 + 8004476: bd10 pop {r4, pc} + 8004478: 20000252 .word 0x20000252 -08004478 : +0800447c : { - 8004478: b510 push {r4, lr} + 800447c: b510 push {r4, lr} if (sl_frame_len > 0) - 800447a: 4b12 ldr r3, [pc, #72] ; (80044c4 ) - 800447c: 781b ldrb r3, [r3, #0] - 800447e: 2b00 cmp r3, #0 - 8004480: d00e beq.n 80044a0 + 800447e: 4b12 ldr r3, [pc, #72] ; (80044c8 ) + 8004480: 781b ldrb r3, [r3, #0] + 8004482: 2b00 cmp r3, #0 + 8004484: d00e beq.n 80044a4 if (hUsbDeviceFS.dev_state != USBD_STATE_CONFIGURED) // use auxiliary uart only if usb not connected - 8004482: 23fe movs r3, #254 ; 0xfe - 8004484: 005b lsls r3, r3, #1 - 8004486: 4a10 ldr r2, [pc, #64] ; (80044c8 ) - 8004488: 5cd3 ldrb r3, [r2, r3] - 800448a: 2b03 cmp r3, #3 - 800448c: d009 beq.n 80044a2 + 8004486: 23fe movs r3, #254 ; 0xfe + 8004488: 005b lsls r3, r3, #1 + 800448a: 4a10 ldr r2, [pc, #64] ; (80044cc ) + 800448c: 5cd3 ldrb r3, [r2, r3] + 800448e: 2b03 cmp r3, #3 + 8004490: d009 beq.n 80044a6 HAL_UART_Transmit_DMA(&huart2,sl_frame,sl_frame_len); - 800448e: 4b0d ldr r3, [pc, #52] ; (80044c4 ) - 8004490: 781a ldrb r2, [r3, #0] - 8004492: 490e ldr r1, [pc, #56] ; (80044cc ) - 8004494: 480e ldr r0, [pc, #56] ; (80044d0 ) - 8004496: f7fe fb61 bl 8002b5c + 8004492: 4b0d ldr r3, [pc, #52] ; (80044c8 ) + 8004494: 781a ldrb r2, [r3, #0] + 8004496: 490e ldr r1, [pc, #56] ; (80044d0 ) + 8004498: 480e ldr r0, [pc, #56] ; (80044d4 ) + 800449a: f7fe fb5f bl 8002b5c sl_frame_len = 0; - 800449a: 2200 movs r2, #0 - 800449c: 4b09 ldr r3, [pc, #36] ; (80044c4 ) - 800449e: 701a strb r2, [r3, #0] + 800449e: 2200 movs r2, #0 + 80044a0: 4b09 ldr r3, [pc, #36] ; (80044c8 ) + 80044a2: 701a strb r2, [r3, #0] } - 80044a0: bd10 pop {r4, pc} + 80044a4: bd10 pop {r4, pc} while (((USBD_CDC_HandleTypeDef*)hUsbDeviceFS.pClassData)->TxState){;} //should change by hardware - 80044a2: 2386 movs r3, #134 ; 0x86 - 80044a4: 009b lsls r3, r3, #2 - 80044a6: 4a08 ldr r2, [pc, #32] ; (80044c8 ) - 80044a8: 58d2 ldr r2, [r2, r3] - 80044aa: 3b04 subs r3, #4 - 80044ac: 58d3 ldr r3, [r2, r3] - 80044ae: 2b00 cmp r3, #0 - 80044b0: d1f7 bne.n 80044a2 + 80044a6: 2386 movs r3, #134 ; 0x86 + 80044a8: 009b lsls r3, r3, #2 + 80044aa: 4a08 ldr r2, [pc, #32] ; (80044cc ) + 80044ac: 58d2 ldr r2, [r2, r3] + 80044ae: 3b04 subs r3, #4 + 80044b0: 58d3 ldr r3, [r2, r3] + 80044b2: 2b00 cmp r3, #0 + 80044b4: d1f7 bne.n 80044a6 while (CDC_Transmit_FS(sl_frame, sl_frame_len) != USBD_OK); - 80044b2: 4b04 ldr r3, [pc, #16] ; (80044c4 ) - 80044b4: 7819 ldrb r1, [r3, #0] - 80044b6: 4805 ldr r0, [pc, #20] ; (80044cc ) - 80044b8: f000 fd2c bl 8004f14 - 80044bc: 2800 cmp r0, #0 - 80044be: d1f8 bne.n 80044b2 - 80044c0: e7eb b.n 800449a - 80044c2: 46c0 nop ; (mov r8, r8) - 80044c4: 20000251 .word 0x20000251 - 80044c8: 2000066c .word 0x2000066c - 80044cc: 2000064c .word 0x2000064c - 80044d0: 200005dc .word 0x200005dc - -080044d4 : -{ - 80044d4: b570 push {r4, r5, r6, lr} - 80044d6: 0005 movs r5, r0 + 80044b6: 4b04 ldr r3, [pc, #16] ; (80044c8 ) + 80044b8: 7819 ldrb r1, [r3, #0] + 80044ba: 4805 ldr r0, [pc, #20] ; (80044d0 ) + 80044bc: f000 fd2c bl 8004f18 + 80044c0: 2800 cmp r0, #0 + 80044c2: d1f8 bne.n 80044b6 + 80044c4: e7eb b.n 800449e + 80044c6: 46c0 nop ; (mov r8, r8) + 80044c8: 20000251 .word 0x20000251 + 80044cc: 2000066c .word 0x2000066c + 80044d0: 2000064c .word 0x2000064c + 80044d4: 200005dc .word 0x200005dc + +080044d8 : +{ + 80044d8: b570 push {r4, r5, r6, lr} + 80044da: 0005 movs r5, r0 UART_FLAG = 1; - 80044d8: 2201 movs r2, #1 - 80044da: 4b09 ldr r3, [pc, #36] ; (8004500 ) - 80044dc: 701a strb r2, [r3, #0] + 80044dc: 2201 movs r2, #1 + 80044de: 4b09 ldr r3, [pc, #36] ; (8004504 ) + 80044e0: 701a strb r2, [r3, #0] memset(command, 0, sizeof(command)); - 80044de: 4c09 ldr r4, [pc, #36] ; (8004504 ) - 80044e0: 3263 adds r2, #99 ; 0x63 - 80044e2: 2100 movs r1, #0 - 80044e4: 0020 movs r0, r4 - 80044e6: f000 ff7e bl 80053e6 + 80044e2: 4c09 ldr r4, [pc, #36] ; (8004508 ) + 80044e4: 3263 adds r2, #99 ; 0x63 + 80044e6: 2100 movs r1, #0 + 80044e8: 0020 movs r0, r4 + 80044ea: f000 ff7e bl 80053ea memcpy(command,string,strlen(string)); - 80044ea: 0028 movs r0, r5 - 80044ec: f7fb fe0c bl 8000108 - 80044f0: 0002 movs r2, r0 - 80044f2: 0029 movs r1, r5 - 80044f4: 0020 movs r0, r4 - 80044f6: f000 ff6d bl 80053d4 -} - 80044fa: 2000 movs r0, #0 - 80044fc: bd70 pop {r4, r5, r6, pc} - 80044fe: 46c0 nop ; (mov r8, r8) - 8004500: 20000185 .word 0x20000185 - 8004504: 20000188 .word 0x20000188 - -08004508 : -{ - 8004508: b570 push {r4, r5, r6, lr} + 80044ee: 0028 movs r0, r5 + 80044f0: f7fb fe0a bl 8000108 + 80044f4: 0002 movs r2, r0 + 80044f6: 0029 movs r1, r5 + 80044f8: 0020 movs r0, r4 + 80044fa: f000 ff6d bl 80053d8 +} + 80044fe: 2000 movs r0, #0 + 8004500: bd70 pop {r4, r5, r6, pc} + 8004502: 46c0 nop ; (mov r8, r8) + 8004504: 20000185 .word 0x20000185 + 8004508: 20000188 .word 0x20000188 + +0800450c : +{ + 800450c: b570 push {r4, r5, r6, lr} if (ch == SLCAN_CR) { - 800450a: 280d cmp r0, #13 - 800450c: d00c beq.n 8004528 + 800450e: 280d cmp r0, #13 + 8004510: d00c beq.n 800452c } else if (ch != SLCAN_LR) { - 800450e: 280a cmp r0, #10 - 8004510: d015 beq.n 800453e + 8004512: 280a cmp r0, #10 + 8004514: d015 beq.n 8004542 line[linepos] = ch; - 8004512: 4b0d ldr r3, [pc, #52] ; (8004548 ) - 8004514: 781b ldrb r3, [r3, #0] - 8004516: 4a0d ldr r2, [pc, #52] ; (800454c ) - 8004518: 54d0 strb r0, [r2, r3] + 8004516: 4b0d ldr r3, [pc, #52] ; (800454c ) + 8004518: 781b ldrb r3, [r3, #0] + 800451a: 4a0d ldr r2, [pc, #52] ; (8004550 ) + 800451c: 54d0 strb r0, [r2, r3] if (linepos < LINE_MAXLEN - 1) linepos++; - 800451a: 2b62 cmp r3, #98 ; 0x62 - 800451c: d811 bhi.n 8004542 - 800451e: 3301 adds r3, #1 - 8004520: 4a09 ldr r2, [pc, #36] ; (8004548 ) - 8004522: 7013 strb r3, [r2, #0] + 800451e: 2b62 cmp r3, #98 ; 0x62 + 8004520: d811 bhi.n 8004546 + 8004522: 3301 adds r3, #1 + 8004524: 4a09 ldr r2, [pc, #36] ; (800454c ) + 8004526: 7013 strb r3, [r2, #0] return 0; - 8004524: 2000 movs r0, #0 + 8004528: 2000 movs r0, #0 } - 8004526: bd70 pop {r4, r5, r6, pc} + 800452a: bd70 pop {r4, r5, r6, pc} line[linepos] = 0; - 8004528: 4c07 ldr r4, [pc, #28] ; (8004548 ) - 800452a: 7822 ldrb r2, [r4, #0] - 800452c: 4907 ldr r1, [pc, #28] ; (800454c ) - 800452e: 2500 movs r5, #0 - 8004530: 548d strb r5, [r1, r2] + 800452c: 4c07 ldr r4, [pc, #28] ; (800454c ) + 800452e: 7822 ldrb r2, [r4, #0] + 8004530: 4907 ldr r1, [pc, #28] ; (8004550 ) + 8004532: 2500 movs r5, #0 + 8004534: 548d strb r5, [r1, r2] memcpy(command,line,linepos); - 8004532: 4807 ldr r0, [pc, #28] ; (8004550 ) - 8004534: f000 ff4e bl 80053d4 + 8004536: 4807 ldr r0, [pc, #28] ; (8004554 ) + 8004538: f000 ff4e bl 80053d8 linepos = 0; - 8004538: 7025 strb r5, [r4, #0] + 800453c: 7025 strb r5, [r4, #0] return 1; - 800453a: 2001 movs r0, #1 - 800453c: e7f3 b.n 8004526 + 800453e: 2001 movs r0, #1 + 8004540: e7f3 b.n 800452a return 0; - 800453e: 2000 movs r0, #0 - 8004540: e7f1 b.n 8004526 8004542: 2000 movs r0, #0 - 8004544: e7ef b.n 8004526 - 8004546: 46c0 nop ; (mov r8, r8) - 8004548: 20000250 .word 0x20000250 - 800454c: 200001ec .word 0x200001ec - 8004550: 20000188 .word 0x20000188 - -08004554 : + 8004544: e7f1 b.n 800452a + 8004546: 2000 movs r0, #0 + 8004548: e7ef b.n 800452a + 800454a: 46c0 nop ; (mov r8, r8) + 800454c: 20000250 .word 0x20000250 + 8004550: 200001ec .word 0x200001ec + 8004554: 20000188 .word 0x20000188 + +08004558 : * @brief Parse given command line * @param line Line string to parse * @retval None */ uint8_t slCanCheckCommand(uint8_t *line) { - 8004554: b530 push {r4, r5, lr} - 8004556: b095 sub sp, #84 ; 0x54 - 8004558: 0004 movs r4, r0 + 8004558: b530 push {r4, r5, lr} + 800455a: b095 sub sp, #84 ; 0x54 + 800455c: 0004 movs r4, r0 uint8_t result = SLCAN_BELL; if (line[0] == 0) - 800455a: 7800 ldrb r0, [r0, #0] - 800455c: 2800 cmp r0, #0 - 800455e: d017 beq.n 8004590 + 800455e: 7800 ldrb r0, [r0, #0] + 8004560: 2800 cmp r0, #0 + 8004562: d017 beq.n 8004594 { return 0; } switch (line[0]) { - 8004560: 3843 subs r0, #67 ; 0x43 - 8004562: b2c3 uxtb r3, r0 - 8004564: 2b33 cmp r3, #51 ; 0x33 - 8004566: d900 bls.n 800456a - 8004568: e1f4 b.n 8004954 - 800456a: 0098 lsls r0, r3, #2 - 800456c: 4bae ldr r3, [pc, #696] ; (8004828 ) - 800456e: 581b ldr r3, [r3, r0] - 8004570: 469f mov pc, r3 + 8004564: 3843 subs r0, #67 ; 0x43 + 8004566: b2c3 uxtb r3, r0 + 8004568: 2b33 cmp r3, #51 ; 0x33 + 800456a: d900 bls.n 800456e + 800456c: e1f4 b.n 8004958 + 800456e: 0098 lsls r0, r3, #2 + 8004570: 4bae ldr r3, [pc, #696] ; (800482c ) + 8004572: 581b ldr r3, [r3, r0] + 8004574: 469f mov pc, r3 case 'a': { if (terminator == SLCAN_CR) - 8004572: 4bae ldr r3, [pc, #696] ; (800482c ) - 8004574: 781b ldrb r3, [r3, #0] - 8004576: 2b0d cmp r3, #13 - 8004578: d00c beq.n 8004594 + 8004576: 4bae ldr r3, [pc, #696] ; (8004830 ) + 8004578: 781b ldrb r3, [r3, #0] + 800457a: 2b0d cmp r3, #13 + 800457c: d00c beq.n 8004598 terminator = SLCAN_LR; else terminator = SLCAN_CR; - 800457a: 220d movs r2, #13 - 800457c: 4bab ldr r3, [pc, #684] ; (800482c ) - 800457e: 701a strb r2, [r3, #0] + 800457e: 220d movs r2, #13 + 8004580: 4bab ldr r3, [pc, #684] ; (8004830 ) + 8004582: 701a strb r2, [r3, #0] result = terminator; - 8004580: 4baa ldr r3, [pc, #680] ; (800482c ) - 8004582: 781d ldrb r5, [r3, #0] + 8004584: 4baa ldr r3, [pc, #680] ; (8004830 ) + 8004586: 781d ldrb r5, [r3, #0] } break; } line[0] = 0; - 8004584: 2300 movs r3, #0 - 8004586: 7023 strb r3, [r4, #0] + 8004588: 2300 movs r3, #0 + 800458a: 7023 strb r3, [r4, #0] slcanSetOutputChar(result); - 8004588: 0028 movs r0, r5 - 800458a: f7ff fe8b bl 80042a4 + 800458c: 0028 movs r0, r5 + 800458e: f7ff fe8b bl 80042a8 return 1; - 800458e: 2001 movs r0, #1 + 8004592: 2001 movs r0, #1 } - 8004590: b015 add sp, #84 ; 0x54 - 8004592: bd30 pop {r4, r5, pc} + 8004594: b015 add sp, #84 ; 0x54 + 8004596: bd30 pop {r4, r5, pc} terminator = SLCAN_LR; - 8004594: 220a movs r2, #10 - 8004596: 4ba5 ldr r3, [pc, #660] ; (800482c ) - 8004598: 701a strb r2, [r3, #0] - 800459a: e7f1 b.n 8004580 + 8004598: 220a movs r2, #10 + 800459a: 4ba5 ldr r3, [pc, #660] ; (8004830 ) + 800459c: 701a strb r2, [r3, #0] + 800459e: e7f1 b.n 8004584 if (state == STATE_CONFIG) - 800459c: 4ba4 ldr r3, [pc, #656] ; (8004830 ) - 800459e: 781b ldrb r3, [r3, #0] - 80045a0: 2b00 cmp r3, #0 - 80045a2: d000 beq.n 80045a6 - 80045a4: e1d8 b.n 8004958 + 80045a0: 4ba4 ldr r3, [pc, #656] ; (8004834 ) + 80045a2: 781b ldrb r3, [r3, #0] + 80045a4: 2b00 cmp r3, #0 + 80045a6: d000 beq.n 80045aa + 80045a8: e1d8 b.n 800495c switch (line[1]) { - 80045a6: 7863 ldrb r3, [r4, #1] - 80045a8: 3b30 subs r3, #48 ; 0x30 - 80045aa: b2da uxtb r2, r3 - 80045ac: 2a09 cmp r2, #9 - 80045ae: d900 bls.n 80045b2 - 80045b0: e1d4 b.n 800495c - 80045b2: 0093 lsls r3, r2, #2 - 80045b4: 4a9f ldr r2, [pc, #636] ; (8004834 ) - 80045b6: 58d3 ldr r3, [r2, r3] - 80045b8: 469f mov pc, r3 + 80045aa: 7863 ldrb r3, [r4, #1] + 80045ac: 3b30 subs r3, #48 ; 0x30 + 80045ae: b2da uxtb r2, r3 + 80045b0: 2a09 cmp r2, #9 + 80045b2: d900 bls.n 80045b6 + 80045b4: e1d4 b.n 8004960 + 80045b6: 0093 lsls r3, r2, #2 + 80045b8: 4a9f ldr r2, [pc, #636] ; (8004838 ) + 80045ba: 58d3 ldr r3, [r2, r3] + 80045bc: 469f mov pc, r3 case '0': slcanSetCANBaudRate(CAN_BR_10K); result = terminator; break; - 80045ba: 2000 movs r0, #0 - 80045bc: f000 fae2 bl 8004b84 - 80045c0: 4b9a ldr r3, [pc, #616] ; (800482c ) - 80045c2: 781d ldrb r5, [r3, #0] - 80045c4: e7de b.n 8004584 + 80045be: 2000 movs r0, #0 + 80045c0: f000 fae2 bl 8004b88 + 80045c4: 4b9a ldr r3, [pc, #616] ; (8004830 ) + 80045c6: 781d ldrb r5, [r3, #0] + 80045c8: e7de b.n 8004588 case '1': slcanSetCANBaudRate(CAN_BR_20K); result = terminator; break; - 80045c6: 2001 movs r0, #1 - 80045c8: f000 fadc bl 8004b84 - 80045cc: 4b97 ldr r3, [pc, #604] ; (800482c ) - 80045ce: 781d ldrb r5, [r3, #0] - 80045d0: e7d8 b.n 8004584 + 80045ca: 2001 movs r0, #1 + 80045cc: f000 fadc bl 8004b88 + 80045d0: 4b97 ldr r3, [pc, #604] ; (8004830 ) + 80045d2: 781d ldrb r5, [r3, #0] + 80045d4: e7d8 b.n 8004588 case '2': slcanSetCANBaudRate(CAN_BR_50K); result = terminator; break; - 80045d2: 2002 movs r0, #2 - 80045d4: f000 fad6 bl 8004b84 - 80045d8: 4b94 ldr r3, [pc, #592] ; (800482c ) - 80045da: 781d ldrb r5, [r3, #0] - 80045dc: e7d2 b.n 8004584 + 80045d6: 2002 movs r0, #2 + 80045d8: f000 fad6 bl 8004b88 + 80045dc: 4b94 ldr r3, [pc, #592] ; (8004830 ) + 80045de: 781d ldrb r5, [r3, #0] + 80045e0: e7d2 b.n 8004588 case '3': slcanSetCANBaudRate(CAN_BR_100K); result = terminator; break; - 80045de: 2003 movs r0, #3 - 80045e0: f000 fad0 bl 8004b84 - 80045e4: 4b91 ldr r3, [pc, #580] ; (800482c ) - 80045e6: 781d ldrb r5, [r3, #0] - 80045e8: e7cc b.n 8004584 + 80045e2: 2003 movs r0, #3 + 80045e4: f000 fad0 bl 8004b88 + 80045e8: 4b91 ldr r3, [pc, #580] ; (8004830 ) + 80045ea: 781d ldrb r5, [r3, #0] + 80045ec: e7cc b.n 8004588 case '4': slcanSetCANBaudRate(CAN_BR_125K); result = terminator; break; - 80045ea: 2004 movs r0, #4 - 80045ec: f000 faca bl 8004b84 - 80045f0: 4b8e ldr r3, [pc, #568] ; (800482c ) - 80045f2: 781d ldrb r5, [r3, #0] - 80045f4: e7c6 b.n 8004584 + 80045ee: 2004 movs r0, #4 + 80045f0: f000 faca bl 8004b88 + 80045f4: 4b8e ldr r3, [pc, #568] ; (8004830 ) + 80045f6: 781d ldrb r5, [r3, #0] + 80045f8: e7c6 b.n 8004588 case '5': slcanSetCANBaudRate(CAN_BR_250K); result = terminator; break; - 80045f6: 2005 movs r0, #5 - 80045f8: f000 fac4 bl 8004b84 - 80045fc: 4b8b ldr r3, [pc, #556] ; (800482c ) - 80045fe: 781d ldrb r5, [r3, #0] - 8004600: e7c0 b.n 8004584 + 80045fa: 2005 movs r0, #5 + 80045fc: f000 fac4 bl 8004b88 + 8004600: 4b8b ldr r3, [pc, #556] ; (8004830 ) + 8004602: 781d ldrb r5, [r3, #0] + 8004604: e7c0 b.n 8004588 case '6': slcanSetCANBaudRate(CAN_BR_500K); result = terminator; break; - 8004602: 2006 movs r0, #6 - 8004604: f000 fabe bl 8004b84 - 8004608: 4b88 ldr r3, [pc, #544] ; (800482c ) - 800460a: 781d ldrb r5, [r3, #0] - 800460c: e7ba b.n 8004584 + 8004606: 2006 movs r0, #6 + 8004608: f000 fabe bl 8004b88 + 800460c: 4b88 ldr r3, [pc, #544] ; (8004830 ) + 800460e: 781d ldrb r5, [r3, #0] + 8004610: e7ba b.n 8004588 case '7': slcanSetCANBaudRate(CAN_BR_800K); result = terminator; break; - 800460e: 2007 movs r0, #7 - 8004610: f000 fab8 bl 8004b84 - 8004614: 4b85 ldr r3, [pc, #532] ; (800482c ) - 8004616: 781d ldrb r5, [r3, #0] - 8004618: e7b4 b.n 8004584 + 8004612: 2007 movs r0, #7 + 8004614: f000 fab8 bl 8004b88 + 8004618: 4b85 ldr r3, [pc, #532] ; (8004830 ) + 800461a: 781d ldrb r5, [r3, #0] + 800461c: e7b4 b.n 8004588 case '8': slcanSetCANBaudRate(CAN_BR_1M); result = terminator; break; - 800461a: 2008 movs r0, #8 - 800461c: f000 fab2 bl 8004b84 - 8004620: 4b82 ldr r3, [pc, #520] ; (800482c ) - 8004622: 781d ldrb r5, [r3, #0] - 8004624: e7ae b.n 8004584 + 800461e: 2008 movs r0, #8 + 8004620: f000 fab2 bl 8004b88 + 8004624: 4b82 ldr r3, [pc, #520] ; (8004830 ) + 8004626: 781d ldrb r5, [r3, #0] + 8004628: e7ae b.n 8004588 case '9': slcanSetCANBaudRate(CAN_BR_83K); result = terminator; break; - 8004626: 2024 movs r0, #36 ; 0x24 - 8004628: f000 faac bl 8004b84 - 800462c: 4b7f ldr r3, [pc, #508] ; (800482c ) - 800462e: 781d ldrb r5, [r3, #0] - 8004630: e7a8 b.n 8004584 + 800462a: 2024 movs r0, #36 ; 0x24 + 800462c: f000 faac bl 8004b88 + 8004630: 4b7f ldr r3, [pc, #508] ; (8004830 ) + 8004632: 781d ldrb r5, [r3, #0] + 8004634: e7a8 b.n 8004588 result = terminator; - 8004632: 4b7e ldr r3, [pc, #504] ; (800482c ) - 8004634: 781d ldrb r5, [r3, #0] + 8004636: 4b7e ldr r3, [pc, #504] ; (8004830 ) + 8004638: 781d ldrb r5, [r3, #0] break; - 8004636: e7a5 b.n 8004584 + 800463a: e7a5 b.n 8004588 if (state == STATE_CONFIG) - 8004638: 4b7d ldr r3, [pc, #500] ; (8004830 ) - 800463a: 781b ldrb r3, [r3, #0] - 800463c: 2b00 cmp r3, #0 - 800463e: d001 beq.n 8004644 + 800463c: 4b7d ldr r3, [pc, #500] ; (8004834 ) + 800463e: 781b ldrb r3, [r3, #0] + 8004640: 2b00 cmp r3, #0 + 8004642: d001 beq.n 8004648 uint8_t result = SLCAN_BELL; - 8004640: 2507 movs r5, #7 - 8004642: e79f b.n 8004584 + 8004644: 2507 movs r5, #7 + 8004646: e79f b.n 8004588 if (parseHex(&line[1], 2, &sjw) && parseHex(&line[3], 2, &bs1) && - 8004644: 1c60 adds r0, r4, #1 - 8004646: aa07 add r2, sp, #28 - 8004648: 2102 movs r1, #2 - 800464a: f7ff fe54 bl 80042f6 - 800464e: 2800 cmp r0, #0 - 8004650: d101 bne.n 8004656 + 8004648: 1c60 adds r0, r4, #1 + 800464a: aa07 add r2, sp, #28 + 800464c: 2102 movs r1, #2 + 800464e: f7ff fe54 bl 80042fa + 8004652: 2800 cmp r0, #0 + 8004654: d101 bne.n 800465a uint8_t result = SLCAN_BELL; - 8004652: 2507 movs r5, #7 - 8004654: e796 b.n 8004584 + 8004656: 2507 movs r5, #7 + 8004658: e796 b.n 8004588 if (parseHex(&line[1], 2, &sjw) && parseHex(&line[3], 2, &bs1) && - 8004656: 1ce0 adds r0, r4, #3 - 8004658: aa08 add r2, sp, #32 - 800465a: 2102 movs r1, #2 - 800465c: f7ff fe4b bl 80042f6 - 8004660: 2800 cmp r0, #0 - 8004662: d101 bne.n 8004668 + 800465a: 1ce0 adds r0, r4, #3 + 800465c: aa08 add r2, sp, #32 + 800465e: 2102 movs r1, #2 + 8004660: f7ff fe4b bl 80042fa + 8004664: 2800 cmp r0, #0 + 8004666: d101 bne.n 800466c uint8_t result = SLCAN_BELL; - 8004664: 2507 movs r5, #7 - 8004666: e78d b.n 8004584 + 8004668: 2507 movs r5, #7 + 800466a: e78d b.n 8004588 parseHex(&line[5], 2, &bs2) && parseHex(&line[7], 4, &pre) ) { - 8004668: 1d60 adds r0, r4, #5 - 800466a: aa09 add r2, sp, #36 ; 0x24 - 800466c: 2102 movs r1, #2 - 800466e: f7ff fe42 bl 80042f6 + 800466c: 1d60 adds r0, r4, #5 + 800466e: aa09 add r2, sp, #36 ; 0x24 + 8004670: 2102 movs r1, #2 + 8004672: f7ff fe42 bl 80042fa if (parseHex(&line[1], 2, &sjw) && parseHex(&line[3], 2, &bs1) && - 8004672: 2800 cmp r0, #0 - 8004674: d101 bne.n 800467a + 8004676: 2800 cmp r0, #0 + 8004678: d101 bne.n 800467e uint8_t result = SLCAN_BELL; - 8004676: 2507 movs r5, #7 - 8004678: e784 b.n 8004584 + 800467a: 2507 movs r5, #7 + 800467c: e784 b.n 8004588 parseHex(&line[5], 2, &bs2) && parseHex(&line[7], 4, &pre) ) { - 800467a: 1de0 adds r0, r4, #7 - 800467c: aa0a add r2, sp, #40 ; 0x28 - 800467e: 2104 movs r1, #4 - 8004680: f7ff fe39 bl 80042f6 - 8004684: 2800 cmp r0, #0 - 8004686: d101 bne.n 800468c + 800467e: 1de0 adds r0, r4, #7 + 8004680: aa0a add r2, sp, #40 ; 0x28 + 8004682: 2104 movs r1, #4 + 8004684: f7ff fe39 bl 80042fa + 8004688: 2800 cmp r0, #0 + 800468a: d101 bne.n 8004690 uint8_t result = SLCAN_BELL; - 8004688: 2507 movs r5, #7 - 800468a: e77b b.n 8004584 + 800468c: 2507 movs r5, #7 + 800468e: e77b b.n 8004588 hcan.Init.SJW = sjw; - 800468c: 4b6a ldr r3, [pc, #424] ; (8004838 ) - 800468e: 9a07 ldr r2, [sp, #28] - 8004690: 60da str r2, [r3, #12] + 8004690: 4b6a ldr r3, [pc, #424] ; (800483c ) + 8004692: 9a07 ldr r2, [sp, #28] + 8004694: 60da str r2, [r3, #12] hcan.Init.BS1 = bs1; - 8004692: 9a08 ldr r2, [sp, #32] - 8004694: 611a str r2, [r3, #16] + 8004696: 9a08 ldr r2, [sp, #32] + 8004698: 611a str r2, [r3, #16] hcan.Init.BS2 = bs2; - 8004696: 9a09 ldr r2, [sp, #36] ; 0x24 - 8004698: 615a str r2, [r3, #20] + 800469a: 9a09 ldr r2, [sp, #36] ; 0x24 + 800469c: 615a str r2, [r3, #20] hcan.Init.Prescaler = pre; - 800469a: 9a0a ldr r2, [sp, #40] ; 0x28 - 800469c: 605a str r2, [r3, #4] + 800469e: 9a0a ldr r2, [sp, #40] ; 0x28 + 80046a0: 605a str r2, [r3, #4] CANInit(); - 800469e: f000 f9b5 bl 8004a0c + 80046a2: f000 f9b5 bl 8004a10 result = terminator; - 80046a2: 4b62 ldr r3, [pc, #392] ; (800482c ) - 80046a4: 781d ldrb r5, [r3, #0] - 80046a6: e76d b.n 8004584 + 80046a6: 4b62 ldr r3, [pc, #392] ; (8004830 ) + 80046a8: 781d ldrb r5, [r3, #0] + 80046aa: e76d b.n 8004588 slcanSetOutputChar('V'); - 80046a8: 2056 movs r0, #86 ; 0x56 - 80046aa: f7ff fdfb bl 80042a4 + 80046ac: 2056 movs r0, #86 ; 0x56 + 80046ae: f7ff fdfb bl 80042a8 slcanSetOutputAsHex(VERSION_HARDWARE_MAJOR); - 80046ae: 2001 movs r0, #1 - 80046b0: f7ff fe17 bl 80042e2 + 80046b2: 2001 movs r0, #1 + 80046b4: f7ff fe17 bl 80042e6 slcanSetOutputAsHex(VERSION_HARDWARE_MINOR); - 80046b4: 2001 movs r0, #1 - 80046b6: f7ff fe14 bl 80042e2 + 80046b8: 2001 movs r0, #1 + 80046ba: f7ff fe14 bl 80042e6 result = terminator; - 80046ba: 4b5c ldr r3, [pc, #368] ; (800482c ) - 80046bc: 781d ldrb r5, [r3, #0] + 80046be: 4b5c ldr r3, [pc, #368] ; (8004830 ) + 80046c0: 781d ldrb r5, [r3, #0] break; - 80046be: e761 b.n 8004584 + 80046c2: e761 b.n 8004588 slcanSetOutputChar('v'); - 80046c0: 2076 movs r0, #118 ; 0x76 - 80046c2: f7ff fdef bl 80042a4 + 80046c4: 2076 movs r0, #118 ; 0x76 + 80046c6: f7ff fdef bl 80042a8 slcanSetOutputAsHex(VERSION_FIRMWARE_MAJOR); - 80046c6: 2004 movs r0, #4 - 80046c8: f7ff fe0b bl 80042e2 + 80046ca: 2004 movs r0, #4 + 80046cc: f7ff fe0b bl 80042e6 slcanSetOutputAsHex(VERSION_FIRMWARE_MINOR); - 80046cc: 2001 movs r0, #1 - 80046ce: f7ff fe08 bl 80042e2 + 80046d0: 2001 movs r0, #1 + 80046d2: f7ff fe08 bl 80042e6 slcanSetOutputChar('h'); - 80046d2: 2068 movs r0, #104 ; 0x68 - 80046d4: f7ff fde6 bl 80042a4 + 80046d6: 2068 movs r0, #104 ; 0x68 + 80046d8: f7ff fde6 bl 80042a8 result = terminator; - 80046d8: 4b54 ldr r3, [pc, #336] ; (800482c ) - 80046da: 781d ldrb r5, [r3, #0] + 80046dc: 4b54 ldr r3, [pc, #336] ; (8004830 ) + 80046de: 781d ldrb r5, [r3, #0] break; - 80046dc: e752 b.n 8004584 + 80046e0: e752 b.n 8004588 slcanSetOutputChar('N'); - 80046de: 204e movs r0, #78 ; 0x4e - 80046e0: f7ff fde0 bl 80042a4 + 80046e2: 204e movs r0, #78 ; 0x4e + 80046e4: f7ff fde0 bl 80042a8 slcanSetOutputAsHex((uint8_t)(serialNumber)); - 80046e4: 4d55 ldr r5, [pc, #340] ; (800483c ) - 80046e6: 6828 ldr r0, [r5, #0] - 80046e8: b2c0 uxtb r0, r0 - 80046ea: f7ff fdfa bl 80042e2 + 80046e8: 4d55 ldr r5, [pc, #340] ; (8004840 ) + 80046ea: 6828 ldr r0, [r5, #0] + 80046ec: b2c0 uxtb r0, r0 + 80046ee: f7ff fdfa bl 80042e6 slcanSetOutputAsHex((uint8_t)(serialNumber>>8)); - 80046ee: 6828 ldr r0, [r5, #0] - 80046f0: 1200 asrs r0, r0, #8 - 80046f2: b2c0 uxtb r0, r0 - 80046f4: f7ff fdf5 bl 80042e2 + 80046f2: 6828 ldr r0, [r5, #0] + 80046f4: 1200 asrs r0, r0, #8 + 80046f6: b2c0 uxtb r0, r0 + 80046f8: f7ff fdf5 bl 80042e6 slcanSetOutputAsHex((uint8_t)(serialNumber>>16)); - 80046f8: 6828 ldr r0, [r5, #0] - 80046fa: 1400 asrs r0, r0, #16 - 80046fc: b2c0 uxtb r0, r0 - 80046fe: f7ff fdf0 bl 80042e2 + 80046fc: 6828 ldr r0, [r5, #0] + 80046fe: 1400 asrs r0, r0, #16 + 8004700: b2c0 uxtb r0, r0 + 8004702: f7ff fdf0 bl 80042e6 slcanSetOutputAsHex((uint8_t)(serialNumber>>24)); - 8004702: 6828 ldr r0, [r5, #0] - 8004704: 0e00 lsrs r0, r0, #24 - 8004706: f7ff fdec bl 80042e2 + 8004706: 6828 ldr r0, [r5, #0] + 8004708: 0e00 lsrs r0, r0, #24 + 800470a: f7ff fdec bl 80042e6 result = terminator; - 800470a: 4b48 ldr r3, [pc, #288] ; (800482c ) - 800470c: 781d ldrb r5, [r3, #0] + 800470e: 4b48 ldr r3, [pc, #288] ; (8004830 ) + 8004710: 781d ldrb r5, [r3, #0] break; - 800470e: e739 b.n 8004584 + 8004712: e739 b.n 8004588 hcan.Init.Mode = CAN_MODE_NORMAL; - 8004710: 2200 movs r2, #0 - 8004712: 4b49 ldr r3, [pc, #292] ; (8004838 ) - 8004714: 609a str r2, [r3, #8] + 8004714: 2200 movs r2, #0 + 8004716: 4b49 ldr r3, [pc, #292] ; (800483c ) + 8004718: 609a str r2, [r3, #8] if(CANInit() == HAL_OK) - 8004716: f000 f979 bl 8004a0c - 800471a: 2800 cmp r0, #0 - 800471c: d001 beq.n 8004722 + 800471a: f000 f979 bl 8004a10 + 800471e: 2800 cmp r0, #0 + 8004720: d001 beq.n 8004726 uint8_t result = SLCAN_BELL; - 800471e: 2507 movs r5, #7 - 8004720: e730 b.n 8004584 + 8004722: 2507 movs r5, #7 + 8004724: e730 b.n 8004588 HAL_NVIC_EnableIRQ(CEC_CAN_IRQn); - 8004722: 301e adds r0, #30 - 8004724: f7fc fa18 bl 8000b58 + 8004726: 301e adds r0, #30 + 8004728: f7fc fa16 bl 8000b58 state = STATE_OPEN; - 8004728: 2202 movs r2, #2 - 800472a: 4b41 ldr r3, [pc, #260] ; (8004830 ) - 800472c: 701a strb r2, [r3, #0] + 800472c: 2202 movs r2, #2 + 800472e: 4b41 ldr r3, [pc, #260] ; (8004834 ) + 8004730: 701a strb r2, [r3, #0] result = terminator; - 800472e: 4b3f ldr r3, [pc, #252] ; (800482c ) - 8004730: 781d ldrb r5, [r3, #0] - 8004732: e727 b.n 8004584 + 8004732: 4b3f ldr r3, [pc, #252] ; (8004830 ) + 8004734: 781d ldrb r5, [r3, #0] + 8004736: e727 b.n 8004588 hcan.Init.Mode = CAN_MODE_LOOPBACK; - 8004734: 2280 movs r2, #128 ; 0x80 - 8004736: 05d2 lsls r2, r2, #23 - 8004738: 4b3f ldr r3, [pc, #252] ; (8004838 ) - 800473a: 609a str r2, [r3, #8] + 8004738: 2280 movs r2, #128 ; 0x80 + 800473a: 05d2 lsls r2, r2, #23 + 800473c: 4b3f ldr r3, [pc, #252] ; (800483c ) + 800473e: 609a str r2, [r3, #8] HAL_NVIC_EnableIRQ(CEC_CAN_IRQn); - 800473c: 201e movs r0, #30 - 800473e: f7fc fa0b bl 8000b58 + 8004740: 201e movs r0, #30 + 8004742: f7fc fa09 bl 8000b58 CANInit(); - 8004742: f000 f963 bl 8004a0c + 8004746: f000 f963 bl 8004a10 state = STATE_OPEN; - 8004746: 2202 movs r2, #2 - 8004748: 4b39 ldr r3, [pc, #228] ; (8004830 ) - 800474a: 701a strb r2, [r3, #0] + 800474a: 2202 movs r2, #2 + 800474c: 4b39 ldr r3, [pc, #228] ; (8004834 ) + 800474e: 701a strb r2, [r3, #0] result = terminator; - 800474c: 4b37 ldr r3, [pc, #220] ; (800482c ) - 800474e: 781d ldrb r5, [r3, #0] + 8004750: 4b37 ldr r3, [pc, #220] ; (8004830 ) + 8004752: 781d ldrb r5, [r3, #0] break; - 8004750: e718 b.n 8004584 + 8004754: e718 b.n 8004588 if (state == STATE_CONFIG) - 8004752: 4b37 ldr r3, [pc, #220] ; (8004830 ) - 8004754: 781b ldrb r3, [r3, #0] - 8004756: 2b00 cmp r3, #0 - 8004758: d001 beq.n 800475e + 8004756: 4b37 ldr r3, [pc, #220] ; (8004834 ) + 8004758: 781b ldrb r3, [r3, #0] + 800475a: 2b00 cmp r3, #0 + 800475c: d001 beq.n 8004762 uint8_t result = SLCAN_BELL; - 800475a: 2507 movs r5, #7 - 800475c: e712 b.n 8004584 + 800475e: 2507 movs r5, #7 + 8004760: e712 b.n 8004588 hcan.Init.Mode = CAN_MODE_SILENT; - 800475e: 2280 movs r2, #128 ; 0x80 - 8004760: 0612 lsls r2, r2, #24 - 8004762: 4b35 ldr r3, [pc, #212] ; (8004838 ) - 8004764: 609a str r2, [r3, #8] + 8004762: 2280 movs r2, #128 ; 0x80 + 8004764: 0612 lsls r2, r2, #24 + 8004766: 4b35 ldr r3, [pc, #212] ; (800483c ) + 8004768: 609a str r2, [r3, #8] HAL_NVIC_EnableIRQ(CEC_CAN_IRQn); - 8004766: 201e movs r0, #30 - 8004768: f7fc f9f6 bl 8000b58 + 800476a: 201e movs r0, #30 + 800476c: f7fc f9f4 bl 8000b58 CANInit(); - 800476c: f000 f94e bl 8004a0c + 8004770: f000 f94e bl 8004a10 state = STATE_LISTEN; - 8004770: 2201 movs r2, #1 - 8004772: 4b2f ldr r3, [pc, #188] ; (8004830 ) - 8004774: 701a strb r2, [r3, #0] + 8004774: 2201 movs r2, #1 + 8004776: 4b2f ldr r3, [pc, #188] ; (8004834 ) + 8004778: 701a strb r2, [r3, #0] result = terminator; - 8004776: 4b2d ldr r3, [pc, #180] ; (800482c ) - 8004778: 781d ldrb r5, [r3, #0] - 800477a: e703 b.n 8004584 + 800477a: 4b2d ldr r3, [pc, #180] ; (8004830 ) + 800477c: 781d ldrb r5, [r3, #0] + 800477e: e703 b.n 8004588 if(UART_FLAG == 0) - 800477c: 4b30 ldr r3, [pc, #192] ; (8004840 ) - 800477e: 781b ldrb r3, [r3, #0] - 8004780: 2b00 cmp r3, #0 - 8004782: d001 beq.n 8004788 + 8004780: 4b30 ldr r3, [pc, #192] ; (8004844 ) + 8004782: 781b ldrb r3, [r3, #0] + 8004784: 2b00 cmp r3, #0 + 8004786: d001 beq.n 800478c uint8_t result = SLCAN_BELL; - 8004784: 2507 movs r5, #7 - 8004786: e6fd b.n 8004584 + 8004788: 2507 movs r5, #7 + 800478a: e6fd b.n 8004588 HAL_NVIC_DisableIRQ(CEC_CAN_IRQn); - 8004788: 201e movs r0, #30 - 800478a: f7fc f9ef bl 8000b6c + 800478c: 201e movs r0, #30 + 800478e: f7fc f9ed bl 8000b6c state = STATE_CONFIG; - 800478e: 2200 movs r2, #0 - 8004790: 4b27 ldr r3, [pc, #156] ; (8004830 ) - 8004792: 701a strb r2, [r3, #0] + 8004792: 2200 movs r2, #0 + 8004794: 4b27 ldr r3, [pc, #156] ; (8004834 ) + 8004796: 701a strb r2, [r3, #0] result = terminator; - 8004794: 4b25 ldr r3, [pc, #148] ; (800482c ) - 8004796: 781d ldrb r5, [r3, #0] - 8004798: e6f4 b.n 8004584 + 8004798: 4b25 ldr r3, [pc, #148] ; (8004830 ) + 800479a: 781d ldrb r5, [r3, #0] + 800479c: e6f4 b.n 8004588 if (state == STATE_OPEN) - 800479a: 4b25 ldr r3, [pc, #148] ; (8004830 ) - 800479c: 781b ldrb r3, [r3, #0] - 800479e: 2b02 cmp r3, #2 - 80047a0: d001 beq.n 80047a6 + 800479e: 4b25 ldr r3, [pc, #148] ; (8004834 ) + 80047a0: 781b ldrb r3, [r3, #0] + 80047a2: 2b02 cmp r3, #2 + 80047a4: d001 beq.n 80047aa uint8_t result = SLCAN_BELL; - 80047a2: 2507 movs r5, #7 - 80047a4: e6ee b.n 8004584 + 80047a6: 2507 movs r5, #7 + 80047a8: e6ee b.n 8004588 if (transmitStd(line) == HAL_OK) { - 80047a6: 0020 movs r0, r4 - 80047a8: f7ff fdd6 bl 8004358 - 80047ac: 2800 cmp r0, #0 - 80047ae: d000 beq.n 80047b2 - 80047b0: e0d6 b.n 8004960 + 80047aa: 0020 movs r0, r4 + 80047ac: f7ff fdd6 bl 800435c + 80047b0: 2800 cmp r0, #0 + 80047b2: d000 beq.n 80047b6 + 80047b4: e0d6 b.n 8004964 if (line[0] < 'Z') slcanSetOutputChar('Z'); - 80047b2: 7823 ldrb r3, [r4, #0] - 80047b4: 2b59 cmp r3, #89 ; 0x59 - 80047b6: d805 bhi.n 80047c4 - 80047b8: 305a adds r0, #90 ; 0x5a - 80047ba: f7ff fd73 bl 80042a4 + 80047b6: 7823 ldrb r3, [r4, #0] + 80047b8: 2b59 cmp r3, #89 ; 0x59 + 80047ba: d805 bhi.n 80047c8 + 80047bc: 305a adds r0, #90 ; 0x5a + 80047be: f7ff fd73 bl 80042a8 result = terminator; - 80047be: 4b1b ldr r3, [pc, #108] ; (800482c ) - 80047c0: 781d ldrb r5, [r3, #0] - 80047c2: e6df b.n 8004584 + 80047c2: 4b1b ldr r3, [pc, #108] ; (8004830 ) + 80047c4: 781d ldrb r5, [r3, #0] + 80047c6: e6df b.n 8004588 else slcanSetOutputChar('z'); - 80047c4: 207a movs r0, #122 ; 0x7a - 80047c6: f7ff fd6d bl 80042a4 - 80047ca: e7f8 b.n 80047be + 80047c8: 207a movs r0, #122 ; 0x7a + 80047ca: f7ff fd6d bl 80042a8 + 80047ce: e7f8 b.n 80047c2 unsigned char status = HAL_CAN_GetError(&hcan); - 80047cc: 481a ldr r0, [pc, #104] ; (8004838 ) - 80047ce: f7fc f98f bl 8000af0 - 80047d2: b2c5 uxtb r5, r0 + 80047d0: 481a ldr r0, [pc, #104] ; (800483c ) + 80047d2: f7fc f98d bl 8000af0 + 80047d6: b2c5 uxtb r5, r0 slcanSetOutputChar('F'); - 80047d4: 2046 movs r0, #70 ; 0x46 - 80047d6: f7ff fd65 bl 80042a4 + 80047d8: 2046 movs r0, #70 ; 0x46 + 80047da: f7ff fd65 bl 80042a8 slcanSetOutputAsHex(status); - 80047da: 0028 movs r0, r5 - 80047dc: f7ff fd81 bl 80042e2 + 80047de: 0028 movs r0, r5 + 80047e0: f7ff fd81 bl 80042e6 result = terminator; - 80047e0: 4b12 ldr r3, [pc, #72] ; (800482c ) - 80047e2: 781d ldrb r5, [r3, #0] + 80047e4: 4b12 ldr r3, [pc, #72] ; (8004830 ) + 80047e6: 781d ldrb r5, [r3, #0] break; - 80047e4: e6ce b.n 8004584 + 80047e8: e6ce b.n 8004588 if (parseHex(&line[1], 1, &stamping)) { - 80047e6: 1c60 adds r0, r4, #1 - 80047e8: aa0a add r2, sp, #40 ; 0x28 - 80047ea: 2101 movs r1, #1 - 80047ec: f7ff fd83 bl 80042f6 - 80047f0: 2800 cmp r0, #0 - 80047f2: d002 beq.n 80047fa + 80047ea: 1c60 adds r0, r4, #1 + 80047ec: aa0a add r2, sp, #40 ; 0x28 + 80047ee: 2101 movs r1, #1 + 80047f0: f7ff fd83 bl 80042fa + 80047f4: 2800 cmp r0, #0 + 80047f6: d002 beq.n 80047fe result = terminator; - 80047f4: 4b0d ldr r3, [pc, #52] ; (800482c ) - 80047f6: 781d ldrb r5, [r3, #0] - 80047f8: e6c4 b.n 8004584 + 80047f8: 4b0d ldr r3, [pc, #52] ; (8004830 ) + 80047fa: 781d ldrb r5, [r3, #0] + 80047fc: e6c4 b.n 8004588 uint8_t result = SLCAN_BELL; - 80047fa: 2507 movs r5, #7 + 80047fe: 2507 movs r5, #7 break; - 80047fc: e6c2 b.n 8004584 + 8004800: e6c2 b.n 8004588 if (line[1] == 'd') // disable all filtering - 80047fe: 7863 ldrb r3, [r4, #1] - 8004800: 2b64 cmp r3, #100 ; 0x64 - 8004802: d008 beq.n 8004816 + 8004802: 7863 ldrb r3, [r4, #1] + 8004804: 2b64 cmp r3, #100 ; 0x64 + 8004806: d008 beq.n 800481a if (!parseHex(&line[1], 2, &n)) break; - 8004804: 1c60 adds r0, r4, #1 - 8004806: aa03 add r2, sp, #12 - 8004808: 2102 movs r1, #2 - 800480a: f7ff fd74 bl 80042f6 - 800480e: 2800 cmp r0, #0 - 8004810: d118 bne.n 8004844 + 8004808: 1c60 adds r0, r4, #1 + 800480a: aa03 add r2, sp, #12 + 800480c: 2102 movs r1, #2 + 800480e: f7ff fd74 bl 80042fa + 8004812: 2800 cmp r0, #0 + 8004814: d118 bne.n 8004848 uint8_t result = SLCAN_BELL; - 8004812: 2507 movs r5, #7 - 8004814: e6b6 b.n 8004584 + 8004816: 2507 movs r5, #7 + 8004818: e6b6 b.n 8004588 slcanClearAllFilters(); - 8004816: f000 f909 bl 8004a2c + 800481a: f000 f909 bl 8004a30 result = terminator; - 800481a: 4b04 ldr r3, [pc, #16] ; (800482c ) - 800481c: 781d ldrb r5, [r3, #0] + 800481e: 4b04 ldr r3, [pc, #16] ; (8004830 ) + 8004820: 781d ldrb r5, [r3, #0] slcanSetOutputChar('M'); - 800481e: 204d movs r0, #77 ; 0x4d - 8004820: f7ff fd40 bl 80042a4 - 8004824: e6ae b.n 8004584 - 8004826: 46c0 nop ; (mov r8, r8) - 8004828: 08005494 .word 0x08005494 - 800482c: 20000114 .word 0x20000114 - 8004830: 20000252 .word 0x20000252 - 8004834: 08005564 .word 0x08005564 - 8004838: 200004f0 .word 0x200004f0 - 800483c: 2000059c .word 0x2000059c - 8004840: 20000185 .word 0x20000185 + 8004822: 204d movs r0, #77 ; 0x4d + 8004824: f7ff fd40 bl 80042a8 + 8004828: e6ae b.n 8004588 + 800482a: 46c0 nop ; (mov r8, r8) + 800482c: 08005498 .word 0x08005498 + 8004830: 20000114 .word 0x20000114 + 8004834: 20000252 .word 0x20000252 + 8004838: 08005568 .word 0x08005568 + 800483c: 200004f0 .word 0x200004f0 + 8004840: 2000059c .word 0x2000059c + 8004844: 20000185 .word 0x20000185 if (!parseHex(&line[3], 2, &b)) break; - 8004844: 1ce0 adds r0, r4, #3 - 8004846: aa04 add r2, sp, #16 - 8004848: 2102 movs r1, #2 - 800484a: f7ff fd54 bl 80042f6 - 800484e: 2800 cmp r0, #0 - 8004850: d0df beq.n 8004812 + 8004848: 1ce0 adds r0, r4, #3 + 800484a: aa04 add r2, sp, #16 + 800484c: 2102 movs r1, #2 + 800484e: f7ff fd54 bl 80042fa + 8004852: 2800 cmp r0, #0 + 8004854: d0df beq.n 8004816 if (!parseHex(&line[5], 1, &fflags.reg)) break; - 8004852: 1d60 adds r0, r4, #5 - 8004854: aa05 add r2, sp, #20 - 8004856: 2101 movs r1, #1 - 8004858: f7ff fd4d bl 80042f6 - 800485c: 2800 cmp r0, #0 - 800485e: d0d8 beq.n 8004812 + 8004856: 1d60 adds r0, r4, #5 + 8004858: aa05 add r2, sp, #20 + 800485a: 2101 movs r1, #1 + 800485c: f7ff fd4d bl 80042fa + 8004860: 2800 cmp r0, #0 + 8004862: d0d8 beq.n 8004816 if (!parseHex(&line[6], 8, &id)) break; - 8004860: 1da0 adds r0, r4, #6 - 8004862: aa08 add r2, sp, #32 - 8004864: 2108 movs r1, #8 - 8004866: f7ff fd46 bl 80042f6 - 800486a: 2800 cmp r0, #0 - 800486c: d0d1 beq.n 8004812 + 8004864: 1da0 adds r0, r4, #6 + 8004866: aa08 add r2, sp, #32 + 8004868: 2108 movs r1, #8 + 800486a: f7ff fd46 bl 80042fa + 800486e: 2800 cmp r0, #0 + 8004870: d0d1 beq.n 8004816 if (!parseHex(&line[14], 1, &idflags.reg)) break; - 800486e: aa06 add r2, sp, #24 - 8004870: 2101 movs r1, #1 - 8004872: 0020 movs r0, r4 - 8004874: 300e adds r0, #14 - 8004876: f7ff fd3e bl 80042f6 - 800487a: 2800 cmp r0, #0 - 800487c: d0c9 beq.n 8004812 + 8004872: aa06 add r2, sp, #24 + 8004874: 2101 movs r1, #1 + 8004876: 0020 movs r0, r4 + 8004878: 300e adds r0, #14 + 800487a: f7ff fd3e bl 80042fa + 800487e: 2800 cmp r0, #0 + 8004880: d0c9 beq.n 8004816 if (!parseHex(&line[15], 8, &mask)) break; - 800487e: aa09 add r2, sp, #36 ; 0x24 - 8004880: 2108 movs r1, #8 - 8004882: 0020 movs r0, r4 - 8004884: 300f adds r0, #15 - 8004886: f7ff fd36 bl 80042f6 - 800488a: 2800 cmp r0, #0 - 800488c: d0c1 beq.n 8004812 + 8004882: aa09 add r2, sp, #36 ; 0x24 + 8004884: 2108 movs r1, #8 + 8004886: 0020 movs r0, r4 + 8004888: 300f adds r0, #15 + 800488a: f7ff fd36 bl 80042fa + 800488e: 2800 cmp r0, #0 + 8004890: d0c1 beq.n 8004816 if (!parseHex(&line[23], 1, &maskflags.reg)) break; - 800488e: aa07 add r2, sp, #28 - 8004890: 2101 movs r1, #1 - 8004892: 0020 movs r0, r4 - 8004894: 3017 adds r0, #23 - 8004896: f7ff fd2e bl 80042f6 - 800489a: 2800 cmp r0, #0 - 800489c: d0b9 beq.n 8004812 + 8004892: aa07 add r2, sp, #28 + 8004894: 2101 movs r1, #1 + 8004896: 0020 movs r0, r4 + 8004898: 3017 adds r0, #23 + 800489a: f7ff fd2e bl 80042fa + 800489e: 2800 cmp r0, #0 + 80048a0: d0b9 beq.n 8004816 if (fflags.bScale == CAN_FILTERSCALE_32BIT) - 800489e: ab05 add r3, sp, #20 - 80048a0: 781b ldrb r3, [r3, #0] - 80048a2: 075b lsls r3, r3, #29 - 80048a4: d531 bpl.n 800490a + 80048a2: ab05 add r3, sp, #20 + 80048a4: 781b ldrb r3, [r3, #0] + 80048a6: 075b lsls r3, r3, #29 + 80048a8: d531 bpl.n 800490e freg = slcanFillIdRegister32(idflags, id); - 80048a6: 9908 ldr r1, [sp, #32] - 80048a8: 9806 ldr r0, [sp, #24] - 80048aa: f000 f8d9 bl 8004a60 - 80048ae: 9001 str r0, [sp, #4] + 80048aa: 9908 ldr r1, [sp, #32] + 80048ac: 9806 ldr r0, [sp, #24] + 80048ae: f000 f8d9 bl 8004a64 + 80048b2: 9001 str r0, [sp, #4] mreg = slcanFillIdRegister32(maskflags, mask); - 80048b0: 9909 ldr r1, [sp, #36] ; 0x24 - 80048b2: 9807 ldr r0, [sp, #28] - 80048b4: f000 f8d4 bl 8004a60 - 80048b8: 9002 str r0, [sp, #8] + 80048b4: 9909 ldr r1, [sp, #36] ; 0x24 + 80048b6: 9807 ldr r0, [sp, #28] + 80048b8: f000 f8d4 bl 8004a64 + 80048bc: 9002 str r0, [sp, #8] sFilterConfig.FilterNumber = n; - 80048ba: 9b03 ldr r3, [sp, #12] - 80048bc: 930f str r3, [sp, #60] ; 0x3c + 80048be: 9b03 ldr r3, [sp, #12] + 80048c0: 930f str r3, [sp, #60] ; 0x3c sFilterConfig.BankNumber = b; - 80048be: 9b04 ldr r3, [sp, #16] - 80048c0: 9313 str r3, [sp, #76] ; 0x4c + 80048c2: 9b04 ldr r3, [sp, #16] + 80048c4: 9313 str r3, [sp, #76] ; 0x4c sFilterConfig.FilterActivation = fflags.bFilterActivation; // ENABLE == 1 - 80048c2: ab05 add r3, sp, #20 - 80048c4: 781b ldrb r3, [r3, #0] - 80048c6: 07da lsls r2, r3, #31 - 80048c8: 0fd2 lsrs r2, r2, #31 - 80048ca: 9212 str r2, [sp, #72] ; 0x48 + 80048c6: ab05 add r3, sp, #20 + 80048c8: 781b ldrb r3, [r3, #0] + 80048ca: 07da lsls r2, r3, #31 + 80048cc: 0fd2 lsrs r2, r2, #31 + 80048ce: 9212 str r2, [sp, #72] ; 0x48 sFilterConfig.FilterMode = fflags.bMode; // CAN_FILTERMODE_IDLIST == 1 - 80048cc: 079a lsls r2, r3, #30 - 80048ce: 0fd2 lsrs r2, r2, #31 - 80048d0: 9210 str r2, [sp, #64] ; 0x40 + 80048d0: 079a lsls r2, r3, #30 + 80048d2: 0fd2 lsrs r2, r2, #31 + 80048d4: 9210 str r2, [sp, #64] ; 0x40 sFilterConfig.FilterScale = fflags.bScale; // CAN_FILTERSCALE_32BIT == 1 - 80048d2: 075a lsls r2, r3, #29 - 80048d4: 0fd2 lsrs r2, r2, #31 - 80048d6: 9211 str r2, [sp, #68] ; 0x44 + 80048d6: 075a lsls r2, r3, #29 + 80048d8: 0fd2 lsrs r2, r2, #31 + 80048da: 9211 str r2, [sp, #68] ; 0x44 sFilterConfig.FilterFIFOAssignment = fflags.bFIFO; - 80048d8: 071b lsls r3, r3, #28 - 80048da: 0fdb lsrs r3, r3, #31 - 80048dc: 930e str r3, [sp, #56] ; 0x38 + 80048dc: 071b lsls r3, r3, #28 + 80048de: 0fdb lsrs r3, r3, #31 + 80048e0: 930e str r3, [sp, #56] ; 0x38 sFilterConfig.FilterIdHigh = freg.h.reg; - 80048de: ab01 add r3, sp, #4 - 80048e0: 881a ldrh r2, [r3, #0] - 80048e2: 920a str r2, [sp, #40] ; 0x28 + 80048e2: ab01 add r3, sp, #4 + 80048e4: 881a ldrh r2, [r3, #0] + 80048e6: 920a str r2, [sp, #40] ; 0x28 sFilterConfig.FilterIdLow = freg.l.reg; - 80048e4: 885b ldrh r3, [r3, #2] - 80048e6: 930b str r3, [sp, #44] ; 0x2c + 80048e8: 885b ldrh r3, [r3, #2] + 80048ea: 930b str r3, [sp, #44] ; 0x2c sFilterConfig.FilterMaskIdHigh = mreg.h.reg; - 80048e8: ab02 add r3, sp, #8 - 80048ea: 881a ldrh r2, [r3, #0] - 80048ec: 920c str r2, [sp, #48] ; 0x30 + 80048ec: ab02 add r3, sp, #8 + 80048ee: 881a ldrh r2, [r3, #0] + 80048f0: 920c str r2, [sp, #48] ; 0x30 sFilterConfig.FilterMaskIdLow = mreg.l.reg; - 80048ee: 885b ldrh r3, [r3, #2] - 80048f0: 930d str r3, [sp, #52] ; 0x34 + 80048f2: 885b ldrh r3, [r3, #2] + 80048f4: 930d str r3, [sp, #52] ; 0x34 slcanSetOutputChar('M'); - 80048f2: 204d movs r0, #77 ; 0x4d - 80048f4: f7ff fcd6 bl 80042a4 + 80048f6: 204d movs r0, #77 ; 0x4d + 80048f8: f7ff fcd6 bl 80042a8 if (HAL_CAN_ConfigFilter(&hcan, &sFilterConfig) == HAL_OK) - 80048f8: a90a add r1, sp, #40 ; 0x28 - 80048fa: 481a ldr r0, [pc, #104] ; (8004964 ) - 80048fc: f7fb fcee bl 80002dc - 8004900: 2800 cmp r0, #0 - 8004902: d10d bne.n 8004920 + 80048fc: a90a add r1, sp, #40 ; 0x28 + 80048fe: 481a ldr r0, [pc, #104] ; (8004968 ) + 8004900: f7fb fcec bl 80002dc + 8004904: 2800 cmp r0, #0 + 8004906: d10d bne.n 8004924 result = terminator; - 8004904: 4b18 ldr r3, [pc, #96] ; (8004968 ) - 8004906: 781d ldrb r5, [r3, #0] - 8004908: e63c b.n 8004584 + 8004908: 4b18 ldr r3, [pc, #96] ; (800496c ) + 800490a: 781d ldrb r5, [r3, #0] + 800490c: e63c b.n 8004588 freg = slcanFillIdRegister16(idflags, id); - 800490a: 9908 ldr r1, [sp, #32] - 800490c: 9806 ldr r0, [sp, #24] - 800490e: f000 f8e1 bl 8004ad4 - 8004912: 9001 str r0, [sp, #4] + 800490e: 9908 ldr r1, [sp, #32] + 8004910: 9806 ldr r0, [sp, #24] + 8004912: f000 f8e1 bl 8004ad8 + 8004916: 9001 str r0, [sp, #4] mreg = slcanFillIdRegister16(maskflags, mask); - 8004914: 9909 ldr r1, [sp, #36] ; 0x24 - 8004916: 9807 ldr r0, [sp, #28] - 8004918: f000 f8dc bl 8004ad4 - 800491c: 9002 str r0, [sp, #8] - 800491e: e7cc b.n 80048ba + 8004918: 9909 ldr r1, [sp, #36] ; 0x24 + 800491a: 9807 ldr r0, [sp, #28] + 800491c: f000 f8dc bl 8004ad8 + 8004920: 9002 str r0, [sp, #8] + 8004922: e7cc b.n 80048be uint8_t result = SLCAN_BELL; - 8004920: 2507 movs r5, #7 - 8004922: e62f b.n 8004584 + 8004924: 2507 movs r5, #7 + 8004926: e62f b.n 8004588 if ((line[1] == 'o') && (line[2] == 'o') && (line[3] == 't')){ - 8004924: 7863 ldrb r3, [r4, #1] - 8004926: 2b6f cmp r3, #111 ; 0x6f - 8004928: d001 beq.n 800492e + 8004928: 7863 ldrb r3, [r4, #1] + 800492a: 2b6f cmp r3, #111 ; 0x6f + 800492c: d001 beq.n 8004932 uint8_t result = SLCAN_BELL; - 800492a: 2507 movs r5, #7 - 800492c: e62a b.n 8004584 + 800492e: 2507 movs r5, #7 + 8004930: e62a b.n 8004588 if ((line[1] == 'o') && (line[2] == 'o') && (line[3] == 't')){ - 800492e: 78a3 ldrb r3, [r4, #2] - 8004930: 2b6f cmp r3, #111 ; 0x6f - 8004932: d001 beq.n 8004938 + 8004932: 78a3 ldrb r3, [r4, #2] + 8004934: 2b6f cmp r3, #111 ; 0x6f + 8004936: d001 beq.n 800493c uint8_t result = SLCAN_BELL; - 8004934: 2507 movs r5, #7 - 8004936: e625 b.n 8004584 + 8004938: 2507 movs r5, #7 + 800493a: e625 b.n 8004588 if ((line[1] == 'o') && (line[2] == 'o') && (line[3] == 't')){ - 8004938: 78e3 ldrb r3, [r4, #3] - 800493a: 2b74 cmp r3, #116 ; 0x74 - 800493c: d001 beq.n 8004942 + 800493c: 78e3 ldrb r3, [r4, #3] + 800493e: 2b74 cmp r3, #116 ; 0x74 + 8004940: d001 beq.n 8004946 uint8_t result = SLCAN_BELL; - 800493e: 2507 movs r5, #7 - 8004940: e620 b.n 8004584 + 8004942: 2507 movs r5, #7 + 8004944: e620 b.n 8004588 line[0] = 0; - 8004942: 2300 movs r3, #0 - 8004944: 7023 strb r3, [r4, #0] + 8004946: 2300 movs r3, #0 + 8004948: 7023 strb r3, [r4, #0] line[1] = 0; - 8004946: 7063 strb r3, [r4, #1] + 800494a: 7063 strb r3, [r4, #1] line[2] = 0; - 8004948: 70a3 strb r3, [r4, #2] + 800494c: 70a3 strb r3, [r4, #2] line[3] = 0; - 800494a: 70e3 strb r3, [r4, #3] + 800494e: 70e3 strb r3, [r4, #3] RebootToBootloader(); - 800494c: f7ff face bl 8003eec + 8004950: f7ff facc bl 8003eec uint8_t result = SLCAN_BELL; - 8004950: 2507 movs r5, #7 - 8004952: e617 b.n 8004584 8004954: 2507 movs r5, #7 - 8004956: e615 b.n 8004584 + 8004956: e617 b.n 8004588 8004958: 2507 movs r5, #7 - 800495a: e613 b.n 8004584 + 800495a: e615 b.n 8004588 800495c: 2507 movs r5, #7 - 800495e: e611 b.n 8004584 + 800495e: e613 b.n 8004588 8004960: 2507 movs r5, #7 - 8004962: e60f b.n 8004584 - 8004964: 200004f0 .word 0x200004f0 - 8004968: 20000114 .word 0x20000114 + 8004962: e611 b.n 8004588 + 8004964: 2507 movs r5, #7 + 8004966: e60f b.n 8004588 + 8004968: 200004f0 .word 0x200004f0 + 800496c: 20000114 .word 0x20000114 -0800496c : +08004970 : * @param none * @retval slcan state */ uint8_t slcan_getState() { return state; - 800496c: 4b01 ldr r3, [pc, #4] ; (8004974 ) - 800496e: 7818 ldrb r0, [r3, #0] + 8004970: 4b01 ldr r3, [pc, #4] ; (8004978 ) + 8004972: 7818 ldrb r0, [r3, #0] } - 8004970: 4770 bx lr - 8004972: 46c0 nop ; (mov r8, r8) - 8004974: 20000252 .word 0x20000252 + 8004974: 4770 bx lr + 8004976: 46c0 nop ; (mov r8, r8) + 8004978: 20000252 .word 0x20000252 -08004978 : +0800497c : * @param canmsg Pointer to can message * step Current step * @retval Next character to print out */ uint8_t slcanReciveCanFrame(CanRxMsgTypeDef *pRxMsg) { - 8004978: b570 push {r4, r5, r6, lr} - 800497a: 0005 movs r5, r0 + 800497c: b570 push {r4, r5, r6, lr} + 800497e: 0005 movs r5, r0 uint8_t i; // type if (pRxMsg->IDE == CAN_ID_EXT) { - 800497c: 6883 ldr r3, [r0, #8] - 800497e: 2b04 cmp r3, #4 - 8004980: d018 beq.n 80049b4 + 8004980: 6883 ldr r3, [r0, #8] + 8004982: 2b04 cmp r3, #4 + 8004984: d018 beq.n 80049b8 { slcanSetOutputAsHex(((uint8_t*)&pRxMsg->ExtId)[i - 1]); } } else { if (pRxMsg->RTR == CAN_RTR_REMOTE) - 8004982: 68c3 ldr r3, [r0, #12] - 8004984: 2b02 cmp r3, #2 - 8004986: d02a beq.n 80049de + 8004986: 68c3 ldr r3, [r0, #12] + 8004988: 2b02 cmp r3, #2 + 800498a: d02a beq.n 80049e2 { slcanSetOutputChar('r'); } else { slcanSetOutputChar('t'); - 8004988: 2074 movs r0, #116 ; 0x74 - 800498a: f7ff fc8b bl 80042a4 + 800498c: 2074 movs r0, #116 ; 0x74 + 800498e: f7ff fc8b bl 80042a8 } //id slCanSendNibble(((uint8_t*)&pRxMsg->StdId)[1] & 0x0F); - 800498e: 786b ldrb r3, [r5, #1] - 8004990: 200f movs r0, #15 - 8004992: 4018 ands r0, r3 - 8004994: f7ff fc9a bl 80042cc + 8004992: 786b ldrb r3, [r5, #1] + 8004994: 200f movs r0, #15 + 8004996: 4018 ands r0, r3 + 8004998: f7ff fc9a bl 80042d0 slcanSetOutputAsHex(((uint8_t*)&pRxMsg->StdId)[0]); - 8004998: 7828 ldrb r0, [r5, #0] - 800499a: f7ff fca2 bl 80042e2 + 800499c: 7828 ldrb r0, [r5, #0] + 800499e: f7ff fca2 bl 80042e6 } // length slCanSendNibble(pRxMsg->DLC); - 800499e: 7c28 ldrb r0, [r5, #16] - 80049a0: f7ff fc94 bl 80042cc + 80049a2: 7c28 ldrb r0, [r5, #16] + 80049a4: f7ff fc94 bl 80042d0 //data if ((pRxMsg->DLC > 0) && (pRxMsg->RTR != CAN_RTR_REMOTE)) - 80049a4: 692b ldr r3, [r5, #16] - 80049a6: 2b00 cmp r3, #0 - 80049a8: d026 beq.n 80049f8 - 80049aa: 68eb ldr r3, [r5, #12] - 80049ac: 2b02 cmp r3, #2 - 80049ae: d023 beq.n 80049f8 - 80049b0: 2400 movs r4, #0 - 80049b2: e01e b.n 80049f2 + 80049a8: 692b ldr r3, [r5, #16] + 80049aa: 2b00 cmp r3, #0 + 80049ac: d026 beq.n 80049fc + 80049ae: 68eb ldr r3, [r5, #12] + 80049b0: 2b02 cmp r3, #2 + 80049b2: d023 beq.n 80049fc + 80049b4: 2400 movs r4, #0 + 80049b6: e01e b.n 80049f6 if (pRxMsg->RTR == CAN_RTR_REMOTE) - 80049b4: 68c3 ldr r3, [r0, #12] - 80049b6: 2b02 cmp r3, #2 - 80049b8: d004 beq.n 80049c4 + 80049b8: 68c3 ldr r3, [r0, #12] + 80049ba: 2b02 cmp r3, #2 + 80049bc: d004 beq.n 80049c8 slcanSetOutputChar('T'); - 80049ba: 2054 movs r0, #84 ; 0x54 - 80049bc: f7ff fc72 bl 80042a4 + 80049be: 2054 movs r0, #84 ; 0x54 + 80049c0: f7ff fc72 bl 80042a8 { - 80049c0: 2404 movs r4, #4 - 80049c2: e009 b.n 80049d8 + 80049c4: 2404 movs r4, #4 + 80049c6: e009 b.n 80049dc slcanSetOutputChar('R'); - 80049c4: 2052 movs r0, #82 ; 0x52 - 80049c6: f7ff fc6d bl 80042a4 - 80049ca: e7f9 b.n 80049c0 + 80049c8: 2052 movs r0, #82 ; 0x52 + 80049ca: f7ff fc6d bl 80042a8 + 80049ce: e7f9 b.n 80049c4 slcanSetOutputAsHex(((uint8_t*)&pRxMsg->ExtId)[i - 1]); - 80049cc: 1d2a adds r2, r5, #4 - 80049ce: 3c01 subs r4, #1 - 80049d0: 5d10 ldrb r0, [r2, r4] - 80049d2: f7ff fc86 bl 80042e2 + 80049d0: 1d2a adds r2, r5, #4 + 80049d2: 3c01 subs r4, #1 + 80049d4: 5d10 ldrb r0, [r2, r4] + 80049d6: f7ff fc86 bl 80042e6 for (i = 4; i != 0; i--) - 80049d6: b2e4 uxtb r4, r4 - 80049d8: 2c00 cmp r4, #0 - 80049da: d1f7 bne.n 80049cc - 80049dc: e7df b.n 800499e + 80049da: b2e4 uxtb r4, r4 + 80049dc: 2c00 cmp r4, #0 + 80049de: d1f7 bne.n 80049d0 + 80049e0: e7df b.n 80049a2 slcanSetOutputChar('r'); - 80049de: 2072 movs r0, #114 ; 0x72 - 80049e0: f7ff fc60 bl 80042a4 - 80049e4: e7d3 b.n 800498e + 80049e2: 2072 movs r0, #114 ; 0x72 + 80049e4: f7ff fc60 bl 80042a8 + 80049e8: e7d3 b.n 8004992 { for (i = 0; i != pRxMsg->DLC; i ++) { slcanSetOutputAsHex(pRxMsg->Data[i]); - 80049e6: 192b adds r3, r5, r4 - 80049e8: 7d18 ldrb r0, [r3, #20] - 80049ea: f7ff fc7a bl 80042e2 + 80049ea: 192b adds r3, r5, r4 + 80049ec: 7d18 ldrb r0, [r3, #20] + 80049ee: f7ff fc7a bl 80042e6 for (i = 0; i != pRxMsg->DLC; i ++) - 80049ee: 3401 adds r4, #1 - 80049f0: b2e4 uxtb r4, r4 - 80049f2: 692b ldr r3, [r5, #16] - 80049f4: 429c cmp r4, r3 - 80049f6: d1f6 bne.n 80049e6 + 80049f2: 3401 adds r4, #1 + 80049f4: b2e4 uxtb r4, r4 + 80049f6: 692b ldr r3, [r5, #16] + 80049f8: 429c cmp r4, r3 + 80049fa: d1f6 bne.n 80049ea } } slcanSetOutputChar(terminator); - 80049f8: 4b03 ldr r3, [pc, #12] ; (8004a08 ) - 80049fa: 7818 ldrb r0, [r3, #0] - 80049fc: f7ff fc52 bl 80042a4 + 80049fc: 4b03 ldr r3, [pc, #12] ; (8004a0c ) + 80049fe: 7818 ldrb r0, [r3, #0] + 8004a00: f7ff fc52 bl 80042a8 slcanOutputFlush(); - 8004a00: f7ff fd3a bl 8004478 + 8004a04: f7ff fd3a bl 800447c return 0; } - 8004a04: 2000 movs r0, #0 - 8004a06: bd70 pop {r4, r5, r6, pc} - 8004a08: 20000114 .word 0x20000114 + 8004a08: 2000 movs r0, #0 + 8004a0a: bd70 pop {r4, r5, r6, pc} + 8004a0c: 20000114 .word 0x20000114 -08004a0c : +08004a10 : #include "slcan_additional.h" extern CAN_HandleTypeDef hcan; extern IWDG_HandleTypeDef hiwdg; HAL_StatusTypeDef CANInit(void) { - 8004a0c: b510 push {r4, lr} + 8004a10: b510 push {r4, lr} while (HAL_CAN_Init(&hcan) == HAL_TIMEOUT) - 8004a0e: e002 b.n 8004a16 + 8004a12: e002 b.n 8004a1a { HAL_IWDG_Refresh(&hiwdg); - 8004a10: 4804 ldr r0, [pc, #16] ; (8004a24 ) - 8004a12: f7fc fc71 bl 80012f8 + 8004a14: 4804 ldr r0, [pc, #16] ; (8004a28 ) + 8004a16: f7fc fc6f bl 80012f8 while (HAL_CAN_Init(&hcan) == HAL_TIMEOUT) - 8004a16: 4804 ldr r0, [pc, #16] ; (8004a28 ) - 8004a18: f7fb fcd6 bl 80003c8 - 8004a1c: 2803 cmp r0, #3 - 8004a1e: d0f7 beq.n 8004a10 + 8004a1a: 4804 ldr r0, [pc, #16] ; (8004a2c ) + 8004a1c: f7fb fcd4 bl 80003c8 + 8004a20: 2803 cmp r0, #3 + 8004a22: d0f7 beq.n 8004a14 } return HAL_OK; } - 8004a20: 2000 movs r0, #0 - 8004a22: bd10 pop {r4, pc} - 8004a24: 200004e0 .word 0x200004e0 - 8004a28: 200004f0 .word 0x200004f0 + 8004a24: 2000 movs r0, #0 + 8004a26: bd10 pop {r4, pc} + 8004a28: 200004e0 .word 0x200004e0 + 8004a2c: 200004f0 .word 0x200004f0 -08004a2c : +08004a30 : HAL_StatusTypeDef slcanClearAllFilters(void) { - 8004a2c: b500 push {lr} - 8004a2e: b08b sub sp, #44 ; 0x2c + 8004a30: b500 push {lr} + 8004a32: b08b sub sp, #44 ; 0x2c CAN_FilterConfTypeDef sFilterConfig; sFilterConfig.FilterNumber = 0; - 8004a30: 2300 movs r3, #0 - 8004a32: 9305 str r3, [sp, #20] + 8004a34: 2300 movs r3, #0 + 8004a36: 9305 str r3, [sp, #20] sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK; - 8004a34: 9306 str r3, [sp, #24] + 8004a38: 9306 str r3, [sp, #24] sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT; - 8004a36: 2201 movs r2, #1 - 8004a38: 9207 str r2, [sp, #28] + 8004a3a: 2201 movs r2, #1 + 8004a3c: 9207 str r2, [sp, #28] sFilterConfig.FilterIdHigh = 0x0000; - 8004a3a: 9300 str r3, [sp, #0] + 8004a3e: 9300 str r3, [sp, #0] sFilterConfig.FilterIdLow = 0; - 8004a3c: 9301 str r3, [sp, #4] + 8004a40: 9301 str r3, [sp, #4] sFilterConfig.FilterMaskIdHigh = 0x0000; - 8004a3e: 9302 str r3, [sp, #8] + 8004a42: 9302 str r3, [sp, #8] sFilterConfig.FilterMaskIdLow = 0; - 8004a40: 9303 str r3, [sp, #12] + 8004a44: 9303 str r3, [sp, #12] sFilterConfig.FilterFIFOAssignment = 0; - 8004a42: 9304 str r3, [sp, #16] + 8004a46: 9304 str r3, [sp, #16] sFilterConfig.FilterActivation = ENABLE; - 8004a44: 9208 str r2, [sp, #32] + 8004a48: 9208 str r2, [sp, #32] sFilterConfig.BankNumber = 0; - 8004a46: 9309 str r3, [sp, #36] ; 0x24 + 8004a4a: 9309 str r3, [sp, #36] ; 0x24 if (HAL_CAN_ConfigFilter(&hcan, &sFilterConfig) != HAL_OK) - 8004a48: 4669 mov r1, sp - 8004a4a: 4804 ldr r0, [pc, #16] ; (8004a5c ) - 8004a4c: f7fb fc46 bl 80002dc - 8004a50: 2800 cmp r0, #0 - 8004a52: d101 bne.n 8004a58 + 8004a4c: 4669 mov r1, sp + 8004a4e: 4804 ldr r0, [pc, #16] ; (8004a60 ) + 8004a50: f7fb fc44 bl 80002dc + 8004a54: 2800 cmp r0, #0 + 8004a56: d101 bne.n 8004a5c return HAL_ERROR; else return HAL_OK; } - 8004a54: b00b add sp, #44 ; 0x2c - 8004a56: bd00 pop {pc} + 8004a58: b00b add sp, #44 ; 0x2c + 8004a5a: bd00 pop {pc} return HAL_ERROR; - 8004a58: 2001 movs r0, #1 - 8004a5a: e7fb b.n 8004a54 - 8004a5c: 200004f0 .word 0x200004f0 + 8004a5c: 2001 movs r0, #1 + 8004a5e: e7fb b.n 8004a58 + 8004a60: 200004f0 .word 0x200004f0 -08004a60 : +08004a64 : tCANfilter slcanFillIdRegister32(tCANFilterFlagsId fl, uint32_t id) { - 8004a60: b510 push {r4, lr} - 8004a62: b082 sub sp, #8 + 8004a64: b510 push {r4, lr} + 8004a66: b082 sub sp, #8 tCANfilter f; f.h.reg = 0; - 8004a64: 2300 movs r3, #0 - 8004a66: 466a mov r2, sp - 8004a68: 8013 strh r3, [r2, #0] + 8004a68: 2300 movs r3, #0 + 8004a6a: 466a mov r2, sp + 8004a6c: 8013 strh r3, [r2, #0] f.l.reg = 0; - 8004a6a: 8053 strh r3, [r2, #2] + 8004a6e: 8053 strh r3, [r2, #2] f.l.f32.RTR = fl.bRTR1; - 8004a6c: 07c3 lsls r3, r0, #31 - 8004a6e: 0fdb lsrs r3, r3, #31 - 8004a70: 2201 movs r2, #1 - 8004a72: 4013 ands r3, r2 + 8004a70: 07c3 lsls r3, r0, #31 + 8004a72: 0fdb lsrs r3, r3, #31 + 8004a74: 2201 movs r2, #1 + 8004a76: 4013 ands r3, r2 f.l.f32.IDE = fl.bExtedned1; - 8004a74: 0784 lsls r4, r0, #30 - 8004a76: 0fe4 lsrs r4, r4, #31 - 8004a78: 4022 ands r2, r4 - 8004a7a: 0092 lsls r2, r2, #2 - 8004a7c: 005b lsls r3, r3, #1 - 8004a7e: 4313 orrs r3, r2 - 8004a80: 466a mov r2, sp - 8004a82: 7093 strb r3, [r2, #2] + 8004a78: 0784 lsls r4, r0, #30 + 8004a7a: 0fe4 lsrs r4, r4, #31 + 8004a7c: 4022 ands r2, r4 + 8004a7e: 0092 lsls r2, r2, #2 + 8004a80: 005b lsls r3, r3, #1 + 8004a82: 4313 orrs r3, r2 + 8004a84: 466a mov r2, sp + 8004a86: 7093 strb r3, [r2, #2] if (fl.bExtedned1) - 8004a84: 0783 lsls r3, r0, #30 - 8004a86: d411 bmi.n 8004aac + 8004a88: 0783 lsls r3, r0, #30 + 8004a8a: d411 bmi.n 8004ab0 { f.l.f32.EXID4_0 = id; f.l.f32.EXID12_5 = id >> 5; f.h.f32.EXID17_13 = id >> 13; } else { f.h.f32.STID2_0 = id; - 8004a88: 014a lsls r2, r1, #5 - 8004a8a: 466b mov r3, sp - 8004a8c: 7818 ldrb r0, [r3, #0] - 8004a8e: 231f movs r3, #31 - 8004a90: 4003 ands r3, r0 - 8004a92: 4313 orrs r3, r2 - 8004a94: 466a mov r2, sp - 8004a96: 7013 strb r3, [r2, #0] + 8004a8c: 014a lsls r2, r1, #5 + 8004a8e: 466b mov r3, sp + 8004a90: 7818 ldrb r0, [r3, #0] + 8004a92: 231f movs r3, #31 + 8004a94: 4003 ands r3, r0 + 8004a96: 4313 orrs r3, r2 + 8004a98: 466a mov r2, sp + 8004a9a: 7013 strb r3, [r2, #0] f.h.f32.STID10_3 = id >> 3; - 8004a98: 08c9 lsrs r1, r1, #3 - 8004a9a: 7051 strb r1, [r2, #1] + 8004a9c: 08c9 lsrs r1, r1, #3 + 8004a9e: 7051 strb r1, [r2, #1] } return f; - 8004a9c: 9b00 ldr r3, [sp, #0] - 8004a9e: 0c1a lsrs r2, r3, #16 - 8004aa0: 0412 lsls r2, r2, #16 - 8004aa2: 0418 lsls r0, r3, #16 - 8004aa4: 0c00 lsrs r0, r0, #16 - 8004aa6: 4310 orrs r0, r2 -} - 8004aa8: b002 add sp, #8 - 8004aaa: bd10 pop {r4, pc} + 8004aa0: 9b00 ldr r3, [sp, #0] + 8004aa2: 0c1a lsrs r2, r3, #16 + 8004aa4: 0412 lsls r2, r2, #16 + 8004aa6: 0418 lsls r0, r3, #16 + 8004aa8: 0c00 lsrs r0, r0, #16 + 8004aaa: 4310 orrs r0, r2 +} + 8004aac: b002 add sp, #8 + 8004aae: bd10 pop {r4, pc} f.l.f32.EXID4_0 = id; - 8004aac: 00ca lsls r2, r1, #3 - 8004aae: 466b mov r3, sp - 8004ab0: 7898 ldrb r0, [r3, #2] - 8004ab2: 2307 movs r3, #7 - 8004ab4: 4003 ands r3, r0 - 8004ab6: 4313 orrs r3, r2 - 8004ab8: 466a mov r2, sp - 8004aba: 7093 strb r3, [r2, #2] + 8004ab0: 00ca lsls r2, r1, #3 + 8004ab2: 466b mov r3, sp + 8004ab4: 7898 ldrb r0, [r3, #2] + 8004ab6: 2307 movs r3, #7 + 8004ab8: 4003 ands r3, r0 + 8004aba: 4313 orrs r3, r2 + 8004abc: 466a mov r2, sp + 8004abe: 7093 strb r3, [r2, #2] f.l.f32.EXID12_5 = id >> 5; - 8004abc: 094b lsrs r3, r1, #5 - 8004abe: 70d3 strb r3, [r2, #3] + 8004ac0: 094b lsrs r3, r1, #5 + 8004ac2: 70d3 strb r3, [r2, #3] f.h.f32.EXID17_13 = id >> 13; - 8004ac0: 0b49 lsrs r1, r1, #13 - 8004ac2: 231f movs r3, #31 - 8004ac4: 400b ands r3, r1 - 8004ac6: 7811 ldrb r1, [r2, #0] - 8004ac8: 221f movs r2, #31 - 8004aca: 4391 bics r1, r2 - 8004acc: 4319 orrs r1, r3 - 8004ace: 466b mov r3, sp - 8004ad0: 7019 strb r1, [r3, #0] - 8004ad2: e7e3 b.n 8004a9c - -08004ad4 : + 8004ac4: 0b49 lsrs r1, r1, #13 + 8004ac6: 231f movs r3, #31 + 8004ac8: 400b ands r3, r1 + 8004aca: 7811 ldrb r1, [r2, #0] + 8004acc: 221f movs r2, #31 + 8004ace: 4391 bics r1, r2 + 8004ad0: 4319 orrs r1, r3 + 8004ad2: 466b mov r3, sp + 8004ad4: 7019 strb r1, [r3, #0] + 8004ad6: e7e3 b.n 8004aa0 + +08004ad8 : tCANfilter slcanFillIdRegister16(tCANFilterFlagsId fl, uint32_t id) { - 8004ad4: b570 push {r4, r5, r6, lr} - 8004ad6: b082 sub sp, #8 + 8004ad8: b570 push {r4, r5, r6, lr} + 8004ada: b082 sub sp, #8 tCANfilter f; f.h.reg = 0; - 8004ad8: 2300 movs r3, #0 - 8004ada: 466a mov r2, sp - 8004adc: 8013 strh r3, [r2, #0] + 8004adc: 2300 movs r3, #0 + 8004ade: 466a mov r2, sp + 8004ae0: 8013 strh r3, [r2, #0] f.l.reg = 0; - 8004ade: 8053 strh r3, [r2, #2] + 8004ae2: 8053 strh r3, [r2, #2] f.l.f16.RTR = fl.bRTR1; - 8004ae0: 07c3 lsls r3, r0, #31 - 8004ae2: 0fdb lsrs r3, r3, #31 - 8004ae4: 2201 movs r2, #1 - 8004ae6: 4013 ands r3, r2 + 8004ae4: 07c3 lsls r3, r0, #31 + 8004ae6: 0fdb lsrs r3, r3, #31 + 8004ae8: 2201 movs r2, #1 + 8004aea: 4013 ands r3, r2 f.l.f16.IDE = fl.bExtedned1; - 8004ae8: 0784 lsls r4, r0, #30 - 8004aea: 0fe4 lsrs r4, r4, #31 - 8004aec: 4022 ands r2, r4 - 8004aee: 0112 lsls r2, r2, #4 - 8004af0: 00db lsls r3, r3, #3 - 8004af2: 4313 orrs r3, r2 - 8004af4: 466a mov r2, sp - 8004af6: 7093 strb r3, [r2, #2] + 8004aec: 0784 lsls r4, r0, #30 + 8004aee: 0fe4 lsrs r4, r4, #31 + 8004af0: 4022 ands r2, r4 + 8004af2: 0112 lsls r2, r2, #4 + 8004af4: 00db lsls r3, r3, #3 + 8004af6: 4313 orrs r3, r2 + 8004af8: 466a mov r2, sp + 8004afa: 7093 strb r3, [r2, #2] if (fl.bExtedned1) - 8004af8: b2c5 uxtb r5, r0 - 8004afa: 07ab lsls r3, r5, #30 - 8004afc: d511 bpl.n 8004b22 + 8004afc: b2c5 uxtb r5, r0 + 8004afe: 07ab lsls r3, r5, #30 + 8004b00: d511 bpl.n 8004b26 { f.l.f16.STID2_0 = id; - 8004afe: 014c lsls r4, r1, #5 - 8004b00: 7892 ldrb r2, [r2, #2] - 8004b02: 231f movs r3, #31 - 8004b04: 4013 ands r3, r2 - 8004b06: 0022 movs r2, r4 - 8004b08: 431a orrs r2, r3 + 8004b02: 014c lsls r4, r1, #5 + 8004b04: 7892 ldrb r2, [r2, #2] + 8004b06: 231f movs r3, #31 + 8004b08: 4013 ands r3, r2 + 8004b0a: 0022 movs r2, r4 + 8004b0c: 431a orrs r2, r3 f.l.f16.STID10_3 = id >> 3; - 8004b0a: 08cb lsrs r3, r1, #3 - 8004b0c: 466c mov r4, sp - 8004b0e: 70e3 strb r3, [r4, #3] + 8004b0e: 08cb lsrs r3, r1, #3 + 8004b10: 466c mov r4, sp + 8004b12: 70e3 strb r3, [r4, #3] f.l.f16.EXID17_15 = id >> 8; - 8004b10: 0a0c lsrs r4, r1, #8 - 8004b12: 2307 movs r3, #7 - 8004b14: 401c ands r4, r3 - 8004b16: b2d3 uxtb r3, r2 - 8004b18: 2207 movs r2, #7 - 8004b1a: 4393 bics r3, r2 - 8004b1c: 4323 orrs r3, r4 - 8004b1e: 466a mov r2, sp - 8004b20: 7093 strb r3, [r2, #2] + 8004b14: 0a0c lsrs r4, r1, #8 + 8004b16: 2307 movs r3, #7 + 8004b18: 401c ands r4, r3 + 8004b1a: b2d3 uxtb r3, r2 + 8004b1c: 2207 movs r2, #7 + 8004b1e: 4393 bics r3, r2 + 8004b20: 4323 orrs r3, r4 + 8004b22: 466a mov r2, sp + 8004b24: 7093 strb r3, [r2, #2] } f.l.f16.RTR = fl.bRTR2; - 8004b22: 0744 lsls r4, r0, #29 - 8004b24: 0fe4 lsrs r4, r4, #31 - 8004b26: 2601 movs r6, #1 - 8004b28: 4034 ands r4, r6 - 8004b2a: 00e4 lsls r4, r4, #3 - 8004b2c: 466b mov r3, sp - 8004b2e: 789b ldrb r3, [r3, #2] - 8004b30: 2208 movs r2, #8 - 8004b32: 4393 bics r3, r2 + 8004b26: 0744 lsls r4, r0, #29 + 8004b28: 0fe4 lsrs r4, r4, #31 + 8004b2a: 2601 movs r6, #1 + 8004b2c: 4034 ands r4, r6 + 8004b2e: 00e4 lsls r4, r4, #3 + 8004b30: 466b mov r3, sp + 8004b32: 789b ldrb r3, [r3, #2] + 8004b34: 2208 movs r2, #8 + 8004b36: 4393 bics r3, r2 f.l.f16.IDE = fl.bExtedned2; - 8004b34: 0702 lsls r2, r0, #28 - 8004b36: 0fd2 lsrs r2, r2, #31 - 8004b38: 4032 ands r2, r6 - 8004b3a: 0112 lsls r2, r2, #4 - 8004b3c: 4323 orrs r3, r4 - 8004b3e: 0018 movs r0, r3 - 8004b40: 2310 movs r3, #16 - 8004b42: 4398 bics r0, r3 - 8004b44: 4310 orrs r0, r2 - 8004b46: 466b mov r3, sp - 8004b48: 7098 strb r0, [r3, #2] + 8004b38: 0702 lsls r2, r0, #28 + 8004b3a: 0fd2 lsrs r2, r2, #31 + 8004b3c: 4032 ands r2, r6 + 8004b3e: 0112 lsls r2, r2, #4 + 8004b40: 4323 orrs r3, r4 + 8004b42: 0018 movs r0, r3 + 8004b44: 2310 movs r3, #16 + 8004b46: 4398 bics r0, r3 + 8004b48: 4310 orrs r0, r2 + 8004b4a: 466b mov r3, sp + 8004b4c: 7098 strb r0, [r3, #2] if (fl.bExtedned2) - 8004b4a: 072b lsls r3, r5, #28 - 8004b4c: d512 bpl.n 8004b74 + 8004b4e: 072b lsls r3, r5, #28 + 8004b50: d512 bpl.n 8004b78 { f.h.f16.STID2_0 = id >> 16; - 8004b4e: 0c0a lsrs r2, r1, #16 - 8004b50: 2007 movs r0, #7 - 8004b52: 4002 ands r2, r0 - 8004b54: 0152 lsls r2, r2, #5 - 8004b56: 466b mov r3, sp - 8004b58: 781c ldrb r4, [r3, #0] - 8004b5a: 231f movs r3, #31 - 8004b5c: 4023 ands r3, r4 + 8004b52: 0c0a lsrs r2, r1, #16 + 8004b54: 2007 movs r0, #7 + 8004b56: 4002 ands r2, r0 + 8004b58: 0152 lsls r2, r2, #5 + 8004b5a: 466b mov r3, sp + 8004b5c: 781c ldrb r4, [r3, #0] + 8004b5e: 231f movs r3, #31 + 8004b60: 4023 ands r3, r4 f.h.f16.STID10_3 = id >> (3 + 16); - 8004b5e: 0ccc lsrs r4, r1, #19 - 8004b60: 466d mov r5, sp - 8004b62: 706c strb r4, [r5, #1] + 8004b62: 0ccc lsrs r4, r1, #19 + 8004b64: 466d mov r5, sp + 8004b66: 706c strb r4, [r5, #1] f.h.f16.EXID17_15 = id >> (8 + 16); - 8004b64: 0e09 lsrs r1, r1, #24 - 8004b66: 4008 ands r0, r1 - 8004b68: 4313 orrs r3, r2 - 8004b6a: 0019 movs r1, r3 - 8004b6c: 2307 movs r3, #7 - 8004b6e: 4399 bics r1, r3 - 8004b70: 4301 orrs r1, r0 - 8004b72: 7029 strb r1, [r5, #0] + 8004b68: 0e09 lsrs r1, r1, #24 + 8004b6a: 4008 ands r0, r1 + 8004b6c: 4313 orrs r3, r2 + 8004b6e: 0019 movs r1, r3 + 8004b70: 2307 movs r3, #7 + 8004b72: 4399 bics r1, r3 + 8004b74: 4301 orrs r1, r0 + 8004b76: 7029 strb r1, [r5, #0] } return f; - 8004b74: 9b00 ldr r3, [sp, #0] - 8004b76: 0c1a lsrs r2, r3, #16 - 8004b78: 0412 lsls r2, r2, #16 - 8004b7a: 0418 lsls r0, r3, #16 - 8004b7c: 0c00 lsrs r0, r0, #16 - 8004b7e: 4310 orrs r0, r2 + 8004b78: 9b00 ldr r3, [sp, #0] + 8004b7a: 0c1a lsrs r2, r3, #16 + 8004b7c: 0412 lsls r2, r2, #16 + 8004b7e: 0418 lsls r0, r3, #16 + 8004b80: 0c00 lsrs r0, r0, #16 + 8004b82: 4310 orrs r0, r2 } - 8004b80: b002 add sp, #8 - 8004b82: bd70 pop {r4, r5, r6, pc} + 8004b84: b002 add sp, #8 + 8004b86: bd70 pop {r4, r5, r6, pc} -08004b84 : +08004b88 : void slcanSetCANBaudRate(uint8_t br) { //todo it is for 75% sampling point - 8004b84: b510 push {r4, lr} + 8004b88: b510 push {r4, lr} hcan.Init.SJW = CAN_SJW_2TQ; - 8004b86: 4b1b ldr r3, [pc, #108] ; (8004bf4 ) - 8004b88: 2280 movs r2, #128 ; 0x80 - 8004b8a: 0452 lsls r2, r2, #17 - 8004b8c: 60da str r2, [r3, #12] + 8004b8a: 4b1b ldr r3, [pc, #108] ; (8004bf8 ) + 8004b8c: 2280 movs r2, #128 ; 0x80 + 8004b8e: 0452 lsls r2, r2, #17 + 8004b90: 60da str r2, [r3, #12] hcan.Init.BS1 = CAN_BS1_11TQ; - 8004b8e: 22a0 movs r2, #160 ; 0xa0 - 8004b90: 0312 lsls r2, r2, #12 - 8004b92: 611a str r2, [r3, #16] + 8004b92: 22a0 movs r2, #160 ; 0xa0 + 8004b94: 0312 lsls r2, r2, #12 + 8004b96: 611a str r2, [r3, #16] hcan.Init.BS2 = CAN_BS2_4TQ; - 8004b94: 22c0 movs r2, #192 ; 0xc0 - 8004b96: 0392 lsls r2, r2, #14 - 8004b98: 615a str r2, [r3, #20] + 8004b98: 22c0 movs r2, #192 ; 0xc0 + 8004b9a: 0392 lsls r2, r2, #14 + 8004b9c: 615a str r2, [r3, #20] switch (br) - 8004b9a: 2824 cmp r0, #36 ; 0x24 - 8004b9c: d806 bhi.n 8004bac - 8004b9e: 0080 lsls r0, r0, #2 - 8004ba0: 4b15 ldr r3, [pc, #84] ; (8004bf8 ) - 8004ba2: 581b ldr r3, [r3, r0] - 8004ba4: 469f mov pc, r3 + 8004b9e: 2824 cmp r0, #36 ; 0x24 + 8004ba0: d806 bhi.n 8004bb0 + 8004ba2: 0080 lsls r0, r0, #2 + 8004ba4: 4b15 ldr r3, [pc, #84] ; (8004bfc ) + 8004ba6: 581b ldr r3, [r3, r0] + 8004ba8: 469f mov pc, r3 { case CAN_BR_1M: hcan.Init.Prescaler = 3; - 8004ba6: 2203 movs r2, #3 - 8004ba8: 4b12 ldr r3, [pc, #72] ; (8004bf4 ) - 8004baa: 605a str r2, [r3, #4] + 8004baa: 2203 movs r2, #3 + 8004bac: 4b12 ldr r3, [pc, #72] ; (8004bf8 ) + 8004bae: 605a str r2, [r3, #4] default: break; } CANInit(); - 8004bac: f7ff ff2e bl 8004a0c + 8004bb0: f7ff ff2e bl 8004a10 } - 8004bb0: bd10 pop {r4, pc} + 8004bb4: bd10 pop {r4, pc} hcan.Init.Prescaler = 6; - 8004bb2: 2206 movs r2, #6 - 8004bb4: 4b0f ldr r3, [pc, #60] ; (8004bf4 ) - 8004bb6: 605a str r2, [r3, #4] + 8004bb6: 2206 movs r2, #6 + 8004bb8: 4b0f ldr r3, [pc, #60] ; (8004bf8 ) + 8004bba: 605a str r2, [r3, #4] break; - 8004bb8: e7f8 b.n 8004bac + 8004bbc: e7f8 b.n 8004bb0 hcan.Init.Prescaler = 12; - 8004bba: 220c movs r2, #12 - 8004bbc: 4b0d ldr r3, [pc, #52] ; (8004bf4 ) - 8004bbe: 605a str r2, [r3, #4] + 8004bbe: 220c movs r2, #12 + 8004bc0: 4b0d ldr r3, [pc, #52] ; (8004bf8 ) + 8004bc2: 605a str r2, [r3, #4] break; - 8004bc0: e7f4 b.n 8004bac + 8004bc4: e7f4 b.n 8004bb0 hcan.Init.Prescaler = 24; - 8004bc2: 2218 movs r2, #24 - 8004bc4: 4b0b ldr r3, [pc, #44] ; (8004bf4 ) - 8004bc6: 605a str r2, [r3, #4] + 8004bc6: 2218 movs r2, #24 + 8004bc8: 4b0b ldr r3, [pc, #44] ; (8004bf8 ) + 8004bca: 605a str r2, [r3, #4] break; - 8004bc8: e7f0 b.n 8004bac + 8004bcc: e7f0 b.n 8004bb0 hcan.Init.Prescaler = 30; - 8004bca: 221e movs r2, #30 - 8004bcc: 4b09 ldr r3, [pc, #36] ; (8004bf4 ) - 8004bce: 605a str r2, [r3, #4] + 8004bce: 221e movs r2, #30 + 8004bd0: 4b09 ldr r3, [pc, #36] ; (8004bf8 ) + 8004bd2: 605a str r2, [r3, #4] break; - 8004bd0: e7ec b.n 8004bac + 8004bd4: e7ec b.n 8004bb0 hcan.Init.Prescaler = 60; - 8004bd2: 223c movs r2, #60 ; 0x3c - 8004bd4: 4b07 ldr r3, [pc, #28] ; (8004bf4 ) - 8004bd6: 605a str r2, [r3, #4] + 8004bd6: 223c movs r2, #60 ; 0x3c + 8004bd8: 4b07 ldr r3, [pc, #28] ; (8004bf8 ) + 8004bda: 605a str r2, [r3, #4] break; - 8004bd8: e7e8 b.n 8004bac + 8004bdc: e7e8 b.n 8004bb0 hcan.Init.Prescaler = 150; - 8004bda: 2296 movs r2, #150 ; 0x96 - 8004bdc: 4b05 ldr r3, [pc, #20] ; (8004bf4 ) - 8004bde: 605a str r2, [r3, #4] + 8004bde: 2296 movs r2, #150 ; 0x96 + 8004be0: 4b05 ldr r3, [pc, #20] ; (8004bf8 ) + 8004be2: 605a str r2, [r3, #4] break; - 8004be0: e7e4 b.n 8004bac + 8004be4: e7e4 b.n 8004bb0 hcan.Init.Prescaler = 300; - 8004be2: 2296 movs r2, #150 ; 0x96 - 8004be4: 0052 lsls r2, r2, #1 - 8004be6: 4b03 ldr r3, [pc, #12] ; (8004bf4 ) - 8004be8: 605a str r2, [r3, #4] + 8004be6: 2296 movs r2, #150 ; 0x96 + 8004be8: 0052 lsls r2, r2, #1 + 8004bea: 4b03 ldr r3, [pc, #12] ; (8004bf8 ) + 8004bec: 605a str r2, [r3, #4] break; - 8004bea: e7df b.n 8004bac + 8004bee: e7df b.n 8004bb0 hcan.Init.Prescaler = 36; - 8004bec: 2224 movs r2, #36 ; 0x24 - 8004bee: 4b01 ldr r3, [pc, #4] ; (8004bf4 ) - 8004bf0: 605a str r2, [r3, #4] + 8004bf0: 2224 movs r2, #36 ; 0x24 + 8004bf2: 4b01 ldr r3, [pc, #4] ; (8004bf8 ) + 8004bf4: 605a str r2, [r3, #4] break; - 8004bf2: e7db b.n 8004bac - 8004bf4: 200004f0 .word 0x200004f0 - 8004bf8: 0800558c .word 0x0800558c + 8004bf6: e7db b.n 8004bb0 + 8004bf8: 200004f0 .word 0x200004f0 + 8004bfc: 08005590 .word 0x08005590 -08004bfc : +08004c00 : /* USER CODE END 0 */ /** * Initializes the Global MSP. */ void HAL_MspInit(void) { - 8004bfc: b500 push {lr} - 8004bfe: b083 sub sp, #12 + 8004c00: b500 push {lr} + 8004c02: b083 sub sp, #12 /* USER CODE BEGIN MspInit 0 */ /* USER CODE END MspInit 0 */ __HAL_RCC_SYSCFG_CLK_ENABLE(); - 8004c00: 4b12 ldr r3, [pc, #72] ; (8004c4c ) - 8004c02: 6999 ldr r1, [r3, #24] - 8004c04: 2201 movs r2, #1 - 8004c06: 4311 orrs r1, r2 - 8004c08: 6199 str r1, [r3, #24] - 8004c0a: 6999 ldr r1, [r3, #24] - 8004c0c: 400a ands r2, r1 - 8004c0e: 9200 str r2, [sp, #0] - 8004c10: 9a00 ldr r2, [sp, #0] + 8004c04: 4b12 ldr r3, [pc, #72] ; (8004c50 ) + 8004c06: 6999 ldr r1, [r3, #24] + 8004c08: 2201 movs r2, #1 + 8004c0a: 4311 orrs r1, r2 + 8004c0c: 6199 str r1, [r3, #24] + 8004c0e: 6999 ldr r1, [r3, #24] + 8004c10: 400a ands r2, r1 + 8004c12: 9200 str r2, [sp, #0] + 8004c14: 9a00 ldr r2, [sp, #0] __HAL_RCC_PWR_CLK_ENABLE(); - 8004c12: 69da ldr r2, [r3, #28] - 8004c14: 2180 movs r1, #128 ; 0x80 - 8004c16: 0549 lsls r1, r1, #21 - 8004c18: 430a orrs r2, r1 - 8004c1a: 61da str r2, [r3, #28] - 8004c1c: 69db ldr r3, [r3, #28] - 8004c1e: 400b ands r3, r1 - 8004c20: 9301 str r3, [sp, #4] - 8004c22: 9b01 ldr r3, [sp, #4] + 8004c16: 69da ldr r2, [r3, #28] + 8004c18: 2180 movs r1, #128 ; 0x80 + 8004c1a: 0549 lsls r1, r1, #21 + 8004c1c: 430a orrs r2, r1 + 8004c1e: 61da str r2, [r3, #28] + 8004c20: 69db ldr r3, [r3, #28] + 8004c22: 400b ands r3, r1 + 8004c24: 9301 str r3, [sp, #4] + 8004c26: 9b01 ldr r3, [sp, #4] /* System interrupt init*/ /* SVC_IRQn interrupt configuration */ HAL_NVIC_SetPriority(SVC_IRQn, 0, 0); - 8004c24: 2200 movs r2, #0 - 8004c26: 2100 movs r1, #0 - 8004c28: 2005 movs r0, #5 - 8004c2a: 4240 negs r0, r0 - 8004c2c: f7fb ff62 bl 8000af4 + 8004c28: 2200 movs r2, #0 + 8004c2a: 2100 movs r1, #0 + 8004c2c: 2005 movs r0, #5 + 8004c2e: 4240 negs r0, r0 + 8004c30: f7fb ff60 bl 8000af4 /* PendSV_IRQn interrupt configuration */ HAL_NVIC_SetPriority(PendSV_IRQn, 0, 0); - 8004c30: 2200 movs r2, #0 - 8004c32: 2100 movs r1, #0 - 8004c34: 2002 movs r0, #2 - 8004c36: 4240 negs r0, r0 - 8004c38: f7fb ff5c bl 8000af4 + 8004c34: 2200 movs r2, #0 + 8004c36: 2100 movs r1, #0 + 8004c38: 2002 movs r0, #2 + 8004c3a: 4240 negs r0, r0 + 8004c3c: f7fb ff5a bl 8000af4 /* SysTick_IRQn interrupt configuration */ HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); - 8004c3c: 2200 movs r2, #0 - 8004c3e: 2100 movs r1, #0 - 8004c40: 2001 movs r0, #1 - 8004c42: 4240 negs r0, r0 - 8004c44: f7fb ff56 bl 8000af4 + 8004c40: 2200 movs r2, #0 + 8004c42: 2100 movs r1, #0 + 8004c44: 2001 movs r0, #1 + 8004c46: 4240 negs r0, r0 + 8004c48: f7fb ff54 bl 8000af4 /* USER CODE BEGIN MspInit 1 */ /* USER CODE END MspInit 1 */ } - 8004c48: b003 add sp, #12 - 8004c4a: bd00 pop {pc} - 8004c4c: 40021000 .word 0x40021000 + 8004c4c: b003 add sp, #12 + 8004c4e: bd00 pop {pc} + 8004c50: 40021000 .word 0x40021000 -08004c50 : +08004c54 : void HAL_CAN_MspInit(CAN_HandleTypeDef* hcan) { - 8004c50: b500 push {lr} - 8004c52: b087 sub sp, #28 + 8004c54: b500 push {lr} + 8004c56: b087 sub sp, #28 GPIO_InitTypeDef GPIO_InitStruct; if(hcan->Instance==CAN) - 8004c54: 6802 ldr r2, [r0, #0] - 8004c56: 4b0f ldr r3, [pc, #60] ; (8004c94 ) - 8004c58: 429a cmp r2, r3 - 8004c5a: d001 beq.n 8004c60 + 8004c58: 6802 ldr r2, [r0, #0] + 8004c5a: 4b0f ldr r3, [pc, #60] ; (8004c98 ) + 8004c5c: 429a cmp r2, r3 + 8004c5e: d001 beq.n 8004c64 /* USER CODE BEGIN CAN_MspInit 1 */ /* USER CODE END CAN_MspInit 1 */ } } - 8004c5c: b007 add sp, #28 - 8004c5e: bd00 pop {pc} + 8004c60: b007 add sp, #28 + 8004c62: bd00 pop {pc} __HAL_RCC_CAN1_CLK_ENABLE(); - 8004c60: 4a0d ldr r2, [pc, #52] ; (8004c98 ) - 8004c62: 69d1 ldr r1, [r2, #28] - 8004c64: 2080 movs r0, #128 ; 0x80 - 8004c66: 0480 lsls r0, r0, #18 - 8004c68: 4301 orrs r1, r0 - 8004c6a: 61d1 str r1, [r2, #28] - 8004c6c: 69d3 ldr r3, [r2, #28] - 8004c6e: 4003 ands r3, r0 - 8004c70: 9300 str r3, [sp, #0] - 8004c72: 9b00 ldr r3, [sp, #0] + 8004c64: 4a0d ldr r2, [pc, #52] ; (8004c9c ) + 8004c66: 69d1 ldr r1, [r2, #28] + 8004c68: 2080 movs r0, #128 ; 0x80 + 8004c6a: 0480 lsls r0, r0, #18 + 8004c6c: 4301 orrs r1, r0 + 8004c6e: 61d1 str r1, [r2, #28] + 8004c70: 69d3 ldr r3, [r2, #28] + 8004c72: 4003 ands r3, r0 + 8004c74: 9300 str r3, [sp, #0] + 8004c76: 9b00 ldr r3, [sp, #0] GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9; - 8004c74: 23c0 movs r3, #192 ; 0xc0 - 8004c76: 009b lsls r3, r3, #2 - 8004c78: 9301 str r3, [sp, #4] + 8004c78: 23c0 movs r3, #192 ; 0xc0 + 8004c7a: 009b lsls r3, r3, #2 + 8004c7c: 9301 str r3, [sp, #4] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8004c7a: 2302 movs r3, #2 - 8004c7c: 9302 str r3, [sp, #8] + 8004c7e: 2302 movs r3, #2 + 8004c80: 9302 str r3, [sp, #8] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8004c7e: 2300 movs r3, #0 - 8004c80: 9303 str r3, [sp, #12] + 8004c82: 2300 movs r3, #0 + 8004c84: 9303 str r3, [sp, #12] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - 8004c82: 3303 adds r3, #3 - 8004c84: 9304 str r3, [sp, #16] + 8004c86: 3303 adds r3, #3 + 8004c88: 9304 str r3, [sp, #16] GPIO_InitStruct.Alternate = GPIO_AF4_CAN; - 8004c86: 3301 adds r3, #1 - 8004c88: 9305 str r3, [sp, #20] + 8004c8a: 3301 adds r3, #1 + 8004c8c: 9305 str r3, [sp, #20] HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - 8004c8a: a901 add r1, sp, #4 - 8004c8c: 4803 ldr r0, [pc, #12] ; (8004c9c ) - 8004c8e: f7fc fa39 bl 8001104 + 8004c8e: a901 add r1, sp, #4 + 8004c90: 4803 ldr r0, [pc, #12] ; (8004ca0 ) + 8004c92: f7fc fa37 bl 8001104 } - 8004c92: e7e3 b.n 8004c5c - 8004c94: 40006400 .word 0x40006400 - 8004c98: 40021000 .word 0x40021000 - 8004c9c: 48000400 .word 0x48000400 + 8004c96: e7e3 b.n 8004c60 + 8004c98: 40006400 .word 0x40006400 + 8004c9c: 40021000 .word 0x40021000 + 8004ca0: 48000400 .word 0x48000400 -08004ca0 : +08004ca4 : } } void HAL_UART_MspInit(UART_HandleTypeDef* huart) { - 8004ca0: b530 push {r4, r5, lr} - 8004ca2: b087 sub sp, #28 - 8004ca4: 0004 movs r4, r0 + 8004ca4: b530 push {r4, r5, lr} + 8004ca6: b087 sub sp, #28 + 8004ca8: 0004 movs r4, r0 GPIO_InitTypeDef GPIO_InitStruct; if(huart->Instance==USART2) - 8004ca6: 4b28 ldr r3, [pc, #160] ; (8004d48 ) - 8004ca8: 6802 ldr r2, [r0, #0] - 8004caa: 429a cmp r2, r3 - 8004cac: d001 beq.n 8004cb2 + 8004caa: 4b28 ldr r3, [pc, #160] ; (8004d4c ) + 8004cac: 6802 ldr r2, [r0, #0] + 8004cae: 429a cmp r2, r3 + 8004cb0: d001 beq.n 8004cb6 /* USER CODE BEGIN USART2_MspInit 1 */ /* USER CODE END USART2_MspInit 1 */ } } - 8004cae: b007 add sp, #28 - 8004cb0: bd30 pop {r4, r5, pc} + 8004cb2: b007 add sp, #28 + 8004cb4: bd30 pop {r4, r5, pc} __HAL_RCC_USART2_CLK_ENABLE(); - 8004cb2: 4a26 ldr r2, [pc, #152] ; (8004d4c ) - 8004cb4: 69d1 ldr r1, [r2, #28] - 8004cb6: 2080 movs r0, #128 ; 0x80 - 8004cb8: 0280 lsls r0, r0, #10 - 8004cba: 4301 orrs r1, r0 - 8004cbc: 61d1 str r1, [r2, #28] - 8004cbe: 69d3 ldr r3, [r2, #28] - 8004cc0: 4003 ands r3, r0 - 8004cc2: 9300 str r3, [sp, #0] - 8004cc4: 9b00 ldr r3, [sp, #0] + 8004cb6: 4a26 ldr r2, [pc, #152] ; (8004d50 ) + 8004cb8: 69d1 ldr r1, [r2, #28] + 8004cba: 2080 movs r0, #128 ; 0x80 + 8004cbc: 0280 lsls r0, r0, #10 + 8004cbe: 4301 orrs r1, r0 + 8004cc0: 61d1 str r1, [r2, #28] + 8004cc2: 69d3 ldr r3, [r2, #28] + 8004cc4: 4003 ands r3, r0 + 8004cc6: 9300 str r3, [sp, #0] + 8004cc8: 9b00 ldr r3, [sp, #0] GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3; - 8004cc6: 230c movs r3, #12 - 8004cc8: 9301 str r3, [sp, #4] + 8004cca: 230c movs r3, #12 + 8004ccc: 9301 str r3, [sp, #4] GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - 8004cca: 3b0a subs r3, #10 - 8004ccc: 9302 str r3, [sp, #8] + 8004cce: 3b0a subs r3, #10 + 8004cd0: 9302 str r3, [sp, #8] GPIO_InitStruct.Pull = GPIO_NOPULL; - 8004cce: 2500 movs r5, #0 - 8004cd0: 9503 str r5, [sp, #12] + 8004cd2: 2500 movs r5, #0 + 8004cd4: 9503 str r5, [sp, #12] GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; - 8004cd2: 3301 adds r3, #1 - 8004cd4: 9304 str r3, [sp, #16] + 8004cd6: 3301 adds r3, #1 + 8004cd8: 9304 str r3, [sp, #16] GPIO_InitStruct.Alternate = GPIO_AF1_USART2; - 8004cd6: 3b02 subs r3, #2 - 8004cd8: 9305 str r3, [sp, #20] + 8004cda: 3b02 subs r3, #2 + 8004cdc: 9305 str r3, [sp, #20] HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - 8004cda: a901 add r1, sp, #4 - 8004cdc: 2090 movs r0, #144 ; 0x90 - 8004cde: 05c0 lsls r0, r0, #23 - 8004ce0: f7fc fa10 bl 8001104 + 8004cde: a901 add r1, sp, #4 + 8004ce0: 2090 movs r0, #144 ; 0x90 + 8004ce2: 05c0 lsls r0, r0, #23 + 8004ce4: f7fc fa0e bl 8001104 hdma_usart2_tx.Instance = DMA1_Channel4; - 8004ce4: 481a ldr r0, [pc, #104] ; (8004d50 ) - 8004ce6: 4b1b ldr r3, [pc, #108] ; (8004d54 ) - 8004ce8: 6003 str r3, [r0, #0] + 8004ce8: 481a ldr r0, [pc, #104] ; (8004d54 ) + 8004cea: 4b1b ldr r3, [pc, #108] ; (8004d58 ) + 8004cec: 6003 str r3, [r0, #0] hdma_usart2_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; - 8004cea: 2310 movs r3, #16 - 8004cec: 6043 str r3, [r0, #4] + 8004cee: 2310 movs r3, #16 + 8004cf0: 6043 str r3, [r0, #4] hdma_usart2_tx.Init.PeriphInc = DMA_PINC_DISABLE; - 8004cee: 6085 str r5, [r0, #8] + 8004cf2: 6085 str r5, [r0, #8] hdma_usart2_tx.Init.MemInc = DMA_MINC_ENABLE; - 8004cf0: 3370 adds r3, #112 ; 0x70 - 8004cf2: 60c3 str r3, [r0, #12] + 8004cf4: 3370 adds r3, #112 ; 0x70 + 8004cf6: 60c3 str r3, [r0, #12] hdma_usart2_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; - 8004cf4: 6105 str r5, [r0, #16] + 8004cf8: 6105 str r5, [r0, #16] hdma_usart2_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; - 8004cf6: 6145 str r5, [r0, #20] + 8004cfa: 6145 str r5, [r0, #20] hdma_usart2_tx.Init.Mode = DMA_NORMAL; - 8004cf8: 6185 str r5, [r0, #24] + 8004cfc: 6185 str r5, [r0, #24] hdma_usart2_tx.Init.Priority = DMA_PRIORITY_LOW; - 8004cfa: 61c5 str r5, [r0, #28] + 8004cfe: 61c5 str r5, [r0, #28] if (HAL_DMA_Init(&hdma_usart2_tx) != HAL_OK) - 8004cfc: f7fb ff72 bl 8000be4 - 8004d00: 2800 cmp r0, #0 - 8004d02: d116 bne.n 8004d32 + 8004d00: f7fb ff70 bl 8000be4 + 8004d04: 2800 cmp r0, #0 + 8004d06: d116 bne.n 8004d36 __HAL_LINKDMA(huart,hdmatx,hdma_usart2_tx); - 8004d04: 4b12 ldr r3, [pc, #72] ; (8004d50 ) - 8004d06: 6623 str r3, [r4, #96] ; 0x60 - 8004d08: 625c str r4, [r3, #36] ; 0x24 + 8004d08: 4b12 ldr r3, [pc, #72] ; (8004d54 ) + 8004d0a: 6623 str r3, [r4, #96] ; 0x60 + 8004d0c: 625c str r4, [r3, #36] ; 0x24 hdma_usart2_rx.Instance = DMA1_Channel5; - 8004d0a: 4813 ldr r0, [pc, #76] ; (8004d58 ) - 8004d0c: 4b13 ldr r3, [pc, #76] ; (8004d5c ) - 8004d0e: 6003 str r3, [r0, #0] + 8004d0e: 4813 ldr r0, [pc, #76] ; (8004d5c ) + 8004d10: 4b13 ldr r3, [pc, #76] ; (8004d60 ) + 8004d12: 6003 str r3, [r0, #0] hdma_usart2_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; - 8004d10: 2300 movs r3, #0 - 8004d12: 6043 str r3, [r0, #4] + 8004d14: 2300 movs r3, #0 + 8004d16: 6043 str r3, [r0, #4] hdma_usart2_rx.Init.PeriphInc = DMA_PINC_DISABLE; - 8004d14: 6083 str r3, [r0, #8] + 8004d18: 6083 str r3, [r0, #8] hdma_usart2_rx.Init.MemInc = DMA_MINC_ENABLE; - 8004d16: 2280 movs r2, #128 ; 0x80 - 8004d18: 60c2 str r2, [r0, #12] + 8004d1a: 2280 movs r2, #128 ; 0x80 + 8004d1c: 60c2 str r2, [r0, #12] hdma_usart2_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; - 8004d1a: 6103 str r3, [r0, #16] + 8004d1e: 6103 str r3, [r0, #16] hdma_usart2_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; - 8004d1c: 6143 str r3, [r0, #20] + 8004d20: 6143 str r3, [r0, #20] hdma_usart2_rx.Init.Mode = DMA_NORMAL; - 8004d1e: 6183 str r3, [r0, #24] + 8004d22: 6183 str r3, [r0, #24] hdma_usart2_rx.Init.Priority = DMA_PRIORITY_LOW; - 8004d20: 61c3 str r3, [r0, #28] + 8004d24: 61c3 str r3, [r0, #28] if (HAL_DMA_Init(&hdma_usart2_rx) != HAL_OK) - 8004d22: f7fb ff5f bl 8000be4 - 8004d26: 2800 cmp r0, #0 - 8004d28: d108 bne.n 8004d3c + 8004d26: f7fb ff5d bl 8000be4 + 8004d2a: 2800 cmp r0, #0 + 8004d2c: d108 bne.n 8004d40 __HAL_LINKDMA(huart,hdmarx,hdma_usart2_rx); - 8004d2a: 4b0b ldr r3, [pc, #44] ; (8004d58 ) - 8004d2c: 6663 str r3, [r4, #100] ; 0x64 - 8004d2e: 625c str r4, [r3, #36] ; 0x24 + 8004d2e: 4b0b ldr r3, [pc, #44] ; (8004d5c ) + 8004d30: 6663 str r3, [r4, #100] ; 0x64 + 8004d32: 625c str r4, [r3, #36] ; 0x24 } - 8004d30: e7bd b.n 8004cae + 8004d34: e7bd b.n 8004cb2 _Error_Handler(__FILE__, __LINE__); - 8004d32: 21ae movs r1, #174 ; 0xae - 8004d34: 480a ldr r0, [pc, #40] ; (8004d60 ) - 8004d36: f7ff fab3 bl 80042a0 <_Error_Handler> - 8004d3a: e7e3 b.n 8004d04 + 8004d36: 21ae movs r1, #174 ; 0xae + 8004d38: 480a ldr r0, [pc, #40] ; (8004d64 ) + 8004d3a: f7ff fab3 bl 80042a4 <_Error_Handler> + 8004d3e: e7e3 b.n 8004d08 _Error_Handler(__FILE__, __LINE__); - 8004d3c: 21be movs r1, #190 ; 0xbe - 8004d3e: 4808 ldr r0, [pc, #32] ; (8004d60 ) - 8004d40: f7ff faae bl 80042a0 <_Error_Handler> - 8004d44: e7f1 b.n 8004d2a - 8004d46: 46c0 nop ; (mov r8, r8) - 8004d48: 40004400 .word 0x40004400 - 8004d4c: 40021000 .word 0x40021000 - 8004d50: 20000534 .word 0x20000534 - 8004d54: 40020044 .word 0x40020044 - 8004d58: 20000498 .word 0x20000498 - 8004d5c: 40020058 .word 0x40020058 - 8004d60: 08005620 .word 0x08005620 - -08004d64 : + 8004d40: 21be movs r1, #190 ; 0xbe + 8004d42: 4808 ldr r0, [pc, #32] ; (8004d64 ) + 8004d44: f7ff faae bl 80042a4 <_Error_Handler> + 8004d48: e7f1 b.n 8004d2e + 8004d4a: 46c0 nop ; (mov r8, r8) + 8004d4c: 40004400 .word 0x40004400 + 8004d50: 40021000 .word 0x40021000 + 8004d54: 20000534 .word 0x20000534 + 8004d58: 40020044 .word 0x40020044 + 8004d5c: 20000498 .word 0x20000498 + 8004d60: 40020058 .word 0x40020058 + 8004d64: 08005624 .word 0x08005624 + +08004d68 : /* USER CODE END NonMaskableInt_IRQn 0 */ /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ /* USER CODE END NonMaskableInt_IRQn 1 */ } - 8004d64: 4770 bx lr + 8004d68: 4770 bx lr -08004d66 : +08004d6a : /** * @brief This function handles Hard fault interrupt. */ void HardFault_Handler(void) { - 8004d66: e7fe b.n 8004d66 + 8004d6a: e7fe b.n 8004d6a -08004d68 : +08004d6c : /* USER CODE END SVC_IRQn 0 */ /* USER CODE BEGIN SVC_IRQn 1 */ /* USER CODE END SVC_IRQn 1 */ } - 8004d68: 4770 bx lr + 8004d6c: 4770 bx lr -08004d6a : +08004d6e : /* USER CODE END PendSV_IRQn 0 */ /* USER CODE BEGIN PendSV_IRQn 1 */ /* USER CODE END PendSV_IRQn 1 */ } - 8004d6a: 4770 bx lr + 8004d6e: 4770 bx lr -08004d6c : +08004d70 : /** * @brief This function handles System tick timer. */ void SysTick_Handler(void) { - 8004d6c: b510 push {r4, lr} + 8004d70: b510 push {r4, lr} /* USER CODE BEGIN SysTick_IRQn 0 */ /* USER CODE END SysTick_IRQn 0 */ HAL_IncTick(); - 8004d6e: f7fb fa95 bl 800029c + 8004d72: f7fb fa93 bl 800029c HAL_SYSTICK_IRQHandler(); - 8004d72: f7fb ff32 bl 8000bda + 8004d76: f7fb ff30 bl 8000bda /* USER CODE BEGIN SysTick_IRQn 1 */ /* USER CODE END SysTick_IRQn 1 */ } - 8004d76: bd10 pop {r4, pc} + 8004d7a: bd10 pop {r4, pc} -08004d78 : +08004d7c : /** * @brief This function handles DMA1 channel 4 and 5 interrupts. */ void DMA1_Channel4_5_IRQHandler(void) { - 8004d78: b510 push {r4, lr} + 8004d7c: b510 push {r4, lr} /* USER CODE BEGIN DMA1_Channel4_5_IRQn 0 */ /* USER CODE END DMA1_Channel4_5_IRQn 0 */ HAL_DMA_IRQHandler(&hdma_usart2_tx); - 8004d7a: 4803 ldr r0, [pc, #12] ; (8004d88 ) - 8004d7c: f7fb ffdb bl 8000d36 + 8004d7e: 4803 ldr r0, [pc, #12] ; (8004d8c ) + 8004d80: f7fb ffd9 bl 8000d36 HAL_DMA_IRQHandler(&hdma_usart2_rx); - 8004d80: 4802 ldr r0, [pc, #8] ; (8004d8c ) - 8004d82: f7fb ffd8 bl 8000d36 + 8004d84: 4802 ldr r0, [pc, #8] ; (8004d90 ) + 8004d86: f7fb ffd6 bl 8000d36 /* USER CODE BEGIN DMA1_Channel4_5_IRQn 1 */ /* USER CODE END DMA1_Channel4_5_IRQn 1 */ } - 8004d86: bd10 pop {r4, pc} - 8004d88: 20000534 .word 0x20000534 - 8004d8c: 20000498 .word 0x20000498 + 8004d8a: bd10 pop {r4, pc} + 8004d8c: 20000534 .word 0x20000534 + 8004d90: 20000498 .word 0x20000498 -08004d90 : +08004d94 : /** * @brief This function handles USB global Interrupt / USB wake-up interrupt through EXTI line 18. */ void USB_IRQHandler(void) { - 8004d90: b510 push {r4, lr} + 8004d94: b510 push {r4, lr} /* USER CODE BEGIN USB_IRQn 0 */ /* USER CODE END USB_IRQn 0 */ HAL_PCD_IRQHandler(&hpcd_USB_FS); - 8004d92: 4802 ldr r0, [pc, #8] ; (8004d9c ) - 8004d94: f7fd fb44 bl 8002420 + 8004d96: 4802 ldr r0, [pc, #8] ; (8004da0 ) + 8004d98: f7fd fb42 bl 8002420 /* USER CODE BEGIN USB_IRQn 1 */ /* USER CODE END USB_IRQn 1 */ } - 8004d98: bd10 pop {r4, pc} - 8004d9a: 46c0 nop ; (mov r8, r8) - 8004d9c: 20000990 .word 0x20000990 + 8004d9c: bd10 pop {r4, pc} + 8004d9e: 46c0 nop ; (mov r8, r8) + 8004da0: 20000990 .word 0x20000990 -08004da0 : +08004da4 : /* USER CODE BEGIN 1 */ extern CAN_HandleTypeDef hcan; void CEC_CAN_IRQHandler(void) { - 8004da0: b510 push {r4, lr} + 8004da4: b510 push {r4, lr} HAL_CAN_IRQHandler(&hcan); - 8004da2: 4802 ldr r0, [pc, #8] ; (8004dac ) - 8004da4: f7fb fcc8 bl 8000738 + 8004da6: 4802 ldr r0, [pc, #8] ; (8004db0 ) + 8004da8: f7fb fcc6 bl 8000738 } - 8004da8: bd10 pop {r4, pc} - 8004daa: 46c0 nop ; (mov r8, r8) - 8004dac: 200004f0 .word 0x200004f0 + 8004dac: bd10 pop {r4, pc} + 8004dae: 46c0 nop ; (mov r8, r8) + 8004db0: 200004f0 .word 0x200004f0 -08004db0 : +08004db4 : extern UART_HandleTypeDef huart2; void USART2_IRQHandler(void) { - 8004db0: b510 push {r4, lr} + 8004db4: b510 push {r4, lr} UART_HandleTypeDef * huart = &huart2; HAL_IWDG_Refresh(&hiwdg); - 8004db2: 480c ldr r0, [pc, #48] ; (8004de4 ) - 8004db4: f7fc faa0 bl 80012f8 + 8004db6: 480c ldr r0, [pc, #48] ; (8004de8 ) + 8004db8: f7fc fa9e bl 80012f8 if((USART2->ISR & USART_ISR_CMF) == USART_ISR_CMF) //character match interrupt - 8004db8: 4b0b ldr r3, [pc, #44] ; (8004de8 ) - 8004dba: 69db ldr r3, [r3, #28] - 8004dbc: 039b lsls r3, r3, #14 - 8004dbe: d403 bmi.n 8004dc8 + 8004dbc: 4b0b ldr r3, [pc, #44] ; (8004dec ) + 8004dbe: 69db ldr r3, [r3, #28] + 8004dc0: 039b lsls r3, r3, #14 + 8004dc2: d403 bmi.n 8004dcc { USART2->ICR |= USART_ICR_CMCF; HAL_UART_DMAStop(&huart2); HAL_UART_RxCpltCallback(&huart2); } HAL_UART_IRQHandler(&huart2); - 8004dc0: 480a ldr r0, [pc, #40] ; (8004dec ) - 8004dc2: f7fe fa2f bl 8003224 + 8004dc4: 480a ldr r0, [pc, #40] ; (8004df0 ) + 8004dc6: f7fe fa2d bl 8003224 } - 8004dc6: bd10 pop {r4, pc} + 8004dca: bd10 pop {r4, pc} USART2->ICR |= USART_ICR_CMCF; - 8004dc8: 4a07 ldr r2, [pc, #28] ; (8004de8 ) - 8004dca: 6a11 ldr r1, [r2, #32] - 8004dcc: 2380 movs r3, #128 ; 0x80 - 8004dce: 029b lsls r3, r3, #10 - 8004dd0: 430b orrs r3, r1 - 8004dd2: 6213 str r3, [r2, #32] + 8004dcc: 4a07 ldr r2, [pc, #28] ; (8004dec ) + 8004dce: 6a11 ldr r1, [r2, #32] + 8004dd0: 2380 movs r3, #128 ; 0x80 + 8004dd2: 029b lsls r3, r3, #10 + 8004dd4: 430b orrs r3, r1 + 8004dd6: 6213 str r3, [r2, #32] HAL_UART_DMAStop(&huart2); - 8004dd4: 4c05 ldr r4, [pc, #20] ; (8004dec ) - 8004dd6: 0020 movs r0, r4 - 8004dd8: f7fd ff54 bl 8002c84 + 8004dd8: 4c05 ldr r4, [pc, #20] ; (8004df0 ) + 8004dda: 0020 movs r0, r4 + 8004ddc: f7fd ff52 bl 8002c84 HAL_UART_RxCpltCallback(&huart2); - 8004ddc: 0020 movs r0, r4 - 8004dde: f7ff fa53 bl 8004288 - 8004de2: e7ed b.n 8004dc0 - 8004de4: 200004e0 .word 0x200004e0 - 8004de8: 40004400 .word 0x40004400 - 8004dec: 200005dc .word 0x200005dc - -08004df0 : + 8004de0: 0020 movs r0, r4 + 8004de2: f7ff fa53 bl 800428c + 8004de6: e7ed b.n 8004dc4 + 8004de8: 200004e0 .word 0x200004e0 + 8004dec: 40004400 .word 0x40004400 + 8004df0: 200005dc .word 0x200005dc + +08004df4 : */ void SystemInit(void) { /* Reset the RCC clock configuration to the default reset state ------------*/ /* Set HSION bit */ RCC->CR |= (uint32_t)0x00000001U; - 8004df0: 4b11 ldr r3, [pc, #68] ; (8004e38 ) - 8004df2: 681a ldr r2, [r3, #0] - 8004df4: 2101 movs r1, #1 - 8004df6: 430a orrs r2, r1 - 8004df8: 601a str r2, [r3, #0] + 8004df4: 4b11 ldr r3, [pc, #68] ; (8004e3c ) + 8004df6: 681a ldr r2, [r3, #0] + 8004df8: 2101 movs r1, #1 + 8004dfa: 430a orrs r2, r1 + 8004dfc: 601a str r2, [r3, #0] #if defined (STM32F051x8) || defined (STM32F058x8) /* Reset SW[1:0], HPRE[3:0], PPRE[2:0], ADCPRE and MCOSEL[2:0] bits */ RCC->CFGR &= (uint32_t)0xF8FFB80CU; #else /* Reset SW[1:0], HPRE[3:0], PPRE[2:0], ADCPRE, MCOSEL[2:0], MCOPRE[2:0] and PLLNODIV bits */ RCC->CFGR &= (uint32_t)0x08FFB80CU; - 8004dfa: 685a ldr r2, [r3, #4] - 8004dfc: 480f ldr r0, [pc, #60] ; (8004e3c ) - 8004dfe: 4002 ands r2, r0 - 8004e00: 605a str r2, [r3, #4] + 8004dfe: 685a ldr r2, [r3, #4] + 8004e00: 480f ldr r0, [pc, #60] ; (8004e40 ) + 8004e02: 4002 ands r2, r0 + 8004e04: 605a str r2, [r3, #4] #endif /* STM32F051x8 or STM32F058x8 */ /* Reset HSEON, CSSON and PLLON bits */ RCC->CR &= (uint32_t)0xFEF6FFFFU; - 8004e02: 681a ldr r2, [r3, #0] - 8004e04: 480e ldr r0, [pc, #56] ; (8004e40 ) - 8004e06: 4002 ands r2, r0 - 8004e08: 601a str r2, [r3, #0] + 8004e06: 681a ldr r2, [r3, #0] + 8004e08: 480e ldr r0, [pc, #56] ; (8004e44 ) + 8004e0a: 4002 ands r2, r0 + 8004e0c: 601a str r2, [r3, #0] /* Reset HSEBYP bit */ RCC->CR &= (uint32_t)0xFFFBFFFFU; - 8004e0a: 681a ldr r2, [r3, #0] - 8004e0c: 480d ldr r0, [pc, #52] ; (8004e44 ) - 8004e0e: 4002 ands r2, r0 - 8004e10: 601a str r2, [r3, #0] + 8004e0e: 681a ldr r2, [r3, #0] + 8004e10: 480d ldr r0, [pc, #52] ; (8004e48 ) + 8004e12: 4002 ands r2, r0 + 8004e14: 601a str r2, [r3, #0] /* Reset PLLSRC, PLLXTPRE and PLLMUL[3:0] bits */ RCC->CFGR &= (uint32_t)0xFFC0FFFFU; - 8004e12: 685a ldr r2, [r3, #4] - 8004e14: 480c ldr r0, [pc, #48] ; (8004e48 ) - 8004e16: 4002 ands r2, r0 - 8004e18: 605a str r2, [r3, #4] + 8004e16: 685a ldr r2, [r3, #4] + 8004e18: 480c ldr r0, [pc, #48] ; (8004e4c ) + 8004e1a: 4002 ands r2, r0 + 8004e1c: 605a str r2, [r3, #4] /* Reset PREDIV[3:0] bits */ RCC->CFGR2 &= (uint32_t)0xFFFFFFF0U; - 8004e1a: 6ada ldr r2, [r3, #44] ; 0x2c - 8004e1c: 200f movs r0, #15 - 8004e1e: 4382 bics r2, r0 - 8004e20: 62da str r2, [r3, #44] ; 0x2c + 8004e1e: 6ada ldr r2, [r3, #44] ; 0x2c + 8004e20: 200f movs r0, #15 + 8004e22: 4382 bics r2, r0 + 8004e24: 62da str r2, [r3, #44] ; 0x2c #elif defined (STM32F051x8) || defined (STM32F058xx) /* Reset USART1SW[1:0], I2C1SW, CECSW and ADCSW bits */ RCC->CFGR3 &= (uint32_t)0xFFFFFEACU; #elif defined (STM32F042x6) || defined (STM32F048xx) /* Reset USART1SW[1:0], I2C1SW, CECSW, USBSW and ADCSW bits */ RCC->CFGR3 &= (uint32_t)0xFFFFFE2CU; - 8004e22: 6b1a ldr r2, [r3, #48] ; 0x30 - 8004e24: 4809 ldr r0, [pc, #36] ; (8004e4c ) - 8004e26: 4002 ands r2, r0 - 8004e28: 631a str r2, [r3, #48] ; 0x30 + 8004e26: 6b1a ldr r2, [r3, #48] ; 0x30 + 8004e28: 4809 ldr r0, [pc, #36] ; (8004e50 ) + 8004e2a: 4002 ands r2, r0 + 8004e2c: 631a str r2, [r3, #48] ; 0x30 #else #warning "No target selected" #endif /* Reset HSI14 bit */ RCC->CR2 &= (uint32_t)0xFFFFFFFEU; - 8004e2a: 6b5a ldr r2, [r3, #52] ; 0x34 - 8004e2c: 438a bics r2, r1 - 8004e2e: 635a str r2, [r3, #52] ; 0x34 + 8004e2e: 6b5a ldr r2, [r3, #52] ; 0x34 + 8004e30: 438a bics r2, r1 + 8004e32: 635a str r2, [r3, #52] ; 0x34 /* Disable all interrupts */ RCC->CIR = 0x00000000U; - 8004e30: 2200 movs r2, #0 - 8004e32: 609a str r2, [r3, #8] + 8004e34: 2200 movs r2, #0 + 8004e36: 609a str r2, [r3, #8] } - 8004e34: 4770 bx lr - 8004e36: 46c0 nop ; (mov r8, r8) - 8004e38: 40021000 .word 0x40021000 - 8004e3c: 08ffb80c .word 0x08ffb80c - 8004e40: fef6ffff .word 0xfef6ffff - 8004e44: fffbffff .word 0xfffbffff - 8004e48: ffc0ffff .word 0xffc0ffff - 8004e4c: fffffe2c .word 0xfffffe2c + 8004e38: 4770 bx lr + 8004e3a: 46c0 nop ; (mov r8, r8) + 8004e3c: 40021000 .word 0x40021000 + 8004e40: 08ffb80c .word 0x08ffb80c + 8004e44: fef6ffff .word 0xfef6ffff + 8004e48: fffbffff .word 0xfffbffff + 8004e4c: ffc0ffff .word 0xffc0ffff + 8004e50: fffffe2c .word 0xfffffe2c -08004e50 : +08004e54 : /** * Init USB device Library, add supported class and start the library * @retval None */ void MX_USB_DEVICE_Init(void) { - 8004e50: b510 push {r4, lr} + 8004e54: b510 push {r4, lr} /* USER CODE BEGIN USB_DEVICE_Init_PreTreatment */ /* USER CODE END USB_DEVICE_Init_PreTreatment */ /* Init Device Library, add supported class and start the library. */ USBD_Init(&hUsbDeviceFS, &FS_Desc, DEVICE_FS); - 8004e52: 4c09 ldr r4, [pc, #36] ; (8004e78 ) - 8004e54: 2200 movs r2, #0 - 8004e56: 4909 ldr r1, [pc, #36] ; (8004e7c ) - 8004e58: 0020 movs r0, r4 - 8004e5a: f7fe fbe7 bl 800362c + 8004e56: 4c09 ldr r4, [pc, #36] ; (8004e7c ) + 8004e58: 2200 movs r2, #0 + 8004e5a: 4909 ldr r1, [pc, #36] ; (8004e80 ) + 8004e5c: 0020 movs r0, r4 + 8004e5e: f7fe fbe5 bl 800362c USBD_RegisterClass(&hUsbDeviceFS, &USBD_CDC); - 8004e5e: 4908 ldr r1, [pc, #32] ; (8004e80 ) - 8004e60: 0020 movs r0, r4 - 8004e62: f7fe fbff bl 8003664 + 8004e62: 4908 ldr r1, [pc, #32] ; (8004e84 ) + 8004e64: 0020 movs r0, r4 + 8004e66: f7fe fbfd bl 8003664 USBD_CDC_RegisterInterface(&hUsbDeviceFS, &USBD_Interface_fops_FS); - 8004e66: 4907 ldr r1, [pc, #28] ; (8004e84 ) - 8004e68: 0020 movs r0, r4 - 8004e6a: f7fe fb89 bl 8003580 + 8004e6a: 4907 ldr r1, [pc, #28] ; (8004e88 ) + 8004e6c: 0020 movs r0, r4 + 8004e6e: f7fe fb87 bl 8003580 USBD_Start(&hUsbDeviceFS); - 8004e6e: 0020 movs r0, r4 - 8004e70: f7fe fc01 bl 8003676 + 8004e72: 0020 movs r0, r4 + 8004e74: f7fe fbff bl 8003676 /* USER CODE BEGIN USB_DEVICE_Init_PostTreatment */ /* USER CODE END USB_DEVICE_Init_PostTreatment */ } - 8004e74: bd10 pop {r4, pc} - 8004e76: 46c0 nop ; (mov r8, r8) - 8004e78: 2000066c .word 0x2000066c - 8004e7c: 2000012c .word 0x2000012c - 8004e80: 20000000 .word 0x20000000 - 8004e84: 2000011c .word 0x2000011c + 8004e78: bd10 pop {r4, pc} + 8004e7a: 46c0 nop ; (mov r8, r8) + 8004e7c: 2000066c .word 0x2000066c + 8004e80: 2000012c .word 0x2000012c + 8004e84: 20000000 .word 0x20000000 + 8004e88: 2000011c .word 0x2000011c -08004e88 : +08004e8c : static int8_t CDC_DeInit_FS(void) { /* USER CODE BEGIN 4 */ return (USBD_OK); /* USER CODE END 4 */ } - 8004e88: 2000 movs r0, #0 - 8004e8a: 4770 bx lr + 8004e8c: 2000 movs r0, #0 + 8004e8e: 4770 bx lr -08004e8c : +08004e90 : * @param Buf: Buffer of data to be received * @param Len: Number of data received (in bytes) * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL */ static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len) { - 8004e8c: b570 push {r4, r5, r6, lr} - 8004e8e: 0005 movs r5, r0 - 8004e90: 000e movs r6, r1 + 8004e90: b570 push {r4, r5, r6, lr} + 8004e92: 0005 movs r5, r0 + 8004e94: 000e movs r6, r1 /* USER CODE BEGIN 6 */ uint32_t i; for (i =0; i != *Len; i++) - 8004e92: 2400 movs r4, #0 - 8004e94: e003 b.n 8004e9e + 8004e96: 2400 movs r4, #0 + 8004e98: e003 b.n 8004ea2 { slCanCheckCommand(command); } } else /* for open state proceed is done in interrupt */ { slCanProccesInput(Buf[i]); - 8004e96: 5d28 ldrb r0, [r5, r4] - 8004e98: f7ff fb36 bl 8004508 + 8004e9a: 5d28 ldrb r0, [r5, r4] + 8004e9c: f7ff fb36 bl 800450c for (i =0; i != *Len; i++) - 8004e9c: 3401 adds r4, #1 - 8004e9e: 6833 ldr r3, [r6, #0] - 8004ea0: 429c cmp r4, r3 - 8004ea2: d00c beq.n 8004ebe + 8004ea0: 3401 adds r4, #1 + 8004ea2: 6833 ldr r3, [r6, #0] + 8004ea4: 429c cmp r4, r3 + 8004ea6: d00c beq.n 8004ec2 if (slcan_getState() == STATE_CONFIG) /* for config state proceed multiple commands in interrupt*/ - 8004ea4: f7ff fd62 bl 800496c - 8004ea8: 2800 cmp r0, #0 - 8004eaa: d1f4 bne.n 8004e96 + 8004ea8: f7ff fd62 bl 8004970 + 8004eac: 2800 cmp r0, #0 + 8004eae: d1f4 bne.n 8004e9a if (slCanProccesInput(Buf[i])) - 8004eac: 5d28 ldrb r0, [r5, r4] - 8004eae: f7ff fb2b bl 8004508 - 8004eb2: 2800 cmp r0, #0 - 8004eb4: d0f2 beq.n 8004e9c + 8004eb0: 5d28 ldrb r0, [r5, r4] + 8004eb2: f7ff fb2b bl 800450c + 8004eb6: 2800 cmp r0, #0 + 8004eb8: d0f2 beq.n 8004ea0 slCanCheckCommand(command); - 8004eb6: 4807 ldr r0, [pc, #28] ; (8004ed4 ) - 8004eb8: f7ff fb4c bl 8004554 - 8004ebc: e7ee b.n 8004e9c + 8004eba: 4807 ldr r0, [pc, #28] ; (8004ed8 ) + 8004ebc: f7ff fb4c bl 8004558 + 8004ec0: e7ee b.n 8004ea0 } } USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]); - 8004ebe: 4c06 ldr r4, [pc, #24] ; (8004ed8 ) - 8004ec0: 0029 movs r1, r5 - 8004ec2: 0020 movs r0, r4 - 8004ec4: f7fe fb70 bl 80035a8 + 8004ec2: 4c06 ldr r4, [pc, #24] ; (8004edc ) + 8004ec4: 0029 movs r1, r5 + 8004ec6: 0020 movs r0, r4 + 8004ec8: f7fe fb6e bl 80035a8 USBD_CDC_ReceivePacket(&hUsbDeviceFS); - 8004ec8: 0020 movs r0, r4 - 8004eca: f7fe fb91 bl 80035f0 + 8004ecc: 0020 movs r0, r4 + 8004ece: f7fe fb8f bl 80035f0 return (USBD_OK); /* USER CODE END 6 */ } - 8004ece: 2000 movs r0, #0 - 8004ed0: bd70 pop {r4, r5, r6, pc} - 8004ed2: 46c0 nop ; (mov r8, r8) - 8004ed4: 20000188 .word 0x20000188 - 8004ed8: 2000066c .word 0x2000066c + 8004ed2: 2000 movs r0, #0 + 8004ed4: bd70 pop {r4, r5, r6, pc} + 8004ed6: 46c0 nop ; (mov r8, r8) + 8004ed8: 20000188 .word 0x20000188 + 8004edc: 2000066c .word 0x2000066c -08004edc : +08004ee0 : { - 8004edc: b510 push {r4, lr} + 8004ee0: b510 push {r4, lr} switch (cmd) - 8004ede: 2822 cmp r0, #34 ; 0x22 - 8004ee0: d101 bne.n 8004ee6 + 8004ee2: 2822 cmp r0, #34 ; 0x22 + 8004ee4: d101 bne.n 8004eea slcanClose(); - 8004ee2: f7ff fabf bl 8004464 + 8004ee6: f7ff fabf bl 8004468 } - 8004ee6: 2000 movs r0, #0 - 8004ee8: bd10 pop {r4, pc} + 8004eea: 2000 movs r0, #0 + 8004eec: bd10 pop {r4, pc} ... -08004eec : +08004ef0 : { - 8004eec: b510 push {r4, lr} + 8004ef0: b510 push {r4, lr} USBD_CDC_SetTxBuffer(&hUsbDeviceFS, UserTxBufferFS, 0); - 8004eee: 4c06 ldr r4, [pc, #24] ; (8004f08 ) - 8004ef0: 2200 movs r2, #0 - 8004ef2: 4906 ldr r1, [pc, #24] ; (8004f0c ) - 8004ef4: 0020 movs r0, r4 - 8004ef6: f7fe fb4c bl 8003592 + 8004ef2: 4c06 ldr r4, [pc, #24] ; (8004f0c ) + 8004ef4: 2200 movs r2, #0 + 8004ef6: 4906 ldr r1, [pc, #24] ; (8004f10 ) + 8004ef8: 0020 movs r0, r4 + 8004efa: f7fe fb4a bl 8003592 USBD_CDC_SetRxBuffer(&hUsbDeviceFS, UserRxBufferFS); - 8004efa: 4905 ldr r1, [pc, #20] ; (8004f10 ) - 8004efc: 0020 movs r0, r4 - 8004efe: f7fe fb53 bl 80035a8 -} - 8004f02: 2000 movs r0, #0 - 8004f04: bd10 pop {r4, pc} - 8004f06: 46c0 nop ; (mov r8, r8) - 8004f08: 2000066c .word 0x2000066c - 8004f0c: 20000910 .word 0x20000910 - 8004f10: 20000890 .word 0x20000890 - -08004f14 : + 8004efe: 4905 ldr r1, [pc, #20] ; (8004f14 ) + 8004f00: 0020 movs r0, r4 + 8004f02: f7fe fb51 bl 80035a8 +} + 8004f06: 2000 movs r0, #0 + 8004f08: bd10 pop {r4, pc} + 8004f0a: 46c0 nop ; (mov r8, r8) + 8004f0c: 2000066c .word 0x2000066c + 8004f10: 20000910 .word 0x20000910 + 8004f14: 20000890 .word 0x20000890 + +08004f18 : * @param Buf: Buffer of data to be sent * @param Len: Number of data to be sent (in bytes) * @retval USBD_OK if all operations are OK else USBD_FAIL or USBD_BUSY */ uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len) { - 8004f14: b570 push {r4, r5, r6, lr} - 8004f16: 000c movs r4, r1 + 8004f18: b570 push {r4, r5, r6, lr} + 8004f1a: 000c movs r4, r1 uint8_t result = USBD_OK; /* USER CODE BEGIN 7 */ USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*)hUsbDeviceFS.pClassData; - 8004f18: 2386 movs r3, #134 ; 0x86 - 8004f1a: 009b lsls r3, r3, #2 - 8004f1c: 4a0b ldr r2, [pc, #44] ; (8004f4c ) - 8004f1e: 58d2 ldr r2, [r2, r3] + 8004f1c: 2386 movs r3, #134 ; 0x86 + 8004f1e: 009b lsls r3, r3, #2 + 8004f20: 4a0b ldr r2, [pc, #44] ; (8004f50 ) + 8004f22: 58d2 ldr r2, [r2, r3] if (hcdc->TxState != 0){ - 8004f20: 3b04 subs r3, #4 - 8004f22: 58d3 ldr r3, [r2, r3] - 8004f24: 2b00 cmp r3, #0 - 8004f26: d001 beq.n 8004f2c + 8004f24: 3b04 subs r3, #4 + 8004f26: 58d3 ldr r3, [r2, r3] + 8004f28: 2b00 cmp r3, #0 + 8004f2a: d001 beq.n 8004f30 return USBD_BUSY; - 8004f28: 2001 movs r0, #1 + 8004f2c: 2001 movs r0, #1 memcpy(UserTxBufferFS, Buf, Len); USBD_CDC_SetTxBuffer(&hUsbDeviceFS, UserTxBufferFS, Len); result = USBD_CDC_TransmitPacket(&hUsbDeviceFS); /* USER CODE END 7 */ return result; } - 8004f2a: bd70 pop {r4, r5, r6, pc} + 8004f2e: bd70 pop {r4, r5, r6, pc} memcpy(UserTxBufferFS, Buf, Len); - 8004f2c: 4e08 ldr r6, [pc, #32] ; (8004f50 ) - 8004f2e: 000a movs r2, r1 - 8004f30: 0001 movs r1, r0 - 8004f32: 0030 movs r0, r6 - 8004f34: f000 fa4e bl 80053d4 + 8004f30: 4e08 ldr r6, [pc, #32] ; (8004f54 ) + 8004f32: 000a movs r2, r1 + 8004f34: 0001 movs r1, r0 + 8004f36: 0030 movs r0, r6 + 8004f38: f000 fa4e bl 80053d8 USBD_CDC_SetTxBuffer(&hUsbDeviceFS, UserTxBufferFS, Len); - 8004f38: 4d04 ldr r5, [pc, #16] ; (8004f4c ) - 8004f3a: 0022 movs r2, r4 - 8004f3c: 0031 movs r1, r6 - 8004f3e: 0028 movs r0, r5 - 8004f40: f7fe fb27 bl 8003592 + 8004f3c: 4d04 ldr r5, [pc, #16] ; (8004f50 ) + 8004f3e: 0022 movs r2, r4 + 8004f40: 0031 movs r1, r6 + 8004f42: 0028 movs r0, r5 + 8004f44: f7fe fb25 bl 8003592 result = USBD_CDC_TransmitPacket(&hUsbDeviceFS); - 8004f44: 0028 movs r0, r5 - 8004f46: f7fe fb36 bl 80035b6 + 8004f48: 0028 movs r0, r5 + 8004f4a: f7fe fb34 bl 80035b6 return result; - 8004f4a: e7ee b.n 8004f2a - 8004f4c: 2000066c .word 0x2000066c - 8004f50: 20000910 .word 0x20000910 + 8004f4e: e7ee b.n 8004f2e + 8004f50: 2000066c .word 0x2000066c + 8004f54: 20000910 .word 0x20000910 -08004f54 : +08004f58 : * enable HSI, PLL and select PLL as system clock source. * @param None * @retval None */ static void SystemClockConfig_Resume(void) { - 8004f54: b510 push {r4, lr} + 8004f58: b510 push {r4, lr} SystemClock_Config(); - 8004f56: f7ff f801 bl 8003f5c + 8004f5a: f7fe ffff bl 8003f5c } - 8004f5a: bd10 pop {r4, pc} + 8004f5e: bd10 pop {r4, pc} -08004f5c : +08004f60 : { - 8004f5c: b500 push {lr} - 8004f5e: b083 sub sp, #12 + 8004f60: b500 push {lr} + 8004f62: b083 sub sp, #12 if(pcdHandle->Instance==USB) - 8004f60: 6802 ldr r2, [r0, #0] - 8004f62: 4b0c ldr r3, [pc, #48] ; (8004f94 ) - 8004f64: 429a cmp r2, r3 - 8004f66: d001 beq.n 8004f6c + 8004f64: 6802 ldr r2, [r0, #0] + 8004f66: 4b0c ldr r3, [pc, #48] ; (8004f98 ) + 8004f68: 429a cmp r2, r3 + 8004f6a: d001 beq.n 8004f70 } - 8004f68: b003 add sp, #12 - 8004f6a: bd00 pop {pc} + 8004f6c: b003 add sp, #12 + 8004f6e: bd00 pop {pc} __HAL_RCC_USB_CLK_ENABLE(); - 8004f6c: 4a0a ldr r2, [pc, #40] ; (8004f98 ) - 8004f6e: 69d1 ldr r1, [r2, #28] - 8004f70: 2080 movs r0, #128 ; 0x80 - 8004f72: 0400 lsls r0, r0, #16 - 8004f74: 4301 orrs r1, r0 - 8004f76: 61d1 str r1, [r2, #28] - 8004f78: 69d3 ldr r3, [r2, #28] - 8004f7a: 4003 ands r3, r0 - 8004f7c: 9301 str r3, [sp, #4] - 8004f7e: 9b01 ldr r3, [sp, #4] + 8004f70: 4a0a ldr r2, [pc, #40] ; (8004f9c ) + 8004f72: 69d1 ldr r1, [r2, #28] + 8004f74: 2080 movs r0, #128 ; 0x80 + 8004f76: 0400 lsls r0, r0, #16 + 8004f78: 4301 orrs r1, r0 + 8004f7a: 61d1 str r1, [r2, #28] + 8004f7c: 69d3 ldr r3, [r2, #28] + 8004f7e: 4003 ands r3, r0 + 8004f80: 9301 str r3, [sp, #4] + 8004f82: 9b01 ldr r3, [sp, #4] HAL_NVIC_SetPriority(USB_IRQn, 0, 0); - 8004f80: 2200 movs r2, #0 - 8004f82: 2100 movs r1, #0 - 8004f84: 201f movs r0, #31 - 8004f86: f7fb fdb5 bl 8000af4 + 8004f84: 2200 movs r2, #0 + 8004f86: 2100 movs r1, #0 + 8004f88: 201f movs r0, #31 + 8004f8a: f7fb fdb3 bl 8000af4 HAL_NVIC_EnableIRQ(USB_IRQn); - 8004f8a: 201f movs r0, #31 - 8004f8c: f7fb fde4 bl 8000b58 + 8004f8e: 201f movs r0, #31 + 8004f90: f7fb fde2 bl 8000b58 } - 8004f90: e7ea b.n 8004f68 - 8004f92: 46c0 nop ; (mov r8, r8) - 8004f94: 40005c00 .word 0x40005c00 - 8004f98: 40021000 .word 0x40021000 + 8004f94: e7ea b.n 8004f6c + 8004f96: 46c0 nop ; (mov r8, r8) + 8004f98: 40005c00 .word 0x40005c00 + 8004f9c: 40021000 .word 0x40021000 -08004f9c : +08004fa0 : { - 8004f9c: b510 push {r4, lr} - 8004f9e: 0001 movs r1, r0 + 8004fa0: b510 push {r4, lr} + 8004fa2: 0001 movs r1, r0 USBD_LL_SetupStage((USBD_HandleTypeDef*)hpcd->pData, (uint8_t *)hpcd->Setup); - 8004fa0: 2387 movs r3, #135 ; 0x87 - 8004fa2: 009b lsls r3, r3, #2 - 8004fa4: 58c0 ldr r0, [r0, r3] - 8004fa6: 31ed adds r1, #237 ; 0xed - 8004fa8: 31ff adds r1, #255 ; 0xff - 8004faa: f7fe fb81 bl 80036b0 + 8004fa4: 2387 movs r3, #135 ; 0x87 + 8004fa6: 009b lsls r3, r3, #2 + 8004fa8: 58c0 ldr r0, [r0, r3] + 8004faa: 31ed adds r1, #237 ; 0xed + 8004fac: 31ff adds r1, #255 ; 0xff + 8004fae: f7fe fb7f bl 80036b0 } - 8004fae: bd10 pop {r4, pc} + 8004fb2: bd10 pop {r4, pc} -08004fb0 : +08004fb4 : { - 8004fb0: b510 push {r4, lr} - 8004fb2: 0003 movs r3, r0 + 8004fb4: b510 push {r4, lr} + 8004fb6: 0003 movs r3, r0 USBD_LL_DataOutStage((USBD_HandleTypeDef*)hpcd->pData, epnum, hpcd->OUT_ep[epnum].xfer_buff); - 8004fb4: 2287 movs r2, #135 ; 0x87 - 8004fb6: 0092 lsls r2, r2, #2 - 8004fb8: 5880 ldr r0, [r0, r2] - 8004fba: 00ca lsls r2, r1, #3 - 8004fbc: 1a52 subs r2, r2, r1 - 8004fbe: 0094 lsls r4, r2, #2 - 8004fc0: 191b adds r3, r3, r4 - 8004fc2: 3319 adds r3, #25 - 8004fc4: 33ff adds r3, #255 ; 0xff - 8004fc6: 681a ldr r2, [r3, #0] - 8004fc8: f7fe fba6 bl 8003718 -} - 8004fcc: bd10 pop {r4, pc} - -08004fce : -{ - 8004fce: b510 push {r4, lr} - 8004fd0: 0003 movs r3, r0 + 8004fb8: 2287 movs r2, #135 ; 0x87 + 8004fba: 0092 lsls r2, r2, #2 + 8004fbc: 5880 ldr r0, [r0, r2] + 8004fbe: 00ca lsls r2, r1, #3 + 8004fc0: 1a52 subs r2, r2, r1 + 8004fc2: 0094 lsls r4, r2, #2 + 8004fc4: 191b adds r3, r3, r4 + 8004fc6: 3319 adds r3, #25 + 8004fc8: 33ff adds r3, #255 ; 0xff + 8004fca: 681a ldr r2, [r3, #0] + 8004fcc: f7fe fba4 bl 8003718 +} + 8004fd0: bd10 pop {r4, pc} + +08004fd2 : +{ + 8004fd2: b510 push {r4, lr} + 8004fd4: 0003 movs r3, r0 USBD_LL_DataInStage((USBD_HandleTypeDef*)hpcd->pData, epnum, hpcd->IN_ep[epnum].xfer_buff); - 8004fd2: 2287 movs r2, #135 ; 0x87 - 8004fd4: 0092 lsls r2, r2, #2 - 8004fd6: 5880 ldr r0, [r0, r2] - 8004fd8: 00ca lsls r2, r1, #3 - 8004fda: 1a52 subs r2, r2, r1 - 8004fdc: 0094 lsls r4, r2, #2 - 8004fde: 191b adds r3, r3, r4 - 8004fe0: 6b9a ldr r2, [r3, #56] ; 0x38 - 8004fe2: f7fe fbd6 bl 8003792 + 8004fd6: 2287 movs r2, #135 ; 0x87 + 8004fd8: 0092 lsls r2, r2, #2 + 8004fda: 5880 ldr r0, [r0, r2] + 8004fdc: 00ca lsls r2, r1, #3 + 8004fde: 1a52 subs r2, r2, r1 + 8004fe0: 0094 lsls r4, r2, #2 + 8004fe2: 191b adds r3, r3, r4 + 8004fe4: 6b9a ldr r2, [r3, #56] ; 0x38 + 8004fe6: f7fe fbd4 bl 8003792 } - 8004fe6: bd10 pop {r4, pc} + 8004fea: bd10 pop {r4, pc} -08004fe8 : +08004fec : { - 8004fe8: b510 push {r4, lr} + 8004fec: b510 push {r4, lr} USBD_LL_SOF((USBD_HandleTypeDef*)hpcd->pData); - 8004fea: 2387 movs r3, #135 ; 0x87 - 8004fec: 009b lsls r3, r3, #2 - 8004fee: 58c0 ldr r0, [r0, r3] - 8004ff0: f7fe fc69 bl 80038c6 + 8004fee: 2387 movs r3, #135 ; 0x87 + 8004ff0: 009b lsls r3, r3, #2 + 8004ff2: 58c0 ldr r0, [r0, r3] + 8004ff4: f7fe fc67 bl 80038c6 } - 8004ff4: bd10 pop {r4, pc} + 8004ff8: bd10 pop {r4, pc} -08004ff6 : +08004ffa : { - 8004ff6: b570 push {r4, r5, r6, lr} - 8004ff8: 0005 movs r5, r0 + 8004ffa: b570 push {r4, r5, r6, lr} + 8004ffc: 0005 movs r5, r0 USBD_LL_SetSpeed((USBD_HandleTypeDef*)hpcd->pData, speed); - 8004ffa: 2487 movs r4, #135 ; 0x87 - 8004ffc: 00a4 lsls r4, r4, #2 - 8004ffe: 2101 movs r1, #1 - 8005000: 5900 ldr r0, [r0, r4] - 8005002: f7fe fc4b bl 800389c + 8004ffe: 2487 movs r4, #135 ; 0x87 + 8005000: 00a4 lsls r4, r4, #2 + 8005002: 2101 movs r1, #1 + 8005004: 5900 ldr r0, [r0, r4] + 8005006: f7fe fc49 bl 800389c USBD_LL_Reset((USBD_HandleTypeDef*)hpcd->pData); - 8005006: 5928 ldr r0, [r5, r4] - 8005008: f7fe fc25 bl 8003856 + 800500a: 5928 ldr r0, [r5, r4] + 800500c: f7fe fc23 bl 8003856 } - 800500c: bd70 pop {r4, r5, r6, pc} + 8005010: bd70 pop {r4, r5, r6, pc} ... -08005010 : +08005014 : { - 8005010: b510 push {r4, lr} - 8005012: 0004 movs r4, r0 + 8005014: b510 push {r4, lr} + 8005016: 0004 movs r4, r0 USBD_LL_Suspend((USBD_HandleTypeDef*)hpcd->pData); - 8005014: 2387 movs r3, #135 ; 0x87 - 8005016: 009b lsls r3, r3, #2 - 8005018: 58c0 ldr r0, [r0, r3] - 800501a: f7fe fc42 bl 80038a2 + 8005018: 2387 movs r3, #135 ; 0x87 + 800501a: 009b lsls r3, r3, #2 + 800501c: 58c0 ldr r0, [r0, r3] + 800501e: f7fe fc40 bl 80038a2 if (hpcd->Init.low_power_enable) - 800501e: 69a3 ldr r3, [r4, #24] - 8005020: 2b00 cmp r3, #0 - 8005022: d004 beq.n 800502e + 8005022: 69a3 ldr r3, [r4, #24] + 8005024: 2b00 cmp r3, #0 + 8005026: d004 beq.n 8005032 SCB->SCR |= (uint32_t)((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk)); - 8005024: 4a02 ldr r2, [pc, #8] ; (8005030 ) - 8005026: 6913 ldr r3, [r2, #16] - 8005028: 2106 movs r1, #6 - 800502a: 430b orrs r3, r1 - 800502c: 6113 str r3, [r2, #16] + 8005028: 4a02 ldr r2, [pc, #8] ; (8005034 ) + 800502a: 6913 ldr r3, [r2, #16] + 800502c: 2106 movs r1, #6 + 800502e: 430b orrs r3, r1 + 8005030: 6113 str r3, [r2, #16] } - 800502e: bd10 pop {r4, pc} - 8005030: e000ed00 .word 0xe000ed00 + 8005032: bd10 pop {r4, pc} + 8005034: e000ed00 .word 0xe000ed00 -08005034 : +08005038 : { - 8005034: b510 push {r4, lr} - 8005036: 0004 movs r4, r0 + 8005038: b510 push {r4, lr} + 800503a: 0004 movs r4, r0 if (hpcd->Init.low_power_enable) - 8005038: 6983 ldr r3, [r0, #24] - 800503a: 2b00 cmp r3, #0 - 800503c: d105 bne.n 800504a + 800503c: 6983 ldr r3, [r0, #24] + 800503e: 2b00 cmp r3, #0 + 8005040: d105 bne.n 800504e USBD_LL_Resume((USBD_HandleTypeDef*)hpcd->pData); - 800503e: 2387 movs r3, #135 ; 0x87 - 8005040: 009b lsls r3, r3, #2 - 8005042: 58e0 ldr r0, [r4, r3] - 8005044: f7fe fc38 bl 80038b8 + 8005042: 2387 movs r3, #135 ; 0x87 + 8005044: 009b lsls r3, r3, #2 + 8005046: 58e0 ldr r0, [r4, r3] + 8005048: f7fe fc36 bl 80038b8 } - 8005048: bd10 pop {r4, pc} + 800504c: bd10 pop {r4, pc} SCB->SCR &= (uint32_t)~((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk)); - 800504a: 4a04 ldr r2, [pc, #16] ; (800505c ) - 800504c: 6913 ldr r3, [r2, #16] - 800504e: 2106 movs r1, #6 - 8005050: 438b bics r3, r1 - 8005052: 6113 str r3, [r2, #16] + 800504e: 4a04 ldr r2, [pc, #16] ; (8005060 ) + 8005050: 6913 ldr r3, [r2, #16] + 8005052: 2106 movs r1, #6 + 8005054: 438b bics r3, r1 + 8005056: 6113 str r3, [r2, #16] SystemClockConfig_Resume(); - 8005054: f7ff ff7e bl 8004f54 - 8005058: e7f1 b.n 800503e - 800505a: 46c0 nop ; (mov r8, r8) - 800505c: e000ed00 .word 0xe000ed00 + 8005058: f7ff ff7e bl 8004f58 + 800505c: e7f1 b.n 8005042 + 800505e: 46c0 nop ; (mov r8, r8) + 8005060: e000ed00 .word 0xe000ed00 -08005060 : +08005064 : { - 8005060: b570 push {r4, r5, r6, lr} - 8005062: 0004 movs r4, r0 + 8005064: b570 push {r4, r5, r6, lr} + 8005066: 0004 movs r4, r0 hpcd_USB_FS.pData = pdev; - 8005064: 481f ldr r0, [pc, #124] ; (80050e4 ) - 8005066: 2387 movs r3, #135 ; 0x87 - 8005068: 009b lsls r3, r3, #2 - 800506a: 50c4 str r4, [r0, r3] + 8005068: 481f ldr r0, [pc, #124] ; (80050e8 ) + 800506a: 2387 movs r3, #135 ; 0x87 + 800506c: 009b lsls r3, r3, #2 + 800506e: 50c4 str r4, [r0, r3] pdev->pData = &hpcd_USB_FS; - 800506c: 3304 adds r3, #4 - 800506e: 50e0 str r0, [r4, r3] + 8005070: 3304 adds r3, #4 + 8005072: 50e0 str r0, [r4, r3] hpcd_USB_FS.Instance = USB; - 8005070: 4b1d ldr r3, [pc, #116] ; (80050e8 ) - 8005072: 6003 str r3, [r0, #0] + 8005074: 4b1d ldr r3, [pc, #116] ; (80050ec ) + 8005076: 6003 str r3, [r0, #0] hpcd_USB_FS.Init.dev_endpoints = 8; - 8005074: 2308 movs r3, #8 - 8005076: 6043 str r3, [r0, #4] + 8005078: 2308 movs r3, #8 + 800507a: 6043 str r3, [r0, #4] hpcd_USB_FS.Init.speed = PCD_SPEED_FULL; - 8005078: 2202 movs r2, #2 - 800507a: 6082 str r2, [r0, #8] + 800507c: 2202 movs r2, #2 + 800507e: 6082 str r2, [r0, #8] hpcd_USB_FS.Init.ep0_mps = DEP0CTL_MPS_64; - 800507c: 2300 movs r3, #0 - 800507e: 60c3 str r3, [r0, #12] + 8005080: 2300 movs r3, #0 + 8005082: 60c3 str r3, [r0, #12] hpcd_USB_FS.Init.phy_itface = PCD_PHY_EMBEDDED; - 8005080: 6102 str r2, [r0, #16] + 8005084: 6102 str r2, [r0, #16] hpcd_USB_FS.Init.low_power_enable = DISABLE; - 8005082: 6183 str r3, [r0, #24] + 8005086: 6183 str r3, [r0, #24] hpcd_USB_FS.Init.lpm_enable = DISABLE; - 8005084: 61c3 str r3, [r0, #28] + 8005088: 61c3 str r3, [r0, #28] hpcd_USB_FS.Init.battery_charging_enable = DISABLE; - 8005086: 6203 str r3, [r0, #32] + 800508a: 6203 str r3, [r0, #32] if (HAL_PCD_Init(&hpcd_USB_FS) != HAL_OK) - 8005088: f7fc f93e bl 8001308 - 800508c: 2800 cmp r0, #0 - 800508e: d123 bne.n 80050d8 + 800508c: f7fc f93c bl 8001308 + 8005090: 2800 cmp r0, #0 + 8005092: d123 bne.n 80050dc HAL_PCDEx_PMAConfig((PCD_HandleTypeDef*)pdev->pData , 0x00 , PCD_SNG_BUF, 0x18); - 8005090: 2588 movs r5, #136 ; 0x88 - 8005092: 00ad lsls r5, r5, #2 - 8005094: 2318 movs r3, #24 - 8005096: 2200 movs r2, #0 - 8005098: 2100 movs r1, #0 - 800509a: 5960 ldr r0, [r4, r5] - 800509c: f7fd fa50 bl 8002540 + 8005094: 2588 movs r5, #136 ; 0x88 + 8005096: 00ad lsls r5, r5, #2 + 8005098: 2318 movs r3, #24 + 800509a: 2200 movs r2, #0 + 800509c: 2100 movs r1, #0 + 800509e: 5960 ldr r0, [r4, r5] + 80050a0: f7fd fa4e bl 8002540 HAL_PCDEx_PMAConfig((PCD_HandleTypeDef*)pdev->pData , 0x80 , PCD_SNG_BUF, 0x58); - 80050a0: 2358 movs r3, #88 ; 0x58 - 80050a2: 2200 movs r2, #0 - 80050a4: 2180 movs r1, #128 ; 0x80 - 80050a6: 5960 ldr r0, [r4, r5] - 80050a8: f7fd fa4a bl 8002540 + 80050a4: 2358 movs r3, #88 ; 0x58 + 80050a6: 2200 movs r2, #0 + 80050a8: 2180 movs r1, #128 ; 0x80 + 80050aa: 5960 ldr r0, [r4, r5] + 80050ac: f7fd fa48 bl 8002540 HAL_PCDEx_PMAConfig((PCD_HandleTypeDef*)pdev->pData , 0x81 , PCD_SNG_BUF, 0xC0); - 80050ac: 23c0 movs r3, #192 ; 0xc0 - 80050ae: 2200 movs r2, #0 - 80050b0: 2181 movs r1, #129 ; 0x81 - 80050b2: 5960 ldr r0, [r4, r5] - 80050b4: f7fd fa44 bl 8002540 + 80050b0: 23c0 movs r3, #192 ; 0xc0 + 80050b2: 2200 movs r2, #0 + 80050b4: 2181 movs r1, #129 ; 0x81 + 80050b6: 5960 ldr r0, [r4, r5] + 80050b8: f7fd fa42 bl 8002540 HAL_PCDEx_PMAConfig((PCD_HandleTypeDef*)pdev->pData , 0x01 , PCD_SNG_BUF, 0x110); - 80050b8: 2388 movs r3, #136 ; 0x88 - 80050ba: 005b lsls r3, r3, #1 - 80050bc: 2200 movs r2, #0 - 80050be: 2101 movs r1, #1 - 80050c0: 5960 ldr r0, [r4, r5] - 80050c2: f7fd fa3d bl 8002540 + 80050bc: 2388 movs r3, #136 ; 0x88 + 80050be: 005b lsls r3, r3, #1 + 80050c0: 2200 movs r2, #0 + 80050c2: 2101 movs r1, #1 + 80050c4: 5960 ldr r0, [r4, r5] + 80050c6: f7fd fa3b bl 8002540 HAL_PCDEx_PMAConfig((PCD_HandleTypeDef*)pdev->pData , 0x82 , PCD_SNG_BUF, 0x100); - 80050c6: 5960 ldr r0, [r4, r5] - 80050c8: 2380 movs r3, #128 ; 0x80 - 80050ca: 005b lsls r3, r3, #1 - 80050cc: 2200 movs r2, #0 - 80050ce: 2182 movs r1, #130 ; 0x82 - 80050d0: f7fd fa36 bl 8002540 -} - 80050d4: 2000 movs r0, #0 - 80050d6: bd70 pop {r4, r5, r6, pc} + 80050ca: 5960 ldr r0, [r4, r5] + 80050cc: 2380 movs r3, #128 ; 0x80 + 80050ce: 005b lsls r3, r3, #1 + 80050d0: 2200 movs r2, #0 + 80050d2: 2182 movs r1, #130 ; 0x82 + 80050d4: f7fd fa34 bl 8002540 +} + 80050d8: 2000 movs r0, #0 + 80050da: bd70 pop {r4, r5, r6, pc} _Error_Handler(__FILE__, __LINE__); - 80050d8: 219a movs r1, #154 ; 0x9a - 80050da: 0049 lsls r1, r1, #1 - 80050dc: 4803 ldr r0, [pc, #12] ; (80050ec ) - 80050de: f7ff f8df bl 80042a0 <_Error_Handler> - 80050e2: e7d5 b.n 8005090 - 80050e4: 20000990 .word 0x20000990 - 80050e8: 40005c00 .word 0x40005c00 - 80050ec: 08005654 .word 0x08005654 - -080050f0 : -{ - 80050f0: b510 push {r4, lr} + 80050dc: 219a movs r1, #154 ; 0x9a + 80050de: 0049 lsls r1, r1, #1 + 80050e0: 4803 ldr r0, [pc, #12] ; (80050f0 ) + 80050e2: f7ff f8df bl 80042a4 <_Error_Handler> + 80050e6: e7d5 b.n 8005094 + 80050e8: 20000990 .word 0x20000990 + 80050ec: 40005c00 .word 0x40005c00 + 80050f0: 08005658 .word 0x08005658 + +080050f4 : +{ + 80050f4: b510 push {r4, lr} hal_status = HAL_PCD_Start(pdev->pData); - 80050f2: 2388 movs r3, #136 ; 0x88 - 80050f4: 009b lsls r3, r3, #2 - 80050f6: 58c0 ldr r0, [r0, r3] - 80050f8: f7fc f966 bl 80013c8 + 80050f6: 2388 movs r3, #136 ; 0x88 + 80050f8: 009b lsls r3, r3, #2 + 80050fa: 58c0 ldr r0, [r0, r3] + 80050fc: f7fc f964 bl 80013c8 switch (hal_status) { - 80050fc: 2800 cmp r0, #0 - 80050fe: d003 beq.n 8005108 - 8005100: 2802 cmp r0, #2 - 8005102: d003 beq.n 800510c + 8005100: 2800 cmp r0, #0 + 8005102: d003 beq.n 800510c + 8005104: 2802 cmp r0, #2 + 8005106: d003 beq.n 8005110 usb_status = USBD_FAIL; - 8005104: 2002 movs r0, #2 + 8005108: 2002 movs r0, #2 } - 8005106: bd10 pop {r4, pc} + 800510a: bd10 pop {r4, pc} usb_status = USBD_OK; - 8005108: 2000 movs r0, #0 - 800510a: e7fc b.n 8005106 + 800510c: 2000 movs r0, #0 + 800510e: e7fc b.n 800510a usb_status = USBD_BUSY; - 800510c: 2001 movs r0, #1 + 8005110: 2001 movs r0, #1 break; - 800510e: e7fa b.n 8005106 + 8005112: e7fa b.n 800510a -08005110 : +08005114 : { - 8005110: b510 push {r4, lr} - 8005112: 0014 movs r4, r2 - 8005114: 001a movs r2, r3 + 8005114: b510 push {r4, lr} + 8005116: 0014 movs r4, r2 + 8005118: 001a movs r2, r3 hal_status = HAL_PCD_EP_Open(pdev->pData, ep_addr, ep_mps, ep_type); - 8005116: 2388 movs r3, #136 ; 0x88 - 8005118: 009b lsls r3, r3, #2 - 800511a: 58c0 ldr r0, [r0, r3] - 800511c: 0023 movs r3, r4 - 800511e: f7fc f97b bl 8001418 + 800511a: 2388 movs r3, #136 ; 0x88 + 800511c: 009b lsls r3, r3, #2 + 800511e: 58c0 ldr r0, [r0, r3] + 8005120: 0023 movs r3, r4 + 8005122: f7fc f979 bl 8001418 switch (hal_status) { - 8005122: 2800 cmp r0, #0 - 8005124: d003 beq.n 800512e - 8005126: 2802 cmp r0, #2 - 8005128: d003 beq.n 8005132 + 8005126: 2800 cmp r0, #0 + 8005128: d003 beq.n 8005132 + 800512a: 2802 cmp r0, #2 + 800512c: d003 beq.n 8005136 usb_status = USBD_FAIL; - 800512a: 2002 movs r0, #2 + 800512e: 2002 movs r0, #2 } - 800512c: bd10 pop {r4, pc} + 8005130: bd10 pop {r4, pc} usb_status = USBD_OK; - 800512e: 2000 movs r0, #0 - 8005130: e7fc b.n 800512c + 8005132: 2000 movs r0, #0 + 8005134: e7fc b.n 8005130 usb_status = USBD_BUSY; - 8005132: 2001 movs r0, #1 + 8005136: 2001 movs r0, #1 break; - 8005134: e7fa b.n 800512c + 8005138: e7fa b.n 8005130 -08005136 : +0800513a : { - 8005136: b510 push {r4, lr} + 800513a: b510 push {r4, lr} hal_status = HAL_PCD_EP_Close(pdev->pData, ep_addr); - 8005138: 2388 movs r3, #136 ; 0x88 - 800513a: 009b lsls r3, r3, #2 - 800513c: 58c0 ldr r0, [r0, r3] - 800513e: f7fc fb15 bl 800176c + 800513c: 2388 movs r3, #136 ; 0x88 + 800513e: 009b lsls r3, r3, #2 + 8005140: 58c0 ldr r0, [r0, r3] + 8005142: f7fc fb13 bl 800176c switch (hal_status) { - 8005142: 2800 cmp r0, #0 - 8005144: d003 beq.n 800514e - 8005146: 2802 cmp r0, #2 - 8005148: d003 beq.n 8005152 + 8005146: 2800 cmp r0, #0 + 8005148: d003 beq.n 8005152 + 800514a: 2802 cmp r0, #2 + 800514c: d003 beq.n 8005156 usb_status = USBD_FAIL; - 800514a: 2002 movs r0, #2 + 800514e: 2002 movs r0, #2 } - 800514c: bd10 pop {r4, pc} + 8005150: bd10 pop {r4, pc} usb_status = USBD_OK; - 800514e: 2000 movs r0, #0 - 8005150: e7fc b.n 800514c + 8005152: 2000 movs r0, #0 + 8005154: e7fc b.n 8005150 usb_status = USBD_BUSY; - 8005152: 2001 movs r0, #1 + 8005156: 2001 movs r0, #1 break; - 8005154: e7fa b.n 800514c + 8005158: e7fa b.n 8005150 -08005156 : +0800515a : { - 8005156: b510 push {r4, lr} + 800515a: b510 push {r4, lr} hal_status = HAL_PCD_EP_SetStall(pdev->pData, ep_addr); - 8005158: 2388 movs r3, #136 ; 0x88 - 800515a: 009b lsls r3, r3, #2 - 800515c: 58c0 ldr r0, [r0, r3] - 800515e: f7fc fcf7 bl 8001b50 + 800515c: 2388 movs r3, #136 ; 0x88 + 800515e: 009b lsls r3, r3, #2 + 8005160: 58c0 ldr r0, [r0, r3] + 8005162: f7fc fcf5 bl 8001b50 switch (hal_status) { - 8005162: 2800 cmp r0, #0 - 8005164: d003 beq.n 800516e - 8005166: 2802 cmp r0, #2 - 8005168: d003 beq.n 8005172 + 8005166: 2800 cmp r0, #0 + 8005168: d003 beq.n 8005172 + 800516a: 2802 cmp r0, #2 + 800516c: d003 beq.n 8005176 usb_status = USBD_FAIL; - 800516a: 2002 movs r0, #2 + 800516e: 2002 movs r0, #2 } - 800516c: bd10 pop {r4, pc} + 8005170: bd10 pop {r4, pc} usb_status = USBD_OK; - 800516e: 2000 movs r0, #0 - 8005170: e7fc b.n 800516c + 8005172: 2000 movs r0, #0 + 8005174: e7fc b.n 8005170 usb_status = USBD_BUSY; - 8005172: 2001 movs r0, #1 + 8005176: 2001 movs r0, #1 break; - 8005174: e7fa b.n 800516c + 8005178: e7fa b.n 8005170 -08005176 : +0800517a : { - 8005176: b510 push {r4, lr} + 800517a: b510 push {r4, lr} hal_status = HAL_PCD_EP_ClrStall(pdev->pData, ep_addr); - 8005178: 2388 movs r3, #136 ; 0x88 - 800517a: 009b lsls r3, r3, #2 - 800517c: 58c0 ldr r0, [r0, r3] - 800517e: f7fc fd49 bl 8001c14 + 800517c: 2388 movs r3, #136 ; 0x88 + 800517e: 009b lsls r3, r3, #2 + 8005180: 58c0 ldr r0, [r0, r3] + 8005182: f7fc fd47 bl 8001c14 switch (hal_status) { - 8005182: 2800 cmp r0, #0 - 8005184: d003 beq.n 800518e - 8005186: 2802 cmp r0, #2 - 8005188: d003 beq.n 8005192 + 8005186: 2800 cmp r0, #0 + 8005188: d003 beq.n 8005192 + 800518a: 2802 cmp r0, #2 + 800518c: d003 beq.n 8005196 usb_status = USBD_FAIL; - 800518a: 2002 movs r0, #2 + 800518e: 2002 movs r0, #2 } - 800518c: bd10 pop {r4, pc} + 8005190: bd10 pop {r4, pc} usb_status = USBD_OK; - 800518e: 2000 movs r0, #0 - 8005190: e7fc b.n 800518c + 8005192: 2000 movs r0, #0 + 8005194: e7fc b.n 8005190 usb_status = USBD_BUSY; - 8005192: 2001 movs r0, #1 + 8005196: 2001 movs r0, #1 break; - 8005194: e7fa b.n 800518c + 8005198: e7fa b.n 8005190 -08005196 : +0800519a : { - 8005196: 000a movs r2, r1 + 800519a: 000a movs r2, r1 PCD_HandleTypeDef *hpcd = (PCD_HandleTypeDef*) pdev->pData; - 8005198: 2388 movs r3, #136 ; 0x88 - 800519a: 009b lsls r3, r3, #2 - 800519c: 58c3 ldr r3, [r0, r3] + 800519c: 2388 movs r3, #136 ; 0x88 + 800519e: 009b lsls r3, r3, #2 + 80051a0: 58c3 ldr r3, [r0, r3] if((ep_addr & 0x80) == 0x80) - 800519e: b249 sxtb r1, r1 - 80051a0: 2900 cmp r1, #0 - 80051a2: db09 blt.n 80051b8 + 80051a2: b249 sxtb r1, r1 + 80051a4: 2900 cmp r1, #0 + 80051a6: db09 blt.n 80051bc return hpcd->OUT_ep[ep_addr & 0x7F].is_stall; - 80051a4: 217f movs r1, #127 ; 0x7f - 80051a6: 4011 ands r1, r2 - 80051a8: 00ca lsls r2, r1, #3 - 80051aa: 1a51 subs r1, r2, r1 - 80051ac: 008a lsls r2, r1, #2 - 80051ae: 189b adds r3, r3, r2 - 80051b0: 330b adds r3, #11 - 80051b2: 33ff adds r3, #255 ; 0xff - 80051b4: 7818 ldrb r0, [r3, #0] -} - 80051b6: 4770 bx lr + 80051a8: 217f movs r1, #127 ; 0x7f + 80051aa: 4011 ands r1, r2 + 80051ac: 00ca lsls r2, r1, #3 + 80051ae: 1a51 subs r1, r2, r1 + 80051b0: 008a lsls r2, r1, #2 + 80051b2: 189b adds r3, r3, r2 + 80051b4: 330b adds r3, #11 + 80051b6: 33ff adds r3, #255 ; 0xff + 80051b8: 7818 ldrb r0, [r3, #0] +} + 80051ba: 4770 bx lr return hpcd->IN_ep[ep_addr & 0x7F].is_stall; - 80051b8: 217f movs r1, #127 ; 0x7f - 80051ba: 4011 ands r1, r2 - 80051bc: 00c8 lsls r0, r1, #3 - 80051be: 1a41 subs r1, r0, r1 - 80051c0: 008a lsls r2, r1, #2 - 80051c2: 189b adds r3, r3, r2 - 80051c4: 332a adds r3, #42 ; 0x2a - 80051c6: 7818 ldrb r0, [r3, #0] - 80051c8: e7f5 b.n 80051b6 - -080051ca : -{ - 80051ca: b510 push {r4, lr} + 80051bc: 217f movs r1, #127 ; 0x7f + 80051be: 4011 ands r1, r2 + 80051c0: 00c8 lsls r0, r1, #3 + 80051c2: 1a41 subs r1, r0, r1 + 80051c4: 008a lsls r2, r1, #2 + 80051c6: 189b adds r3, r3, r2 + 80051c8: 332a adds r3, #42 ; 0x2a + 80051ca: 7818 ldrb r0, [r3, #0] + 80051cc: e7f5 b.n 80051ba + +080051ce : +{ + 80051ce: b510 push {r4, lr} hal_status = HAL_PCD_SetAddress(pdev->pData, dev_addr); - 80051cc: 2388 movs r3, #136 ; 0x88 - 80051ce: 009b lsls r3, r3, #2 - 80051d0: 58c0 ldr r0, [r0, r3] - 80051d2: f7fc f905 bl 80013e0 + 80051d0: 2388 movs r3, #136 ; 0x88 + 80051d2: 009b lsls r3, r3, #2 + 80051d4: 58c0 ldr r0, [r0, r3] + 80051d6: f7fc f903 bl 80013e0 switch (hal_status) { - 80051d6: 2800 cmp r0, #0 - 80051d8: d003 beq.n 80051e2 - 80051da: 2802 cmp r0, #2 - 80051dc: d003 beq.n 80051e6 + 80051da: 2800 cmp r0, #0 + 80051dc: d003 beq.n 80051e6 + 80051de: 2802 cmp r0, #2 + 80051e0: d003 beq.n 80051ea usb_status = USBD_FAIL; - 80051de: 2002 movs r0, #2 + 80051e2: 2002 movs r0, #2 } - 80051e0: bd10 pop {r4, pc} + 80051e4: bd10 pop {r4, pc} usb_status = USBD_OK; - 80051e2: 2000 movs r0, #0 - 80051e4: e7fc b.n 80051e0 + 80051e6: 2000 movs r0, #0 + 80051e8: e7fc b.n 80051e4 usb_status = USBD_BUSY; - 80051e6: 2001 movs r0, #1 + 80051ea: 2001 movs r0, #1 break; - 80051e8: e7fa b.n 80051e0 + 80051ec: e7fa b.n 80051e4 -080051ea : +080051ee : { - 80051ea: b510 push {r4, lr} + 80051ee: b510 push {r4, lr} hal_status = HAL_PCD_EP_Transmit(pdev->pData, ep_addr, pbuf, size); - 80051ec: 2488 movs r4, #136 ; 0x88 - 80051ee: 00a4 lsls r4, r4, #2 - 80051f0: 5900 ldr r0, [r0, r4] - 80051f2: f7fc fd93 bl 8001d1c + 80051f0: 2488 movs r4, #136 ; 0x88 + 80051f2: 00a4 lsls r4, r4, #2 + 80051f4: 5900 ldr r0, [r0, r4] + 80051f6: f7fc fd91 bl 8001d1c switch (hal_status) { - 80051f6: 2800 cmp r0, #0 - 80051f8: d003 beq.n 8005202 - 80051fa: 2802 cmp r0, #2 - 80051fc: d003 beq.n 8005206 + 80051fa: 2800 cmp r0, #0 + 80051fc: d003 beq.n 8005206 + 80051fe: 2802 cmp r0, #2 + 8005200: d003 beq.n 800520a usb_status = USBD_FAIL; - 80051fe: 2002 movs r0, #2 + 8005202: 2002 movs r0, #2 } - 8005200: bd10 pop {r4, pc} + 8005204: bd10 pop {r4, pc} usb_status = USBD_OK; - 8005202: 2000 movs r0, #0 - 8005204: e7fc b.n 8005200 + 8005206: 2000 movs r0, #0 + 8005208: e7fc b.n 8005204 usb_status = USBD_BUSY; - 8005206: 2001 movs r0, #1 + 800520a: 2001 movs r0, #1 break; - 8005208: e7fa b.n 8005200 + 800520c: e7fa b.n 8005204 -0800520a : +0800520e : { - 800520a: b510 push {r4, lr} + 800520e: b510 push {r4, lr} hal_status = HAL_PCD_EP_Receive(pdev->pData, ep_addr, pbuf, size); - 800520c: 2488 movs r4, #136 ; 0x88 - 800520e: 00a4 lsls r4, r4, #2 - 8005210: 5900 ldr r0, [r0, r4] - 8005212: f7fc fb93 bl 800193c + 8005210: 2488 movs r4, #136 ; 0x88 + 8005212: 00a4 lsls r4, r4, #2 + 8005214: 5900 ldr r0, [r0, r4] + 8005216: f7fc fb91 bl 800193c switch (hal_status) { - 8005216: 2800 cmp r0, #0 - 8005218: d003 beq.n 8005222 - 800521a: 2802 cmp r0, #2 - 800521c: d003 beq.n 8005226 + 800521a: 2800 cmp r0, #0 + 800521c: d003 beq.n 8005226 + 800521e: 2802 cmp r0, #2 + 8005220: d003 beq.n 800522a usb_status = USBD_FAIL; - 800521e: 2002 movs r0, #2 + 8005222: 2002 movs r0, #2 } - 8005220: bd10 pop {r4, pc} + 8005224: bd10 pop {r4, pc} usb_status = USBD_OK; - 8005222: 2000 movs r0, #0 - 8005224: e7fc b.n 8005220 + 8005226: 2000 movs r0, #0 + 8005228: e7fc b.n 8005224 usb_status = USBD_BUSY; - 8005226: 2001 movs r0, #1 + 800522a: 2001 movs r0, #1 break; - 8005228: e7fa b.n 8005220 + 800522c: e7fa b.n 8005224 -0800522a : +0800522e : { - 800522a: b510 push {r4, lr} + 800522e: b510 push {r4, lr} return HAL_PCD_EP_GetRxCount((PCD_HandleTypeDef*) pdev->pData, ep_addr); - 800522c: 2388 movs r3, #136 ; 0x88 - 800522e: 009b lsls r3, r3, #2 - 8005230: 58c0 ldr r0, [r0, r3] - 8005232: f7fc fc83 bl 8001b3c + 8005230: 2388 movs r3, #136 ; 0x88 + 8005232: 009b lsls r3, r3, #2 + 8005234: 58c0 ldr r0, [r0, r3] + 8005236: f7fc fc81 bl 8001b3c } - 8005236: bd10 pop {r4, pc} + 800523a: bd10 pop {r4, pc} -08005238 : +0800523c : } - 8005238: 4800 ldr r0, [pc, #0] ; (800523c ) - 800523a: 4770 bx lr - 800523c: 20000254 .word 0x20000254 + 800523c: 4800 ldr r0, [pc, #0] ; (8005240 ) + 800523e: 4770 bx lr + 8005240: 20000254 .word 0x20000254 -08005240 : +08005244 : } - 8005240: 4770 bx lr + 8005244: 4770 bx lr ... -08005244 : +08005248 : * @param length : Pointer to data length variable * @retval Pointer to descriptor buffer */ uint8_t * USBD_FS_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) { *length = sizeof(USBD_FS_DeviceDesc); - 8005244: 2312 movs r3, #18 - 8005246: 800b strh r3, [r1, #0] + 8005248: 2312 movs r3, #18 + 800524a: 800b strh r3, [r1, #0] return USBD_FS_DeviceDesc; } - 8005248: 4800 ldr r0, [pc, #0] ; (800524c ) - 800524a: 4770 bx lr - 800524c: 20000148 .word 0x20000148 + 800524c: 4800 ldr r0, [pc, #0] ; (8005250 ) + 800524e: 4770 bx lr + 8005250: 20000148 .word 0x20000148 -08005250 : +08005254 : * @param length : Pointer to data length variable * @retval Pointer to descriptor buffer */ uint8_t * USBD_FS_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) { *length = sizeof(USBD_LangIDDesc); - 8005250: 2304 movs r3, #4 - 8005252: 800b strh r3, [r1, #0] + 8005254: 2304 movs r3, #4 + 8005256: 800b strh r3, [r1, #0] return USBD_LangIDDesc; } - 8005254: 4800 ldr r0, [pc, #0] ; (8005258 ) - 8005256: 4770 bx lr - 8005258: 2000015c .word 0x2000015c + 8005258: 4800 ldr r0, [pc, #0] ; (800525c ) + 800525a: 4770 bx lr + 800525c: 2000015c .word 0x2000015c -0800525c : +08005260 : * @param speed : Current device speed * @param length : Pointer to data length variable * @retval Pointer to descriptor buffer */ uint8_t * USBD_FS_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) { - 800525c: b510 push {r4, lr} - 800525e: 000a movs r2, r1 + 8005260: b510 push {r4, lr} + 8005262: 000a movs r2, r1 if(speed == 0) - 8005260: 2800 cmp r0, #0 - 8005262: d005 beq.n 8005270 + 8005264: 2800 cmp r0, #0 + 8005266: d005 beq.n 8005274 { USBD_GetString((uint8_t *)USBD_PRODUCT_STRING_FS, USBD_StrDesc, length); } else { USBD_GetString((uint8_t *)USBD_PRODUCT_STRING_FS, USBD_StrDesc, length); - 8005264: 4905 ldr r1, [pc, #20] ; (800527c ) - 8005266: 4806 ldr r0, [pc, #24] ; (8005280 ) - 8005268: f7fe fddc bl 8003e24 + 8005268: 4905 ldr r1, [pc, #20] ; (8005280 ) + 800526a: 4806 ldr r0, [pc, #24] ; (8005284 ) + 800526c: f7fe fdda bl 8003e24 } return USBD_StrDesc; } - 800526c: 4803 ldr r0, [pc, #12] ; (800527c ) - 800526e: bd10 pop {r4, pc} + 8005270: 4803 ldr r0, [pc, #12] ; (8005280 ) + 8005272: bd10 pop {r4, pc} USBD_GetString((uint8_t *)USBD_PRODUCT_STRING_FS, USBD_StrDesc, length); - 8005270: 4902 ldr r1, [pc, #8] ; (800527c ) - 8005272: 4803 ldr r0, [pc, #12] ; (8005280 ) - 8005274: f7fe fdd6 bl 8003e24 - 8005278: e7f8 b.n 800526c - 800527a: 46c0 nop ; (mov r8, r8) - 800527c: 20000bb0 .word 0x20000bb0 - 8005280: 08005690 .word 0x08005690 - -08005284 : + 8005274: 4902 ldr r1, [pc, #8] ; (8005280 ) + 8005276: 4803 ldr r0, [pc, #12] ; (8005284 ) + 8005278: f7fe fdd4 bl 8003e24 + 800527c: e7f8 b.n 8005270 + 800527e: 46c0 nop ; (mov r8, r8) + 8005280: 20000bb0 .word 0x20000bb0 + 8005284: 08005694 .word 0x08005694 + +08005288 : * @param speed : Current device speed * @param length : Pointer to data length variable * @retval Pointer to descriptor buffer */ uint8_t * USBD_FS_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) { - 8005284: b510 push {r4, lr} - 8005286: 000a movs r2, r1 + 8005288: b510 push {r4, lr} + 800528a: 000a movs r2, r1 USBD_GetString((uint8_t *)USBD_MANUFACTURER_STRING, USBD_StrDesc, length); - 8005288: 4c03 ldr r4, [pc, #12] ; (8005298 ) - 800528a: 0021 movs r1, r4 - 800528c: 4803 ldr r0, [pc, #12] ; (800529c ) - 800528e: f7fe fdc9 bl 8003e24 + 800528c: 4c03 ldr r4, [pc, #12] ; (800529c ) + 800528e: 0021 movs r1, r4 + 8005290: 4803 ldr r0, [pc, #12] ; (80052a0 ) + 8005292: f7fe fdc7 bl 8003e24 return USBD_StrDesc; } - 8005292: 0020 movs r0, r4 - 8005294: bd10 pop {r4, pc} - 8005296: 46c0 nop ; (mov r8, r8) - 8005298: 20000bb0 .word 0x20000bb0 - 800529c: 08005684 .word 0x08005684 + 8005296: 0020 movs r0, r4 + 8005298: bd10 pop {r4, pc} + 800529a: 46c0 nop ; (mov r8, r8) + 800529c: 20000bb0 .word 0x20000bb0 + 80052a0: 08005688 .word 0x08005688 -080052a0 : +080052a4 : * @param speed : Current device speed * @param length : Pointer to data length variable * @retval Pointer to descriptor buffer */ uint8_t * USBD_FS_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) { - 80052a0: b510 push {r4, lr} - 80052a2: 000a movs r2, r1 + 80052a4: b510 push {r4, lr} + 80052a6: 000a movs r2, r1 if(speed == USBD_SPEED_HIGH) - 80052a4: 2800 cmp r0, #0 - 80052a6: d005 beq.n 80052b4 + 80052a8: 2800 cmp r0, #0 + 80052aa: d005 beq.n 80052b8 { USBD_GetString((uint8_t *)USBD_SERIALNUMBER_STRING_FS, USBD_StrDesc, length); } else { USBD_GetString((uint8_t *)USBD_SERIALNUMBER_STRING_FS, USBD_StrDesc, length); - 80052a8: 4905 ldr r1, [pc, #20] ; (80052c0 ) - 80052aa: 4806 ldr r0, [pc, #24] ; (80052c4 ) - 80052ac: f7fe fdba bl 8003e24 + 80052ac: 4905 ldr r1, [pc, #20] ; (80052c4 ) + 80052ae: 4806 ldr r0, [pc, #24] ; (80052c8 ) + 80052b0: f7fe fdb8 bl 8003e24 } return USBD_StrDesc; } - 80052b0: 4803 ldr r0, [pc, #12] ; (80052c0 ) - 80052b2: bd10 pop {r4, pc} + 80052b4: 4803 ldr r0, [pc, #12] ; (80052c4 ) + 80052b6: bd10 pop {r4, pc} USBD_GetString((uint8_t *)USBD_SERIALNUMBER_STRING_FS, USBD_StrDesc, length); - 80052b4: 4902 ldr r1, [pc, #8] ; (80052c0 ) - 80052b6: 4803 ldr r0, [pc, #12] ; (80052c4 ) - 80052b8: f7fe fdb4 bl 8003e24 - 80052bc: e7f8 b.n 80052b0 - 80052be: 46c0 nop ; (mov r8, r8) - 80052c0: 20000bb0 .word 0x20000bb0 - 80052c4: 080056ac .word 0x080056ac - -080052c8 : + 80052b8: 4902 ldr r1, [pc, #8] ; (80052c4 ) + 80052ba: 4803 ldr r0, [pc, #12] ; (80052c8 ) + 80052bc: f7fe fdb2 bl 8003e24 + 80052c0: e7f8 b.n 80052b4 + 80052c2: 46c0 nop ; (mov r8, r8) + 80052c4: 20000bb0 .word 0x20000bb0 + 80052c8: 080056b0 .word 0x080056b0 + +080052cc : * @param speed : Current device speed * @param length : Pointer to data length variable * @retval Pointer to descriptor buffer */ uint8_t * USBD_FS_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) { - 80052c8: b510 push {r4, lr} - 80052ca: 000a movs r2, r1 + 80052cc: b510 push {r4, lr} + 80052ce: 000a movs r2, r1 if(speed == USBD_SPEED_HIGH) - 80052cc: 2800 cmp r0, #0 - 80052ce: d005 beq.n 80052dc + 80052d0: 2800 cmp r0, #0 + 80052d2: d005 beq.n 80052e0 { USBD_GetString((uint8_t *)USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length); } else { USBD_GetString((uint8_t *)USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length); - 80052d0: 4905 ldr r1, [pc, #20] ; (80052e8 ) - 80052d2: 4806 ldr r0, [pc, #24] ; (80052ec ) - 80052d4: f7fe fda6 bl 8003e24 + 80052d4: 4905 ldr r1, [pc, #20] ; (80052ec ) + 80052d6: 4806 ldr r0, [pc, #24] ; (80052f0 ) + 80052d8: f7fe fda4 bl 8003e24 } return USBD_StrDesc; } - 80052d8: 4803 ldr r0, [pc, #12] ; (80052e8 ) - 80052da: bd10 pop {r4, pc} + 80052dc: 4803 ldr r0, [pc, #12] ; (80052ec ) + 80052de: bd10 pop {r4, pc} USBD_GetString((uint8_t *)USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length); - 80052dc: 4902 ldr r1, [pc, #8] ; (80052e8 ) - 80052de: 4803 ldr r0, [pc, #12] ; (80052ec ) - 80052e0: f7fe fda0 bl 8003e24 - 80052e4: e7f8 b.n 80052d8 - 80052e6: 46c0 nop ; (mov r8, r8) - 80052e8: 20000bb0 .word 0x20000bb0 - 80052ec: 08005668 .word 0x08005668 - -080052f0 : + 80052e0: 4902 ldr r1, [pc, #8] ; (80052ec ) + 80052e2: 4803 ldr r0, [pc, #12] ; (80052f0 ) + 80052e4: f7fe fd9e bl 8003e24 + 80052e8: e7f8 b.n 80052dc + 80052ea: 46c0 nop ; (mov r8, r8) + 80052ec: 20000bb0 .word 0x20000bb0 + 80052f0: 0800566c .word 0x0800566c + +080052f4 : * @param speed : Current device speed * @param length : Pointer to data length variable * @retval Pointer to descriptor buffer */ uint8_t * USBD_FS_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) { - 80052f0: b510 push {r4, lr} - 80052f2: 000a movs r2, r1 + 80052f4: b510 push {r4, lr} + 80052f6: 000a movs r2, r1 if(speed == 0) - 80052f4: 2800 cmp r0, #0 - 80052f6: d005 beq.n 8005304 + 80052f8: 2800 cmp r0, #0 + 80052fa: d005 beq.n 8005308 { USBD_GetString((uint8_t *)USBD_INTERFACE_STRING_FS, USBD_StrDesc, length); } else { USBD_GetString((uint8_t *)USBD_INTERFACE_STRING_FS, USBD_StrDesc, length); - 80052f8: 4905 ldr r1, [pc, #20] ; (8005310 ) - 80052fa: 4806 ldr r0, [pc, #24] ; (8005314 ) - 80052fc: f7fe fd92 bl 8003e24 + 80052fc: 4905 ldr r1, [pc, #20] ; (8005314 ) + 80052fe: 4806 ldr r0, [pc, #24] ; (8005318 ) + 8005300: f7fe fd90 bl 8003e24 } return USBD_StrDesc; } - 8005300: 4803 ldr r0, [pc, #12] ; (8005310 ) - 8005302: bd10 pop {r4, pc} + 8005304: 4803 ldr r0, [pc, #12] ; (8005314 ) + 8005306: bd10 pop {r4, pc} USBD_GetString((uint8_t *)USBD_INTERFACE_STRING_FS, USBD_StrDesc, length); - 8005304: 4902 ldr r1, [pc, #8] ; (8005310 ) - 8005306: 4803 ldr r0, [pc, #12] ; (8005314 ) - 8005308: f7fe fd8c bl 8003e24 - 800530c: e7f8 b.n 8005300 - 800530e: 46c0 nop ; (mov r8, r8) - 8005310: 20000bb0 .word 0x20000bb0 - 8005314: 08005674 .word 0x08005674 + 8005308: 4902 ldr r1, [pc, #8] ; (8005314 ) + 800530a: 4803 ldr r0, [pc, #12] ; (8005318 ) + 800530c: f7fe fd8a bl 8003e24 + 8005310: e7f8 b.n 8005304 + 8005312: 46c0 nop ; (mov r8, r8) + 8005314: 20000bb0 .word 0x20000bb0 + 8005318: 08005678 .word 0x08005678 -08005318 : +0800531c : .section .text.Reset_Handler .weak Reset_Handler .type Reset_Handler, %function Reset_Handler: ldr r0, =_estack - 8005318: 4813 ldr r0, [pc, #76] ; (8005368 ) + 800531c: 4813 ldr r0, [pc, #76] ; (800536c ) mov sp, r0 /* set stack pointer */ - 800531a: 4685 mov sp, r0 + 800531e: 4685 mov sp, r0 /*Check if boot space corresponds to test memory*/ LDR R0,=0x00000004 - 800531c: 2004 movs r0, #4 + 8005320: 2004 movs r0, #4 LDR R1, [R0] - 800531e: 6801 ldr r1, [r0, #0] + 8005322: 6801 ldr r1, [r0, #0] LSRS R1, R1, #24 - 8005320: 0e09 lsrs r1, r1, #24 + 8005324: 0e09 lsrs r1, r1, #24 LDR R2,=0x1F - 8005322: 221f movs r2, #31 + 8005326: 221f movs r2, #31 CMP R1, R2 - 8005324: 4291 cmp r1, r2 + 8005328: 4291 cmp r1, r2 BNE ApplicationStart - 8005326: d105 bne.n 8005334 + 800532a: d105 bne.n 8005338 /*SYSCFG clock enable*/ LDR R0,=0x40021018 - 8005328: 4810 ldr r0, [pc, #64] ; (800536c ) + 800532c: 4810 ldr r0, [pc, #64] ; (8005370 ) LDR R1,=0x00000001 - 800532a: 2101 movs r1, #1 + 800532e: 2101 movs r1, #1 STR R1, [R0] - 800532c: 6001 str r1, [r0, #0] + 8005330: 6001 str r1, [r0, #0] /*Set CFGR1 register with flash memory remap at address 0*/ LDR R0,=0x40010000 - 800532e: 4810 ldr r0, [pc, #64] ; (8005370 ) + 8005332: 4810 ldr r0, [pc, #64] ; (8005374 ) LDR R1,=0x00000000 - 8005330: 2100 movs r1, #0 + 8005334: 2100 movs r1, #0 STR R1, [R0] - 8005332: 6001 str r1, [r0, #0] + 8005336: 6001 str r1, [r0, #0] -08005334 : +08005338 : ApplicationStart: /* Copy the data segment initializers from flash to SRAM */ ldr r0, =_sdata - 8005334: 480f ldr r0, [pc, #60] ; (8005374 ) + 8005338: 480f ldr r0, [pc, #60] ; (8005378 ) ldr r1, =_edata - 8005336: 4910 ldr r1, [pc, #64] ; (8005378 ) + 800533a: 4910 ldr r1, [pc, #64] ; (800537c ) ldr r2, =_sidata - 8005338: 4a10 ldr r2, [pc, #64] ; (800537c ) + 800533c: 4a10 ldr r2, [pc, #64] ; (8005380 ) movs r3, #0 - 800533a: 2300 movs r3, #0 + 800533e: 2300 movs r3, #0 b LoopCopyDataInit - 800533c: e002 b.n 8005344 + 8005340: e002 b.n 8005348 -0800533e : +08005342 : CopyDataInit: ldr r4, [r2, r3] - 800533e: 58d4 ldr r4, [r2, r3] + 8005342: 58d4 ldr r4, [r2, r3] str r4, [r0, r3] - 8005340: 50c4 str r4, [r0, r3] + 8005344: 50c4 str r4, [r0, r3] adds r3, r3, #4 - 8005342: 3304 adds r3, #4 + 8005346: 3304 adds r3, #4 -08005344 : +08005348 : LoopCopyDataInit: adds r4, r0, r3 - 8005344: 18c4 adds r4, r0, r3 + 8005348: 18c4 adds r4, r0, r3 cmp r4, r1 - 8005346: 428c cmp r4, r1 + 800534a: 428c cmp r4, r1 bcc CopyDataInit - 8005348: d3f9 bcc.n 800533e + 800534c: d3f9 bcc.n 8005342 /* Zero fill the bss segment. */ ldr r2, =_sbss - 800534a: 4a0d ldr r2, [pc, #52] ; (8005380 ) + 800534e: 4a0d ldr r2, [pc, #52] ; (8005384 ) ldr r4, =_ebss - 800534c: 4c0d ldr r4, [pc, #52] ; (8005384 ) + 8005350: 4c0d ldr r4, [pc, #52] ; (8005388 ) movs r3, #0 - 800534e: 2300 movs r3, #0 + 8005352: 2300 movs r3, #0 b LoopFillZerobss - 8005350: e001 b.n 8005356 + 8005354: e001 b.n 800535a -08005352 : +08005356 : FillZerobss: str r3, [r2] - 8005352: 6013 str r3, [r2, #0] + 8005356: 6013 str r3, [r2, #0] adds r2, r2, #4 - 8005354: 3204 adds r2, #4 + 8005358: 3204 adds r2, #4 -08005356 : +0800535a : LoopFillZerobss: cmp r2, r4 - 8005356: 42a2 cmp r2, r4 + 800535a: 42a2 cmp r2, r4 bcc FillZerobss - 8005358: d3fb bcc.n 8005352 + 800535c: d3fb bcc.n 8005356 /* Call the clock system intitialization function.*/ bl SystemInit - 800535a: f7ff fd49 bl 8004df0 + 800535e: f7ff fd49 bl 8004df4 /* Call static constructors */ bl __libc_init_array - 800535e: f000 f815 bl 800538c <__libc_init_array> + 8005362: f000 f815 bl 8005390 <__libc_init_array> /* Call the application's entry point.*/ bl main - 8005362: f7fe fe3d bl 8003fe0
+ 8005366: f7fe fe3b bl 8003fe0
-08005366 : +0800536a : LoopForever: b LoopForever - 8005366: e7fe b.n 8005366 + 800536a: e7fe b.n 800536a ldr r0, =_estack - 8005368: 20001800 .word 0x20001800 + 800536c: 20001800 .word 0x20001800 LDR R0,=0x40021018 - 800536c: 40021018 .word 0x40021018 + 8005370: 40021018 .word 0x40021018 LDR R0,=0x40010000 - 8005370: 40010000 .word 0x40010000 + 8005374: 40010000 .word 0x40010000 ldr r0, =_sdata - 8005374: 20000000 .word 0x20000000 + 8005378: 20000000 .word 0x20000000 ldr r1, =_edata - 8005378: 20000160 .word 0x20000160 + 800537c: 20000160 .word 0x20000160 ldr r2, =_sidata - 800537c: 080056c0 .word 0x080056c0 + 8005380: 080056c4 .word 0x080056c4 ldr r2, =_sbss - 8005380: 20000160 .word 0x20000160 + 8005384: 20000160 .word 0x20000160 ldr r4, =_ebss - 8005384: 20000db0 .word 0x20000db0 + 8005388: 20000db0 .word 0x20000db0 -08005388 : +0800538c : * @retval : None */ .section .text.Default_Handler,"ax",%progbits Default_Handler: Infinite_Loop: b Infinite_Loop - 8005388: e7fe b.n 8005388 + 800538c: e7fe b.n 800538c ... -0800538c <__libc_init_array>: - 800538c: b570 push {r4, r5, r6, lr} - 800538e: 2600 movs r6, #0 - 8005390: 4d0c ldr r5, [pc, #48] ; (80053c4 <__libc_init_array+0x38>) - 8005392: 4c0d ldr r4, [pc, #52] ; (80053c8 <__libc_init_array+0x3c>) - 8005394: 1b64 subs r4, r4, r5 - 8005396: 10a4 asrs r4, r4, #2 - 8005398: 42a6 cmp r6, r4 - 800539a: d109 bne.n 80053b0 <__libc_init_array+0x24> - 800539c: 2600 movs r6, #0 - 800539e: f000 f82b bl 80053f8 <_init> - 80053a2: 4d0a ldr r5, [pc, #40] ; (80053cc <__libc_init_array+0x40>) - 80053a4: 4c0a ldr r4, [pc, #40] ; (80053d0 <__libc_init_array+0x44>) - 80053a6: 1b64 subs r4, r4, r5 - 80053a8: 10a4 asrs r4, r4, #2 - 80053aa: 42a6 cmp r6, r4 - 80053ac: d105 bne.n 80053ba <__libc_init_array+0x2e> - 80053ae: bd70 pop {r4, r5, r6, pc} - 80053b0: 00b3 lsls r3, r6, #2 - 80053b2: 58eb ldr r3, [r5, r3] - 80053b4: 4798 blx r3 - 80053b6: 3601 adds r6, #1 - 80053b8: e7ee b.n 8005398 <__libc_init_array+0xc> - 80053ba: 00b3 lsls r3, r6, #2 - 80053bc: 58eb ldr r3, [r5, r3] - 80053be: 4798 blx r3 - 80053c0: 3601 adds r6, #1 - 80053c2: e7f2 b.n 80053aa <__libc_init_array+0x1e> - 80053c4: 080056b8 .word 0x080056b8 - 80053c8: 080056b8 .word 0x080056b8 - 80053cc: 080056b8 .word 0x080056b8 +08005390 <__libc_init_array>: + 8005390: b570 push {r4, r5, r6, lr} + 8005392: 2600 movs r6, #0 + 8005394: 4d0c ldr r5, [pc, #48] ; (80053c8 <__libc_init_array+0x38>) + 8005396: 4c0d ldr r4, [pc, #52] ; (80053cc <__libc_init_array+0x3c>) + 8005398: 1b64 subs r4, r4, r5 + 800539a: 10a4 asrs r4, r4, #2 + 800539c: 42a6 cmp r6, r4 + 800539e: d109 bne.n 80053b4 <__libc_init_array+0x24> + 80053a0: 2600 movs r6, #0 + 80053a2: f000 f82b bl 80053fc <_init> + 80053a6: 4d0a ldr r5, [pc, #40] ; (80053d0 <__libc_init_array+0x40>) + 80053a8: 4c0a ldr r4, [pc, #40] ; (80053d4 <__libc_init_array+0x44>) + 80053aa: 1b64 subs r4, r4, r5 + 80053ac: 10a4 asrs r4, r4, #2 + 80053ae: 42a6 cmp r6, r4 + 80053b0: d105 bne.n 80053be <__libc_init_array+0x2e> + 80053b2: bd70 pop {r4, r5, r6, pc} + 80053b4: 00b3 lsls r3, r6, #2 + 80053b6: 58eb ldr r3, [r5, r3] + 80053b8: 4798 blx r3 + 80053ba: 3601 adds r6, #1 + 80053bc: e7ee b.n 800539c <__libc_init_array+0xc> + 80053be: 00b3 lsls r3, r6, #2 + 80053c0: 58eb ldr r3, [r5, r3] + 80053c2: 4798 blx r3 + 80053c4: 3601 adds r6, #1 + 80053c6: e7f2 b.n 80053ae <__libc_init_array+0x1e> + 80053c8: 080056bc .word 0x080056bc + 80053cc: 080056bc .word 0x080056bc 80053d0: 080056bc .word 0x080056bc - -080053d4 : - 80053d4: 2300 movs r3, #0 - 80053d6: b510 push {r4, lr} - 80053d8: 429a cmp r2, r3 - 80053da: d100 bne.n 80053de - 80053dc: bd10 pop {r4, pc} - 80053de: 5ccc ldrb r4, [r1, r3] - 80053e0: 54c4 strb r4, [r0, r3] - 80053e2: 3301 adds r3, #1 - 80053e4: e7f8 b.n 80053d8 - -080053e6 : - 80053e6: 0003 movs r3, r0 - 80053e8: 1882 adds r2, r0, r2 - 80053ea: 4293 cmp r3, r2 - 80053ec: d100 bne.n 80053f0 - 80053ee: 4770 bx lr - 80053f0: 7019 strb r1, [r3, #0] - 80053f2: 3301 adds r3, #1 - 80053f4: e7f9 b.n 80053ea + 80053d4: 080056c0 .word 0x080056c0 + +080053d8 : + 80053d8: 2300 movs r3, #0 + 80053da: b510 push {r4, lr} + 80053dc: 429a cmp r2, r3 + 80053de: d100 bne.n 80053e2 + 80053e0: bd10 pop {r4, pc} + 80053e2: 5ccc ldrb r4, [r1, r3] + 80053e4: 54c4 strb r4, [r0, r3] + 80053e6: 3301 adds r3, #1 + 80053e8: e7f8 b.n 80053dc + +080053ea : + 80053ea: 0003 movs r3, r0 + 80053ec: 1882 adds r2, r0, r2 + 80053ee: 4293 cmp r3, r2 + 80053f0: d100 bne.n 80053f4 + 80053f2: 4770 bx lr + 80053f4: 7019 strb r1, [r3, #0] + 80053f6: 3301 adds r3, #1 + 80053f8: e7f9 b.n 80053ee ... -080053f8 <_init>: - 80053f8: b5f8 push {r3, r4, r5, r6, r7, lr} - 80053fa: 46c0 nop ; (mov r8, r8) - 80053fc: bcf8 pop {r3, r4, r5, r6, r7} - 80053fe: bc08 pop {r3} - 8005400: 469e mov lr, r3 - 8005402: 4770 bx lr - -08005404 <_fini>: - 8005404: b5f8 push {r3, r4, r5, r6, r7, lr} - 8005406: 46c0 nop ; (mov r8, r8) - 8005408: bcf8 pop {r3, r4, r5, r6, r7} - 800540a: bc08 pop {r3} - 800540c: 469e mov lr, r3 - 800540e: 4770 bx lr +080053fc <_init>: + 80053fc: b5f8 push {r3, r4, r5, r6, r7, lr} + 80053fe: 46c0 nop ; (mov r8, r8) + 8005400: bcf8 pop {r3, r4, r5, r6, r7} + 8005402: bc08 pop {r3} + 8005404: 469e mov lr, r3 + 8005406: 4770 bx lr + +08005408 <_fini>: + 8005408: b5f8 push {r3, r4, r5, r6, r7, lr} + 800540a: 46c0 nop ; (mov r8, r8) + 800540c: bcf8 pop {r3, r4, r5, r6, r7} + 800540e: bc08 pop {r3} + 8005410: 469e mov lr, r3 + 8005412: 4770 bx lr diff --git a/Inc/main.h b/Inc/main.h index 544ad43..23e660d 100644 --- a/Inc/main.h +++ b/Inc/main.h @@ -72,6 +72,7 @@ /* USER CODE BEGIN Private defines */ #define LED_Pin GPIO_PIN_10 #define LED_GPIO_Port GPIOB +#define CAN_RX_BUFFER_SIZE 3 /* USER CODE END Private defines */ #ifdef __cplusplus diff --git a/Src/main.c b/Src/main.c index 156c279..fc2e8fb 100644 --- a/Src/main.c +++ b/Src/main.c @@ -184,6 +184,7 @@ int main(void) { slCanCheckCommand(command); slcanOutputFlush(); + if(rxFullFlag) { memset(uart_rxBuffer, 0 , UART_RX_BUFFER_SIZE); //clear the buffer @@ -191,7 +192,8 @@ int main(void) HAL_UART_Receive_DMA(&huart2, uart_rxBuffer, UART_RX_BUFFER_SIZE); //resume DMA rxFullFlag = 0; } - if (canRxFlags.flags.byte != 0) + + if (canRxFlags.flags.byte != 0)// && hdma_usart2_tx.State == HAL_DMA_STATE_READY) // potential fix to uart tx buffer overwriting { slcanReciveCanFrame(hcan.pRxMsg); canRxFlags.flags.fifo1 = 0; @@ -331,7 +333,7 @@ static void MX_USART2_UART_Init(void) huart2.Init.Parity = UART_PARITY_NONE; huart2.Init.Mode = UART_MODE_TX_RX; huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; - huart2.Init.OverSampling = UART_OVERSAMPLING_16; + huart2.Init.OverSampling = UART_OVERSAMPLING_8; huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; //!!!!!!!!!!!!!!!!!! CHECK RX/TX PINS ON OVERLAY!!!!!!!!!!!!!!!!!!!!!!!!!