- Added CAN communication interface support to XCM4 port and the XMC4700 Relax Kit demo.
- Added UART and CAN channel configuration check to XMC4 port.
- Updated SVD file in the demos for the XMC4700 Relax Kit.
- Updated OpenBLT version number in preparation for the next release.

git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@165 5dc33758-31d5-4daf-9ae8-b24bf3d40d73
This commit is contained in:
Frank Voorburg 2016-10-23 10:52:46 +00:00
parent e669c91547
commit f6906b2289
20 changed files with 249140 additions and 193381 deletions

View File

@ -1,57 +1,57 @@
S01E00002E2E5C62696E5C6F70656E626C745F786D63343730302E7372656353
S3150800000000600020191200085F120008611200083B
S315080000106312000865120008671200080000000055
S31508000020000000000000000000000000691200083F
S315080000306B120008000000006D1200086F1200081D
S315080000407312000875120008771200087912000862
S315080000507B1200087D1200087F1200088112000832
S3150800006083120008000000000000000000000000E5
S31508000070851200080000000087120008891200088F
S315080000808B1200088D1200088F12000891120008C2
S315080000909312000895120008971200089912000892
S315080000A09B1200089D1200089F120008A112000862
S315080000B0A3120008A5120008A7120008A912000832
S315080000C0AB120008AD120008AF120008B112000802
S315080000D0B3120008B5120008B7120008B9120008D2
S315080000E0BB120008BD120008BF120008C1120008A2
S315080000F0C3120008C5120008C7120008C912000872
S31508000100CB120008CD120008CF120008D112000841
S31508000110D3120008D5120008D7120008D912000811
S31508000120DB120008DD120008DF120008E1120008E1
S31508000130E3120008E5120008E7120008E9120008B1
S31508000140EB120008ED120008EF120008F112000881
S31508000150F3120008F5120008F7120008F912000851
S3150800000000600020DD1700082318000825180008DE
S3150800001027180008291800082B18000800000000F7
S315080000200000000000000000000000002D18000875
S315080000302F180008000000003118000833180008BF
S3150800004037180008391800083B1800083D1800083A
S315080000503F1800084118000843180008451800080A
S31508000060471800080000000000000000000000001B
S3150800007049180008000000004B1800084D18000831
S315080000804F1800085118000853180008551800089A
S3150800009057180008591800085B1800085D1800086A
S315080000A05F1800086118000863180008651800083A
S315080000B067180008691800086B1800086D1800080A
S315080000C06F180008711800087318000875180008DA
S315080000D077180008791800087B1800087D180008AA
S315080000E07F1800088118000883180008851800087A
S315080000F087180008891800088B1800088D1800084A
S315080001008F18000891180008931800089518000819
S3150800011097180008991800089B1800089D180008E9
S315080001209F180008A1180008A3180008A5180008B9
S31508000130A7180008A9180008AB180008AD18000889
S31508000140AF180008B1180008B3180008B518000859
S31508000150B7180008B9180008BB180008BD18000829
S315080001600000000000000000000000000000000081
S31508000170FB120008FD120008FF1200080113000810
S3150800018003130008051300080713000809130008DD
S315080001900B1300080D1300080F13000811130008AD
S315080001A0131300081513000817130008191300087D
S315080001B01B1300081D1300081F130008211300084D
S315080001C0231300082513000827130008291300081D
S315080001D02B1300082D1300082F1300080000000039
S315080001E031130008331300083513000837130008C5
S315080001F039130008000000003B1300080000000047
S31508000170BF180008C1180008C3180008C5180008E9
S31508000180C7180008C9180008CB180008CD180008B9
S31508000190CF180008D1180008D3180008D518000889
S315080001A0D7180008D9180008DB180008DD18000859
S315080001B0DF180008E1180008E3180008E518000829
S315080001C0E7180008E9180008EB180008ED180008F9
S315080001D0EF180008F1180008F318000800000000DE
S315080001E0F5180008F7180008F9180008FB180008A1
S315080001F0FD18000800000000FF18000800000000B5
S3150800020010B5054C237833B9044B13B10448AFF342
S3150800021000800123237010BD80000020000000002C
S31508000220981C0008084B10B51BB108490848AFF3DD
S31508000220C0220008084B10B51BB108490848AFF3AF
S3150800023000800848036803B910BD074B002BFBD0A4
S31508000240BDE81040184700BF0000000084000020E9
S31508000250981C00086C00002000000000154B002BBD
S31508000250C02200086C00002000000000154B002B8F
S3150800026008BF134B9D46A3F5803A00218B460F46DF
S315080002701348144A121A01F053FC0F4B002B00D0F6
S315080002701348144A121A01F059FF0F4B002B00D0ED
S3150800028098470E4B002B00D0984700200021040009
S315080002900D000D48002802D00C48AFF3008001F08D
S315080002A019FC2000290000F06BFD01F0FFFB00BFE0
S315080002A01FFF2000290000F05BFF01F005FF00BFDB
S315080002B000000800006000200000000000000000A8
S315080002C080000020940900200000000000000000C3
S315080002C080000020D4090020000000000000000083
S315080002D008B500F045F8044B5B6A13F4005F01D1DA
S315080002E0002008BD012008BD008F024808B564201B
S315080002F000F006F808BD00BF08B500F007F808BD0D
S31508000300014B1880704700BFA000002008B501F017
S315080003105FF80F4B1B68984218D30E4B1B783BB9F6
S3150800031041FB0F4B1B68984218D30E4B1B783BB911
S3150800032001220C4B1A704FF400720B4B5A6006E010
S315080003300022084B1A704FF00072074B5A6001F002
S3150800034047F8064B1B881844014B186008BD00BFC8
S3150800034029FB064B1B881844014B186008BD00BFE3
S315080003509C000020A200002000850248A000002082
S315080003604FF00072014B5A60704700BF0085024883
S3150800037082B00023019303E000BF019B0133019380
@ -117,7 +117,7 @@ S315080007208073984223D003F5807398421FD003F54F
S31508000730807398421BD003F58073984217D003F54F
S315080007408073984213D003F5807398420FD003F54F
S31508000750807398420BD003F5A063984207D003F53F
S315080007608073984203D043214B4800F00DFF33783D
S315080007608073984203D043214B4801F0EFF9337860
S315080007701BB3082B23D0102B23D0182B23D0202BC8
S3150800078023D0282B23D0302B23D0382B23D0802BD3
S3150800079023D0882B23D0902B23D0982B23D0A02B83
@ -127,7 +127,7 @@ S315080007C01EE001231CE001231AE0012318E001239F
S315080007D016E0012314E0012312E0012310E00123AF
S315080007E00EE001230CE001230AE0012308E00123BF
S315080007F006E0012304E0012302E0012300E00023D0
S315080008001BB94421244800F0BFFEAB081F1D54F84D
S315080008001BB94421244801F0A1F9AB081F1D54F86F
S31508000810270005F00302D200F821914020EA0101E1
S3150800082044F82710606F6F000321B94020EA0101E0
S3150800083061671A498C4203D001F580718C4207D151
@ -136,335 +136,434 @@ S315080008507168A9406160E908103154F8217005F003
S315080008600705AD000720A84027EA000044F8210044
S3150800087054F82170307A00FA05F53D4344F82150C2
S31508000880043354F82300317801FA02F2024344F89B
S315080008902320F8BD008002484C1B0008008E024841
S315080008902320F8BD0080024858210008008E02482F
S315080008A0030F20F0704003EB43039A00014BD0502E
S315080008B0704700BF14440050034B1868034B5B692C
S315080008C003F00103D84070476C0000200046005032
S315080008D0030F20F0704003EB43039A00014BD050FE
S315080008E0704700BF4846005070B504460E46154688
S315080008F0494B98422FD003F5807398422BD003F5C5
S315080009008073984227D003F58073984223D003F565
S31508000910807398421FD003F5807398421BD003F565
S315080009208073984217D003F58073984213D003F565
S31508000930807398420FD003F5807398420BD003F565
S31508000940A063984207D003F58073984203D04321E9
S31508000950324800F019FE1DB3082D23D0102D23D0E0
S31508000960182D23D0202D23D0282D23D0302D23D069
S31508000970382D23D0802D23D0882D23D0902D23D019
S31508000980982D23D0A02D23D0C02D23D0C82D23D019
S31508000990D02D23D0D82D23D0E02D23D1012322E03A
S315080009A0012320E001231EE001231CE001231AE0B5
S315080009B0012318E0012316E0012314E0012312E0C5
S315080009C0012310E001230EE001230CE001230AE0D5
S315080009D0012308E0012306E0012304E0012302E0E5
S315080009E0012300E000231BB944210C4800F0CCFD8C
S315080009F0B308043354F8231006F00306F600F82269
S31508000A00B24021EA020244F8232054F82320B540D4
S31508000A10154344F8235070BD008002486C1B00083B
S31508000A2070B505460E4600F0FDF8F47904B91024B1
S31508000A3022463168284600F047F8B379013B640836
S31508000A400134240244EA430343F4403343F00103E8
S31508000A50EB633379013B1B0643F481736B6373794C
S31508000A602BB16A6B013B42EA03436B6305E06A6B91
S31508000A703379013B42EA03436B634FF4A063AB63EC
S31508000A804FF0FF33EB6433892B6470BDD0F808311F
S31508000A9013F0E06F09D1836B13F0800FFBD14FF48D
S31508000AA00053C364C0F880107047C0F880117047BF
S31508000AB0D0F80C3113F0E06F02D1406D80B2704768
S31508000AC0D0F81C0180B2704763293BD9002A3BD075
S31508000AD02DE9F04115460C460646FFF7EDFE1B4983
S31508000AE0A1FB00377F09A1FB0431480940F2FF3E0C
S31508000AF04FF0010CE046714611E007FB01F300FBDD
S31508000B0005F2B3FBF2F39C0AC3F30903B4F5806F4D
S31508000B1004D29E4502D99E46A44688460139002934
S31508000B20EBD148F4004333617269094B1340013D28
S31508000B3043EA85230CF1FF3C43EA0C43736100202A
S31508000B40BDE8F08101207047012070471F85EB51F1
S31508000B50EF8000FC30B4D0F8084124F0E064C0F817
S31508000B600841D0F80851064C2C4041EA032343EAD1
S31508000B70026244EA0203C0F8083130BC704700BF7D
S31508000B80C0C0FFF830B4D0F80C4124F0E064C0F8D7
S31508000B900C41D0F80C51074C2C4041EA032343EA98
S31508000BA0026244EA020343F08053C0F80C3130BCB9
S31508000BB0704700BFC0C0FFEF10B5144B984208D16C
S31508000BC04FF40060FFF784FE4FF40060FFF768FEFD
S31508000BD010BD0F4B984207D10E4C2046FFF778FE02
S31508000BE02046FFF75DFE10BD0B4B984207D10B4C14
S31508000BF02046FFF76DFE2046FFF752FE10BD40F275
S31508000C004B11074800F0C0FC10BD00BF08000340A8
S31508000C100800024880000010084002480001001041
S31508000C208C1B000810B504462F4B984205D003F5D7
S31508000C300073984203D1012302E0012300E0002358
S31508000C4043B92A4B9C4207D003F500739C4205D151
S31508000C50012304E0012302E0012300E0002343B955
S31508000C60234B9C4207D003F500739C4205D1012310
S31508000C7004E0012302E0012300E000231BB951210F
S31508000C801C4800F081FC184B9C4203D003F5007306
S31508000C909C4203D11848FFF78FFF19E0134B9C427B
S31508000CA003D003F500739C4203D11448FFF784FF71
S31508000CB00EE00F4B9C4203D003F500739C4203D110
S31508000CC00F48FFF779FF03E065210A4800F05CFC4E
S31508000CD00323E360E36813F0010FFBD0236C23F0D2
S31508000CE00F03236410BD00BF000003400000024844
S31508000CF0004002488C1B0008080003400800024810
S31508000D000840024810B5802209210748FFF7ECFD84
S31508000D10064C00220D212046FFF7E6FD236E23F43C
S31508000D200053236610BD00BF00850248008F0248A5
S31508000D3070B586B000238DF80C300126049602257E
S31508000D408DF814500C4C03AA04212046FFF7D8FC52
S31508000D5090238DF8003001968DF808506A460521D3
S31508000D602046FFF7CDFC054AD36923F00703334332
S31508000D70D36106B070BD00BF008102480000034081
S31508000D8008B5FFF7BFFF00F033FCFFF7D1FF00F00F
S31508000D903DFCFCE708B500F03BFA08BD10B500F0CD
S31508000DA0DDFAA0B1FFF794FA88B100F057FC00F01D
S31508000DB0E7FA00F0D7FA20F0604020F07F00044BF5
S31508000DC0186000F0CFFA446800F024FAA04710BD76
S31508000DD008ED00E070B508E0461C4D1C0B78037062
S31508000DE000F06AFC224630462946531E9CB2002A69
S31508000DF0F2D170BD030E082B01D100F18060704757
S31508000E0038B50546002419E000F056FC04EB440208
S31508000E1093000C4AD358AB420ED804EB44018A001F
S31508000E2008490A44526813449D4205D204EB44001B
S31508000E3083000B44187A38BD0134E4B20E2CE3D98A
S31508000E40FF2038BDAC1B000838B50546002410E065
S31508000E5000F032FC04EB44029300084A13441B7A60
S31508000E60AB4204D104EB44018B00D05838BD0134A1
S31508000E70E4B20E2CECD94FF0FF3038BDAC1B00089D
S31508000E8008B5C1F3090353B90368994209D040F874
S31508000E90041B4FF48062FFF79DFF012008BD002068
S31508000EA008BD012008BD00BF2DE9F04106460068CF
S31508000EB0FFF7A6FFFF2833D000272CE000F0FCFB45
S31508000EC035683C0225443444043400F081FA00F1C4
S31508000ED00D0821462846FFF7E1FB05E000F078FA01
S31508000EE0804520D300F0E8FBFFF7D0FB00F00100B7
S31508000EF010F0FF0FF2D1FFF7C9FB30F0100315D140
S31508000F00002305E05A5DD2B2E15C8A4211D1013371
S31508000F10FF2BF7D90137032FD0D90120BDE8F0817F
S31508000F200020BDE8F0810020BDE8F0810020BDE882
S31508000F30F0810020BDE8F08138B50D460B4B98428C
S31508000F4007D004460A4B994205D0FFF7ADFF18B9FA
S31508000F5008E0084C00E0054C29462046FFF790FFBC
S31508000F6010B938BD002038BD204638BDA400002081
S31508000F700040000CA80400202DE9F04106460C4666
S31508000F8017461D4621F47F7828F003080368B3F155
S31508000F90FF3F04D14146FFF773FF034630B333687A
S31508000FA0984505D041463046FFF7C6FF0646D0B1FC
S31508000FB03368E41A3444043400F07EFB331DE31A24
S31508000FC0B3F5806F07D308F580613046FFF7B4FFA5
S31508000FD0064650B1041D17F8013B04F8013B013DD4
S31508000FE0EAD1012302E0002300E000231846BDE809
S31508000FF0F08100BF884230D8F8B505460E4670B372
S315080010000F2926D92DE000F057FB2846FFF71CFFCD
S315080010100746B0F1FF3F26D000F0DAF900F5CE54C6
S3150800102008343846FFF75AFB05E000F0D1F9844248
S315080010301BD300F041FBFFF729FB00F0010010F07D
S31508001040FF0FF2D1FFF722FB30F020030FD1013555
S31508001050EDB2B542D7D90120F8BD0020704700206F
S31508001060F8BD0020F8BD0020F8BD0020F8BD00201E
S31508001070F8BD00BF4FF0FF33024A1360024A1360FF
S31508001080704700BFA8040020A400002070B50D46D4
S315080010901646FFF7AFFE0446FFF7B2FEFF281AD042
S315080010A060190138FFF7ACFEFF2816D024F47F73C9
S315080010B023F003030A4A934206D12B4632462146B9
S315080010C00848FFF759FF70BD2B46324621460648A9
S315080010D0FFF752FF70BD002070BD002070BD00BF35
S315080010E00040000CA4000020A804002070B50C469F
S315080010F0FFF780FE0646FFF783FE054630190138DE
S31508001100FFF77EFEFF2D06D0FF2806D001462846AB
S31508001110FFF770FF70BD002070BD002070BD00BFD6
S31508001120114B1B68B3F1FF3F18D000B583B00E4BC7
S3150800113059689A681144DA6811441A6911445A6957
S3150800114011449A691144DA698B18DB4302AA42F8FA
S31508001150043D04210548FFF799FF01E00120704787
S3150800116003B05DF804FB00BFA40000200042000C99
S315080011700E4B1A6804331B6813440D4A126813444D
S315080011800C4A126813440C4A126813440B4A126834
S3150800119013440B4A12681344DB430A4A1268934203
S315080011A001D1012070470020704700BF0040000CA5
S315080011B00840000C0C40000C1040000C1440000CB9
S315080011C01840000C0042000C08B50D4B1B68B3F123
S315080011D0FF3F04D00A48FFF767FE034668B1094B8C
S315080011E01B68B3F1FF3F05D00648FFF75DFE0346CF
S315080011F010B902E0012300E00123184608BD00BF2C
S31508001200A4000020A8040020004870470040000CF5
S3150800121072B6704762B670470649074A074B9A4244
S31508001220BEBF51F8040B42F8040BF8E704488047A0
S3150800123004480047A41C0008000000206C00002099
S31508001240FD0500085D0200083C493D4A002301E00F
S3150800125041F8043B9142FBD3FFF792FDFEE7FEE718
S31508001260FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE748
S31508001270FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE738
S31508001280FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE728
S31508001290FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE718
S315080012A0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE708
S315080012B0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7F8
S315080012C0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7E8
S315080012D0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7D8
S315080012E0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7C8
S315080012F0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7B8
S31508001300FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7A7
S31508001310FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE797
S31508001320FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE787
S31508001330FEE7FEE7FEE7FEE7FEE7FEE780000020A1
S315080013409409002008B5FFF795FE08BD08B5FFF714
S315080013509DFE08BD08B5FFF7C9FE08BD08B5FFF72D
S3150800136007FF08BD08B5FFF74FFF08BD08B5FFF72B
S31508001370D7FE034610B1FFF727FF0346184608BDF8
S315080013800022014B1A60704710E000E008B5FFF72D
S31508001390F7FF054B054A5A6000229A600521196035
S315080013A0034B1A6008BD00BF10E000E07F32020060
S315080013B0AC080020044B1B6813F4803F03D0034A93
S315080013C0136801331360704710E000E0AC08002092
S315080013D008B5FFF7EFFF014B186808BDAC080020F9
S315080013E008B50C4BD3F8143113F4805F10D10146BD
S315080013F00848FFF74BFB074BD3F8143113F4807FEB
S31508001400F9D04FF48072034BC3F81821012008BDA8
S31508001410002008BD00000340074BD3F8143113F031
S31508001420080F07D110B504460348FFF741FB2070A3
S31508001430012010BD0020704700000340F0B585B0BC
S315080014404FF46143019308238DF808308DF809306D
S3150800145001258DF80A5010278DF80B700026ADF877
S315080014600C600C4C01A92046FFF7DAFA2B46042239
S3150800147039462046FFF76EFB2B46042231462046A6
S31508001480FFF780FB236C23F00F0343F0020323646A
S3150800149005B0F0BD0000034070B506460D4640296C
S315080014A003D972210F4800F06FF82846FFF798FF16
S315080014B0012803D076210B4800F066F800240CE0DA
S315080014C000F0FAF8305DFFF78BFF012803D07F2183
S315080014D0044800F059F80134A4B2ABB29C42EFD3E9
S315080014E070BD00BF601C000838B5224B1C789CB93B
S315080014F02148FFF791FF01283AD11F4B1B78002B93
S3150800150031D0FFF765FF1D4B186000221C4B1A707F
S315080015100122184B1A702BE00546194B1B7801332C
S3150800152015481844FFF778FF0446012810D1144BD4
S315080015301A780132D2B21A700F4B1B789A4214D11C
S3150800154010492846FFF746FC00220A4B1A700FE09E
S31508001550FFF73EFF094B1B686433984207D90024FE
S31508001560044B1C7004E01C4602E0002400E0002442
S31508001570204638BDF5080020B4080020F8080020E9
S31508001580B0080020B508002008B5024B196000F025
S3150800159093F8FCE7FC08002008B500F085F8012858
S315080015A010D0094B1B78012B0CD1FFF711FF074B05
S315080015B01B6803F5FA73984204D30022024B1A708B
S315080015C0FFF7ECFB08BD00BF000900200409002056
S315080015D008B50122044B1A70FFF7FAFE034B186090
S315080015E0FFF7DAFF08BD00BF000900200409002044
S315080015F008B5FFF7CFFB00F05BF8FFF7C7FEFFF76C
S31508001600A1FE00F00DF8FFF7E3FF08BD08B500F0EE
S3150800161053F8FFF7CFFE00F00FF8FFF7BDFF08BD40
S3150800162008B500F0B5F9FFF709FF0022014B1A705B
S3150800163008BD00BF0000002008B50648FFF754FFA4
S31508001640012805D10022044B1A70024800F0BEF9A1
S3150800165008BD00BF0809002000000020704700BF31
S3150800166008B5044B1B7813B9C9B2FFF715FF00F08C
S31508001670A5F908BD00000020044B1B78013B022B8E
S3150800168001D9402070470020704700BF00000020A5
S31508001690044B1B78013B022B01D9402070470020E0
S315080016A0704700BF0000002008B500F07FF908BDAC
S315080016B008B5FEF71BFE08BD08B5FEF71DFE08BDFA
S315080016C010B4002304E010F8011B0B44DBB22146DA
S315080016D04C1E0029F7D1136001205DF8044B7047B2
S315080016E00022014B5A70704748090020034BFE221E
S315080016F0DA7018710222A3F84420704748090020BE
S3150800170010B5054C00232370FFF7EAFFFF23E370AB
S315080017100123A4F8443010BD48090020064BFF22D7
S31508001720DA7000221A71597859719A71DA711A7237
S315080017300622A3F8442070474809002008B500206F
S31508001740FFF7D4FF08BD00BF084BFF22DA70084A2E
S315080017509A6400221A715A719A710721D9711A72FC
S315080017605A729A720822A3F8442070474809002042
S31508001770881C0008044BFF22DA7042689A6401222A
S31508001780A3F84420704700BF4809002010B5084C4C
S31508001790FF23E370E21D4168A06CFFF791FF2071FB
S315080017A000236371A3710823A4F8443010BD00BF59
S315080017B04809002008B53120FFF798FF08BD00BF8B
S315080017C038B5084CFF23E370002525716571FFF7CE
S315080017D053FFA071E571257265720723A4F844309A
S315080017E038BD00BF4809002038B5FFF779FF0D4C12
S315080017F001252570FF23E3701023237100236371ED
S31508001800FFF73AFFA071FFF743FFE071FFF740FFCC
S31508001810C0F3072020726572A5720823A4F8443025
S3150800182038BD00BF4809002038B505464478FFF79B
S3150800183023FF0138844203DD2220FFF757FF38BD16
S31508001840084C6A78A16C201DFFF7C4FAFF23E370E1
S315080018506B78A26C1344A3646B780133A4F8443004
S3150800186038BD00BF4809002038B504464578FFF75B
S3150800187003FF0138854203DD2220FFF737FF38BD15
S315080018806168084DA9646278281DFFF7A3FAFF234B
S31508001890EB706378AA6C1344AB6463780133A5F8DC
S315080018A0443038BD4809002038B505460D4B9C6CB8
S315080018B0FFF7E2FE6A1C411E2046FFF747FD18B9EE
S315080018C03120FFF713FF38BD064CFF23E370FFF7FF
S315080018D0D3FE0138A36C1844A0640123A4F844304D
S315080018E038BD00BF4809002038B504464578FFF7DB
S315080018F0C3FE0238854203DD2220FFF7F7FE38BD16
S315080019000F4BFF22DA700122A3F84420617831B91F
S31508001910FFF72CFD90B93120FFF7E8FE38BDA21C71
S31508001920074B986CFFF712FD18B93120FFF7DEFE5A
S3150800193038BD6378024A916C0B44936438BD00BF86
S315080019404809002008B54168074B986CFFF702FD67
S3150800195018B93120FFF7CAFE08BD034BFF22DA701B
S315080019600122A3F8442008BD4809002008B5FFF75E
S3150800197015FA034BFF22DA700122A3F8442008BDAA
S315080019804809002008B589B2FFF76AFE08BD00BFFE
S31508001990054B00221A709A6483F84320A3F8442062
S315080019A09A705A70704700BF48090020024B187891
S315080019B000B10120704700BF480900200022024BF1
S315080019C083F84320704700BF4809002008B503780C
S315080019D0FF2B02D1FFF708FF50E0334A1278012A9D
S315080019E060D1C93B352B46D8DFE803F0334545427D
S315080019F045453F363C3945454545454545454545B3
S31508001A004545454545454545454545454545454578
S31508001A10454545454545241E1B2145454527452A37
S31508001A202D30FFF701FF29E0FFF71EFF26E0FFF73D
S31508001A30A1FE23E0FFF7AAFE20E0FFF785FE1DE0E2
S31508001A40FFF77CFE1AE0FFF769FE17E0FFF758FE7E
S31508001A5014E0FFF729FF11E0FFF746FF0EE0FFF756
S31508001A60AFFE0BE0FFF76EFF08E0FFF77FFF05E02C
S31508001A70FFF7A0FE02E02020FFF738FE0A4B93F896
S31508001A804330012B02D11020FFF730FE064BB3F985
S31508001A904410002906DD1846012380F84330033038
S31508001AA0FFF770FF08BD00BF4809002008B5074BBF
S31508001AB0044613B10021AFF30080054B1868836A0A
S31508001AC003B19847204600F033F800BF0000000035
S31508001AD0941C000870B50E4B0E4CE41AA410002591
S31508001AE01E46A54204D056F8253098470135F8E732
S31508001AF000F020F8084C094BE41AA41000251E46ED
S31508001B00A54204D056F8253098470135F8E770BD48
S31508001B1064000020640000206800002064000020A3
S31508001B2002440346934202D003F8011BFAE77047C2
S31508001B30FEE70000F8B500BFF8BC08BC9E46704733
S31508001B40F8B500BFF8BC08BC9E4670472E2E5C6CE4
S31508001B5069625C786D636C69625C7372635C786DEC
S31508001B6063345F6770696F2E630000002E2E5C6C0D
S31508001B7069625C786D636C69625C7372635C786DCC
S31508001B80635F6770696F2E63000000002E2E5C6C21
S31508001B9069625C786D636C69625C7372635C786DAC
S31508001BA0635F757369632E63000000000040000CD4
S31508001BB000400000010000000080000C004000000A
S31508001BC00200000000C0000C0040000003000000F6
S31508001BD00000010C00400000040000000040010C59
S31508001BE000400000050000000080010C00400000D5
S31508001BF00600000000C0010C0040000007000000BD
S31508001C000000020C00000200080000000000040C9E
S31508001C1000000400090000000000080C0000040091
S31508001C200A00000000000C0C000004000B00000075
S31508001C300000100C000004000C0000000000140C4A
S31508001C40000004000D0000000000180C000004004D
S31508001C500E00000000001C0C000004000F0000002D
S31508001C602E2E5C2E2E5C2E2E5C2E2E5C536F7572DD
S31508001C7063655C41524D434D345F584D43345C7542
S31508001C806172742E630000004F70656E424C5400FA
S31108001C90430000000400002000000000D3
S30D08001C9CC0E5FF7F010000000E
S31508001CA4040000000000000000000000000000001E
S31508001CB40000000000000000000000000000000012
S31508001CC400000000901C000800000000000000004E
S31508001CD400000000000000000000000000000000F2
S31508001CE400000000000000000000000000000000E2
S31508001CF400000000000000000000000000000000D2
S31108001D040000000025020008010200088B
S31508001D1000000000000000000000000000000000B5
S30908001D2000000000B1
S315080008E0704700BF484600502DE9F04105460C46C2
S315080008F00A684D4B9A4203D966214C4801F026F9FD
S3150800090022684B4B9A4203D86821484801F01EF9E1
S315080009102389013B9BB242F20E72934203D96A21A4
S31508000920424801F013F942F2107E0027BC46012620
S315080009303BE0236803EB83035A00B2FBF6F26068D8
S31508000940B2FBF0F13B4BA3FB0183DB0803EB83030C
S315080009504FEA4308C8EB0103052B05D9354BA3FB22
S315080009600113DB08013303E0324BA3FB0113DB0859
S3150800097033B103EB83084FEA4801B2FBF1F204E016
S315080009802C4BA3FB0232D2080123824201D3121A4E
S3150800099000E0821A142B07D8964505D9B2F57A7F56
S315080009A006D396461F46B4460136402EC1D901E005
S315080009B01F46B44642F2107E0126402212E042F259
S315080009C0107302FB0333B3FBF7F321898B4201D380
S315080009D0581A00E0C81A864501D9864616468B423B
S315080009E002D3013A022AEAD8BB1B2A6842F040021F
S315080009F02A60023B1B0303F4E0436289013A920131
S31508000A00D2B21343721E120202F4706213430CF13F
S31508000A10FF3C0CF03F0C43EA0C032B612B6823F0D8
S31508000A2040032B60BDE8F081000E270778210008F7
S31508000A30404B4C00CDCCCCCCD0F8C43113F4407F1D
S31508000A40FAD10131120442F0020242EA0161C0F809
S31508000A50C411704738B50446074D2846FFF738FFD6
S31508000A602846FFF71DFF236823F001032360236848
S31508000A7013F0020FFBD138BD10000010D0F8C831B2
S31508000A8023F00F031943C0F8C8117047D0F8C801FE
S31508000A9000F00F00704700BF08B5FFF7F7FF012801
S31508000AA002D0022803D005E0FFF706FF08BDFFF7CE
S31508000AB08FFC08BD002008BD70B505460C461646D5
S31508000AC0FFF7C8FF21462846FFF7D8FF2846FFF755
S31508000AD0E3FF0446B04204D24FF495711A4801F078
S31508000AE035F8B4FBF6F1C1F58061002938BF00215D
S31508000AF040F2FF32914228BF1146C1F58060B4FB2F
S31508000B00F0F0B309A4099B02B3FBF4F3934228BFA0
S31508000B10134603FB04F4A40A321AA6EB8414A24271
S31508000B2000D80B46A24201D8012100E00221EA685A
S31508000B3022F4434222F0FF02EA60EA6843EA81337C
S31508000B401343EB6070BD00BF78210008037E012BBC
S31508000B5017D103682022DA6101680B6823F07062F6
S31508000B60037B1B0603F0706313430B60036802697B
S31508000B701A61036842695A610368034ADA61002008
S31508000B8070470320704700BF40002800016801F144
S31508000B903842A2F5A8325309920A1B0203F4F85305
S31508000BA043EA42338A6822F47F428A6001688A6887
S31508000BB013438B60037E012B2FD810B503682022C0
S31508000BC0DA61C37913F0200F0ED1426802F0604350
S31508000BD043EA824302689361826802F0604343EA0B
S31508000BE082430268D36005E0036842689A61036835
S31508000BF08268DA600446037E012B06D1FFF7A6FF5A
S31508000C0023684FF00062DA6103E003684FF400627C
S31508000C10DA612368014ADA6110BD70474000A00610
S31508000C200268D169D369C3F3002311F0200F05D0F8
S31508000C3033B94FF0E063D361002070470420704752
S31508000C40022070470368D969DA69C2F3800211F491
S31508000C50006F0FD182B91A6902615A694261D9696E
S31508000C60DA69C2F3C00211F0040F07D0002AF2D1E4
S31508000C700020704703207047022070470020704705
S31508000C8070B504460E461546494B98422FD003F5D3
S31508000C90807398422BD003F58073984227D003F5CA
S31508000CA08073984223D003F5807398421FD003F5CA
S31508000CB0807398421BD003F58073984217D003F5CA
S31508000CC08073984213D003F5807398420FD003F5CA
S31508000CD0807398420BD003F5A063984207D003F5BA
S31508000CE08073984203D04321324800F02FFF1DB38A
S31508000CF0082D23D0102D23D0182D23D0202D23D016
S31508000D00282D23D0302D23D0382D23D0802D23D045
S31508000D10882D23D0902D23D0982D23D0A02D23D0F5
S31508000D20C02D23D0C82D23D0D02D23D0D82D23D005
S31508000D30E02D23D1012322E0012320E001231EE038
S31508000D4001231CE001231AE0012318E0012316E021
S31508000D50012314E0012312E0012310E001230EE031
S31508000D6001230CE001230AE0012308E0012306E041
S31508000D70012304E0012302E0012300E000231BB95C
S31508000D8044210C4800F0E2FEB308043354F823105B
S31508000D9006F00306F600F822B24021EA020244F8F9
S31508000DA0232054F82320B540154344F8235070BD3A
S31508000DB0008002489421000870B505460E4600F0EA
S31508000DC0FDF8F47904B9102422463168284600F063
S31508000DD047F8B379013B64080134240244EA430323
S31508000DE043F4403343F00103EB633379013B1B06BD
S31508000DF043F481736B6373792BB16A6B013B42EAE7
S31508000E0003436B6305E06A6B3379013B42EA0343AC
S31508000E106B634FF4A063AB634FF0FF33EB64338926
S31508000E202B6470BDD0F8083113F0E06F09D1836BDD
S31508000E3013F0800FFBD14FF40053C364C0F8801041
S31508000E407047C0F880117047D0F80C3113F0E06F86
S31508000E5002D1406D80B27047D0F81C0180B270474D
S31508000E6063293BD9002A3BD02DE9F04115460C46AB
S31508000E700646FFF721FD1B49A1FB00377F09A1FBA9
S31508000E800431480940F2FF3E4FF0010CE046714636
S31508000E9011E007FB01F300FB05F2B3FBF2F39C0A32
S31508000EA0C3F30903B4F5806F04D29E4502D99E4662
S31508000EB0A446884601390029EBD148F4004333613A
S31508000EC07269094B1340013D43EA85230CF1FF3C47
S31508000ED043EA0C4373610020BDE8F08101207047A6
S31508000EE0012070471F85EB51EF8000FC30B4D0F825
S31508000EF0084124F0E064C0F80841D0F80851064CCF
S31508000F002C4041EA032343EA026244EA0203C0F89A
S31508000F10083130BC704700BFC0C0FFF830B4D0F805
S31508000F200C4124F0E064C0F80C41D0F80C51074C91
S31508000F302C4041EA032343EA026244EA020343F0EF
S31508000F408053C0F80C3130BC704700BFC0C0FFEFFB
S31508000F5010B5144B984208D14FF40060FFF7B8FC5F
S31508000F604FF40060FFF79CFC10BD0F4B984207D169
S31508000F700E4C2046FFF7ACFC2046FFF791FC10BD4F
S31508000F800B4B984207D10B4C2046FFF7A1FC204695
S31508000F90FFF786FC10BD40F24B11074800F0D6FD5E
S31508000FA010BD00BF0800034008000248800000107A
S31508000FB00840024800010010B421000810B5044694
S31508000FC02F4B984205D003F50073984203D10123AD
S31508000FD002E0012300E0002343B92A4B9C4207D0D4
S31508000FE003F500739C4205D1012304E0012302E0C6
S31508000FF0012300E0002343B9234B9C4207D003F5A5
S3150800100000739C4205D1012304E0012302E0012379
S3150800101000E000231BB951211C4800F097FD184B2E
S315080010209C4203D003F500739C4203D11848FFF78E
S315080010308FFF19E0134B9C4203D003F500739C42C3
S3150800104003D11448FFF784FF0EE00F4B9C4203D0F0
S3150800105003F500739C4203D10F48FFF779FF03E0BD
S3150800106065210A4800F072FD0323E360E36813F084
S31508001070010FFBD0236C23F00F03236410BD00BFC0
S31508001080000003400000024800400248B42100085E
S3150800109008000340080002480840024810B58022AC
S315080010A009210748FFF7ECFD064C00220D212046D2
S315080010B0FFF7E6FD236E23F40053236610BD00BF39
S315080010C000850248008F02482DE9F0418CB04FF0A8
S315080010D000088DF8248001260A9602258DF82C50E2
S315080010E01C4C09AA04212046FFF70AFB90278DF815
S315080010F0187007968DF8205006AA05212046FFF796
S31508001100FFFA154AD36923F007033343D3610CAAC0
S3150800111002F8248D0D212046FFF7F2FA8DF80070AB
S3150800112001968DF808506A460C212046FFF7E8FA22
S315080011300A4B1A6842F040021A60DA6822F007027F
S315080011402A43DA601A6822F040021A600CB0BDE839
S31508001150F08100BF008102480000034000430148B7
S3150800116008B5FFF79BFF00F025FDFFF7ADFF00F080
S315080011702FFDFCE710B584B0FFF79EFB044600E0A0
S315080011806400474B9C42FBD900E06408454B9C42EF
S31508001190FBD8224601214448FFF78EFC0194434BB5
S315080011A002934FF4FA53ADF80C300123ADF80E3024
S315080011B03F4C01A92046FFF797FB236843F04003FD
S315080011C02360236843F0010323603A4B3A4A1A60C6
S315080011D0DA79022161F38712DA71596840F2E1700F
S315080011E060F31C0159609A6860F31C029A60090E44
S315080011F06FF34511D971120E42F02002DA720822F5
S315080012001A73002305E02B4A1A440021117401338E
S31508001210DBB2072BF7D9274801240476FFF7B6FC7B
S31508001220002221462048FFF707FC244B244A1A606F
S31508001230DA79022161F38712DA71596840F2676038
S3150800124060F31C0159609A6860F31C029A60090EE3
S315080012506FF34511D971120E42F02002DA72082294
S315080012601A73002305E0154A1A4400211174013344
S31508001270DBB2072BF7D9114800230376FFF786FC64
S31508001280012211460848FFF7D7FB094B1A6822F0D6
S3150800129040021A601A6822F001021A6004B010BDF2
S315080012A0FF1AB700000E27070040014820A10700D3
S315080012B000430148A800002000500148C80000204B
S315080012C02050014810B5104B1973002305E0C45C83
S315080012D00D4A1A4414740133DBB28B42F7D30A4C15
S315080012E02046FFF733FC23680222DA612046FFF71F
S315080012F097FC01E000F0E6FC034B1B68DB6913F082
S31508001300020FF7D110BD00BFA8000020114B1B68C3
S31508001310DB6913F0010F1AD010B504460D48FFF724
S3150800132091FC48B100200DE00A4A1A44127CE254A6
S315080013300133DBB2012001E000200346054A127B97
S315080013409342F1D3034B1B680122DA6110BD0020DA
S31508001350704700BFC800002008B500F03BFA08BD7A
S3150800136010B500F0DDFAA0B1FEF7B2FF88B100F0C3
S3150800137065FC00F0E7FA00F0D7FA20F0604020F0AC
S315080013807F00044B186000F0CFFA446800F024FA96
S31508001390A04710BD08ED00E070B508E0461C4D1CDE
S315080013A00B78037000F08EFC224630462946531E01
S315080013B09CB2002AF2D170BD030E082B01D100F1B0
S315080013C08060704738B50546002419E000F07AFCBD
S315080013D004EB440293000C4AD358AB420ED804EBF4
S315080013E044018A0008490A44526813449D4205D2BA
S315080013F004EB440083000B44187A38BD0134E4B288
S315080014000E2CE3D9FF2038BDD421000838B505468F
S31508001410002410E000F056FC04EB44029300084A4E
S3150800142013441B7AAB4204D104EB44018B00D05819
S3150800143038BD0134E4B20E2CECD94FF0FF3038BD7C
S31508001440D421000808B5C1F3090353B903689942C2
S3150800145009D040F8041B4FF48062FFF79DFF012076
S3150800146008BD002008BD012008BD00BF2DE9F041D8
S3150800147006460068FFF7A6FFFF2833D000272CE0B2
S3150800148000F020FC35683C0225443444043400F05E
S3150800149081FA00F10D0821462846FFF7FFF805E016
S315080014A000F078FA804520D300F00CFCFFF7EEF840
S315080014B000F0010010F0FF0FF2D1FFF7E7F830F067
S315080014C0100315D1002305E05A5DD2B2E15C8A42C9
S315080014D011D10133FF2BF7D90137032FD0D90120BA
S315080014E0BDE8F0810020BDE8F0810020BDE8F0816C
S315080014F00020BDE8F0810020BDE8F08138B50D4632
S315080015000B4B984207D004460A4B994205D0FFF781
S31508001510ADFF18B908E0084C00E0054C29462046FE
S31508001520FFF790FF10B938BD002038BD204638BDFA
S31508001530E80000200040000CEC0400202DE9F041F2
S3150800154006460C4617461D4621F47F7828F0030800
S315080015500368B3F1FF3F04D14146FFF773FF034623
S3150800156030B33368984505D041463046FFF7C6FF85
S315080015700646D0B13368E41A3444043400F0A2FBBA
S31508001580331DE31AB3F5806F07D308F5806130463B
S31508001590FFF7B4FF064650B1041D17F8013B04F8DF
S315080015A0013B013DEAD1012302E0002300E00023CC
S315080015B01846BDE8F08100BF884230D8F8B5054620
S315080015C00E4670B30F2926D92DE000F07BFB28467E
S315080015D0FFF71CFF0746B0F1FF3F26D000F0DAF907
S315080015E000F5CE5408343846FFF778F805E000F0E1
S315080015F0D1F984421BD300F065FBFFF747F800F0EA
S31508001600010010F0FF0FF2D1FFF740F830F0200389
S315080016100FD10135EDB2B542D7D90120F8BD00206A
S3150800162070470020F8BD0020F8BD0020F8BD002056
S31508001630F8BD0020F8BD00BF4FF0FF33024A136023
S31508001640024A1360704700BFEC040020E80000203F
S3150800165070B50D461646FFF7AFFE0446FFF7B2FE15
S31508001660FF281AD060190138FFF7ACFEFF2816D0FC
S3150800167024F47F7323F003030A4A934206D12B46C8
S31508001680324621460848FFF759FF70BD2B463246B9
S3150800169021460648FFF752FF70BD002070BD0020A6
S315080016A070BD00BF0040000CE8000020EC040020DC
S315080016B070B50C46FFF780FE0646FFF783FE054623
S315080016C030190138FFF77EFEFF2D06D0FF2806D019
S315080016D001462846FFF770FF70BD002070BD002048
S315080016E070BD00BF114B1B68B3F1FF3F18D000B5A2
S315080016F083B00E4B59689A681144DA6811441A691E
S3150800170011445A6911449A691144DA698B18DB4302
S3150800171002AA42F8043D04210548FFF799FF01E0B3
S315080017200120704703B05DF804FB00BFE800002005
S315080017300042000C0E4B1A6804331B6813440D4A0A
S31508001740126813440C4A126813440C4A126813446C
S315080017500B4A126813440B4A12681344DB430A4ABD
S315080017601268934201D1012070470020704700BFDC
S315080017700040000C0840000C0C40000C1040000C07
S315080017801440000C1840000C0042000C08B50D4B24
S315080017901B68B3F1FF3F04D00A48FFF767FE03460C
S315080017A068B1094B1B68B3F1FF3F05D00648FFF740
S315080017B05DFE034610B902E0012300E00123184646
S315080017C008BD00BFE8000020EC0400200048704770
S315080017D00040000C72B6704762B670470649074A61
S315080017E0074B9A42BEBF51F8040B42F8040BF8E7C0
S315080017F00448804704480047CC220008000000201F
S315080018006C000020FD0500085D0200083C493D4AC1
S31508001810002301E041F8043B9142FBD3FFF7A0FC0B
S31508001820FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE782
S31508001830FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE772
S31508001840FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE762
S31508001850FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE752
S31508001860FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE742
S31508001870FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE732
S31508001880FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE722
S31508001890FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE712
S315080018A0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE702
S315080018B0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7F2
S315080018C0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7E2
S315080018D0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7D2
S315080018E0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7C2
S315080018F0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7B2
S3150800190080000020D409002008B5FFF795FE08BD21
S3150800191008B5FFF79DFE08BD08B5FFF7C9FE08BD67
S3150800192008B5FFF707FF08BD08B5FFF74FFF08BD65
S3150800193008B5FFF7D7FE034610B1FFF727FF0346A2
S31508001940184608BD0022014B1A60704710E000E0F7
S3150800195008B5FFF7F7FF054B054A5A6000229A605B
S3150800196005211960034B1A6008BD00BF10E000E0AE
S315080019707F320200F0080020044B1B6813F4803FF6
S3150800198003D0034A136801331360704710E000E080
S31508001990F008002008B5FFF7EFFF014B186808BDEF
S315080019A0F008002008B50C4BD3F8143113F4805F07
S315080019B010D101460848FFF735FA074BD3F814311A
S315080019C013F4807FF9D04FF48072034BC3F81821C3
S315080019D0012008BD002008BD00000340074BD3F8CE
S315080019E0143113F0080F07D110B504460348FFF762
S315080019F02BFA2070012010BD00207047000003401C
S31508001A00F0B585B04FF46143019308238DF808308B
S31508001A108DF8093001258DF80A5010278DF80B70BE
S31508001A200026ADF80C600C4C01A92046FFF7C4F956
S31508001A302B46042239462046FFF758FA2B4604223D
S31508001A4031462046FFF76AFA236C23F00F0343F06A
S31508001A500203236405B0F0BD0000034070B50646D6
S31508001A600D46402903D977210F4800F06FF828461C
S31508001A70FFF798FF012803D07B210B4800F066F892
S31508001A8000240CE000F01EF9305DFFF78BFF0128FB
S31508001A9003D08421044800F059F80134A4B2ABB24B
S31508001AA09C42EFD370BD00BF8822000838B5224B90
S31508001AB01C789CB92148FFF791FF01283AD11F4BA2
S31508001AC01B78002B31D0FFF765FF1D4B18600022ED
S31508001AD01C4B1A700122184B1A702BE00546194B3D
S31508001AE01B78013315481844FFF778FF0446012888
S31508001AF010D1144B1A780132D2B21A700F4B1B78D8
S31508001B009A4214D110492846FFF746FC00220A4B90
S31508001B101A700FE0FFF73EFF094B1B6864339842C3
S31508001B2007D90024044B1C7004E01C4602E000247C
S31508001B3000E00024204638BD36090020F4080020BD
S31508001B403809002035090020F508002008B5024BA1
S31508001B50196000F0B7F8FCE73C09002008B500F06A
S31508001B60A9F8012810D0094B1B78012B0CD1FFF7D7
S31508001B7011FF074B1B6803F5FA73984204D300223A
S31508001B80024B1A70FFF7ECFB08BD00BF40090020A6
S31508001B904409002008B50122044B1A70FFF7FAFE23
S31508001BA0034B1860FFF7DAFF08BD00BF40090020A5
S31508001BB04409002008B5FFF7CFFB00F07FF8FFF7D0
S31508001BC0C7FEFFF7A1FE00F00DF8FFF7E3FF08BD1B
S31508001BD008B500F077F8FFF7CFFE00F013F8FFF727
S31508001BE0BDFF08BD10B500F0D9F9FFF7C3FA044CDC
S31508001BF001232370FFF704FF0023237010BD00BFE5
S31508001C000000002008B50B48FFF780FB012805D126
S31508001C100122094B1A70074800F0DEF90548FFF75C
S31508001C2045FF012805D10022034B1A70014800F030
S31508001C30D3F908BD4809002000000020704700BFFE
S31508001C4038B504460D46084B1B78012B02D1C9B29C
S31508001C50FFF738FB044B1B781BB9E9B22046FFF7A0
S31508001C60FDFE00F0B1F938BD00000020074B1B78D7
S31508001C70022B05D0032B05D0012B05D04020704739
S31508001C800020704700207047082070470000002099
S31508001C90074B1B78022B05D0032B05D0012B05D04B
S31508001CA04020704700207047002070470820704782
S31508001CB00000002008B500F07FF908BD08B5FEF75A
S31508001CC015FB08BD08B5FEF717FB08BD10B40023C1
S31508001CD004E010F8011B0B44DBB221464C1E002918
S31508001CE0F7D1136001205DF8044B70470022014BC1
S31508001CF05A70704788090020034BFE22DA70187163
S31508001D000222A3F8442070478809002010B5054C24
S31508001D1000232370FFF7EAFFFF23E3700123A4F8EB
S31508001D20443010BD88090020064BFF22DA700022D5
S31508001D301A71597859719A71DA711A720622A3F8CA
S31508001D40442070478809002008B50020FFF7D4FF13
S31508001D5008BD00BF084BFF22DA70084A9A640022C1
S31508001D601A715A719A710721D9711A725A729A722E
S31508001D700822A3F84420704788090020B0220008EA
S31508001D80044BFF22DA7042689A640122A3F84420C1
S31508001D90704700BF8809002010B5084CFF23E37080
S31508001DA0E21D4168A06CFFF791FF20710023637163
S31508001DB0A3710823A4F8443010BD00BF8809002089
S31508001DC008B53120FFF798FF08BD00BF38B5084CA5
S31508001DD0FF23E370002525716571FFF747FFA071A2
S31508001DE0E571257265720723A4F8443038BD00BF33
S31508001DF08809002038B5FFF779FF0D4C01252570B5
S31508001E00FF23E3701023237100236371FFF72EFF6E
S31508001E10A071FFF73DFFE071FFF73AFFC0F3072017
S31508001E2020726572A5720823A4F8443038BD00BF35
S31508001E308809002038B505464478FFF717FF0138AA
S31508001E40844203DD2220FFF757FF38BD084C6A7825
S31508001E50A16C201DFFF7A0FAFF23E3706B78A26C34
S31508001E601344A3646B780133A4F8443038BD00BF2B
S31508001E708809002038B504464578FFF7F7FE01388B
S31508001E80854203DD2220FFF737FF38BD6168084D1C
S31508001E90A9646278281DFFF77FFAFF23EB70637841
S31508001EA0AA6C1344AB6463780133A5F8443038BD93
S31508001EB08809002038B505460D4B9C6CFFF7D6FE01
S31508001EC06A1C411E2046FFF723FD18B93120FFF78B
S31508001ED013FF38BD064CFF23E370FFF7C7FE013832
S31508001EE0A36C1844A0640123A4F8443038BD00BF8D
S31508001EF08809002038B504464578FFF7B7FE02384A
S31508001F00854203DD2220FFF7F7FE38BD0F4BFF227F
S31508001F10DA700122A3F84420617831B9FFF708FD89
S31508001F2090B93120FFF7E8FE38BDA21C074B986C24
S31508001F30FFF7EEFC18B93120FFF7DEFE38BD6378EF
S31508001F40024A916C0B44936438BD00BF880900208F
S31508001F5008B54168074B986CFFF7DEFC18B93120C5
S31508001F60FFF7CAFE08BD034BFF22DA700122A3F869
S31508001F70442008BD8809002008B5FFF7F1F9034B8E
S31508001F80FF22DA700122A3F8442008BD8809002040
S31508001F9008B589B2FFF754FE08BD00BF054B0022FD
S31508001FA01A709A6483F84320A3F844209A705A70EA
S31508001FB0704700BF88090020024B187800B101203D
S31508001FC0704700BF880900200022024B83F843208F
S31508001FD0704700BF8809002008B50378FF2B02D197
S31508001FE0FFF708FF50E0334A1278012A60D1C93B4F
S31508001FF0352B46D8DFE803F03345454245453F369D
S315080020003C39454545454545454545454545454587
S315080020104545454545454545454545454545454562
S315080020204545241E1B2145454527452A2D30FFF7E2
S3150800203001FF29E0FFF71EFF26E0FFF7A1FE23E0D8
S31508002040FFF7AAFE20E0FFF785FE1DE0FFF77CFEFE
S315080020501AE0FFF769FE17E0FFF758FE14E0FFF7EE
S3150800206029FF11E0FFF746FF0EE0FFF7AFFE0BE092
S31508002070FFF76EFF08E0FFF77FFF05E0FFF7A0FE1A
S3150800208002E02020FFF738FE0A4B93F84330012B75
S3150800209002D11020FFF730FE064BB3F94410002991
S315080020A006DD1846012380F843300330FFF770FF3A
S315080020B008BD00BF8809002008B5074B044613B1C0
S315080020C00021AFF30080054B1868836A03B198476F
S315080020D0204600F033F800BF00000000BC220008CC
S315080020E070B50E4B0E4CE41AA41000251E46A542E8
S315080020F004D056F8253098470135F8E700F020F85F
S31508002100084C094BE41AA41000251E46A54204D023
S3150800211056F8253098470135F8E770BD6400002069
S315080021206400002068000020640000200244034682
S31508002130934202D003F8011BFAE77047FEE7000056
S31508002140F8B500BFF8BC08BC9E467047F8B500BF96
S31508002150F8BC08BC9E4670472E2E5C6C69625C789B
S315080021606D636C69625C7372635C786D63345F6718
S3150800217070696F2E630000002E2E5C6C69625C78B5
S315080021806D636C69625C7372635C786D635F6361CF
S315080021906E2E63002E2E5C6C69625C786D636C69CA
S315080021A0625C7372635C786D635F6770696F2E63D8
S315080021B0000000002E2E5C6C69625C786D636C69A9
S315080021C0625C7372635C786D635F757369632E63B3
S315080021D0000000000040000C004000000100000064
S315080021E00080000C004000000200000000C0000C47
S315080021F000400000030000000000010C0040000041
S31508002200040000000040010C00400000050000002A
S315080022100080010C004000000600000000C0010C10
S3150800222000400000070000000000020C0000020049
S31508002230080000000000040C00000400090000006B
S315080022400000080C000004000A00000000000C0C46
S31508002250000004000B0000000000100C0000040041
S315080022600C0000000000140C000004000D00000023
S315080022700000180C000004000E00000000001C0CF2
S31508002280000004000F0000002E2E5C2E2E5C2E2E61
S315080022905C2E2E5C536F757263655C41524D434DDF
S315080022A0345F584D43345C756172742E63000000C8
S315080022B04F70656E424C5400430000000400002035
S309080022C0000000000C
S30D080022C498DFFF7F010000000E
S315080022CC04000000000000000000000000000000F0
S315080022DC00000000000000000000000000000000E4
S315080022EC00000000B82200080000000000000000F2
S315080022FC00000000000000000000000000000000C4
S3150800230C00000000000000000000000000000000B3
S3150800231C00000000000000000000000000000000A3
S3110800232C0000000025020008010200085D
S315080023380000000000000000000000000000000087
S309080023480000000083
S70508000000F2

View File

@ -56,6 +56,33 @@
/****************************************************************************************
* C O M M U N I C A T I O N I N T E R F A C E C O N F I G U R A T I O N
****************************************************************************************/
/* The CAN communication interface is selected by setting the BOOT_COM_CAN_ENABLE
* configurable to 1. Configurable BOOT_COM_CAN_BAUDRATE selects the communication speed
* in bits/second. Two CAN messages are reserved for communication with the host. The
* message identifier for sending data from the target to the host is configured with
* BOOT_COM_CAN_TXMSG_ID. The one for receiving data from the host is configured with
* BOOT_COM_CAN_RXMSG_ID. The maximum amount of data bytes in a message for data
* transmission and reception is set through BOOT_COM_CAN_TX_MAX_DATA and
* BOOT_COM_CAN_RX_MAX_DATA, respectively. It is common for a microcontroller to have more
* than 1 CAN controller on board. The zero-based BOOT_COM_CAN_CHANNEL_INDEX selects the
* CAN controller channel.
*
*/
/** \brief Enable/disable CAN transport layer. */
#define BOOT_COM_CAN_ENABLE (1)
/** \brief Configure the desired CAN baudrate. */
#define BOOT_COM_CAN_BAUDRATE (500000)
/** \brief Configure CAN message ID target->host. */
#define BOOT_COM_CAN_TX_MSG_ID (0x7E1)
/** \brief Configure number of bytes in the target->host CAN message. */
#define BOOT_COM_CAN_TX_MAX_DATA (8)
/** \brief Configure CAN message ID host->target. */
#define BOOT_COM_CAN_RX_MSG_ID (0x667)
/** \brief Configure number of bytes in the host->target CAN message. */
#define BOOT_COM_CAN_RX_MAX_DATA (8)
/** \brief Select the desired CAN peripheral as a zero based index. */
#define BOOT_COM_CAN_CHANNEL_INDEX (1)
/* The UART communication interface is selected by setting the BOOT_COM_UART_ENABLE
* configurable to 1. Configurable BOOT_COM_UART_BAUDRATE selects the communication speed
* in bits/second. The maximum amount of data bytes in a message for data transmission

View File

@ -1035,7 +1035,7 @@
1469435361 c:\work\software\openblt\target\source\assert.h
1477061178 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\boot\blt_conf.h
1477217517 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\boot\blt_conf.h
1469435361 c:\work\software\openblt\target\source\plausibility.h
@ -1387,10 +1387,11 @@
"xmc_common.h"
"xmc_scu.h"
1477053301 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\boot\main.c
1477218134 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\boot\main.c
"boot.h"
"xmc_gpio.h"
"xmc_uart.h"
"xmc_can.h"
1477086453 source:c:\work\software\openblt\target\source\armcm4_xmc4\cpu.c
"boot.h"
@ -1414,7 +1415,7 @@
1477052921 source:c:\work\software\openblt\target\source\armcm4_xmc4\timer.c
"boot.h"
1477052653 source:c:\work\software\openblt\target\source\armcm4_xmc4\uart.c
1477217846 source:c:\work\software\openblt\target\source\armcm4_xmc4\uart.c
"boot.h"
"xmc_uart.h"
@ -1512,3 +1513,8 @@
"xmc_scu.h"
"xmc_gpio.h"
1477217805 source:c:\work\software\openblt\target\source\armcm4_xmc4\can.c
"boot.h"
"xmc_can.h"
"xmc_gpio.h"

View File

@ -404,6 +404,10 @@
<Option compilerVar="CC" />
<Option virtualFolder="Srcs\" />
</Unit>
<Unit filename="..\..\..\..\Source\ARMCM4_XMC4\can.c">
<Option compilerVar="CC" />
<Option virtualFolder="Srcs\Core\ARMCM4_XMC4\" />
</Unit>
<Unit filename="..\..\..\..\Source\ARMCM4_XMC4\cpu.c">
<Option compilerVar="CC" />
<Option virtualFolder="Srcs\Core\ARMCM4_XMC4\" />
@ -519,7 +523,7 @@
<code_completion />
<debugger>
<target_debugging_settings target="Debug" active_interface="J-link">
<debug_interface interface_id="J-link" ip_address="localhost" ip_port="2331" path="%Software\SEGGER\J-Link:InstallPath%" executable="JLinkGDBServer.exe" description="..\cfg\xmc4500.svd" dont_start_server="false" backoff_time="2000" options="2" reg_filter="0" active_family="Generic" gdb_before_conn="" gdb_after_conn="">
<debug_interface interface_id="J-link" ip_address="localhost" ip_port="2331" path="%Software\SEGGER\J-Link:InstallPath%" executable="JLinkGDBServer.exe" description="..\cfg\xmc4700.svd" dont_start_server="false" backoff_time="2000" options="2" reg_filter="0" active_family="Generic" gdb_before_conn="" gdb_after_conn="">
<family_options family_id="Generic">
<option opt_id="ID_CMD_BEFORE" opt_value="" />
<option opt_id="ID_GDB_SERVER_CL" opt_value="-select USB=0 -device XMC4700-F144x2048 -if SWD -speed 1000 -endian little" />

View File

@ -3,7 +3,7 @@
<ActiveTarget name="Debug" />
<File name="..\blt_conf.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="6572" topLine="75" />
<Cursor1 position="4264" topLine="39" />
</Cursor>
</File>
<File name="..\hooks.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@ -38,7 +38,12 @@
</File>
<File name="..\main.c" open="1" top="1" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2813" topLine="44" />
<Cursor1 position="703" topLine="5" />
</Cursor>
</File>
<File name="..\..\..\..\Source\ARMCM4_XMC4\can.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="3919" topLine="93" />
</Cursor>
</File>
<File name="..\..\..\..\Source\ARMCM4_XMC4\cpu.c" open="0" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@ -73,7 +78,7 @@
</File>
<File name="..\..\..\..\Source\ARMCM4_XMC4\uart.c" open="0" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="5181" topLine="57" />
<Cursor1 position="4235" topLine="150" />
</Cursor>
</File>
<File name="..\..\..\..\Source\assert.h" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@ -83,7 +88,7 @@
</File>
<File name="..\..\..\..\Source\backdoor.c" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="6335" topLine="102" />
<Cursor1 position="7060" topLine="117" />
</Cursor>
</File>
<File name="..\..\..\..\Source\boot.c" open="0" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">

View File

@ -32,6 +32,7 @@
#include "boot.h" /* bootloader generic header */
#include "xmc_gpio.h" /* GPIO module */
#include "xmc_uart.h" /* UART driver header */
#include "xmc_can.h" /* CAN driver header */
/****************************************************************************************
@ -92,25 +93,46 @@ static void Init(void)
static void PostInit(void)
{
#if (BOOT_COM_UART_ENABLE > 0)
XMC_GPIO_CONFIG_t rx_config;
XMC_GPIO_CONFIG_t tx_config;
XMC_GPIO_CONFIG_t rx_uart_config;
XMC_GPIO_CONFIG_t tx_uart_config;
#endif
#if (BOOT_COM_CAN_ENABLE > 0)
XMC_GPIO_CONFIG_t rx_can_config;
XMC_GPIO_CONFIG_t tx_can_config;
#endif
#if (BOOT_COM_UART_ENABLE > 0)
/* initialize UART Rx pin */
rx_config.mode = XMC_GPIO_MODE_INPUT_TRISTATE;
rx_config.output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH;
rx_config.output_strength = XMC_GPIO_OUTPUT_STRENGTH_STRONG_SOFT_EDGE;
XMC_GPIO_Init(P1_4, &rx_config);
rx_uart_config.mode = XMC_GPIO_MODE_INPUT_TRISTATE;
rx_uart_config.output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH;
rx_uart_config.output_strength = XMC_GPIO_OUTPUT_STRENGTH_STRONG_SOFT_EDGE;
XMC_GPIO_Init(P1_4, &rx_uart_config);
/* initialize UART Tx pin */
tx_config.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT2;
tx_config.output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH;
tx_config.output_strength = XMC_GPIO_OUTPUT_STRENGTH_STRONG_SOFT_EDGE;
XMC_GPIO_Init(P1_5, &tx_config);
tx_uart_config.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT2;
tx_uart_config.output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH;
tx_uart_config.output_strength = XMC_GPIO_OUTPUT_STRENGTH_STRONG_SOFT_EDGE;
XMC_GPIO_Init(P1_5, &tx_uart_config);
/* set input source path to DXnB to connect P1_4 to ASC Receive. note that this
* function must be called after XMC_UART_CH_Init(), which is called when initializing
* the bootloader core with BootInit().
*/
XMC_USIC_CH_SetInputSource(XMC_UART0_CH0, XMC_USIC_CH_INPUT_DX0, 1U);
#endif
#if (BOOT_COM_CAN_ENABLE > 0)
/* configure CAN receive pin */
rx_can_config.mode = XMC_GPIO_MODE_INPUT_TRISTATE;
XMC_GPIO_Init(P1_13, &rx_can_config);
/* configure CAN transmit pin */
tx_can_config.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT2;
tx_can_config.output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH;
tx_can_config.output_strength = XMC_GPIO_OUTPUT_STRENGTH_STRONG_SOFT_EDGE;
XMC_GPIO_Init(P1_12, &tx_can_config);
/* select CAN Receive Input C (N1_RXDC) to map P1_13 to CAN_NODE1 */
XMC_CAN_NODE_EnableConfigurationChange(CAN_NODE1);
XMC_CAN_NODE_SetReceiveInput(CAN_NODE1, XMC_CAN_NODE_RECEIVE_INPUT_RXDCC);
XMC_CAN_NODE_DisableConfigurationChange(CAN_NODE1);
#endif
}
/*********************************** end of main.c *************************************/

View File

@ -1,221 +1,297 @@
S01F00002E2E5C62696E5C64656D6F70726F675F786D63343730302E73726563E9
S3150800400000000220BD4A00080B4B00080D4B0008B3
S315080040100F4B0008114B0008134B00080000000066
S31508004020000000000000000000000000154B00081A
S31508004030174B000800000000194B00084D4C0008FB
S315080040401F4B0008214B0008234B0008254B00088E
S31508004050274B0008294B00082B4B00082D4B00085E
S315080040602F4B0008000000000000000000000000C0
S31508004070314B000800000000334B0008354B0008A0
S31508004080374B0008394B00083B4B00083D4B0008EE
S315080040903F4B0008414B0008434B0008454B0008BE
S315080040A0474B0008494B00084B4B00084D4B00088E
S315080040B04F4B0008514B0008534B0008554B00085E
S315080040C0574B0008594B00085B4B00085D4B00082E
S315080040D05F4B0008614B0008634B0008654B0008FE
S315080040E0674B0008694B00086B4B00086D4B0008CE
S315080040F06F4B0008714B0008734B0008754B00089E
S31508004100774B0008794B00087B4B00087D4B00086D
S315080041107F4B0008814B0008834B0008854B00083D
S31508004120874B0008894B00088B4B00088D4B00080D
S315080041308F4B0008914B0008934B0008954B0008DD
S31508004140974B0008994B00089B4B00089D4B0008AD
S315080041509F4B0008A14B0008A34B0008A54B00087D
S31508004000000002207D4F0008CB4F0008CD4F000866
S31508004010CF4F0008D14F0008D34F0008000000001A
S31508004020000000000000000000000000D54F000856
S31508004030D74F000800000000D94F00080D510008AE
S31508004040DF4F0008E14F0008E34F0008E54F00087E
S31508004050E74F0008E94F0008EB4F0008ED4F00084E
S31508004060EF4F0008000000000000000000000000FC
S31508004070F14F000800000000F34F0008F54F000854
S31508004080F74F0008F94F0008FB4F0008FD4F0008DE
S31508004090FF4F0008015000080350000805500008AB
S315080040A007500008095000080B5000080D5000087A
S315080040B00F5000081150000813500008155000084A
S315080040C017500008195000081B5000081D5000081A
S315080040D01F500008215000082350000825500008EA
S315080040E027500008295000082B5000082D500008BA
S315080040F02F5000083150000833500008355000088A
S3150800410037500008395000083B5000083D50000859
S315080041103F50000841500008435000084550000829
S3150800412047500008495000084B5000084D500008F9
S315080041304F500008515000085350000855500008C9
S3150800414057500008595000085B5000085D50000899
S315080041505F50000861500008635000086550000869
S315080041600000000000000000000000000000000041
S31508004170A74B0008A94B0008AB4B0008AD4B00083D
S31508004180AF4B0008B14B0008B34B0008B54B00080D
S31508004190B74B0008B94B0008BB4B0008BD4B0008DD
S315080041A0BF4B0008C14B0008C34B0008C54B0008AD
S315080041B0C74B0008C94B0008CB4B0008CD4B00087D
S315080041C0CF4B0008D14B0008D34B0008D54B00084D
S315080041D0D74B0008D94B0008DB4B0008000000004D
S315080041E0DD4B0008DF4B0008E14B0008E34B0008F5
S315080041F0E54B000800000000E74B0008000000003F
S3150800417067500008695000086B5000086D50000829
S315080041806F500008715000087350000875500008F9
S3150800419077500008795000087B5000087D500008C9
S315080041A07F50000881500008835000088550000899
S315080041B087500008895000088B5000088D50000869
S315080041C08F50000891500008935000089550000839
S315080041D097500008995000089B50000800000000FE
S315080041E09D5000089F500008A1500008A3500008E1
S315080041F0A550000800000000A750000800000000B5
S31508004200EE11AA5510B5054C237833B9044B13B1F2
S315080042100448AFF300800123237010BD7C00002002
S3150800422000000000044D0008084B10B51BB10849F2
S315080042100448AFF300800123237010BD80000020FE
S3150800422000000000C4510008084B10B51BB108492E
S315080042300848AFF300800848036803B910BD074B68
S31508004240002BFBD0BDE81040184700BF0000000057
S3150800425080000020044D00086800002000000000CF
S3150800425084000020C4510008680000200000000007
S31508004260154B002B08BF134B9D46A3F5803A00213A
S315080042708B460F461348144A121A00F029FD0F4BB5
S315080042708B460F461348144A121A00F089FF0F4B53
S31508004280002B00D098470E4B002B00D098470020F3
S31508004290002104000D000D48002802D00C48AFF399
S315080042A0008000F0EFFC2000290000F0FDFB00F084
S315080042B0D5FC00BF00000800000002200000000036
S315080042C0000000007C000020E8000020000000003C
S315080042A0008000F04FFF2000290000F05DFE00F0BE
S315080042B035FF00BF000008000000022000000000D3
S315080042C000000000800000200C0100200000000013
S315080042D0000000002DE9F0438BB04FF461430193D1
S315080042E008238DF808308DF8093001258DF80A5015
S315080042F010278DF80B700026ADF80C601C4C01A930
S31508004300204600F0A7FA8DF81C6008954FF00209C0
S31508004300204600F007FD8DF81C6008954FF002095D
S315080043108DF82490DFF85C8007AA0421404600F057
S3150800432013FA90238DF8103005958DF818900DEB3B
S3150800433007020521404600F007FAE36923F0070360
S315080043402B43E3612B4604223946204600F00AFB3C
S315080043502B4604223146204600F01CFB236C23F032
S31508004320E5FA90238DF8103005958DF818900DEB69
S3150800433007020521404600F0D9FAE36923F007038E
S315080043402B43E3612B4604223946204600F06AFDDA
S315080043502B4604223146204600F07CFD236C23F0D0
S315080043600F0343EA090323640BB0BDE8F08300BFDB
S315080043700000034000810248074BD3F8143113F0BC
S31508004380080F07D110B50446034800F099FA2070C3
S31508004390012010BD002070470000034008B5FFF754
S315080043A099FF08BDBFF34F8F0549CA6802F4E0625A
S315080043B0044B1343CB60BFF34F8F00BFFDE700BF2D
S315080043C000ED00E00400FA0508B5174B1B785BB949
S315080043D01648FFF7D1FF012824D10122124B1A7083
S315080043E00022134B1A7008BD114B1B7801330F4876
S315080043F01844FFF7C1FF012814D10D4A1378013379
S31508004400DBB21370094A127893420BD10022064B8D
S315080044101A70064B5B78FF2B04D1044B9B780BB9BB
S31508004420FFF7C0FF08BD00BFDA0000209800002093
S31508004430D900002008B5FFF7C7FF08BD10B5054C21
S3150800444080220821204600F0EDF94FF08073636062
S3150800445010BD00BF0085024808B500F0F1FB0D4B02
S315080044601B68C31AB3F5FA7F13D30B4B1B783BB9FA
S315080044700122094B1A704FF48072084B5A6006E005
S315080044800022054B1A704FF08072044B5A60014B9C
S31508004490186008BDDC000020E00000200085024806
S315080044A082B00023019303E000BF019B013301930F
S315080044B0019B8342F8D302B0704700BF72B60D4B1A
S315080044C00D4A9A60BFF34F8F62B6D3F8882042F43C
S315080044D07002C3F888205A6922F008025A6107490F
S315080044E041F214028B5823F00F0343F004038B5058
S315080044F0704700BF00ED00E00040000800100058BB
S3150800450000487047001BB70010B51E4BDB6813F454
S31508004510803F27D01C4BDB6813F0010F02D1FFF751
S31508004520EFFF00E01948184B1B6813F0040F11D071
S3150800453015498A68C2F303628B68C3F306238C683D
S31508004540C4F30644611C02FB0112B0FBF2F203FB42
S31508004550022208E00C4B9B6803F07F030133B0FB93
S31508004560F3F200E0094A0749C868C0B20130B2FB55
S31508004570F0F3086900F001000130B3FBF0F0044BDA
S31508004580186010BD004600501047005000366E01F6
S315080045906800002070B5574B1B6813F0010F09D14E
S315080045A0544A536843F001035360524B1B6813F097
S315080045B0010FFAD0504B1B6813F4007F08D04E4AFF
S315080045C0936843F40073936041F64C50FFF768FF15
S315080045D04A4C636843F40023636040F6C410FFF74F
S315080045E05FFF636823F4803323F002036360444B60
S315080045F05B6813F0300F21D0103C636823F47023F6
S3150800460023F030036360FFF77BFF3E4BA3FB0023D9
S315080046101B0D013B626842EA03436360374BDA6865
S3150800462022F00102DA605A6822F400325A60334BEB
S315080046301B6803F46073B3F5607FF8D12F4B5A6893
S3150800464042F001025A605A6842F010025A602E4A35
S315080046509A605A6842F040025A605A6822F010027C
S315080046605A605A6842F480225A60244B1B6813F039
S31508004670040FFAD0214A536823F0010353601F4BF5
S315080046801B6813F0010FFAD1204C4FF00113E360B9
S31508004690002666612661266266620323E3611C4B77
S315080046A0A3611C4BA362154D6B6823F040036B6036
S315080046B0194BAB604FF41660FFF7F2FE174BAB6071
S315080046C04FF46160FFF7ECFE154BAB604FF4965064
S315080046D0FFF7E6FE134BAB6041F27070FFF7E0FEA2
S315080046E0114BAB604FF4E150FFF7DAFE6660FFF757
S315080046F00BFF70BD004200500044005010470050A8
S31508004700004700506BCA5F6B002F0B010046005034
S315080047100500010003002001002F0501002F0301F9
S31508004720002F0201002F0101002F000110B54FF0E4
S315080047300053044C0FCB84E80F00FFF7BFFEFFF7CA
S3150800474029FF10BD6C000020F0B48B081F1D50F81F
S31508004750276001F00305ED00F824AC4026EA0404BE
S3150800476040F82740466F4F000324BC4026EA04045D
S315080047704467194CA04203D004F58074A04207D1BF
S31508004780046E012606FA01F124EA0101016617E022
S3150800479054688C404460CC08103450F8247001F0FA
S315080047A00701890007268E4027EA060640F8246096
S315080047B050F82470167A06FA01F1394340F82410A5
S315080047C0043350F82340117801FA05F2224340F8E1
S315080047D02320F0BC704700BF008E0248030F20F06C
S315080047E0704003EB43039A00014BD050704700BF5B
S315080047F014440050034B1868034B5B6903F001032C
S31508004800D84070476800002000460050030F20F08B
S31508004810704003EB43039A00014BD050704700BF2A
S315080048204846005030B48B08043350F8235001F042
S315080048300301C900F8248C4025EA040440F8234003
S3150800484050F823408A4044EA020140F8231030BC5D
S31508004850704700BF70B505460E4600F0E3F8F479D8
S3150800486004B9102422463168284600F035F8B37991
S31508004870013B64080134240244EA430343F4403309
S3150800488043F00103EB633379013B1B0643F4817361
S315080048906B6373792BB16A6B013B42EA03436B6323
S315080048A005E06A6B3379013B42EA03436B634FF4D5
S315080048B0A063AB634FF0FF33EB6433892B6470BDA1
S315080048C0D0F80C3113F0E06F02D1406D80B270471A
S315080048D0D0F81C0180B2704763293BD9002A3BD027
S315080048E02DE9F04115460C460646FFF783FF1B499E
S315080048F0A1FB00377F09A1FB0431480940F2FF3EBE
S315080049004FF0010CE046714611E007FB01F300FB8E
S3150800491005F2B3FBF2F39C0AC3F30903B4F5806FFF
S3150800492004D29E4502D99E46A446884601390029E6
S31508004930EBD148F4004333617269094B1340013DDA
S3150800494043EA85230CF1FF3C43EA0C4373610020DC
S31508004950BDE8F08101207047012070471F85EB51A3
S31508004960EF8000FC30B4D0F8084124F0E064C0F8C9
S315080049700841D0F80851064C2C4041EA032343EA83
S31508004980026244EA0203C0F8083130BC704700BF2F
S31508004990C0C0FFF830B4D0F80C4124F0E064C0F889
S315080049A00C41D0F80C51074C2C4041EA032343EA4A
S315080049B0026244EA020343F08053C0F80C3130BC6B
S315080049C0704700BFC0C0FFEF10B5114B984208D121
S315080049D04FF40060FFF71AFF4FF40060FFF7FEFE82
S315080049E010BD0C4B984207D10B4C2046FFF70EFF23
S315080049F02046FFF7F3FE10BD084B984206D1084C37
S31508004A002046FFF703FF2046FFF7E8FE10BD00BF6C
S31508004A1008000340080002488000001008400248C9
S31508004A200001001010B50446154B984203D003F553
S31508004A300073984203D11348FFF7C6FF14E0124BE0
S31508004A40984203D003F50073984203D10F48FFF745
S31508004A50BBFF09E00E4B984203D003F5007398425A
S31508004A6002D10C48FFF7B0FF0323E360E36813F0B5
S31508004A70010FFBD0236C23F00F03236410BD00BF86
S31508004A8000000340080003400000024808000248EE
S31508004A90004002480840024808B5FFF735FDFFF711
S31508004AA0CDFC00F0ABF808BD08B5FFF7F5FFFFF73A
S31508004AB075FCFFF7D1FCFFF7BDFCFAE707498D4601
S31508004AC00749084A084B9A42BEBF51F8040B42F8F8
S31508004AD0040BF8E705488047054800470000022010
S31508004AE0104D000800000020680000202D4700082F
S31508004AF0614200083C493D4A002301E041F8043B75
S31508004B009142FBD3FFF7D0FFFEE7FEE7FEE7FEE79D
S31508004B10FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE75F
S31508004B20FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE74F
S31508004B30FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE73F
S31508004B40FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE72F
S31508004B50FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE71F
S31508004B60FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE70F
S31508004B70FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7FF
S31508004B80FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7EF
S31508004B90FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7DF
S31508004BA0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7CF
S31508004BB0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7BF
S31508004BC0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7AF
S31508004BD0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE79F
S31508004BE0FEE7FEE7FEE7FEE77C000020E80000207F
S31508004BF0014B1860704700BFE400002008B50C4B55
S31508004C001B680C4AA2FB03239B09013BB3F1807F77
S31508004C1009D2094A5360FC21084B83F82310002364
S31508004C209360072313600020FFF7E2FF08BD00BF6B
S31508004C3068000020D34D621010E000E000ED00E0AF
S31508004C40014B1868704700BFE4000020024A136849
S31508004C5001331360704700BFE400002008B5074B16
S31508004C60044613B10021AFF30080054B1868836A28
S31508004C7003B19847204600F033F800BF0000000053
S31508004C80004D000870B50E4B0E4CE41AA410002512
S31508004C901E46A54204D056F8253098470135F8E750
S31508004CA000F020F8084C094BE41AA41000251E460B
S31508004CB0A54204D056F8253098470135F8E770BD67
S31508004CC060000020600000206400002060000020D2
S31508004CD002440346934202D003F8011BFAE77047E1
S31508004CE0FEE70000F8B500BFF8BC08BC9E46704752
S31508004CF0F8B500BFF8BC08BC9E46704743000000E4
S30D08004D0000000020000000007D
S30D08004D0858F5FF7F01000000C9
S31508004D100000000000000000000000000000000085
S31508004D200000000000000000000000000000000075
S31508004D30FC4C000800000000000000000000000015
S31508004D400000000000000000000000000000000055
S31508004D500000000000000000000000000000000045
S31508004D600000000000000000000000000000000035
S30D08004D7029420008054200086B
S31508004D78000000000000000000000000000000001D
S30908004D880000000019
S31508004370000003400081024830B58BB000F00CFB0A
S31508004380044600E06400414B9C42FBD900E0640807
S315080043903F4B9C42FBD8224601213E4800F0DAFBFF
S315080043A001943D4B02934FF4FA53ADF80C300123B8
S315080043B0ADF80E30394C01A9204600F005FB2368FC
S315080043C043F040032360236843F001032360344B22
S315080043D0344A1A60DA79022161F38712DA71596868
S315080043E040F2676060F31C0159609A6860F31C022A
S315080043F09A60090E6FF34511D971120E42F0200228
S31508004400DA7208221A73002305E0254A1A440021A5
S3150800441011740133DBB2072BF7D92148002505763D
S3150800442000F0F8FB012211461A4800F053FB1B4C1A
S31508004430236823F040032360236823F001032360E5
S315080044400AAA02F80C5D184D0D21284600F04EFA0E
S3150800445090238DF810300123059302238DF8183028
S3150800446004AA0C21284600F041FA236843F04003C9
S315080044702360E36823F0070343F00203E36023683D
S3150800448023F0400323600BB030BD00BFFF1AB7000E
S31508004490000E27070040014820A1070000430148F5
S315080044A0E00000202050014800810248074BD3F85D
S315080044B0143113F0080F07D110B50446034800F06D
S315080044C05FFC2070012010BD0020704700000340EB
S315080044D008B5FFF7FFFEFFF74FFF08BDBFF34F8F85
S315080044E00549CA6802F4E062044B1343CB60BFF384
S315080044F04F8F00BFFDE700BF00ED00E00400FA059E
S3150800450008B5174B1B785BB91648FFF7CFFF01288C
S3150800451024D10122124B1A700022134B1A7008BDBF
S31508004520114B1B7801330F481844FFF7BFFF0128CA
S3150800453014D10D4A13780133DBB21370094A127885
S3150800454093420BD10022064B1A70064B5B78FF2B61
S3150800455004D1044B9B780BB9FFF7C0FF08BD00BF19
S31508004560DE0000209C000020DD00002000B583B09E
S31508004570174B1B68DB6913F0010F1BD0144800F0BA
S3150800458093FB60B1002210E0114A1A44117C02AA7A
S315080045901A4402F8081C0133DBB2012201E00022AA
S315080045A013460B49097B8B42EED3094B1B68012145
S315080045B0D96100E0002242B19DF80030FF2B04D1FA
S315080045C09DF801300BB9FFF789FF03B05DF804FBCE
S315080045D0E000002008B5FFF793FFFFF7C7FF08BD07
S315080045E010B5054C80220821204600F07BFB4FF0D1
S315080045F08073636010BD00BF0085024808B500F0EF
S315080046007FFD0D4B1B68C31AB3F5FA7F13D30B4B0B
S315080046101B783BB90122094B1A704FF48072084B7C
S315080046205A6006E00022054B1A704FF08072044B60
S315080046305A60014B186008BD0001002004010020E3
S315080046400085024882B00023019303E000BF019B66
S3150800465001330193019B8342F8D302B0704700BF30
S3150800466072B60D4B0D4A9A60BFF34F8F62B6D3F8F8
S31508004670882042F47002C3F888205A6922F008029A
S315080046805A61074941F214028B5823F00F0343F08D
S3150800469004038B50704700BF00ED00E0004000089F
S315080046A00010005800487047001BB70010B51E4B95
S315080046B0DB6813F4803F27D01C4BDB6813F0010F2F
S315080046C002D1FFF7EFFF00E01948184B1B6813F0FB
S315080046D0040F11D015498A68C2F303628B68C3F3C5
S315080046E006238C68C4F30644611C02FB0112B0FB66
S315080046F0F2F203FB022208E00C4B9B6803F07F03EF
S315080047000133B0FBF3F200E0094A0749C868C0B2B2
S315080047100130B2FBF0F3086900F001000130B3FB89
S31508004720F0F0044B186010BD0046005010470050CA
S3150800473000366E016800002070B5574B1B6813F0F1
S31508004740010F09D1544A536843F001035360524B91
S315080047501B6813F0010FFAD0504B1B6813F4007F47
S3150800476008D04E4A936843F40073936041F64C5060
S31508004770FFF768FF4A4C636843F40023636040F61A
S31508004780C410FFF75FFF636823F4803323F0020346
S315080047906360444B5B6813F0300F21D0103C6368AC
S315080047A023F4702323F030036360FFF77BFF3E4B4F
S315080047B0A3FB00231B0D013B626842EA03436360C7
S315080047C0374BDA6822F00102DA605A6822F40032BE
S315080047D05A60334B1B6803F46073B3F5607FF8D1F6
S315080047E02F4B5A6842F001025A605A6842F010028A
S315080047F05A602E4A9A605A6842F040025A605A68CD
S3150800480022F010025A605A6842F480225A60244BF9
S315080048101B6813F0040FFAD0214A536823F00103EA
S3150800482053601F4B1B6813F0010FFAD1204C4FF051
S315080048300113E36000266661266126626662032329
S31508004840E3611C4BA3611C4BA362154D6B6823F0F7
S3150800485040036B60194BAB604FF41660FFF7F2FE2E
S31508004860174BAB604FF46160FFF7ECFE154BAB607E
S315080048704FF49650FFF7E6FE134BAB6041F27070AB
S31508004880FFF7E0FE114BAB604FF4E150FFF7DAFE9D
S315080048906660FFF70BFF70BD0042005000440050F1
S315080048A010470050004700506BCA5F6B002F0B0182
S315080048B0004600500500010003002001002F0501F5
S315080048C0002F0301002F0201002F0101002F000114
S315080048D010B54FF00053044C0FCB84E80F00FFF7D8
S315080048E0BFFEFFF729FF10BD6C000020F0B48B084F
S315080048F01F1D50F8276001F00305ED00F824AC40B1
S3150800490026EA040440F82740466F4F000324BC40BB
S3150800491026EA04044467194CA04203D004F58074BF
S31508004920A04207D1046E012606FA01F124EA010124
S31508004930016617E054688C404460CC08103450F87F
S31508004940247001F00701890007268E4027EA06062B
S3150800495040F8246050F82470167A06FA01F13943B3
S3150800496040F82410043350F82340117801FA05F270
S31508004970224340F82320F0BC704700BF008E02484F
S31508004980030F20F0704003EB43039A00014BD0500D
S31508004990704700BF14440050034B1868034B5B690B
S315080049A003F00103D8407047680000200046005015
S315080049B0030F20F0704003EB43039A00014BD050DD
S315080049C0704700BF484600502DE9F04142F2107E7C
S315080049D00027BC4601263BE00B6803EB83035A001D
S315080049E0B2FBF6F24D68B2FBF5F4394BA3FB048330
S315080049F0DB0803EB83034FEA4308C8EB0403052BE4
S31508004A0005D9334BA3FB0443DB08013303E0304BE2
S31508004A10A3FB0443DB0833B103EB83084FEA4804DE
S31508004A20B2FBF4F204E02A4BA3FB0232D2080123BC
S31508004A30AA4201D3521B00E0AA1A142B07D896459E
S31508004A4005D9B2F57A7F06D396461F46B44601368F
S31508004A50402EC1D901E01F46B44642F2107E012617
S31508004A60402212E042F2107302FB0333B3FBF7F362
S31508004A700C89A34201D31D1B00E0E51AAE4501D9F6
S31508004A80AE461646A34202D3013A022AEAD8BB1B0F
S31508004A90026842F040020260023B1B0303F4E04353
S31508004AA04A89013A9201D2B21343721E120202F4E3
S31508004AB0706213430CF1FF3C0CF03F0C43EA0C0305
S31508004AC00361036823F040030360BDE8F08100BF7B
S31508004AD0CDCCCCCCD0F8C43113F4407FFAD1013117
S31508004AE0120442F0020242EA0161C0F8C41170479A
S31508004AF038B50446074D2846FFF75AFF2846FFF7FC
S31508004B003FFF236823F001032360236813F0020F95
S31508004B10FBD138BD10000010D0F8C83123F00F03C0
S31508004B201943C0F8C8117047D0F8C80100F00F0043
S31508004B30704700BF08B5FFF7F7FF012802D0022823
S31508004B4003D005E0FFF728FF08BDFFF7ABFD08BD5A
S31508004B50002008BD70B504460E461546FFF7C8FF87
S31508004B6031462046FFF7D8FF2046FFF7E3FFB0FBA4
S31508004B70F5F1C1F58061002938BF002140F2FF3206
S31508004B80914228BF1146C1F58066B0FBF6F6AB091F
S31508004B9080099B02B3FBF0F3934228BF134603FB3D
S31508004BA000F0800AAA1BA5EB8010824200D80B46AB
S31508004BB0824201D8012100E00221E26822F4434240
S31508004BC022F0FF02E260E26843EA81331343E360BE
S31508004BD070BD00BF037E012B17D103682022DA615E
S31508004BE001680B6823F07062037B1B0603F0706391
S31508004BF013430B60036802691A61036842695A61C4
S31508004C000368034ADA61002070470320704700BF33
S31508004C1040002800016801F13842A2F5A83253097C
S31508004C20920A1B0203F4F85343EA42338A6822F4D1
S31508004C307F428A6001688A6813438B60037E012B72
S31508004C402FD810B503682022DA61C37913F0200F34
S31508004C500ED1426802F0604343EA824302689361D8
S31508004C60826802F0604343EA82430268D36005E043
S31508004C70036842689A6103688268DA600446037EBC
S31508004C80012B06D1FFF7A6FF23684FF00062DA6111
S31508004C9003E003684FF40062DA612368014ADA61C7
S31508004CA010BD70474000A0060368D969DA69C2F3E7
S31508004CB0800211F4006F0FD182B91A6902615A692C
S31508004CC04261D969DA69C2F3C00211F0040F07D04C
S31508004CD0002AF2D10020704703207047022070474F
S31508004CE00020704730B48B08043350F8235001F085
S31508004CF00301C900F8248C4025EA040440F823403F
S31508004D0050F823408A4044EA020140F8231030BC98
S31508004D10704700BF70B505460E4600F0E3F8F47913
S31508004D2004B9102422463168284600F035F8B379CC
S31508004D30013B64080134240244EA430343F4403344
S31508004D4043F00103EB633379013B1B0643F481739C
S31508004D506B6373792BB16A6B013B42EA03436B635E
S31508004D6005E06A6B3379013B42EA03436B634FF410
S31508004D70A063AB634FF0FF33EB6433892B6470BDDC
S31508004D80D0F80C3113F0E06F02D1406D80B2704755
S31508004D90D0F81C0180B2704763293BD9002A3BD062
S31508004DA02DE9F04115460C460646FFF7F5FD1B4969
S31508004DB0A1FB00377F09A1FB0431480940F2FF3EF9
S31508004DC04FF0010CE046714611E007FB01F300FBCA
S31508004DD005F2B3FBF2F39C0AC3F30903B4F5806F3B
S31508004DE004D29E4502D99E46A44688460139002922
S31508004DF0EBD148F4004333617269094B1340013D16
S31508004E0043EA85230CF1FF3C43EA0C437361002017
S31508004E10BDE8F08101207047012070471F85EB51DE
S31508004E20EF8000FC30B4D0F8084124F0E064C0F804
S31508004E300841D0F80851064C2C4041EA032343EABE
S31508004E40026244EA0203C0F8083130BC704700BF6A
S31508004E50C0C0FFF830B4D0F80C4124F0E064C0F8C4
S31508004E600C41D0F80C51074C2C4041EA032343EA85
S31508004E70026244EA020343F08053C0F80C3130BCA6
S31508004E80704700BFC0C0FFEF10B5114B984208D15C
S31508004E904FF40060FFF78CFD4FF40060FFF770FDDC
S31508004EA010BD0C4B984207D10B4C2046FFF780FDEE
S31508004EB02046FFF765FD10BD084B984206D1084C01
S31508004EC02046FFF775FD2046FFF75AFD10BD00BFC7
S31508004ED00800034008000248800000100840024805
S31508004EE00001001010B50446154B984203D003F58F
S31508004EF00073984203D11348FFF7C6FF14E0124B1C
S31508004F00984203D003F50073984203D10F48FFF780
S31508004F10BBFF09E00E4B984203D003F50073984295
S31508004F2002D10C48FFF7B0FF0323E360E36813F0F0
S31508004F30010FFBD0236C23F00F03236410BD00BFC1
S31508004F400000034008000340000002480800024829
S31508004F50004002480840024808B5FFF7A7FBFFF7DC
S31508004F603FFB00F0ABF808BD08B5FFF7F5FFFFF704
S31508004F70AFFAFFF743FBFFF72DFBFAE707498D4624
S31508004F800749084A084B9A42BEBF51F8040B42F833
S31508004F90040BF8E70548804705480047000002204B
S31508004FA0D05100080000002068000020D148000801
S31508004FB0614200083C493D4A002301E041F8043BB0
S31508004FC09142FBD3FFF7D0FFFEE7FEE7FEE7FEE7D9
S31508004FD0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE79B
S31508004FE0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE78B
S31508004FF0FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE77B
S31508005000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE76A
S31508005010FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE75A
S31508005020FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE74A
S31508005030FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE73A
S31508005040FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE72A
S31508005050FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE71A
S31508005060FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE70A
S31508005070FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7FA
S31508005080FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7EA
S31508005090FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7DA
S315080050A0FEE7FEE7FEE7FEE7800000200C01002091
S315080050B0014B1860704700BF0801002008B50C4B6B
S315080050C01B680C4AA2FB03239B09013BB3F1807FB3
S315080050D009D2094A5360FC21084B83F823100023A0
S315080050E09360072313600020FFF7E2FF08BD00BFA7
S315080050F068000020D34D621010E000E000ED00E0EB
S31508005100014B1868704700BF08010020024A13685F
S3150800511001331360704700BF0801002008B5074B2C
S31508005120044613B10021AFF30080054B1868836A63
S3150800513003B19847204600F033F800BF000000008E
S31508005140C051000870B50E4B0E4CE41AA410002589
S315080051501E46A54204D056F8253098470135F8E78B
S3150800516000F020F8084C094BE41AA41000251E4646
S31508005170A54204D056F8253098470135F8E770BDA2
S31508005180600000206000002064000020600000200D
S3150800519002440346934202D003F8011BFAE770471C
S315080051A0FEE70000F8B500BFF8BC08BC9E4670478D
S315080051B0F8B500BFF8BC08BC9E467047430000001F
S30D080051C00000002000000000B9
S30D080051C898F0FF7F01000000CA
S315080051D000000000000000000000000000000000C1
S315080051E000000000000000000000000000000000B1
S315080051F0BC5100080000000000000000000000008C
S315080052000000000000000000000000000000000090
S315080052100000000000000000000000000000000080
S315080052200000000000000000000000000000000070
S30D080052302942000805420008A6
S315080052380000000000000000000000000000000058
S309080052480000000054
S70508004000B2

View File

@ -30,8 +30,9 @@
* Include files
****************************************************************************************/
#include "header.h" /* generic header */
#include "xmc_uart.h" /* UART driver header */
#include "xmc_gpio.h" /* GPIO module */
#include "xmc_uart.h" /* UART driver header */
#include "xmc_can.h" /* CAN driver header */
/****************************************************************************************
@ -41,6 +42,10 @@
static void BootComUartInit(void);
static void BootComUartCheckActivationRequest(void);
#endif
#if (BOOT_COM_CAN_ENABLE > 0)
static void BootComCanInit(void);
static void BootComCanCheckActivationRequest(void);
#endif
/************************************************************************************//**
** \brief Initializes the communication interface.
@ -52,6 +57,9 @@ void BootComInit(void)
#if (BOOT_COM_UART_ENABLE > 0)
BootComUartInit();
#endif
#if (BOOT_COM_CAN_ENABLE > 0)
BootComCanInit();
#endif
} /*** end of BootComInit ***/
@ -66,6 +74,9 @@ void BootComCheckActivationRequest(void)
#if (BOOT_COM_UART_ENABLE > 0)
BootComUartCheckActivationRequest();
#endif
#if (BOOT_COM_CAN_ENABLE > 0)
BootComCanCheckActivationRequest();
#endif
} /*** end of BootComCheckActivationRequest ***/
@ -206,4 +217,141 @@ static unsigned char UartReceiveByte(unsigned char *data)
#endif /* BOOT_COM_UART_ENABLE > 0 */
#if (BOOT_COM_CAN_ENABLE > 0)
/****************************************************************************************
* C O N T R O L L E R A R E A N E T W O R K I N T E R F A C E
****************************************************************************************/
/****************************************************************************************
* Local data declarations
****************************************************************************************/
/** \brief Receive message object data structure. */
static XMC_CAN_MO_t receiveMsgObj;
/************************************************************************************//**
** \brief Initializes the CAN communication interface.
** \return none.
**
****************************************************************************************/
static void BootComCanInit(void)
{
XMC_GPIO_CONFIG_t rx_can_config;
XMC_GPIO_CONFIG_t tx_can_config;
unsigned char byteIdx;
unsigned long canModuleFreqHz;
XMC_CAN_NODE_NOMINAL_BIT_TIME_CONFIG_t baud;
/* decide on fCAN frequency. it should be in the 5-120MHz range. according to the
* datasheet, it must be at least 12MHz if 1 node (channel) is used with up to
* 16 message objects. This is sufficient for this CAN driver.
*/
canModuleFreqHz = XMC_SCU_CLOCK_GetPeripheralClockFrequency();
/* increase if too low */
while (canModuleFreqHz < 12000000)
{
canModuleFreqHz *= 2;
}
/* decrease if too high */
while (canModuleFreqHz > 120000000)
{
canModuleFreqHz /= 2;
}
/* configure CAN module*/
XMC_CAN_Init(CAN, XMC_CAN_CANCLKSRC_FPERI, canModuleFreqHz);
/* configure CAN node baudrate */
baud.can_frequency = canModuleFreqHz;
baud.baudrate = BOOT_COM_CAN_BAUDRATE;
baud.sample_point = 8000;
baud.sjw = 1,
XMC_CAN_NODE_NominalBitTimeConfigure(CAN_NODE1, &baud);
/* set CCE and INIT bit NCR for node configuration */
XMC_CAN_NODE_EnableConfigurationChange(CAN_NODE1);
XMC_CAN_NODE_SetInitBit(CAN_NODE1);
/* configure the receive message object */
receiveMsgObj.can_mo_ptr = CAN_MO1;
receiveMsgObj.can_priority = XMC_CAN_ARBITRATION_MODE_IDE_DIR_BASED_PRIO_2;
receiveMsgObj.can_identifier = BOOT_COM_CAN_RX_MSG_ID;
receiveMsgObj.can_id_mask= BOOT_COM_CAN_RX_MSG_ID;
receiveMsgObj.can_id_mode = XMC_CAN_FRAME_TYPE_STANDARD_11BITS;
receiveMsgObj.can_ide_mask = 1;
receiveMsgObj.can_data_length = BOOT_COM_CAN_RX_MAX_DATA;
for (byteIdx=0; byteIdx<receiveMsgObj.can_data_length; byteIdx++)
{
receiveMsgObj.can_data_byte[byteIdx] = 0;
}
receiveMsgObj.can_mo_type = XMC_CAN_MO_TYPE_RECMSGOBJ;
XMC_CAN_MO_Config(&receiveMsgObj);
/* allocate receive message object to the channel */
XMC_CAN_AllocateMOtoNodeList(CAN, 1, 1);
/* reset CCE and INIT bit NCR for node configuration */
XMC_CAN_NODE_DisableConfigurationChange(CAN_NODE1);
XMC_CAN_NODE_ResetInitBit(CAN_NODE1);
/* configure CAN receive pin */
rx_can_config.mode = XMC_GPIO_MODE_INPUT_TRISTATE;
XMC_GPIO_Init(P1_13, &rx_can_config);
/* configure CAN transmit pin */
tx_can_config.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT2;
tx_can_config.output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH;
tx_can_config.output_strength = XMC_GPIO_OUTPUT_STRENGTH_STRONG_SOFT_EDGE;
XMC_GPIO_Init(P1_12, &tx_can_config);
/* select CAN Receive Input C (N1_RXDC) to map P1_13 to CAN_NODE1 */
XMC_CAN_NODE_EnableConfigurationChange(CAN_NODE1);
XMC_CAN_NODE_SetReceiveInput(CAN_NODE1, XMC_CAN_NODE_RECEIVE_INPUT_RXDCC);
XMC_CAN_NODE_DisableConfigurationChange(CAN_NODE1);
} /*** end of BootComCanInit ***/
/************************************************************************************//**
** \brief Receives the CONNECT request from the host, which indicates that the
** bootloader should be activated and, if so, activates it.
** \return none.
**
****************************************************************************************/
static void BootComCanCheckActivationRequest(void)
{
unsigned char byteIdx;
unsigned char rxMsgData[8];
unsigned char rxMsgReceived = 0;
/* check if a new message was received */
if ((XMC_CAN_MO_GetStatus(&receiveMsgObj) & XMC_CAN_MO_STATUS_RX_PENDING) != 0)
{
/* read out and process the newly received data */
if (XMC_CAN_MO_ReceiveData(&receiveMsgObj) == XMC_CAN_STATUS_SUCCESS)
{
for (byteIdx=0; byteIdx<receiveMsgObj.can_data_length; byteIdx++)
{
rxMsgData[byteIdx] = receiveMsgObj.can_data_byte[byteIdx];
/* set flag that message was received */
rxMsgReceived = 1;
}
}
/* reset the message received flag */
XMC_CAN_MO_ResetStatus(&receiveMsgObj, XMC_CAN_MO_RESET_STATUS_RX_PENDING);
}
/* process received message */
if (rxMsgReceived == 1)
{
/* reset flag */
rxMsgReceived = 0;
/* check if this was an XCP CONNECT command */
if ((rxMsgData[0] == 0xff) && (rxMsgData[1] == 0x00))
{
/* connection request received so start the bootloader */
BootActivate();
}
}
} /*** end of BootComCanCheckActivationRequest ***/
#endif /* BOOT_COM_CAN_ENABLE > 0 */
/*********************************** end of boot.c *************************************/

View File

@ -1013,10 +1013,11 @@
1452185952 source:c:\users\voorburg\documents\embedded\infineon\apps\xmc4700_relax_kit\xmc4700_emblocks_os\src\os\os.c
"os.h"
1477055058 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\boot.c
1477219350 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\boot.c
"header.h"
"xmc_uart.h"
"xmc_gpio.h"
"xmc_uart.h"
"xmc_can.h"
1477053802 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\header.h
"../Boot/blt_conf.h"
@ -1025,45 +1026,45 @@
"led.h"
"timer.h"
1477061178 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\boot\blt_conf.h
1477217517 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\boot\blt_conf.h
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmc4700.h
1473064960 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmc4700.h
"core_cm4.h"
"system_XMC4700.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\cmsis\core_cm4.h
1465289978 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\cmsis\core_cm4.h
<stdint.h>
"core_cmInstr.h"
"core_cmFunc.h"
"core_cmSimd.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\cmsis\core_cminstr.h
<cmsis_armcc.h>
<cmsis_armcc_V6.h>
<cmsis_gcc.h>
1465289978 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\cmsis\core_cminstr.h
"cmsis_armcc.h"
"cmsis_armcc_V6.h"
"cmsis_gcc.h"
<cmsis_iar.h>
<cmsis_ccs.h>
<cmsis_csm.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\cmsis\cmsis_gcc.h
1465289978 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\cmsis\cmsis_gcc.h
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\cmsis\core_cmfunc.h
<cmsis_armcc.h>
<cmsis_armcc_V6.h>
<cmsis_gcc.h>
1465289978 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\cmsis\core_cmfunc.h
"cmsis_armcc.h"
"cmsis_armcc_V6.h"
"cmsis_gcc.h"
<cmsis_iar.h>
<cmsis_ccs.h>
<cmsis_csm.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\cmsis\core_cmsimd.h
<cmsis_armcc.h>
<cmsis_armcc_V6.h>
<cmsis_gcc.h>
1465289978 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\cmsis\core_cmsimd.h
"cmsis_armcc.h"
"cmsis_armcc_V6.h"
"cmsis_gcc.h"
<cmsis_iar.h>
<cmsis_ccs.h>
<cmsis_csm.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\system_xmc4700.h
1468487305 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\system_xmc4700.h
<stdint.h>
1477053763 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\boot.h
@ -1072,21 +1073,21 @@
1477054079 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\timer.h
1477085557 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\system_xmc4700.c
1477088447 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\system_xmc4700.c
<string.h>
<XMC4700.h>
"system_XMC4700.h"
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc4_eru.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc4_eru.c
"xmc_eru.h"
"xmc_scu.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_eru.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_eru.h
"xmc_common.h"
"xmc1_eru_map.h"
"xmc4_eru_map.h"
1477054406 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_common.h
1467378878 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_common.h
<stddef.h>
<stdint.h>
<stdbool.h>
@ -1094,9 +1095,10 @@
"xmc_device.h"
<stdio.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_device.h
1469781874 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_device.h
"XMC4500.h"
"XMC4400.h"
"XMC4300.h"
"XMC4200.h"
"XMC4100.h"
"XMC4700.h"
@ -1106,255 +1108,255 @@
"XMC1300.h"
"XMC1400.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_eru_map.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_eru_map.h
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_scu.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_scu.h
<xmc_common.h>
<xmc1_scu.h>
<xmc4_scu.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_scu.h
1467383079 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_scu.h
"xmc_common.h"
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc4_flash.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc4_flash.c
"xmc_flash.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_flash.h
1471242129 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_flash.h
"xmc_common.h"
"xmc1_flash.h"
"xmc4_flash.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_flash.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_flash.h
"xmc_common.h"
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc4_gpio.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc4_gpio.c
"xmc_gpio.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_gpio.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_gpio.h
"xmc_common.h"
"xmc1_gpio.h"
"xmc4_gpio.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_gpio.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_gpio.h
"xmc_common.h"
"xmc4_gpio_map.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_gpio_map.h
1471903247 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_gpio_map.h
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc4_rtc.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc4_rtc.c
<xmc_rtc.h>
<xmc_scu.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_rtc.h
1467378878 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_rtc.h
<xmc_common.h>
<time.h>
"xmc1_rtc.h"
"xmc4_rtc.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_rtc.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_rtc.h
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc4_scu.c
1467379907 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc4_scu.c
<xmc_scu.h>
1477085088 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\led.c
1477089099 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\led.c
"header.h"
"xmc_gpio.h"
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_can.c
1467378878 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_can.c
"xmc_can.h"
"xmc_scu.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_can.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_can.h
"xmc_common.h"
"xmc_scu.h"
"xmc_can_map.h"
<string.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_can_map.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_can_map.h
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_ccu4.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_ccu4.c
"xmc_ccu4.h"
"xmc_scu.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_ccu4.h
1467378878 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_ccu4.h
"xmc_common.h"
"xmc1_ccu4_map.h"
"xmc4_ccu4_map.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_ccu4_map.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_ccu4_map.h
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_ccu8.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_ccu8.c
"xmc_ccu8.h"
"xmc_scu.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_ccu8.h
1467378878 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_ccu8.h
"xmc_common.h"
"xmc1_ccu8_map.h"
"xmc4_ccu8_map.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_ccu8_map.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_ccu8_map.h
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_common.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_common.c
"xmc_common.h"
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_dac.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_dac.c
<xmc_dac.h>
<xmc_scu.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_dac.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_dac.h
<xmc_common.h>
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_dma.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_dma.c
"xmc_dma.h"
"xmc_scu.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_dma.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_dma.h
"xmc_common.h"
"xmc_dma_map.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_dma_map.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_dma_map.h
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_dsd.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_dsd.c
"xmc_dsd.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_dsd.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_dsd.h
<xmc_common.h>
<xmc_scu.h>
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_ebu.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_ebu.c
<xmc_ebu.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_ebu.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_ebu.h
<xmc_common.h>
<xmc_scu.h>
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_eru.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_eru.c
"xmc_eru.h"
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_eth_mac.c
1472543436 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_eth_mac.c
<xmc_eth_mac.h>
<stdlib.h>
<xmc_scu.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_eth_mac.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_eth_mac.h
"xmc_common.h"
"xmc_eth_mac_map.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_eth_mac_map.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_eth_mac_map.h
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_fce.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_fce.c
<xmc_fce.h>
<xmc_scu.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_fce.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_fce.h
<xmc_common.h>
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_gpio.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_gpio.c
<xmc_gpio.h>
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_hrpwm.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_hrpwm.c
<xmc_hrpwm.h>
<xmc_scu.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_hrpwm.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_hrpwm.h
<xmc_common.h>
<xmc_hrpwm_map.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_hrpwm_map.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_hrpwm_map.h
"xmc_hrpwm.h"
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_i2c.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_i2c.c
<xmc_i2c.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_i2c.h
1471939947 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_i2c.h
"xmc_usic.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_usic.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_usic.h
"xmc_common.h"
"xmc1_usic_map.h"
"xmc4_usic_map.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_usic_map.h
1469014921 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc4_usic_map.h
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_i2s.c
1469450032 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_i2s.c
<xmc_scu.h>
<xmc_i2s.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_i2s.h
1468425037 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_i2s.h
"xmc_usic.h"
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_ledts.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_ledts.c
<xmc_ledts.h>
"xmc_scu.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_ledts.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_ledts.h
<xmc_common.h>
"xmc_scu.h"
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_posif.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_posif.c
<xmc_posif.h>
<xmc_scu.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_posif.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_posif.h
<xmc_common.h>
<xmc_scu.h>
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_rtc.c
1467378878 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_rtc.c
"xmc_scu.h"
"xmc_rtc.h"
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_sdmmc.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_sdmmc.c
"xmc_sdmmc.h"
"xmc_scu.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_sdmmc.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_sdmmc.h
"xmc_common.h"
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_spi.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_spi.c
<xmc_scu.h>
<xmc_spi.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_spi.h
1467378878 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_spi.h
"xmc_usic.h"
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_uart.c
1469448524 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_uart.c
<xmc_scu.h>
<xmc_uart.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_uart.h
1467378878 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_uart.h
"xmc_usic.h"
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_usbd.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_usbd.c
<xmc_usbd.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_usbd.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_usbd.h
"xmc_common.h"
<stdlib.h>
<string.h>
"xmc_usbd_regs.h"
"xmc_scu.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_usbd_regs.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_usbd_regs.h
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_usic.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_usic.c
"xmc_usic.h"
"xmc_scu.h"
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_vadc.c
1470204802 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_vadc.c
<xmc_vadc.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_vadc.h
1470205055 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_vadc.h
<xmc_common.h>
<xmc_scu.h>
<xmc_vadc_map.h>
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_vadc_map.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_vadc_map.h
1447665730 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_wdt.c
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_wdt.c
"xmc_wdt.h"
"xmc_scu.h"
1447665730 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_wdt.h
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_wdt.h
"xmc_common.h"
"xmc_scu.h"
@ -1366,3 +1368,56 @@
1477054062 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\timer.c
"header.h"
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_acmp.c
<xmc_acmp.h>
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_acmp.h
<xmc_common.h>
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_bccu.c
<xmc_bccu.h>
<xmc_scu.h>
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_bccu.h
<xmc_common.h>
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_ecat.c
<xmc_ecat.h>
<xmc_scu.h>
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_ecat.h
"xmc_common.h"
"xmc_ecat_map.h"
1469014958 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_ecat_map.h
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_math.c
<xmc_math.h>
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_math.h
<xmc_common.h>
<xmc_scu.h>
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_pau.c
"xmc_pau.h"
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_pau.h
"xmc_common.h"
1470204177 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_prng.c
"xmc_prng.h"
1470204177 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_prng.h
"xmc_common.h"
1473236602 source:c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\src\xmc_usbh.c
<stdint.h>
<string.h>
"xmc_usbh.h"
1473236602 c:\work\software\openblt\target\demo\armcm4_xmc4_xcm4700_relax_kit_gcc\prog\lib\xmclib\inc\xmc_usbh.h
<stdint.h>
"xmc_common.h"
"xmc_scu.h"
"xmc_gpio.h"

View File

@ -420,7 +420,7 @@
<code_completion />
<debugger>
<target_debugging_settings target="Debug" active_interface="J-link">
<debug_interface interface_id="J-link" ip_address="localhost" ip_port="2331" path="%Software\SEGGER\J-Link:InstallPath%" executable="JLinkGDBServer.exe" description="..\cfg\xmc4500.svd" dont_start_server="false" backoff_time="2000" options="2" reg_filter="0" active_family="Generic" gdb_before_conn="" gdb_after_conn="">
<debug_interface interface_id="J-link" ip_address="localhost" ip_port="2331" path="%Software\SEGGER\J-Link:InstallPath%" executable="JLinkGDBServer.exe" description="..\cfg\xmc4700.svd" dont_start_server="false" backoff_time="2000" options="2" reg_filter="0" active_family="Generic" gdb_before_conn="" gdb_after_conn="">
<family_options family_id="Generic">
<option opt_id="ID_CMD_BEFORE" opt_value="" />
<option opt_id="ID_GDB_SERVER_CL" opt_value="-select USB=0 -device XMC4700-F144x2048 -if SWD -speed 1000 -endian little" />

View File

@ -3,12 +3,12 @@
<ActiveTarget name="Debug" />
<File name="..\boot.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="7116" topLine="141" />
<Cursor1 position="14226" topLine="267" />
</Cursor>
</File>
<File name="..\led.c" open="0" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2285" topLine="36" />
<Cursor1 position="2279" topLine="36" />
</Cursor>
</File>
<File name="..\lib\cmsis\core_cm4.h" open="0" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
@ -33,7 +33,7 @@
</File>
<File name="..\main.c" open="1" top="1" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="2575" topLine="23" />
<Cursor1 position="2674" topLine="23" />
</Cursor>
</File>
<File name="..\startup_XMC4700.S" open="0" top="0" tabpos="6" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">

View File

@ -0,0 +1,240 @@
/************************************************************************************//**
* \file Source\ARMCM4_XMC4\can.c
* \brief Bootloader CAN communication interface source file.
* \ingroup Target_ARMCM4_XMC4
* \internal
*----------------------------------------------------------------------------------------
* C O P Y R I G H T
*----------------------------------------------------------------------------------------
* Copyright (c) 2016 by Feaser http://www.feaser.com All rights reserved
*
*----------------------------------------------------------------------------------------
* L I C E N S E
*----------------------------------------------------------------------------------------
* This file is part of OpenBLT. OpenBLT is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* OpenBLT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You have received a copy of the GNU General Public License along with OpenBLT. It
* should be located in ".\Doc\license.html". If not, contact Feaser to obtain a copy.
*
* \endinternal
****************************************************************************************/
/****************************************************************************************
* Include files
****************************************************************************************/
#include "boot.h" /* bootloader generic header */
#include "xmc_can.h" /* CAN driver header */
#include "xmc_gpio.h" /* GPIO driver header */
#if (BOOT_COM_CAN_ENABLE > 0)
/****************************************************************************************
* Macro definitions
****************************************************************************************/
/** \brief Macro for accessing the CAN channel handle in the format that is expected
* by the XMClib CAN driver.
*/
#define CAN_CHANNEL ((CAN_NODE_TypeDef * const)(canChannelMap[BOOT_COM_CAN_CHANNEL_INDEX]))
/** \brief Message object dedicated to message transmission. */
#define CAN_TX_MSBOBJ (CAN_MO0)
/** \brief Index of the message object dedicated to message transmission */
#define CAN_TX_MSBOBJ_IDX (0)
/** \brief Message object dedicated to message reception. */
#define CAN_RX_MSBOBJ (CAN_MO1)
/** \brief Index of the message object dedicated to message reception. */
#define CAN_RX_MSBOBJ_IDX (1)
/****************************************************************************************
* Local constant declarations
****************************************************************************************/
/** \brief Helper array to quickly convert the channel index, as specific in the boot-
* loader's configuration header, to the associated channel handle that the
* XMClib's CAN driver requires.
*/
static const CAN_NODE_TypeDef *canChannelMap[] =
{
CAN_NODE0, /* BOOT_COM_CAN_CHANNEL_INDEX = 0 */
CAN_NODE1, /* BOOT_COM_CAN_CHANNEL_INDEX = 1 */
CAN_NODE2, /* BOOT_COM_CAN_CHANNEL_INDEX = 2 */
CAN_NODE3, /* BOOT_COM_CAN_CHANNEL_INDEX = 3 */
CAN_NODE4, /* BOOT_COM_CAN_CHANNEL_INDEX = 4 */
CAN_NODE5 /* BOOT_COM_CAN_CHANNEL_INDEX = 5 */
};
/****************************************************************************************
* Local data declarations
****************************************************************************************/
/** \brief Transmit message object data structure. */
static XMC_CAN_MO_t transmitMsgObj;
/** \brief Receive message object data structure. */
static XMC_CAN_MO_t receiveMsgObj;
/************************************************************************************//**
** \brief Initializes the CAN controller and synchronizes it to the CAN bus.
** \return none.
**
****************************************************************************************/
void CanInit(void)
{
blt_int8u byteIdx;
blt_int32u canModuleFreqHz;
XMC_CAN_NODE_NOMINAL_BIT_TIME_CONFIG_t baud;
/* the current implementation supports CAN_NODE0 to CAN_NODE5. throw an assertion error
* in case a different CAN channel is configured.
*/
ASSERT_CT((BOOT_COM_CAN_CHANNEL_INDEX >= 0) && (BOOT_COM_CAN_CHANNEL_INDEX <= 5));
/* decide on fCAN frequency. it should be in the 5-120MHz range. according to the
* datasheet, it must be at least 12MHz if 1 node (channel) is used with up to
* 16 message objects. This is sufficient for this CAN driver.
*/
canModuleFreqHz = XMC_SCU_CLOCK_GetPeripheralClockFrequency();
/* increase if too low */
while (canModuleFreqHz < 12000000)
{
canModuleFreqHz *= 2;
}
/* decrease if too high */
while (canModuleFreqHz > 120000000)
{
canModuleFreqHz /= 2;
}
/* configure CAN module*/
XMC_CAN_Init(CAN, XMC_CAN_CANCLKSRC_FPERI, canModuleFreqHz);
/* configure CAN node baudrate */
baud.can_frequency = canModuleFreqHz;
baud.baudrate = BOOT_COM_CAN_BAUDRATE;
baud.sample_point = 8000;
baud.sjw = 1,
XMC_CAN_NODE_NominalBitTimeConfigure(CAN_CHANNEL, &baud);
/* set CCE and INIT bit NCR for node configuration */
XMC_CAN_NODE_EnableConfigurationChange(CAN_CHANNEL);
XMC_CAN_NODE_SetInitBit(CAN_CHANNEL);
/* configure the transmit message object */
transmitMsgObj.can_mo_ptr = CAN_TX_MSBOBJ;
transmitMsgObj.can_priority = XMC_CAN_ARBITRATION_MODE_IDE_DIR_BASED_PRIO_2;
transmitMsgObj.can_identifier = BOOT_COM_CAN_TX_MSG_ID;
transmitMsgObj.can_id_mask= BOOT_COM_CAN_TX_MSG_ID;
transmitMsgObj.can_id_mode = XMC_CAN_FRAME_TYPE_STANDARD_11BITS;
transmitMsgObj.can_ide_mask = 1;
transmitMsgObj.can_data_length = BOOT_COM_CAN_TX_MAX_DATA;
for (byteIdx=0; byteIdx<transmitMsgObj.can_data_length; byteIdx++)
{
transmitMsgObj.can_data_byte[byteIdx] = 0;
}
transmitMsgObj.can_mo_type = XMC_CAN_MO_TYPE_TRANSMSGOBJ;
XMC_CAN_MO_Config(&transmitMsgObj);
/* allocate transmit message object to the channel */
XMC_CAN_AllocateMOtoNodeList(CAN, BOOT_COM_CAN_CHANNEL_INDEX, CAN_TX_MSBOBJ_IDX);
/* configure the receive message object */
receiveMsgObj.can_mo_ptr = CAN_RX_MSBOBJ;
receiveMsgObj.can_priority = XMC_CAN_ARBITRATION_MODE_IDE_DIR_BASED_PRIO_2;
receiveMsgObj.can_identifier = BOOT_COM_CAN_RX_MSG_ID;
receiveMsgObj.can_id_mask= BOOT_COM_CAN_RX_MSG_ID;
receiveMsgObj.can_id_mode = XMC_CAN_FRAME_TYPE_STANDARD_11BITS;
receiveMsgObj.can_ide_mask = 1;
receiveMsgObj.can_data_length = BOOT_COM_CAN_RX_MAX_DATA;
for (byteIdx=0; byteIdx<receiveMsgObj.can_data_length; byteIdx++)
{
receiveMsgObj.can_data_byte[byteIdx] = 0;
}
receiveMsgObj.can_mo_type = XMC_CAN_MO_TYPE_RECMSGOBJ;
XMC_CAN_MO_Config(&receiveMsgObj);
/* allocate receive message object to the channel */
XMC_CAN_AllocateMOtoNodeList(CAN, BOOT_COM_CAN_CHANNEL_INDEX, CAN_RX_MSBOBJ_IDX);
/* reset CCE and INIT bit NCR for node configuration */
XMC_CAN_NODE_DisableConfigurationChange(CAN_CHANNEL);
XMC_CAN_NODE_ResetInitBit(CAN_CHANNEL);
} /*** end of CanInit ***/
/************************************************************************************//**
** \brief Transmits a packet formatted for the communication interface.
** \param data Pointer to byte array with data that it to be transmitted.
** \param len Number of bytes that are to be transmitted.
** \return none.
**
****************************************************************************************/
void CanTransmitPacket(blt_int8u *data, blt_int8u len)
{
blt_int8u byteIdx;
/* copy message data */
transmitMsgObj.can_data_length = len;
for (byteIdx=0; byteIdx<transmitMsgObj.can_data_length; byteIdx++)
{
transmitMsgObj.can_data_byte[byteIdx] = data[byteIdx];
}
/* update the message object */
XMC_CAN_MO_UpdateData(&transmitMsgObj);
/* reset the message object's transmit pending flag */
XMC_CAN_MO_ResetStatus(&transmitMsgObj, XMC_CAN_MO_RESET_STATUS_TX_PENDING);
/* submit message for transmission */
XMC_CAN_MO_Transmit(&transmitMsgObj);
/* wait for transmit completion */
while ((XMC_CAN_MO_GetStatus(&transmitMsgObj) & XMC_CAN_MO_STATUS_TX_PENDING) != 0)
{
/* keep the watchdog happy */
CopService();
}
} /*** end of CanTransmitPacket ***/
/************************************************************************************//**
** \brief Receives a communication interface packet if one is present.
** \param data Pointer to byte array where the data is to be stored.
** \return BLT_TRUE is a packet was received, BLT_FALSE otherwise.
**
****************************************************************************************/
blt_bool CanReceivePacket(blt_int8u *data)
{
blt_int8u byteIdx;
blt_bool result = BLT_FALSE;
/* check if a new message was received */
if ((XMC_CAN_MO_GetStatus(&receiveMsgObj) & XMC_CAN_MO_STATUS_RX_PENDING) != 0)
{
/* read out and process the newly received data */
if (XMC_CAN_MO_ReceiveData(&receiveMsgObj) == XMC_CAN_STATUS_SUCCESS)
{
for (byteIdx=0; byteIdx<receiveMsgObj.can_data_length; byteIdx++)
{
data[byteIdx] = receiveMsgObj.can_data_byte[byteIdx];
result = BLT_TRUE;
}
}
/* reset the message received flag */
XMC_CAN_MO_ResetStatus(&receiveMsgObj, XMC_CAN_MO_RESET_STATUS_RX_PENDING);
}
return result;
} /*** end of CanReceivePacket ***/
#endif /* BOOT_COM_CAN_ENABLE > 0 */
/*********************************** end of can.c **************************************/

View File

@ -82,6 +82,11 @@ void UartInit(void)
{
XMC_UART_CH_CONFIG_t uart_config;
/* the current implementation supports XMC_UART0_CH0 to XMC_UART2_CH1. throw an
* assertion error in case a different CAN channel is configured.
*/
ASSERT_CT((BOOT_COM_UART_CHANNEL_INDEX >= 0) && (BOOT_COM_UART_CHANNEL_INDEX <= 5));
/* set configuration and initialize UART channel */
uart_config.baudrate = BOOT_COM_UART_BAUDRATE;
uart_config.data_bits = 8;

View File

@ -36,7 +36,7 @@
/** \brief Minor version of the bootloader core. */
#define BOOT_VERSION_CORE_MINOR (2u)
/** \brief Bufgix version of the bootloader core. */
#define BOOT_VERSION_CORE_BUGFIX (2u)
#define BOOT_VERSION_CORE_BUGFIX (3u)
/****************************************************************************************