mirror of https://github.com/rusefi/openblt.git
git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@1143 5dc33758-31d5-4daf-9ae8-b24bf3d40d73
This commit is contained in:
parent
8805d899f2
commit
b2356964b0
|
@ -1,6 +1,6 @@
|
|||
S0650000433A5C576F726B5C736F6674776172655C4F70656E424C545C5461726765745C44656D6F5C48435331325F4465764B69745F533132473132385F436F646557617272696F725C426F6F745C62696E5C6F70656E626C745F733132673132382E61627379
|
||||
S22403E800FEE833FDE831270E35ED31EC3169700434FB310326F2FEE835EC31270BED311824
|
||||
S22403E8200A30700434F920F13DCF210007D206EAA70001E837FC52210004BE4F70656E4222
|
||||
S22403E8200A30700434F920F13DCF210007D206EAA70001E837FD00210005444F70656E42EC
|
||||
S22403E8404C540005020602060307030803090309040A040B040C040C050D050E050F050F44
|
||||
S22403E8600610061007100800020000000010000002100000001000000220000000100000DF
|
||||
S22403E880023000000010000002400000001000000250000000100000026000000010000008
|
||||
|
@ -19,13 +19,13 @@ S22403EA0073A077881D77887B701E7B707F581F3634CE01001A0686806A00A7A7A7A70F0062
|
|||
S22403EA2080FC30323D433A5C576F726B5C736F6674776172655C4F70656E424C545C54618F
|
||||
S22403EA40726765745C536F757263655C48435331325C63616E2E6300433A5C576F726B5C9B
|
||||
S22403EA60736F6674776172655C4F70656E424C545C5461726765745C536F757263655C481F
|
||||
S22403EA80435331325C666C6173685F6563632E63001F02404002C73D16FBD7C6013DC66433
|
||||
S22403EAA08706FB8706FB9716EAB216ED6216ED7420FB1B9C16EB641D0244401D0242401D81
|
||||
S22403EA80435331325C666C6173685F6563632E63001F02404002C73D16FC80C6013DC66489
|
||||
S22403EAA08706FC3006FC4016EAB216ED6216ED7420FB1B9C16EB641D0244401D0242401D2D
|
||||
S22403EAC00255031C0254031C0256021D026D071C026D101C026C0F1D026E101C0268101CD3
|
||||
S22403EAE0026A107900F0CC42505BF15AF2C6565BF0CE012CC7876C806E82074326FCCC80EF
|
||||
S22403EB00DF5BF45AF54FF320FC074F073226FCC65A5BF47900F54FF320FC073E072126FC97
|
||||
S22403EB20CC905E5BF45AF54FF320FC072D071026FCC6605BF4585BF54FF320FC1B843DEE65
|
||||
S22403EB4082EC84343B16FC316E866C88C7873B3BEC84EE8616FBFE1B843DC7876C82CE0183
|
||||
S22403EB4082EC84343B16FCDF6E866C88C7873B3BEC84EE8616FCAC1B843DC7876C82CE0126
|
||||
S22403EB602C6E843DCC41267B02FB4D39404C39805A35C64B5B34C6015B364C39804F398028
|
||||
S22403EB80FC1C02FA804F3701FC79003A4F3708FC7902FB3DFEE78005003DFEE78205003D16
|
||||
S22403EBA0FEE78405003DFEE78605003DFEE78805003DFEE78A05003DFEE78C05003DFEE7FD
|
||||
|
@ -39,129 +39,135 @@ S22403EC80CE05003DFEE7D005003DFEE7D205003DFEE7D405003DFEE7D605003DFEE7D805B2
|
|||
S22403ECA0003DFEE7DA05003DFEE7DC05003DFEE7DE05003DFEE7E005003DFEE7E205003DF6
|
||||
S22403ECC0FEE7E405003DFEE7E605003DFEE7E805003DFEE7EA05003DFEE7EC05003DFEE7FC
|
||||
S22403ECE0EE05003DFEE7F005003DFEE7F205003DFEE7F405003DFEE7F605003DFEE7F80592
|
||||
S22403ED00003DFEE7FC05003DC6017B210616ED5206ED1316EDFA040138F621060421321603
|
||||
S22403ED20FB763BFC2104C301F43BFC2102C90089003BEC82F32109B7463AF92108B921079A
|
||||
S22403ED40353BEC8616FBFE1B84250679210616F4493DF6210604210916FB767C21097E21A9
|
||||
S22403ED60073D16F44616EE0A16FB1E16FAE016ED8006ED0816EE0D16FB5716ED8D06ED133D
|
||||
S22403ED8016EE1016F217C601877C21003DCC210B6CAD1A82B7C516F3501B82042111C601F4
|
||||
S22403EDA0877C2100CE210B34E68216EE321B82323D3D3BFC210004240AEC843BE68316F26C
|
||||
S22403EDC0E31B8216EE2E3A3D3BFC210016FC3E040909040707C60821C78FC640876C803044
|
||||
S22403EDE03D3BFC210016FC3E040909040707C60821C78FC640876C80303D69AF16EE25048E
|
||||
S22403EE004104C6016B80E680323D06EA9E06EAA4C7877C21937C21917B218E7C218F7B215E
|
||||
S22403EE204D7C214B3DF6214B26013DC6013D79218E3D36EE83E600C1FF2607B75416EF7F20
|
||||
S22403EE402055B6214B0420CFC1FE2244C1F3250EC1F62221C0F38716FC394D3F3846C1CCFE
|
||||
S22403EE606B802526C1D22222C0CC8716FC397F86867863716AC1FA6B80250FC1FE220BC058
|
||||
S22403EE80FA8716FC39296F30373EE680C1C9273A2062EC8316F0212060EC8316F07E20590C
|
||||
S22403EEA0EC8316F0072052EC8316F0DE204BEC8316EFE52044EC8316EFE1203DEC8316EFBB
|
||||
S22403EEC0C72036EC8316EFB7202FB75416F1272028EC8316F1732021EC8316F10A201AEC42
|
||||
S22403EEE08316F1DA2013EC8316F204200CEC8316F2122005C62016EF6FF6218E042105C62F
|
||||
S22403EF001016EF6FFC218F2F0E180B01218ECE214E3416EF191B82323D3BEC843BEC8216A4
|
||||
S22403EF20EDB21B843D6CAD69822016EE8BE600EB826B82EE89EC8B16FC2C6C8B6E8916EE3D
|
||||
S22403EF400DEC87EE85343B16FC316C8B6E89C7873B3BEC84EE8616FBFE1B8426CEE68287DD
|
||||
S22403EF60EE806C02C76C00521B833D79214C3D37C6FE7B214E327A214F50877C218F3D07E2
|
||||
S22403EF80EACCFF017B214BC77C214E1C214F107B21501C21500116EDC87B215116EDE17AEE
|
||||
S22403EFA0215216EDE17B2153CC01017C2154CE00087E218F06FAE079214B07AFC6FF7B2164
|
||||
S22403EFC04E50877C218F3D86FFC77C214EF6214C7B2150C7877C21517B2153C6067C218FF2
|
||||
S22403EFE03DC706EF6F1803E83B2193C7877C2191437C214E877C2150C6077C2154C77C216F
|
||||
S22403F00052C6087C218F3D3BC6FF7B214EEE80EC047C2191EC067C2193C601877C218F3A13
|
||||
S22403F0203D3B3BB745E601873B16EDC88300013BEE82AEB32307C62216EF6F203EEE82E6DB
|
||||
S22403F0400187CD214F356C82C73BFD219335FD219135EC8816F46E1B88C6FF7B214EEE8246
|
||||
S22403F060E60187B745F321937C2193CC0000F92192B921917C2191087E218F1B843D3BB732
|
||||
S22403F08045E601873B16EDC88300013BEE82AEB32307C62216EF6F2043EE80EC047C2191AA
|
||||
S22403F0A0ED067D2193E60187CE214F34B745C73B35FD219135B75416F46EC6FF7B214EEE0D
|
||||
S22403F0C0A7E60187B745F321937C2193CC0000F92192B921917C2191087E218F3A3D3BC681
|
||||
S22403F0E0FF7B214EFC21933BFC21913BEE84EC063BEC043BCC215216EF257B214FC7877C63
|
||||
S22403F1002150C6087C218F1B8A3D86FFC77C214E7B215016EDC87B2151C7877C21527B21E6
|
||||
S22403F12054C6077C218F3D3BFC21933BFC21913B16EDC88300013BC7873BEC88C3000116CD
|
||||
S22403F140FAE31B88046107C63116EF6F2023C6FF7B214E16EDC8830001F321937C2193CC6C
|
||||
S22403F1600000F92192B921917C2191C601877C218F3A3D3BB745E601873B16EDC883000221
|
||||
S22403F1803BEE82AEB32304C6222031C6FF7B214E50877C218FEE80E601260816FB1304613D
|
||||
S22403F1A0372017FD219335FD2191353BC73B1902B7C616FAE31B88046107C63116EF6F20AD
|
||||
S22403F1C017EE80E60187F321937C2193CC0000F92192B921917C21913A3D3BFC21933BFCB3
|
||||
S22403F1E021913BEE84EC06EE0416FAF91B84046107C63116EF6F200AC6FF7B214E50877C19
|
||||
S22403F200218F3A3D16F449C6FF7B214E50877C218F3DC63106EF6F1B91C6017B014016F2EB
|
||||
S22403F220C7200516F2D822051F014101F6C6807B0141CC01F43B1A86341A89B75416F3DD14
|
||||
S22403F2401B846B8E04010ECCEA253BC6FF87B70516FB821B82E6847B0142E6857B01431D3E
|
||||
S22403F260014B30CC06676C8CC7876C8A6C886C867B0150C6087B0151C60C7B0152C6CE7B99
|
||||
S22403F28001537A0154C6107B01557A01567A0157C6CC7B0158C6E07B01597A015A7A015B6D
|
||||
S22403F2A07A015CC6077B015D7A015E7A015F1D01400107132004072022051E014101F7C60D
|
||||
S22403F2C0017B014A1B8F3D16FB76C300FA6C84B754C90089006C823D16EE0D16FB76198289
|
||||
S22403F2E006FC176BAB1E0146010FCCEA253BCC014ACE000016FB821B82CC20FC7B01707AE9
|
||||
S22403F3000171790172790173E6807B017CC720108737B746E388B745E6006BEA01743352EE
|
||||
S22403F320E18025ECC6017B014616FB76C300326C83B754C90089006C81200D16EE0D16FBC6
|
||||
S22403F34076198116FC1722051F014601EE1B853D6CA869871F0144017F1E01610810FC0196
|
||||
S22403F3606049494949496C84C7876C822033FE0162FC0160C4078749B7C54656CD00003BC0
|
||||
S22403F380FC0160C4E03BC60334EE8216FBEDEA85AA846C8AB754EA81AA806C880C88801B68
|
||||
S22403F3A086EC848C0667262CEC822628C6016B87B6016C840F6A86C720108737B745E38BCA
|
||||
S22403F3C0B746E6E201646B403352E18625ECEE80E6866B001D0144FEE6871B883D6CAC3B0E
|
||||
S22403F3E06984E6848759B745E6E2E84387B746E6E2E84419EE02B764ED8A136C80CC1F40A2
|
||||
S22403F400B756EE80181004642ECC1F40EE801810B7516B852721C140221D53EE886B00E650
|
||||
S22403F420EAE84453861012A6EAE8434337AAB0EE826A00C601200C16EE0D6284E684C11223
|
||||
S22403F44025A0C71B863D06FB7F3B16FB0B04411C16EA9104411616EDB116FB3B16FB0F8373
|
||||
S22403F4600002B745EC006C8015F300003A3D6CACEC8C6C82EE88200DED82E6306B706D82BF
|
||||
S22403F4803416EE0D30ED80341A5F6E828D00003026E61B843DCCFFFF6BAE7C21977C2195F7
|
||||
S22403F4A07C239B7C23996981C605A68112B745EEE2E96F8E5DC02415B745EEE2E9718E5DCB
|
||||
S22403F4C0C0250AB745E6E2E9736B8020086281E681C12025D3E68004A10FCCEA583BCC01AF
|
||||
S22403F4E0A2CE000016FB821B821F010680FB1D01003FF60100EA807B0100F60100C43FE1AE
|
||||
S22403F50080270FCCEA583BCC01B1CE000016FB821B821E0100800FCCEA583BCC01B6CE0020
|
||||
S22403F5200016FB821B823A3D1B983BFCE867ACF01022442608FCE869ACF012223AECF0125E
|
||||
S22403F540E38E3BEC8EE9F013A9F012B7453A16FC313BFCE969F3E96D3BFCE967F9E96CB90D
|
||||
S22403F560E96BB7D43BEC8216FC313B34EC88EE8416FBFE1B862303C72061FCE969F3E96DAE
|
||||
S22403F5803BFCE967F9E96CB9E96B3BEC828302006C883AC20082006C84EDF014EEF012C64A
|
||||
S22403F5A00916FBEDB746C60916FBDC6C8A6E88EE8634ACB3260BEC86AC822605CC239920EC
|
||||
S22403F5C003CC21953BEEF01434EEF01434EE8634ECF016EEF01416F8A91B881B8A3D1B94A0
|
||||
S22403F5E03B34ECF014EEF012C76C8E6E8CBEE8672548FCE867AC8C2607FCE869AC8E223AEC
|
||||
S22403F600ECF014E3823BEC82E9F015A9F014B7453A16FC313BFCE969F3E96D3BFCE967F97E
|
||||
S22403F620E96CB9E96BB7D43BEC8216FC313B34EC88EE8416FBFE1B8623022045ECF014A3C7
|
||||
S22403F6408E3BECF014E28FA28E3BEC82E3866C8A3AE983A9826C86EE876E8AE6891B8227DD
|
||||
S22403F66003086E88C7876C8A202E16EE0DC60A37EC8F3BEC8F3BC7873B16FA6D1B8704615E
|
||||
S22403F68003C7201CEC8EC301006C8EEC8CC90089006C8CEE8A086E8AEC8AAC8825CCC60188
|
||||
S22403F6A01BF0103DC7876CACFE239B04A509FE239904A503522051CE01806E828737E3838A
|
||||
S22403F6C0B745E6E2239D87E3816C813352C18025EB61816180EE80086E80FCE969F3E96D32
|
||||
S22403F6E03BFCE967F9E96CB9E96B3BEC82830082B7453AC2008200343BC602873BC73B1AE3
|
||||
S22403F7008AB75416F5281B8A1B843D1B96C7876C88FCE969F3E96D3BFCE967F9E96CB9E997
|
||||
S22403F7206B3BEC828300826C863AC20082006C82FCE969F3E96D6C80FCE967F9E96CB9E98B
|
||||
S22403F7406B3BEC828300806C8A3AC20082006C86C71B828737E3873BCC0000E988A987B739
|
||||
S22403F760453A16FA1F87E3896C893352C18025E3EC82EE8016FA1FB710C73BEC84EE821653
|
||||
S22403F780FC2C16FA1F87E380E38A1B822603C60121C71B8A3DFC239B04A406FC23990484B4
|
||||
S22403F7A009CC239916F966044115FC219704A406FC219504840BCC219516F966046102C715
|
||||
S22403F7C03DC787B7456AE2259D52C11625F4C6013DFCE969F3E96D3BFCE967F9E96CB9E938
|
||||
S22403F7E06BB7453A16FA48C340003BCC0000C9008900B7453A3D6CAD348401044403C72035
|
||||
S22403F80043EE87EC02AC822606EC00AC802733EC806C00EC826C02D6156B84EC82EE8016EE
|
||||
S22403F820FA3C5B15EE871A0434C7873BEC86EE8416FA483BC7873B860216F46E1B88E684BD
|
||||
S22403F8405B15C6011B853D6CAA34FCE969F3E96D3BFCE967F9E96CB9E96B3BEC828302009B
|
||||
S22403F8606C8A3AC20082006C86EC8C8C23991B822607CC21956C8A2019EC82AC86260BAE60
|
||||
S22403F880842607CC23996C8A2008EC8A16F96604410FEC8A3BEC84EE8216F7F61B82046134
|
||||
S22403F8A003C7878FEC8A1B883D1B983B34EDF012EEF010C60916FBEDB746C60916FBDC6C19
|
||||
S22403F8C0866E84EEF014EC0204A412EC0004A40D34EC88EE8616F7F61B82044160EEF0141A
|
||||
S22403F8E0EC02AC862606EC00AC84270F34EC88EE8616F8471B826CF0142742EEF014ECF0AD
|
||||
S22403F90012A3021A041AE66E88EC8E6C8A16EE0DEEF0141904EC8835A3B18C02002526347A
|
||||
S22403F920EC88C30200B745EC86C9008900B746B754B76516F8471B826CF0142603C720230D
|
||||
S22403F940C300046C88EE8AE630ED886B706D886E8AEC82EE8016FC316C826E800474AE26D2
|
||||
S22403F960ACC6011B8C3D1BF1EF3B3BC6016B8BEE82EC0204A409EC0004A404C706FA1BC7AA
|
||||
S22403F980876C89EC89595959EE82E3026C87CC0000E901A9006C856984EC89595959B74562
|
||||
S22403F9A0E684871AE6B746EC82B7C5E3821A8DB7C519EE6C80E6046B406284E684C1082519
|
||||
S22403F9C0D816EE0DC60637EC883BEC883BEC853BC60416FA6D1B876B8C2604698B203A6968
|
||||
S22403F9E084E68487E3873BCC0000E988A987B7453A16FA1F37E685871A8E1AE633E1002707
|
||||
S22403FA00046A8B20086284E684C10825D4EE89086E898E00401825FF6AE68B1BF0153D3BB8
|
||||
S22403FA2034D61537EC8316FA3C5B15EC83EE8116FA48B745E600325A151B843D3B34C60E65
|
||||
S22403FA40ED8216FBED1B843D843FC380003D3BC787B74537E6E2EA0F6BE2259D3352C1162A
|
||||
S22403FA6025EECC259D6C8015F300003A3D6BAE6981C104230FCCEA583BCC0418CE00001663
|
||||
S22403FA80FB821B821E01068003C72052C6307B0106790102E687C403873BE68CB710C7EA8F
|
||||
S22403FAA081AA807C010AC6017B0102EC8A7C010AC71B82201537CB027B0102E6808759E386
|
||||
S22403FAC085B745EC007C010A3352E18025E716FA4E1F010630022004C6016B81E681303DD7
|
||||
S22403FAE006F4953BEC8A3BEC8A3BEC8A3BEC8A3BEC8816F5281B88303D3B34EC883BEC8827
|
||||
S22403FB003BEC8616F5DE1B841B843D16F70B3D16F7D13D16F6A40461013D16F7953D16FB19
|
||||
S22403FB203B4C4001C6015B4EDC44C35DC05C504C4680C7877C25B57C25B33D79004C790054
|
||||
S22403FB404679004D79004079004779004879004979004A79004B3D4F4E011AC6015B4EDCCD
|
||||
S22403FB6050C35DC05C50FC25B5FE25B316FC2C7C25B57E25B33D07DFFC25B5FE25B33D14EB
|
||||
S22403FB80103D16EE0D20FB7C25BC1D025C401C025A401C0258403D16FB76FD25BA35FD2567
|
||||
S22403FBA0B83516FBFE252FF625B7260BC6017B25B71D02584020077925B71C02584016FBD2
|
||||
S22403FBC076FD25BCF325BC7C25BACC0000B7C5C90089007C25B83D1C0258403D87D7B7C69C
|
||||
S22403FBE0270A59B7C55545B7C50436F63D87D7B7C6270AB7C549B7C546560436F63DAC84EE
|
||||
S22403FC00270E34B7C5E285A284B7C510FB302002AE82311B840540AC42270E34B7C5E24156
|
||||
S22403FC20A240B7C510FB302002AE403D04A401083D046401098300013D30E6E605E5303768
|
||||
S21D03FC40E1310460022504E61F2002E6E51AE533050000012101040000B2
|
||||
S22403ED00003DFEE7FC05003DC6017B210616ED5206ED1316EDFE040138F6210604213216FF
|
||||
S22403ED20FC243BFC2104C301F43BFC2102C90089003BEC82F32109B7463AF92108B92107EB
|
||||
S22403ED40353BEC8616FCAC1B84250679210616F4E33DF6210604210916FC247C21097E21B1
|
||||
S22403ED60073D16F4E016EE0E16FBB816FB7A16ED8006ED0816EE1116FBF416ED8D06ED13C9
|
||||
S22403ED8016EE1416F2B1C602877C21003DCC210B6CAD1A82B7C516F3EA1B82042111C602BA
|
||||
S22403EDA0877C2100CE210B34E68216EE331B82323D3D3BFC21008C0002260AEC843BE683E7
|
||||
S22403EDC016F37D1B8216EE2F3A3D3BFC210016FCEC050A0A08050808C60821C78FC68187BF
|
||||
S22403EDE06C80303D3BFC210016FCEC050A0A08050808C60821C78FC681876C80303D69AFA2
|
||||
S22403EE0016EE26044104C6016B80E680323D06EA9E06EAA4C7877C22157C22137C22117CF1
|
||||
S22403EE20220F7C220D3DF6220D26013DC6013D7922103D36EE83E600C1FF2607B75416EFB2
|
||||
S22403EE40E52055B6220D0420CFC1FE2244C1F3250EC1F62221C0F38716FCE74D3F3846C174
|
||||
S22403EE60CC6B802526C1D22222C0CC8716FCE77F86867863716AC1FA6B80250FC1FE220B9E
|
||||
S22403EE80C0FA8716FCE7296F30373EE680C1C9273A2062EC8316F08F2060EC8316F0EC201B
|
||||
S22403EEA059EC8316F0732052EC8316F155204BEC8316F04C2044EC8316F048203DEC83169D
|
||||
S22403EEC0F02E2036EC8316F01D202FB75416F1B52028EC8316F2012021EC8316F198201AC5
|
||||
S22403EEE0EC8316F2682013EC8316F29E200CEC8316F2AC2005C62016EF70F62210042105C2
|
||||
S22403EF00C61016EF70FC22112F0E180B012210CE218C3416EF1A1B82323D3BEC843BEC82AE
|
||||
S22403EF2016EDB21B843D6CAD69822016EE8BE600EB826B82EE89EC8B16FCDA6C8B6E891667
|
||||
S22403EF40EE11EC87EE85343B16FCDF6C8B6E89C7873B3BEC84EE8616FCAC1B8426CEE68215
|
||||
S22403EF6087EE806C02C76C00521B833D79220E3D37C6FE7B218C327A218D50877C22113DA0
|
||||
S22403EF806CAAB745E603876C84C76C82E602B745C734373032C76E82EA85AA846C84EE8018
|
||||
S22403EFA0E60187CD0000B7C6EA85AA846C84B764EA83AA826C82E60087B781C7CE0000B771
|
||||
S22403EFC0C5EA85AA84B7C5EA83AA82B7C51B863D3BE687EE806B03E6866B02E6856B01E63E
|
||||
S22403EFE0846B003A3D0785CCFF017B220DC77C218C1C218D107B218E1C218E0116EDCA7B99
|
||||
S22403F000218F16EDE47A219016EDE47B2191CC01017C2192CE00087E221106FB7A79220D6B
|
||||
S22403F02016EF6CC6FF7B218C50877C22113D86FFC77C218CF6220E7B218EC7877C218F7BED
|
||||
S22403F0402191C6067C22113DC706EF701803E83B2215C7877C2213437C218C877C218EC6BA
|
||||
S22403F060073BC73BCC219016EFD01B84C608877C22113D3BC6FF7B218CEC80C3000416EFB2
|
||||
S22403F080807C22157E2213C601877C22113A3D3B3BB745E601873B16EDCA8300013BEE82F7
|
||||
S22403F0A0AEB32307C62216EF70203EEE82E60187CD218D356C82C73BFD221535FD221335B4
|
||||
S22403F0C0EC8816F5081B88C6FF7B218CEE82E60187B745F322157C2215CC0000F92214B9A6
|
||||
S22403F0E022137C2213087E22111B843D3B3BB745E601873B16EDCA8300013BEE82AEB323F2
|
||||
S22403F10007C62216EF70204AEE821904B76416EF807C22157E2213ED82E64187CD218D35B9
|
||||
S22403F1206C82C73BFD22153534EC8816F5081B88C6FF7B218CEE82E60187B745F322157CA3
|
||||
S22403F1402215CC0000F92214B922137C2213087E22111B843D6CAAC7876C846C82537B2110
|
||||
S22403F1608CEC80C3000416EF80FD221535FD2213353B341A8AB75416EF261B887B218DEC72
|
||||
S22403F180843BEC843BCC219016EFD0C7877C218EC6087C22111B8A3D86FFC77C218C7B21C2
|
||||
S22403F1A08E16EDCA7B218FC7877C21907B2192C6077C22113D3BFC22153BFC22133B16ED47
|
||||
S22403F1C0CA8300013BC7873BEC88C3000116FB7D1B88046107C63116EF702023C6FF7B2130
|
||||
S22403F1E08C16EDCA830001F322157C2215CC0000F92214B922137C2213C601877C22113A7C
|
||||
S22403F2003D3BB745E601873B16EDCA8300023BEE82AEB32304C6222031C6FF7B218C508747
|
||||
S22403F2207C2211EE80E601260816FBAD0461372017FD221535FD2213353BC73B1902B7C65E
|
||||
S22403F24016FB7D1B88046107C63116EF702017EE80E60187F322157C2215CC0000F92214B2
|
||||
S22403F260B922137C22133A3D6CAAFC22156C84FC22136C82EC80C3000416EF80ED8435EDCD
|
||||
S22403F280843516FB931B84046107C63116EF70200AC6FF7B218C50877C22111B863D16F40D
|
||||
S22403F2A0E3C6FF7B218C50877C22113DC63106EF701B91C6017B014016F361200516F3721E
|
||||
S22403F2C022051F014101F6C6807B0141CC01F43B1A86341A89B75416F4771B846B8E040108
|
||||
S22403F2E00ECCEA253BC6FF87B70516FC851B82E6847B0142E6857B01431D014B30CC066782
|
||||
S22403F3006C8CC7876C8A6C886C867B0150C6087B0151C60C7B0152C6CE7B01537A0154C6C4
|
||||
S22403F320107B01557A01567A0157C6CC7B0158C6E07B01597A015A7A015B7A015CC6077B96
|
||||
S22403F340015D7A015E7A015F1D01400107132004072022051E014101F7C6017B014A1B8F1A
|
||||
S22403F3603D16FC24C300FA6C84B754C90089006C823D16EE1116FC24198206FCC56BAB1EFC
|
||||
S22403F3800146010FCCEA253BCC014ACE000016FC851B82CC20FC7B01707A017179017279BA
|
||||
S22403F3A00173E6807B017CC720108737B746E388B745E6006BEA01743352E18025ECC601EC
|
||||
S22403F3C07B014616FC24C300326C83B754C90089006C81200D16EE1116FC24198116FCC516
|
||||
S22403F3E022051F014601EE1B853D6CA869871F0144017F1E01610810FC0160494949494962
|
||||
S22403F4006C84C7876C822033FE0162FC0160C4078749B7C54656CD00003BFC0160C4E03BB0
|
||||
S22403F420C60334EE8216FC9BEA85AA846C8AB754EA81AA806C880C88801B86EC848C066765
|
||||
S22403F440262CEC822628C6016B87B6016C840F6A86C720108737B745E38BB746E6E20164EE
|
||||
S22403F4606B403352E18625ECEE80E6866B001D0144FEE6871B883D6CAC3B6984E684875960
|
||||
S22403F480B745E6E2E84387B746E6E2E84419EE02B764ED8A136C80CC1F40B756EE80181095
|
||||
S22403F4A004642ECC1F40EE801810B7516B852721C140221D53EE886B00E6EAE84453861054
|
||||
S22403F4C012A6EAE8434337AAB0EE826A00C601200C16EE116284E684C11225A0C71B863D14
|
||||
S22403F4E006FC2D3B16FBA504411C16EA9104411616EDB116FBD816FBA9830002B745EC00D3
|
||||
S22403F5006C8015F300003A3D6CACEC8C6C82EE88200DED82E6306B706D823416EE1130EDA2
|
||||
S22403F52080341A5F6E828D00003026E61B843DCCFFFF6BAE7C22197C22177C241D7C241B3A
|
||||
S22403F5406981C605A68112B745EEE2E96F8E5DC02415B745EEE2E9718E5DC0250AB745E6CB
|
||||
S22403F560E2E9736B8020086281E681C12025D3E68004A10FCCEA583BCC01A2CE000016FC5D
|
||||
S22403F580851B821F010680FB1D01003FF60100EA807B0100F60100C43FE180270FCCEA58C7
|
||||
S22403F5A03BCC01B1CE000016FC851B821E0100800FCCEA583BCC01B6CE000016FC851B820C
|
||||
S22403F5C03A3D1B983BFCE867ACF01022442608FCE869ACF012223AECF012E38E3BEC8EE9DF
|
||||
S22403F5E0F013A9F012B7453A16FCDF3BFCE969F3E96D3BFCE967F9E96CB9E96BB7D43BECC8
|
||||
S22403F6008216FCDF3B34EC88EE8416FCAC1B862303C72061FCE969F3E96D3BFCE967F9E94D
|
||||
S22403F6206CB9E96B3BEC828302006C883AC20082006C84EDF014EEF012C60916FC9BB7465F
|
||||
S22403F640C60916FC8A6C8A6E88EE8634ACB3260BEC86AC822605CC241B2003CC22173BEEEC
|
||||
S22403F660F01434EEF01434EE8634ECF016EEF01416F9431B881B8A3D1B943B34ECF014EEC5
|
||||
S22403F680F012C76C8E6E8CBEE8672548FCE867AC8C2607FCE869AC8E223AECF014E3823B08
|
||||
S22403F6A0EC82E9F015A9F014B7453A16FCDF3BFCE969F3E96D3BFCE967F9E96CB9E96BB7A7
|
||||
S22403F6C0D43BEC8216FCDF3B34EC88EE8416FCAC1B8623022045ECF014A38E3BECF014E248
|
||||
S22403F6E08FA28E3BEC82E3866C8A3AE983A9826C86EE876E8AE6891B822703086E88C78789
|
||||
S22403F7006C8A202E16EE11C60A37EC8F3BEC8F3BC7873B16FB071B87046103C7201CEC8EED
|
||||
S22403F720C301006C8EEC8CC90089006C8CEE8A086E8AEC8AAC8825CCC6011BF0103DC787C1
|
||||
S22403F7406CACFE241D04A509FE241B04A503522051CE01806E828737E383B745E6E2241F82
|
||||
S22403F76087E3816C813352C18025EB61816180EE80086E80FCE969F3E96D3BFCE967F9E9AC
|
||||
S22403F7806CB9E96B3BEC82830082B7453AC2008200343BC602873BC73B1A8AB75416F5C249
|
||||
S22403F7A01B8A1B843D1B96C7876C88FCE969F3E96D3BFCE967F9E96CB9E96B3BEC82830028
|
||||
S22403F7C0826C863AC20082006C82FCE969F3E96D6C80FCE967F9E96CB9E96B3BEC828300EB
|
||||
S22403F7E0806C8A3AC20082006C86C71B828737E3873BCC0000E988A987B7453A16FAB98761
|
||||
S22403F800E3896C893352C18025E3EC82EE8016FAB9B710C73BEC84EE8216FCDA16FAB98727
|
||||
S22403F820E380E38A1B822603C60121C71B8A3DFC241D04A406FC241B048409CC241B16FAC7
|
||||
S22403F84000044115FC221904A406FC221704840BCC221716FA00046102C73DC787B7456A65
|
||||
S22403F860E2261F52C11625F4C6013DFCE969F3E96D3BFCE967F9E96CB9E96BB7453A16FA54
|
||||
S22403F880E2C340003BCC0000C9008900B7453A3D6CAD348401044403C72043EE87EC02AC59
|
||||
S22403F8A0822606EC00AC802733EC806C00EC826C02D6156B84EC82EE8016FAD65B15EE87EB
|
||||
S22403F8C01A0434C7873BEC86EE8416FAE23BC7873B860216F5081B88E6845B15C6011B852C
|
||||
S22403F8E03D6CAA34FCE969F3E96D3BFCE967F9E96CB9E96B3BEC828302006C8A3AC200825E
|
||||
S22403F900006C86EC8C8C241B1B822607CC22176C8A2019EC82AC86260BAE842607CC241B71
|
||||
S22403F9206C8A2008EC8A16FA0004410FEC8A3BEC84EE8216F8901B82046103C7878FEC8A40
|
||||
S22403F9401B883D1B983B34EDF012EEF010C60916FC9BB746C60916FC8A6C866E84EEF01406
|
||||
S22403F960EC0204A412EC0004A40D34EC88EE8616F8901B82044160EEF014EC02AC862606FC
|
||||
S22403F980EC00AC84270F34EC88EE8616F8E11B826CF0142742EEF014ECF012A3021A041ACF
|
||||
S22403F9A0E66E88EC8E6C8A16EE11EEF0141904EC8835A3B18C0200252634EC88C30200B7D5
|
||||
S22403F9C045EC86C9008900B746B754B76516F8E11B826CF0142603C72023C300046C88EE1A
|
||||
S22403F9E08AE630ED886B706D886E8AEC82EE8016FCDF6C826E800474AE26ACC6011B8C3DD6
|
||||
S22403FA001BF1EF3B3BC6016B8BEE82EC0204A409EC0004A404C706FAB5C7876C89EC89597C
|
||||
S22403FA205959EE82E3026C87CC0000E901A9006C856984EC89595959B745E684871AE6B763
|
||||
S22403FA4046EC82B7C5E3821A8DB7C519EE6C80E6046B406284E684C10825D816EE11C60667
|
||||
S22403FA6037EC883BEC883BEC853BC60416FB071B876B8C2604698B203A6984E68487E38702
|
||||
S22403FA803BCC0000E988A987B7453A16FAB937E685871A8E1AE633E10027046A8B20086228
|
||||
S22403FAA084E684C10825D4EE89086E898E00401825FF6AE68B1BF0153D3B34D61537EC83D6
|
||||
S22403FAC016FAD65B15EC83EE8116FAE2B745E600325A151B843D3B34C60EED8216FC9B1B1F
|
||||
S22403FAE0843D843FC380003D3BC787B74537E6E2EA0F6BE2261F3352C11625EECC261F6CFF
|
||||
S22403FB008015F300003A3D6BAE6981C104230FCCEA583BCC0418CE000016FC851B821E0192
|
||||
S22403FB20068003C72052C6307B0106790102E687C403873BE68CB710C7EA81AA807C010AF5
|
||||
S22403FB40C6017B0102EC8A7C010AC71B82201537CB027B0102E6808759E385B745EC007C2E
|
||||
S22403FB60010A3352E18025E716FAE81F010630022004C6016B81E681303D06F52F3BEC8AAA
|
||||
S22403FB803BEC8A3BEC8A3BEC8A3BEC8816F5C21B88303D3B34EC883BEC883BEC8616F678FB
|
||||
S22403FBA01B841B843D16F7A53D16F86B3D16F73E0461013D16F82F3D16FBD84D4D074C4D92
|
||||
S22403FBC002CC17707C263B4C4680C7877C26377C2635DE447E26393D79004C7900467900A2
|
||||
S22403FBE04D79004079004779004879004979004A79004B3DDC44B32639BC263B2525FE2633
|
||||
S22403FC003B181034B754F326377C2637CC0000F92636B926357C2635FD263B3A13F3263908
|
||||
S22403FC207C26393D07CEFC2637FE26353D14103D7C26421D025C401C025A401C0258403D35
|
||||
S22403FC4016FC24FD264035FD263E3516FCAC252FF6263D260BC6017B263D1D025840200719
|
||||
S22403FC6079263D1C02584016FC24FD2642F326427C2640CC0000B7C5C90089007C263E3D5B
|
||||
S22403FC801C0258403D16EE1120FB87D7B7C6270A59B7C55545B7C50436F63D87D7B7C627D3
|
||||
S22403FCA00AB7C549B7C546560436F63DAC84270E34B7C5E285A284B7C510FB302002AE823D
|
||||
S22403FCC0311B840540AC42270E34B7C5E241A240B7C510FB302002AE403D04A401083D0439
|
||||
S22403FCE06401098300013D30E6E605E53037E1310460022504E61F2002E6E51AE5330500B6
|
||||
S20B03FD0000012101050000CC
|
||||
S22403FF80EB94EB9AEBA0EBA6EBACEBB2EBB8EBBEEBC4EBCAEBD0EBD6EBDCEBE2EBE8EBEE99
|
||||
S22403FFA0EBF4EBFAEC00EC06EC0CEC12EC18EC1EEC24EC2AEC30EC36EC3CEC42EC48EC4E6B
|
||||
S22403FFC0EC54EC5AEC60EC66EC6CEC72EC78EC7EEC84EC8AEC90EC96EC9CECA2ECA8ECAE49
|
||||
|
|
|
@ -5,12 +5,12 @@ PORT=21
|
|||
interface_selection=1
|
||||
SHOWDIALOG=0
|
||||
IO_DELAY_SET=1
|
||||
frequency_has_changed_old_io_delay_cnt=7
|
||||
frequency_has_changed_old_io_delay_cnt=18
|
||||
CyclonePro_poweroffonexit=0
|
||||
CyclonePro_currentvoltage=255
|
||||
CyclonePro_PowerDownDelay=250
|
||||
CyclonePro_PowerUpDelay=250
|
||||
IO_DELAY_CNT=7
|
||||
IO_DELAY_CNT=18
|
||||
PCI_DELAY=0
|
||||
RESET_DELAY=0
|
||||
|
||||
|
@ -73,7 +73,7 @@ HOTPLUGGING=0
|
|||
DETECTRUNNING=0
|
||||
RESYNCONCOPRESET=0
|
||||
BDMAutoSpeed=0
|
||||
BDMClockSpeed=7
|
||||
BDMClockSpeed=18
|
||||
HIGHIODELAYCONSTFORPLL=40
|
||||
|
||||
[PORT]
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,6 +1,6 @@
|
|||
S0720000433A5C576F726B5C736F6674776172655C4F70656E424C545C5461726765745C44656D6F5C48435331325F457662706C75735F447261676F6E3132705F436F646557617272696F725C426F6F745C62696E5C6F70656E626C745F657662706C75735F647261676F6E3132702E61627366
|
||||
S123E800FEE830FDE82E270E35ED31EC3169700434FB310326F2FEE832EC31270BED311831
|
||||
S123E8200A30700434F920F13D07D506EA220001E834FE4F390005C94F70656E424C5400D8
|
||||
S123E8200A30700434F920F13D07D506EA220001E834FE63390005CD4F70656E424C5400C0
|
||||
S123E840000C000000004000000C400000004000000C800000004000000CC0000000400004
|
||||
S123E860000D000000004000000D400000004000000D800000004000000DC00000004000E0
|
||||
S123E880000E000000004000000E400000004000000E800000004000000EC00000004000BC
|
||||
|
@ -15,31 +15,31 @@ S123E9804F70656E424C545C5461726765745C536F757263655C48435331325C666C6173D0
|
|||
S123E9A0682E6300433A5C576F726B5C736F6674776172655C4F70656E424C545C546172C4
|
||||
S123E9C06765745C536F757263655C48435331325C63616E2E6300433A5C576F726B5C731F
|
||||
S123E9E06F6674776172655C4F70656E424C545C5461726765745C536F757263655C4843D4
|
||||
S123EA005331325C72733233322E63001E02610102C73D16FD02C6013DC6648706FCB206C7
|
||||
S123EA20FCC416EA2D16EAF816EB0A20FB1B9969824D398069816980E68087CD1F40C30073
|
||||
S123EA400118133BE68387C3000116FE2F3B34EC84B76516FE216C876E858C5DC01B8226D2
|
||||
S123EA005331325C72733233322E63001E02610102C73D16FD16C6013DC6648706FCC6069F
|
||||
S123EA20FCD816EA2D16EAF816EB0A20FB1B9969824D398069816980E68087CD1F40C3005F
|
||||
S123EA400118133BE68387C3000116FE433B34EC84B76516FE356C876E858C5DC01B8226AA
|
||||
S123EA60030445286280E680C13F23CCE6820401086281E681C10F23BDE68204010ECCE948
|
||||
S123EA801A3BC66B87B70516FCAD1B82E6805B34E6815B354F3708FC4C39801B873DC6012C
|
||||
S123EAA07B390616EAE806EAA916EBC1040138F6390604213216F79C3BFC3904C301F43B7C
|
||||
S123EAC0FC3902C90089003BEC82F33909B7463AF93908B93907353BEC8616FD281B842580
|
||||
S123EAE00679390616F0773DF6390604210916F79C7C39097E39073D16F07416EBD116F77C
|
||||
S123EB004416F70616EB1606EA9E16EBD416F77D16EB2B06EAA916EBD716F7A5C602877C7C
|
||||
S123EB20390016FB5EC7877C39003DCC390B6CAD1A82B7C516F8DE1B82042104C602071512
|
||||
S123EB40CC390B3B1A82B7C516FBD51B82042103C70702323D877C3900CE390B34E6841662
|
||||
S123EB60EBF61B823D3D3BFC39008C0002260AEC843BE68316F8711B82FC3900260AEC8466
|
||||
S123EB803BE68316FB771B8216EBF23A3D3BFC390016FE3B050A0A08050808C60821C78F04
|
||||
S123EBA0C681876C80303D3BFC390016FE3B050A0A08050808C60821C78FC681876C803006
|
||||
S123EA801A3BC66B87B70516FCC11B82E6805B34E6815B354F3708FC4C39801B873DC60118
|
||||
S123EAA07B390616EAE806EAA916EBC1040138F6390604213216F7B03BFC3904C301F43B68
|
||||
S123EAC0FC3902C90089003BEC82F33909B7463AF93908B93907353BEC8616FD3C1B84256C
|
||||
S123EAE00679390616F0773DF6390604210916F7B07C39097E39073D16F07416EBD116F768
|
||||
S123EB004416F70616EB1606EA9E16EBD416F78016EB2B06EAA916EBD716F7B9C602877C65
|
||||
S123EB20390016FB72C7877C39003DCC390B6CAD1A82B7C516F8F21B82042104C6020715EA
|
||||
S123EB40CC390B3B1A82B7C516FBE91B82042103C70702323D877C3900CE390B34E684164E
|
||||
S123EB60EBF61B823D3D3BFC39008C0002260AEC843BE68316F8851B82FC3900260AEC8452
|
||||
S123EB803BE68316FB8B1B8216EBF23A3D3BFC390016FE4F050A0A08050808C60821C78FDC
|
||||
S123EBA0C681876C80303D3BFC390016FE4F050A0A08050808C60821C78FC681876C8030F2
|
||||
S123EBC03D69AF16EBE9044104C6016B80E680323D06EA1906EA1FC7877C3A157C3A137CAC
|
||||
S123EBE03A117C3A0F7C3A0D3DF63A0D26013DC6013D793A103D36EE83E600C1FF2607B72B
|
||||
S123EC005416EDA82055B63A0D0420CFC1FE2244C1F3250EC1F62221C0F38716FE364D3F76
|
||||
S123EC203846C1CC6B802526C1D22222C0CC8716FE367F86867863716AC1FA6B80250FC17F
|
||||
S123EC40FE220BC0FA8716FE36296F30373EE680C1C9273A2062EC8316EE522060EC831620
|
||||
S123EC005416EDA82055B63A0D0420CFC1FE2244C1F3250EC1F62221C0F38716FE4A4D3F62
|
||||
S123EC203846C1CC6B802526C1D22222C0CC8716FE4A7F86867863716AC1FA6B80250FC16B
|
||||
S123EC40FE220BC0FA8716FE4A296F30373EE680C1C9273A2062EC8316EE522060EC83160C
|
||||
S123EC60EEAF2059EC8316EE362052EC8316EF18204BEC8316EE0F2044EC8316EE0B203DA7
|
||||
S123EC80EC8316EDF12036EC8316EDE0202FB75416EF782028EC8316EFC42021EC8316EF59
|
||||
S123ECA05B201AEC8316F02B2013EC8316F061200CEC8316F06F2005C62016ED33F63A1081
|
||||
S123ECC0042105C61016ED33FC3A112F0E180B013A10CE398C3416ECDD1B82323D3BEC84AB
|
||||
S123ECE03BEC8216EB661B843D6CAD69822016EE8BE600EB826B82EE89EC8B16FD566C8BE3
|
||||
S123ED006E8916EBD4EC87EE85343B16FD5B6C8B6E89C7873B3BEC84EE8616FD281B8426CA
|
||||
S123ECE03BEC8216EB661B843D6CAD69822016EE8BE600EB826B82EE89EC8B16FD6A6C8BCF
|
||||
S123ED006E8916EBD4EC87EE85343B16FD6F6C8B6E89C7873B3BEC84EE8616FD3C1B8426A2
|
||||
S123ED20CEE68287EE806C02C76C00521B833D793A0E3D37C6FE7B398C327A398D50877CD8
|
||||
S123ED403A113D6CAAB745E603876C84C76C82E602B745C734373032C76E82EA85AA846CC8
|
||||
S123ED6084EE80E60187CD0000B7C6EA85AA846C84B764EA83AA826C82E60087B781C7CE7C
|
||||
|
@ -66,26 +66,26 @@ S123EFE08C50877C3A11EE80E601260816F7390461372017FD3A1535FD3A13353BC73B19F1
|
|||
S123F00002B7C616F7091B88046107C63116ED332017EE80E60187F33A157C3A15CC00002F
|
||||
S123F020F93A14B93A137C3A133A3D6CAAFC3A156C84FC3A136C82EC80C3000416ED43ED51
|
||||
S123F0408435ED843516F71F1B84046107C63116ED33200AC6FF7B398C50877C3A111B867B
|
||||
S123F0603D16F077C6FF7B398C50877C3A113DC63106ED3306F9D43B16F73104411C16EA28
|
||||
S123F0800C04411616EB6516F76116F735830002B745EC006C8015F300003A3D6CACEC8C87
|
||||
S123F0603D16F077C6FF7B398C50877C3A113DC63106ED3306F9E83B16F73104411C16EA14
|
||||
S123F0800C04411616EB6516F76416F735830002B745EC006C8015F300003A3D6CACEC8C84
|
||||
S123F0A06C82EE88200DED82E6306B706D823416EBD430ED80341A5F6E828D00003026E660
|
||||
S123F0C01B843D1B9D6982CCFF016B81507C3A197C3A177C3C1D7C3C1B1C010303F6010344
|
||||
S123F0E0C403527B3E351D0103E36980E68087B745E68108B75613B745CC1F4018151AE151
|
||||
S123F100698E00302212E681C1082605A6808A408FA6807A0100201C6280E680C13F23CCA2
|
||||
S123F120E68204010FCCE96F3BCC01A0CE000016FCAD1B821B833D1B983BEC8EEE8C16FD89
|
||||
S123F1405B3B16F2163B16F20A3BEC8216FD5BA3F018B7C5E2F017A2F016343BEC88EE8486
|
||||
S123F16016FD281B862240FCE840ACF01022382608FCE842ACF012222EECF012E38E3BEC4B
|
||||
S123F1808EE9F013A9F012B7453A16FD5B3B16F2163B07763BEC8216FD5B3B34EC88EE8425
|
||||
S123F1A016FD281B862303C7205D076A3BFCE8D8F9E8DDB9E8DC3BEC828302006C883AC244
|
||||
S123F1C00082006C84EDF014EEF012C60916FD17B746C60916FD066C8A6E88EE8634ACB307
|
||||
S123F120E68204010FCCE96F3BCC01A0CE000016FCC11B821B833D1B983BEC8EEE8C16FD75
|
||||
S123F1406F3B16F2163B16F20A3BEC8216FD6FA3F018B7C5E2F017A2F016343BEC88EE845E
|
||||
S123F16016FD3C1B862240FCE840ACF01022382608FCE842ACF012222EECF012E38E3BEC37
|
||||
S123F1808EE9F013A9F012B7453A16FD6F3B16F2163B07763BEC8216FD6F3B34EC88EE84FD
|
||||
S123F1A016FD3C1B862303C7205D076A3BFCE8D8F9E8DDB9E8DC3BEC828302006C883AC230
|
||||
S123F1C00082006C84EDF014EEF012C60916FD2BB746C60916FD1A6C8A6E88EE8634ACB3DF
|
||||
S123F1E0260BEC86AC822605CC3C1B2003CC3A173BEEF01434EEF01434EE8634ECF016EE9D
|
||||
S123F200F01416F52F1B881B8A3DFCE8D8F9E8DDB9E8DCB7D43DFCE8DAF3E8DE3D1B943BCA
|
||||
S123F2203416FD5B3BFCE8DAF3E8DE3B16F31E3BEC8216FD5BA3F01AB7C5E2F019A2F0183F
|
||||
S123F240343BEC88EE8416FD281B862229EDF014EEF012C60916FD17B746C60916FD066C03
|
||||
S123F2203416FD6F3BFCE8DAF3E8DE3B16F31E3BEC8216FD6FA3F01AB7C5E2F019A2F01817
|
||||
S123F240343BEC88EE8416FD3C1B862229EDF014EEF012C60916FD2BB746C60916FD1A6CC7
|
||||
S123F2608E6E8CBEE84018250091FCE840AC8C2607FCE842AC8E2230ECF014E3823BEC8215
|
||||
S123F280E9F015A9F014B7453A16FD5B3BFCE8DAF3E8DE3B16F31E3BEC8216FD5B3B34ECA5
|
||||
S123F2A088EE8416FD281B862251ECF014A38E3BECF014E28FA28E3BEC82E3866C8C3AE9E7
|
||||
S123F2C083A9826C88C609EE88ED8A16FD176C86EC8A84018C00001B822705EE84086E84F4
|
||||
S123F280E9F015A9F014B7453A16FD6F3BFCE8DAF3E8DE3B16F31E3BEC8216FD6F3B34EC7D
|
||||
S123F2A088EE8416FD3C1B862251ECF014A38E3BECF014E28FA28E3BEC82E3866C8C3AE9D3
|
||||
S123F2C083A9826C88C609EE88ED8A16FD2B6C86EC8A84018C00001B822705EE84086E84E0
|
||||
S123F2E06D8A202E16EBD4C64037EC8F3BEC8F3BCC55AA16F6B21B85046103C7201CEC8E39
|
||||
S123F300C302006C8EEC8CC90089006C8CEE8A086E8AEC8AAC8425CCC6011BF0103DFCE856
|
||||
S123F320D8F9E8DDB9E8DCB7D43DC7876CACFE3C1D04A509FE3C1B04A503522051CE01806C
|
||||
|
@ -95,7 +95,7 @@ S123F38002873BC73B1A8AB75416F1371B8A1B843D1B96C7876C88FCE8DAF3E8DE3BFCE8AC
|
|||
S123F3A0D8F9E8DDB9E8DC3BEC828300826C863AC20082006C82FCE8DAF3E8DE6C80FCE8E3
|
||||
S123F3C0D8F9E8DDB9E8DC3BEC828300806C8A3AC20082006C86C71B828737E3873BCC0071
|
||||
S123F3E000E988A987B7453A16F66487E3896C893352C18025E3EC82EE8016F664B710C732
|
||||
S123F4003BEC84EE8216FD5616F66487E380E38A1B822603C60121C71B8A3DFC3C1D04A449
|
||||
S123F4003BEC84EE8216FD6A16F66487E380E38A1B822603C60121C71B8A3DFC3C1D04A435
|
||||
S123F42006FC3C1B048409CC3C1B16F5EC044115FC3A1904A406FC3A1704840BCC3A17165A
|
||||
S123F440F5EC046102C73DC787B7456AE23E1F52C11625F4C6013DFCE8DAF3E8DE3BFCE88D
|
||||
S123F460D8F9E8DDB9E8DCB7453A16F68DC340003BCC0000C9008900B7453A3D6CAD348406
|
||||
|
@ -104,82 +104,83 @@ S123F4A084EC82EE8016F6815B30EE871A0434C7873BEC86EE8416F68D3BC7873B860216A1
|
|||
S123F4C0F09C1B88E6845B30C6011B853D6CAA34FCE8DAF3E8DE3BFCE8D8F9E8DDB9E8DC6D
|
||||
S123F4E03BEC828302006C8A3AC20082006C86EC8C8C3C1B1B822607CC3A176C8A2019EC17
|
||||
S123F50082AC86260BAE842607CC3C1B6C8A2008EC8A16F5EC04410FEC8A3BEC84EE8216FA
|
||||
S123F520F47C1B82046103C7878FEC8A1B883D1B983B34EDF012EEF010C60916FD17B7462A
|
||||
S123F540C60916FD066C866E84EEF014EC0204A412EC0004A40D34EC88EE8616F47C1B8261
|
||||
S123F520F47C1B82046103C7878FEC8A1B883D1B983B34EDF012EEF010C60916FD2BB74616
|
||||
S123F540C60916FD1A6C866E84EEF014EC0204A412EC0004A40D34EC88EE8616F47C1B824D
|
||||
S123F560044160EEF014EC02AC862606EC00AC84270F34EC88EE8616F4CD1B826CF014272B
|
||||
S123F58042EEF014ECF012A3021A041AE66E88EC8E6C8A16EBD4EEF0141904EC8835A3B13B
|
||||
S123F5A08C0200252634EC88C30200B745EC86C9008900B746B754B76516F4CD1B826CF04D
|
||||
S123F5C0142603C72023C300046C88EE8AE630ED886B706D886E8AEC82EE8016FD5B6C8222
|
||||
S123F5C0142603C72023C300046C88EE8AE630ED886B706D886E8AEC82EE8016FD6F6C820E
|
||||
S123F5E06E800474AE26ACC6011B8C3D1B973BC6016B8AEE80EC0204A408EC0004A403C763
|
||||
S123F600205FC7876C88EC8859B746EE80E3026C84CC0000E901A9006C82B75419EEEC4489
|
||||
S123F6206C8616EBD4C62037EC853BEE8534EC8B16F6B21B85044119EC84EE8216F664E12B
|
||||
S123F64086260EEC84EE8216FD5616F664E1872704698A200AEE88086E888E010025A7E6CE
|
||||
S123F64086260EEC84EE8216FD6A16F664E1872704698A200AEE88086E888E010025A7E6BA
|
||||
S123F6608A1B8B3D3B34D63037EC8316F6815B30EC83EE8116F68DB745E600325A301B8432
|
||||
S123F6803D3B34C60EED8216FD171B843D843FC380003D3BC787B74537E6E2E8E06BE23E57
|
||||
S123F6803D3B34C60EED8216FD2B1B843D843FC380003D3BC787B74537E6E2E8E06BE23E43
|
||||
S123F6A01F3352C11625EECC3E1F6C8015F300003A3D6CAC6982D6306B83EC88EE8607C17D
|
||||
S123F6C05B301D010303545451C403FA01037B0103C6307B0105B6010584808180261EECD2
|
||||
S123F6E088EE8607A8EE80B7466E40E68A7B010607A11F010530022004C6016B82E6835BB5
|
||||
S123F70030E6821B843D06F0C33BEC8A3BEC8A3BEC8A3BEC8A3BEC8816F1371B88303D3BBC
|
||||
S123F72034EC883BEC883BEC8616F21D1B841B843D16F3913D16F4573D16F32A0461013DD6
|
||||
S123F74016F41B3D16F7614C4001C6015B4EDC44C35DC05C504C4680C7877C3E387C3E36EA
|
||||
S123F7603D79004C79004679004D79004079004779004879004979004A79004B3D4F4E01A0
|
||||
S123F7801AC6015B4EDC50C35DC05C50FC3E38FE3E3616FD567C3E387E3E363D07DFFC3E95
|
||||
S123F7A038FE3E363D1B91C6017B014016F855200516F86622051F014101F6C6807B0141B1
|
||||
S123F7C0CC01F43B1A86341A89B75416F96B1B846B8E04010ECCE9A43BC6FF87B70516FCD4
|
||||
S123F7E0AD1B82E6847B0142E6857B01431D014B30CC06676C8CC7876C8A6C886C867B01F9
|
||||
S123F80050C6087B0151C60C7B0152C6CE7B01537A0154C6107B01557A01567A0157C6CC4B
|
||||
S123F8207B0158C6E07B01597A015A7A015B7A015CC6077B015D7A015E7A015F1D0140013B
|
||||
S123F84007132004072022051E014101F7C6017B014A1B8F3D16F79CC300FA6C84B754C922
|
||||
S123F8600089006C823D16EBD416F79C198206FD416BAB1E0146010FCCE9A43BCC014ACE6F
|
||||
S123F880000016FCAD1B82CC20FC7B01707A0171790172790173E6807B017CC7201087375C
|
||||
S123F8A0B746E388B745E6006BEA01743352E18025ECC6017B014616F79CC300326C83B76C
|
||||
S123F8C054C90089006C81200D16EBD416F79C198116FD4122051F014601EE1B853D6CA88B
|
||||
S123F8E069871F0144017F1E01610810FC016049494949496C84C7876C822033FE0162FCF2
|
||||
S123F9000160C4078749B7C54656CD00003BFC0160C4E03BC60334EE8216FD17EA85AA8457
|
||||
S123F9206C8AB754EA81AA806C880C88801B86EC848C0667262CEC822628C6016B87B6019D
|
||||
S123F9406C840F6A86C720108737B745E38BB746E6E201646B403352E18625ECEE80E686E9
|
||||
S123F9606B001D0144FEE6871B883D6CAC3B6984E6848759B745E6E2E8F687B746E6E2E80B
|
||||
S123F980F719EE02B764ED8A136C80CC1F40B756EE80181004642ECC1F40EE801810B751A5
|
||||
S123F9A06B852721C140221D53EE886B00E6EAE8F753861012A6EAE8F64337AAB0EE826AD1
|
||||
S123F9C000C601200C16EBD46284E684C11225A0C71B863D14103D790011CC09395B105A10
|
||||
S123F9E012CF390016E82906EA22FEE78005003DFEE78205003DFEE78405003DFEE7860545
|
||||
S123FA00003DFEE78805003DFEE78A05003DFEE78C05003DFEE78E05003DFEE79005003D26
|
||||
S123FA20FEE79205003DFEE79405003DFEE79605003DFEE79805003DFEE79A05003DFEE72C
|
||||
S123FA409C05003DFEE79E05003DFEE7A005003DFEE7A205003DFEE7A405003DFEE7A60514
|
||||
S123FA60003DFEE7A805003DFEE7AA05003DFEE7AC05003DFEE7AE05003DFEE7B005003D26
|
||||
S123FA80FEE7B205003DFEE7B405003DFEE7B605003DFEE7B805003DFEE7BA05003DFEE72C
|
||||
S123FAA0BC05003DFEE7BE05003DFEE7C005003DFEE7C205003DFEE7C405003DFEE7C605F4
|
||||
S123FAC0003DFEE7C805003DFEE7CA05003DFEE7CC05003DFEE7CE05003DFEE7D005003D26
|
||||
S123FAE0FEE7D205003DFEE7D405003DFEE7D605003DFEE7D805003DFEE7DA05003DFEE72C
|
||||
S123FB00DC05003DFEE7DE05003DFEE7E005003DFEE7E205003DFEE7E405003DFEE7E605D3
|
||||
S123FB20003DFEE7E805003DFEE7EA05003DFEE7EC05003DFEE7EE05003DFEE7F005003D25
|
||||
S123FB40FEE7F205003DFEE7F405003DFEE7F605003DFEE7F805003DFEE7FC05003D790095
|
||||
S123FB60CB7900CA7900C87900C9C61A873B5AC85BC94CCB0C3A3D6BADC181230ECCE9D757
|
||||
S123FB803BC68B87B70516FCAD1B82E68016FC7004010ECCE9D73BC68F87B70516FCAD1B02
|
||||
S123FBA082C7876C81202416EBD4EC85E381B745E60016FC7004010ECCE9D73BC69887B7BC
|
||||
S123FBC00516FCAD1B82EE81086E81E68087AC8122D51B833D3BF63E3A2625CC3E3F16FC1F
|
||||
S123FBE05F042178F63E3F2773C181226F16F79C7C3E3D7E3E3B793EC1C6017B3E3A205CE0
|
||||
S123FC00F63EC187C3000187C33E3F16FC5F04212A723EC1F63EC1F13E3F2640EE8434C772
|
||||
S123FC20873BCE3E40343BF63EC116F09C793E3AEEA7F63EC16B00C601202216F79C3BFCDD
|
||||
S123FC403E3DC300C8B746FC3E3BC9008900353BEC8416FD281B822303793E3AC7303D3B98
|
||||
S123FC604FCC2009D6CFEE806B00C60121C7303D6BAAC6016B854ECC8003C7202DA6805AA5
|
||||
S123FC80CF16F79CC3000A6C83B754C90089006C81201116EBD416F79C198116FD4123041E
|
||||
S123FCA0698520044FCC80EBE6851B863D16EBD420FB7C3EC71C026A021D0268024C03018B
|
||||
S123FCC04D01013D16F79CFD3EC535FD3EC33516FD28252DF63EC2260AC6017B3EC24C0141
|
||||
S123FCE0012006793EC24D010116F79CFD3EC7F33EC77C3EC5CC0000B7C5C90089007C3E9B
|
||||
S123FD00C33D4D01013D87D7B7C6270A59B7C55545B7C50436F63D87D7B7C6270AB7C5491E
|
||||
S123FD20B7C546560436F63DAC84270E34B7C5E285A284B7C510FB302002AE82311B8405BA
|
||||
S123FD4040AC42270E34B7C5E241A240B7C510FB302002AE403D04A401083D0464010983A0
|
||||
S123FD6000013D87C76C82EC8C261FEE8EED86EC8811280DEC86CD0000116D82B746EC88EF
|
||||
S123FD80116D846C8887C76C863D972709EE86B7C5CD00002008EE8DE686ED87B7C6113522
|
||||
S123FDA0ECF010133B35ECF012ED8413E3B130B7C5CD0000356581A38CB7C5E28BA28A31C1
|
||||
S123FDC00446113669AF3137323433EEF01011B76532201F252A046403044539E78E27060B
|
||||
S123FDE0EE8E87C7200BB7C5363469AFEEF013313A1810083A34A3B1B74620A33102209F0C
|
||||
S123FE004151B7C5415104A40108AE8E22EE2505ACF01024E7316D84698369826C886E867F
|
||||
S123FE203D3B341B9C16FD6330ECB5EDB505403BB704B7053A3D30E6E605E53037E13104A1
|
||||
S119FE4060022504E61F2002E6E51AE533050000013901050000B4
|
||||
S123FF80F9EAF9F0F9F6F9FCFA02FA08FA0EFA14FA1AFA20FA26FA2CFA32FA38FA3EFA4451
|
||||
S123FFA0FA4AFA50FA56FA5CFA62FA68FA6EFA74FA7AFA80FA86FA8CFA92FA98FA9EFAA42D
|
||||
S123FFC0FAAAFAB0FAB6FABCFAC2FAC8FACEFAD4FADAFAE0FAE6FAECFAF2FAF8FAFEFB040C
|
||||
S123FFE0FB0AFB10FB16FB1CFB22FB28FB2EFB34FB3AFB40FB46FB4CFB52F9D7FB58F9D7F5
|
||||
S123F74016F41B3D16F7644D4D074C4D02CC17707C3E3C4C4680C7877C3E387C3E36DE44E9
|
||||
S123F7607E3E3A3D79004C79004679004D79004079004779004879004979004A79004B3D48
|
||||
S123F780DC44B33E3ABC3E3C2525FE3E3C181034B754F33E387C3E38CC0000F93E37B93E2F
|
||||
S123F7A0367C3E36FD3E3C3A13F33E3A7C3E3A3D07CEFC3E38FE3E363D1B91C6017B01409A
|
||||
S123F7C016F869200516F87A22051F014101F6C6807B0141CC01F43B1A86341A89B75416EB
|
||||
S123F7E0F97F1B846B8E04010ECCE9A43BC6FF87B70516FCC11B82E6847B0142E6857B01C7
|
||||
S123F800431D014B30CC06676C8CC7876C8A6C886C867B0150C6087B0151C60C7B0152C6E0
|
||||
S123F820CE7B01537A0154C6107B01557A01567A0157C6CC7B0158C6E07B01597A015A7ADE
|
||||
S123F840015B7A015CC6077B015D7A015E7A015F1D01400107132004072022051E014101CC
|
||||
S123F860F7C6017B014A1B8F3D16F7B0C300FA6C84B754C90089006C823D16EBD416F7B095
|
||||
S123F880198206FD556BAB1E0146010FCCE9A43BCC014ACE000016FCC11B82CC20FC7B0199
|
||||
S123F8A0707A0171790172790173E6807B017CC720108737B746E388B745E6006BEA0174E8
|
||||
S123F8C03352E18025ECC6017B014616F7B0C300326C83B754C90089006C81200D16EBD4B7
|
||||
S123F8E016F7B0198116FD5522051F014601EE1B853D6CA869871F0144017F1E016108106C
|
||||
S123F900FC016049494949496C84C7876C822033FE0162FC0160C4078749B7C54656CD005C
|
||||
S123F920003BFC0160C4E03BC60334EE8216FD2BEA85AA846C8AB754EA81AA806C880C88E6
|
||||
S123F940801B86EC848C0667262CEC822628C6016B87B6016C840F6A86C720108737B745FB
|
||||
S123F960E38BB746E6E201646B403352E18625ECEE80E6866B001D0144FEE6871B883D6CE5
|
||||
S123F980AC3B6984E6848759B745E6E2E8F687B746E6E2E8F719EE02B764ED8A136C80CC12
|
||||
S123F9A01F40B756EE80181004642ECC1F40EE801810B7516B852721C140221D53EE886B36
|
||||
S123F9C000E6EAE8F753861012A6EAE8F64337AAB0EE826A00C601200C16EBD46284E68445
|
||||
S123F9E0C11225A0C71B863D14103D790011CC09395B105A12CF390016E82906EA22FEE7D0
|
||||
S123FA008005003DFEE78205003DFEE78405003DFEE78605003DFEE78805003DFEE78A05FC
|
||||
S123FA20003DFEE78C05003DFEE78E05003DFEE79005003DFEE79205003DFEE79405003DF2
|
||||
S123FA40FEE79605003DFEE79805003DFEE79A05003DFEE79C05003DFEE79E05003DFEE7F8
|
||||
S123FA60A005003DFEE7A205003DFEE7A405003DFEE7A605003DFEE7A805003DFEE7AA05DC
|
||||
S123FA80003DFEE7AC05003DFEE7AE05003DFEE7B005003DFEE7B205003DFEE7B405003DF2
|
||||
S123FAA0FEE7B605003DFEE7B805003DFEE7BA05003DFEE7BC05003DFEE7BE05003DFEE7F8
|
||||
S123FAC0C005003DFEE7C205003DFEE7C405003DFEE7C605003DFEE7C805003DFEE7CA05BC
|
||||
S123FAE0003DFEE7CC05003DFEE7CE05003DFEE7D005003DFEE7D205003DFEE7D405003DF2
|
||||
S123FB00FEE7D605003DFEE7D805003DFEE7DA05003DFEE7DC05003DFEE7DE05003DFEE7F7
|
||||
S123FB20E005003DFEE7E205003DFEE7E405003DFEE7E605003DFEE7E805003DFEE7EA059B
|
||||
S123FB40003DFEE7EC05003DFEE7EE05003DFEE7F005003DFEE7F205003DFEE7F405003DF1
|
||||
S123FB60FEE7F605003DFEE7F805003DFEE7FC05003D7900CB7900CA7900C87900C9C61A38
|
||||
S123FB80873B5AC85BC94CCB0C3A3D6BADC181230ECCE9D73BC68B87B70516FCC11B82E683
|
||||
S123FBA08016FC8404010ECCE9D73BC68F87B70516FCC11B82C7876C81202416EBD4EC8584
|
||||
S123FBC0E381B745E60016FC8404010ECCE9D73BC69887B70516FCC11B82EE81086E81E60E
|
||||
S123FBE08087AC8122D51B833D3BF63E3E2625CC3E4316FC73042178F63E432773C181221F
|
||||
S123FC006F16F7B07C3E417E3E3F793EC5C6017B3E3E205CF63EC587C3000187C33E4316E3
|
||||
S123FC20FC7304212A723EC5F63EC5F13E432640EE8434C7873BCE3E44343BF63EC516F0CF
|
||||
S123FC409C793E3EEEA7F63EC56B00C601202216F7B03BFC3E41C300C8B746FC3E3FC900D0
|
||||
S123FC608900353BEC8416FD3C1B822303793E3EC7303D3B4FCC2009D6CFEE806B00C60118
|
||||
S123FC8021C7303D6BAAC6016B854ECC8003C7202DA6805ACF16F7B0C3000A6C83B754C9F2
|
||||
S123FCA00089006C81201116EBD416F7B0198116FD552304698520044FCC80EBE6851B863A
|
||||
S123FCC03D16EBD420FB7C3ECB1C026A021D0268024C03014D01013D16F7B0FD3EC935FD8C
|
||||
S123FCE03EC73516FD3C252DF63EC6260AC6017B3EC64C01012006793EC64D010116F7B0B8
|
||||
S123FD00FD3ECBF33ECB7C3EC9CC0000B7C5C90089007C3EC73D4D01013D87D7B7C6270A6A
|
||||
S123FD2059B7C55545B7C50436F63D87D7B7C6270AB7C549B7C546560436F63DAC84270EAC
|
||||
S123FD4034B7C5E285A284B7C510FB302002AE82311B840540AC42270E34B7C5E241A2406C
|
||||
S123FD60B7C510FB302002AE403D04A401083D046401098300013D87C76C82EC8C261FEE73
|
||||
S123FD808EED86EC8811280DEC86CD0000116D82B746EC88116D846C8887C76C863D9727C3
|
||||
S123FDA009EE86B7C5CD00002008EE8DE686ED87B7C61135ECF010133B35ECF012ED841352
|
||||
S123FDC0E3B130B7C5CD0000356581A38CB7C5E28BA28A310446113669AF3137323433EEEA
|
||||
S123FDE0F01011B76532201F252A046403044539E78E2706EE8E87C7200BB7C5363469AF90
|
||||
S123FE00EEF013313A1810083A34A3B1B74620A33102209F4151B7C5415104A40108AE8E51
|
||||
S123FE2022EE2505ACF01024E7316D84698369826C886E863D3B341B9C16FD7730ECB5ED41
|
||||
S123FE40B505403BB704B7053A3D30E6E605E53037E1310460022504E61F2002E6E51AE59C
|
||||
S10DFE60330500000139010500001C
|
||||
S123FF80F9FEFA04FA0AFA10FA16FA1CFA22FA28FA2EFA34FA3AFA40FA46FA4CFA52FA580E
|
||||
S123FFA0FA5EFA64FA6AFA70FA76FA7CFA82FA88FA8EFA94FA9AFAA0FAA6FAACFAB2FAB8ED
|
||||
S123FFC0FABEFAC4FACAFAD0FAD6FADCFAE2FAE8FAEEFAF4FAFAFB00FB06FB0CFB12FB18C8
|
||||
S123FFE0FB1EFB24FB2AFB30FB36FB3CFB42FB48FB4EFB54FB5AFB60FB66F9EBFB6CF9EBB5
|
||||
S9030000FC
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,582 @@
|
|||
/************************************************************************************//**
|
||||
* \file Source/HCS12/mbrtu.c
|
||||
* \brief Bootloader Modbus RTU communication interface source file.
|
||||
* \ingroup Target_HCS12
|
||||
* \internal
|
||||
*----------------------------------------------------------------------------------------
|
||||
* C O P Y R I G H T
|
||||
*----------------------------------------------------------------------------------------
|
||||
* Copyright (c) 2023 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 */
|
||||
|
||||
|
||||
#if (BOOT_COM_MBRTU_ENABLE > 0)
|
||||
/****************************************************************************************
|
||||
* Type definitions
|
||||
****************************************************************************************/
|
||||
/** \brief Structure type with the layout of the UART related control registers. */
|
||||
typedef volatile struct
|
||||
{
|
||||
volatile blt_int8u scibdh; /**< baudrate control register [SBR 12..8] */
|
||||
volatile blt_int8u scibdl; /**< baudrate control register [SBR 8..0] */
|
||||
volatile blt_int8u scicr1; /**< control register 1 */
|
||||
volatile blt_int8u scicr2; /**< control register 2 */
|
||||
volatile blt_int8u scisr1; /**< status regsiter 1 */
|
||||
volatile blt_int8u scisr2; /**< status register 2 */
|
||||
volatile blt_int8u scidrh; /**< data register high (for ninth bit) */
|
||||
volatile blt_int8u scidrl; /**< data regsiter low */
|
||||
} tUartRegs; /**< sci related registers */
|
||||
|
||||
/** \brief Structure type with the layout of the timer related control registers. */
|
||||
typedef struct
|
||||
{
|
||||
volatile blt_int8u unused1; /**< input capture/output compare select */
|
||||
volatile blt_int8u unused2; /**< compare force register */
|
||||
volatile blt_int8u unused3; /**< output compare 7 mask register */
|
||||
volatile blt_int8u unused4; /**< output compare 7 data register */
|
||||
volatile blt_int16u tcnt; /**< timer counter register */
|
||||
} tTimerRegs; /**< timer related registers */
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Macro definitions
|
||||
****************************************************************************************/
|
||||
/** \brief Timeout for transmitting a byte in milliseconds. */
|
||||
#define MBRTU_BYTE_TX_TIMEOUT_MS (10u)
|
||||
|
||||
#if (BOOT_COM_MBRTU_CHANNEL_INDEX == 0)
|
||||
/** \brief Set UART base address to SCI0. */
|
||||
#define UART_REGS_BASE_ADDRESS (0x00c8)
|
||||
#elif (BOOT_COM_MBRTU_CHANNEL_INDEX == 1)
|
||||
/** \brief Set UART base address to SCI1. */
|
||||
#define UART_REGS_BASE_ADDRESS (0x00d0)
|
||||
#endif
|
||||
/** \brief Macro for accessing the UART related control registers. */
|
||||
#define UART ((volatile tUartRegs *)UART_REGS_BASE_ADDRESS)
|
||||
|
||||
/** \brief Base address for the timer related control registers. */
|
||||
#define TIMER_REGS_BASE_ADDRESS (0x0040)
|
||||
/** \brief Macro for accessing the flash related control registers. */
|
||||
#define TIMER ((volatile tTimerRegs *)TIMER_REGS_BASE_ADDRESS)
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Register definitions
|
||||
****************************************************************************************/
|
||||
/** \brief SCICR1 - parity type bit. */
|
||||
#define PT_BIT (0x01)
|
||||
/** \brief SCICR1 - parity enable bit. */
|
||||
#define PE_BIT (0x02)
|
||||
/** \brief SCICR1 - data format mode bit. */
|
||||
#define M_BIT (0x10)
|
||||
|
||||
/** \brief SCICR2 - transmitter enable bit. */
|
||||
#define TE_BIT (0x08)
|
||||
/** \brief SCICR2 - receiver enable bit. */
|
||||
#define RE_BIT (0x04)
|
||||
|
||||
/** \brief SCISR1 - parity error bit. */
|
||||
#define PF_BIT (0x01)
|
||||
/** \brief SCISR1 - framing error bit. */
|
||||
#define FE_BIT (0x02)
|
||||
/** \brief SCISR1 - receiver data register full bit. */
|
||||
#define RDRF_BIT (0x20)
|
||||
/** \brief SCISR1 - transmit complete bit. */
|
||||
#define TC_BIT (0x40)
|
||||
/** \brief SCISR1 - transmit data register empty bit. */
|
||||
#define TDRE_BIT (0x80)
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Local data declarations
|
||||
****************************************************************************************/
|
||||
/** \brief Stores the number of free running counter ticks that represents the 3.5
|
||||
* character delay time (T3_5) for Modbus RTU.
|
||||
*/
|
||||
static blt_int16u mbRtuT3_5Ticks;
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Function prototypes
|
||||
****************************************************************************************/
|
||||
static blt_bool MbRtuReceiveByte(blt_int8u *data);
|
||||
static void MbRtuTransmitByte(blt_int8u data, blt_bool end_of_packet);
|
||||
|
||||
|
||||
/************************************************************************************//**
|
||||
** \brief Initializes the Modbus RTU communication interface.
|
||||
** \attention It is the application's responsibility to initialize a timer peripheral
|
||||
** to have an upwards counting free running counter, which runs at 100 kHz.
|
||||
** \return none.
|
||||
**
|
||||
****************************************************************************************/
|
||||
void MbRtuInit(void)
|
||||
{
|
||||
blt_int16u baudrate_sbr0_12;
|
||||
blt_int16u startTimeTicks;
|
||||
blt_int16u deltaTimeTicks;
|
||||
blt_int16u currentTimeTicks;
|
||||
blt_int8u rxDummy;
|
||||
|
||||
/* the current implementation supports SCI0 and SCI1. throw an assertion error in
|
||||
* case a different UART channel is configured.
|
||||
*/
|
||||
ASSERT_CT((BOOT_COM_RS232_CHANNEL_INDEX == 0) || (BOOT_COM_RS232_CHANNEL_INDEX == 1));
|
||||
/* the SCI subsystem only supports 1 stopbit. */
|
||||
ASSERT_CT(BOOT_COM_MBRTU_STOPBITS == 1);
|
||||
|
||||
/* calculate the 3.5 character delay time in free running counter ticks. note that
|
||||
* the free running counter runs at 100 kHz, so one tick is 10 us. For baudrates >
|
||||
* 19200 bps, it can be fixed to 1750 us.
|
||||
*/
|
||||
if (BOOT_COM_MBRTU_BAUDRATE > 19200)
|
||||
{
|
||||
/* set T3_5 time to a fixed value of 1750 us. */
|
||||
mbRtuT3_5Ticks = 175;
|
||||
}
|
||||
/* calculate the T3_5 time, because the baudrate is <= 19200 bps. */
|
||||
else
|
||||
{
|
||||
/* T3_5 [us * 10] = 3.5 * Tchar = 3.5 * 11 * 100000 / baudrate = 3850000 / baudrate.
|
||||
* make sure to do integer round up though. Make sure to add 1 to adjust for 10us
|
||||
* timer resolution inaccuracy.
|
||||
*/
|
||||
mbRtuT3_5Ticks = (blt_int16u)(((3850000UL + (BOOT_COM_MBRTU_BAUDRATE - 1U)) /
|
||||
BOOT_COM_MBRTU_BAUDRATE) + 1);
|
||||
}
|
||||
|
||||
/* reset the SCI subsystem's configuration, which automatically configures it for
|
||||
* 8,n,1 communication mode.
|
||||
*/
|
||||
UART->scicr2 = 0;
|
||||
UART->scicr1 = 0;
|
||||
UART->scibdh = 0;
|
||||
UART->scibdl = 0;
|
||||
/* configure the baudrate from BOOT_COM_MBRTU_BAUDRATE */
|
||||
baudrate_sbr0_12 = (BOOT_CPU_SYSTEM_SPEED_KHZ * 1000ul) / 16 / BOOT_COM_MBRTU_BAUDRATE;
|
||||
/* baudrate register value cannot be more than 13 bits */
|
||||
ASSERT_RT((baudrate_sbr0_12 & 0xe000) == 0);
|
||||
/* write first MSB then LSB for the baudrate to latch */
|
||||
UART->scibdh = (blt_int8u)(baudrate_sbr0_12 >> 8);
|
||||
UART->scibdl = (blt_int8u)baudrate_sbr0_12;
|
||||
/* odd parity enabled? */
|
||||
#if (BOOT_COM_MBRTU_PARITY == 1)
|
||||
UART->scicr1 |= M_BIT | PE_BIT | PT_BIT;
|
||||
#endif
|
||||
/* even parity enabled? */
|
||||
#if (BOOT_COM_MBRTU_PARITY == 2)
|
||||
UART->scicr1 |= M_BIT | PE_BIT;
|
||||
#endif
|
||||
/* enable the transmitted and receiver */
|
||||
UART->scicr2 |= (TE_BIT | RE_BIT);
|
||||
|
||||
/* enable the receiver output to be able to receive. */
|
||||
MbRtuDriverOutputControlHook(BLT_FALSE);
|
||||
|
||||
/* wait for idle line detection. This is T3_5 time after reception of the last byte. */
|
||||
startTimeTicks = MbRtuFreeRunningCounterGet();
|
||||
do
|
||||
{
|
||||
/* service the watchdog. */
|
||||
CopService();
|
||||
/* get the current value of the free running counter. */
|
||||
currentTimeTicks = MbRtuFreeRunningCounterGet();
|
||||
/* check if a byte was received while waiting for the idle line. */
|
||||
if (MbRtuReceiveByte(&rxDummy) == BLT_TRUE)
|
||||
{
|
||||
/* restart the idle line detection. */
|
||||
startTimeTicks = currentTimeTicks;
|
||||
}
|
||||
/* calculate the number of ticks that elapsed since the start or since the last
|
||||
* byte reception. Note that this calculation works, even if the free running counter
|
||||
* overflowed.
|
||||
*/
|
||||
deltaTimeTicks = currentTimeTicks - startTimeTicks;
|
||||
}
|
||||
while (deltaTimeTicks < mbRtuT3_5Ticks);
|
||||
} /*** end of MbRtuInit ***/
|
||||
|
||||
|
||||
/************************************************************************************//**
|
||||
** \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 MbRtuTransmitPacket(blt_int8u *data, blt_int8u len)
|
||||
{
|
||||
blt_int16u data_index;
|
||||
blt_int16u checksum;
|
||||
blt_bool endOfPacket = BLT_FALSE;
|
||||
/* Made static to lower stack load and +5 for Modbus RTU packet overhead. */
|
||||
static blt_int8u txPacket[BOOT_COM_MBRTU_TX_MAX_DATA + 5];
|
||||
|
||||
/* On Modbus RTU, there must always be a T3_5 time separation between packet trans-
|
||||
* missions.
|
||||
*
|
||||
* This bootloader uses XCP packets embedded in Modbus RTU packets. The XCP
|
||||
* communication is always request / response based. That means that this packet is
|
||||
* a response packet and it will only be sent, after the reception of a request packet.
|
||||
*
|
||||
* A response packet is only deemed valid, after the T3_5 idle time. This module
|
||||
* implements the T3_5 end-of-packet time event detection. Consequently, it is already
|
||||
* guaranteed that there is T3_5 between subsequent packet transmissions. As such, no
|
||||
* further T3_5 wait time is needed here.
|
||||
*/
|
||||
|
||||
/* verify validity of the len-parameter */
|
||||
ASSERT_RT(len <= BOOT_COM_MBRTU_TX_MAX_DATA);
|
||||
|
||||
/* construct the Modbus RTU packet. start by adding the slave address. */
|
||||
txPacket[0] = BOOT_COM_MBRTU_NODE_ID;
|
||||
/* add the user-defined function code for embedding XCP packets. */
|
||||
txPacket[1] = BOOT_COM_MBRTU_FCT_CODE_USER_XCP;
|
||||
/* add the XCP packet length. */
|
||||
txPacket[2] = len;
|
||||
|
||||
/* copy the XCP packet data. */
|
||||
CpuMemCopy((blt_int32u)&txPacket[3], (blt_int32u)data, len);
|
||||
/* calculate the checksum for the packet, including slave address, function code and
|
||||
* extra XCP length.
|
||||
*/
|
||||
checksum = MbRtuCrcCalculate(&txPacket[0], len + 3);
|
||||
/* add the checksum at the end of the packet */
|
||||
txPacket[len + 3] = (blt_int8u)(checksum & 0xff);
|
||||
txPacket[len + 4] = (blt_int8u)(checksum >> 8);
|
||||
|
||||
/* enable the driver output to be able to send. just make sure to wait a little around
|
||||
* the togglng of the DE/NRE pin.
|
||||
*/
|
||||
MbRtuDelay(BOOT_COM_MBRTU_DRIVER_OUTPUT_ENABLE_DELAY_US);
|
||||
MbRtuDriverOutputControlHook(BLT_TRUE);
|
||||
MbRtuDelay(BOOT_COM_MBRTU_DRIVER_OUTPUT_ENABLE_DELAY_US);
|
||||
|
||||
/* transmit all the packet bytes one-by-one */
|
||||
for (data_index = 0; data_index < (len + 5); data_index++)
|
||||
{
|
||||
/* keep the watchdog happy */
|
||||
CopService();
|
||||
/* last byte of the packet? */
|
||||
if (data_index == ((len + 5) - 1))
|
||||
{
|
||||
/* update the end of packet flag. */
|
||||
endOfPacket = BLT_TRUE;
|
||||
}
|
||||
/* write byte */
|
||||
MbRtuTransmitByte(txPacket[data_index], endOfPacket);
|
||||
}
|
||||
/* enable the receiver output to be able to receive again. just make sure to wait a
|
||||
* little around the togglng of the DE/NRE pin.
|
||||
*/
|
||||
MbRtuDelay(BOOT_COM_MBRTU_DRIVER_OUTPUT_DISABLE_DELAY_US);
|
||||
MbRtuDriverOutputControlHook(BLT_FALSE);
|
||||
MbRtuDelay(BOOT_COM_MBRTU_DRIVER_OUTPUT_DISABLE_DELAY_US);
|
||||
} /*** end of MbRtuTransmitPacket ***/
|
||||
|
||||
|
||||
/************************************************************************************//**
|
||||
** \brief Receives a communication interface packet if one is present.
|
||||
** \param data Pointer to byte array where the data is to be stored.
|
||||
** \param len Pointer where the length of the packet is to be stored.
|
||||
** \return BLT_TRUE if a packet was received, BLT_FALSE otherwise.
|
||||
**
|
||||
****************************************************************************************/
|
||||
blt_bool MbRtuReceivePacket(blt_int8u *data, blt_int8u *len)
|
||||
{
|
||||
blt_bool result = BLT_FALSE;
|
||||
blt_int8u rxByte;
|
||||
blt_int16u currentTimeTicks;
|
||||
blt_int16u deltaTimeTicks;
|
||||
blt_int16u checksumCalculated;
|
||||
blt_int16u checksumReceived;
|
||||
/* Made static to lower stack load and +5 for Modbus RTU packet overhead. */
|
||||
static blt_int8u rxPacket[BOOT_COM_MBRTU_RX_MAX_DATA + 5];
|
||||
static blt_int8u rxLength = 0;
|
||||
static blt_bool packetRxInProgress = BLT_FALSE;
|
||||
static blt_int16u lastRxByteTimeTicks = 0;
|
||||
|
||||
/* get the current value of the free running counter. */
|
||||
currentTimeTicks = MbRtuFreeRunningCounterGet();
|
||||
|
||||
/* check for a newly received byte. */
|
||||
if (MbRtuReceiveByte(&rxByte) == BLT_TRUE)
|
||||
{
|
||||
/* store the time at which the byte was received. */
|
||||
lastRxByteTimeTicks = currentTimeTicks;
|
||||
/* is this the potential start of a new packet? */
|
||||
if (packetRxInProgress == BLT_FALSE)
|
||||
{
|
||||
/* initialize the reception of a new packet. */
|
||||
rxLength = 0;
|
||||
packetRxInProgress = BLT_TRUE;
|
||||
}
|
||||
/* store the newly received byte in the buffer, with buffer overrun protection. */
|
||||
if (rxLength < (sizeof(rxPacket)/sizeof(rxPacket[0])))
|
||||
{
|
||||
rxPacket[rxLength] = rxByte;
|
||||
rxLength++;
|
||||
}
|
||||
/* buffer overrun occurred. received packet was longer than supported so discard
|
||||
* the packet to try and sync to the next one.
|
||||
*/
|
||||
else
|
||||
{
|
||||
/* discard the partially received packet. */
|
||||
packetRxInProgress = BLT_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
/* only attempt to detect the end of packet, when a reception is in progress. */
|
||||
if (packetRxInProgress == BLT_TRUE)
|
||||
{
|
||||
/* calculate the number of ticks that elapsed since the last byte reception. note
|
||||
* that this calculation works, even if the free running counter overflowed.
|
||||
*/
|
||||
deltaTimeTicks = currentTimeTicks - lastRxByteTimeTicks;
|
||||
/* packet reception is assumed complete after T3_5 of not receiving new data. */
|
||||
if (deltaTimeTicks >= mbRtuT3_5Ticks)
|
||||
{
|
||||
/* a Modbus RTU packet consists of at least the address field, function code and
|
||||
* 16-bit CRC. Validate the packet length based on this info.
|
||||
*/
|
||||
if (rxLength >= 4)
|
||||
{
|
||||
/* calculate the packet checksum. */
|
||||
checksumCalculated = MbRtuCrcCalculate(&rxPacket[0], rxLength - 2);
|
||||
/* extract the checksum received with the packet. */
|
||||
checksumReceived = rxPacket[rxLength - 2] | (rxPacket[rxLength - 1] << 8);
|
||||
/* only continue with packet processing if the checksums match. */
|
||||
if (checksumCalculated == checksumReceived)
|
||||
{
|
||||
/* we are only interested in Modbus RTU packets that are addressed to us and
|
||||
* have an XCP packet embedded.
|
||||
*/
|
||||
if ( (rxPacket[0] == BOOT_COM_MBRTU_NODE_ID) &&
|
||||
(rxPacket[1] == BOOT_COM_MBRTU_FCT_CODE_USER_XCP) )
|
||||
{
|
||||
/* An XCP packet embedded in a Modbus RTU packet has an extra XCP packet
|
||||
* length value. Use it to double-check that the packet length is valid.
|
||||
*/
|
||||
if (rxPacket[2] == (rxLength - 5))
|
||||
{
|
||||
/* copy the packet's XCP data. */
|
||||
CpuMemCopy((blt_int32u)data, (blt_int32u)&rxPacket[3], rxLength - 5);
|
||||
/* set the packet's XCP length. */
|
||||
*len = rxLength - 5;
|
||||
/* update the result to success to indicate that this XCP packet is ready
|
||||
* for processing.
|
||||
*/
|
||||
result = BLT_TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/* reset the packet reception in progress flag, to be able to receive the next. */
|
||||
packetRxInProgress = BLT_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
/* give the result back to the caller. */
|
||||
return result;
|
||||
} /*** end of MbRtuReceivePacket ***/
|
||||
|
||||
|
||||
/************************************************************************************//**
|
||||
** \brief Receives a communication interface byte if one is present.
|
||||
** \param data Pointer to byte where the data is to be stored.
|
||||
** \return BLT_TRUE if a byte was received, BLT_FALSE otherwise.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static blt_bool MbRtuReceiveByte(blt_int8u *data)
|
||||
{
|
||||
blt_bool result = BLT_FALSE;
|
||||
blt_int8u rxFlags;
|
||||
|
||||
/* read the reception related status bits. this is also the first step in clearing the
|
||||
* error flags.
|
||||
*/
|
||||
rxFlags = UART->scisr1 & (RDRF_BIT | FE_BIT | PF_BIT);
|
||||
|
||||
/* check if a new byte was received by means of the RDRF-bit */
|
||||
if ((rxFlags & RDRF_BIT) != 0)
|
||||
{
|
||||
/* update the result */
|
||||
result = BLT_TRUE;
|
||||
/* check for a frame error. the frame error check is important because it can detect
|
||||
* a missing stopbit. on an RS485 bus without bias resistors, the A-B differential
|
||||
* voltage is 0. for an RS485 transceiver this is neither a 0 nor a 1 bit, so
|
||||
* undefined. most RS485 transceivers feature a reception failsafe function to drive
|
||||
* the Rx output (going to the UART Rx) to a defined state of logic 1. in case the
|
||||
* used RS485 transceiver doesn't have such a feature, it typically leaves the Rx
|
||||
* output in a logic 0 state. this means that after the stop bit of the last packet
|
||||
* byte, the UART Rx input sees a logic 0, and assumes it is a start bit. the
|
||||
* remaining data bits will always be 0 and, most importantly no stop bit is
|
||||
* present, causing a framing error. Long story short: if you don't check for the
|
||||
* framing error flag, you might receive an extra byte with value 0, which is not
|
||||
* actually transmitted on the RS485 bus. you can catch and ignore this byte by doing
|
||||
* a frame error check.
|
||||
*/
|
||||
if ((rxFlags & FE_BIT) != 0)
|
||||
{
|
||||
/* ignore the byte because of a detected frame error. Note that the frame error
|
||||
* flag auto-resets after reading the UART data register, which is done later on in
|
||||
* this function.
|
||||
*/
|
||||
result = BLT_FALSE;
|
||||
}
|
||||
#if (BOOT_COM_MBRTU_PARITY > 0)
|
||||
/* check for a parity error. */
|
||||
if ((rxFlags & PF_BIT) != 0)
|
||||
{
|
||||
/* ignore the byte because of a detected parity error. Note that the parity error
|
||||
* flag auto-resets after reading the UART data register, which is done later on in
|
||||
* this function.
|
||||
*/
|
||||
result = BLT_FALSE;
|
||||
}
|
||||
#endif
|
||||
/* store the received byte. note that this is also the second and last step in
|
||||
* clearing the error flags.
|
||||
*/
|
||||
data[0] = UART->scidrl;
|
||||
}
|
||||
/* give the result back to the caller. */
|
||||
return result;
|
||||
} /*** end of MbRtuReceiveByte ***/
|
||||
|
||||
|
||||
/************************************************************************************//**
|
||||
** \brief Transmits a communication interface byte.
|
||||
** \param data Value of byte that is to be transmitted.
|
||||
** \param end_of_packet BLT_TRUE if this is the last byte of the packet, BLT_FALSE
|
||||
** otherwise.
|
||||
** \return none.
|
||||
**
|
||||
****************************************************************************************/
|
||||
static void MbRtuTransmitByte(blt_int8u data, blt_bool end_of_packet)
|
||||
{
|
||||
blt_int32u timeout;
|
||||
|
||||
/* write byte to transmit holding register. */
|
||||
UART->scidrl = data;
|
||||
/* set timeout time to wait for transmit completion. */
|
||||
timeout = TimerGet() + MBRTU_BYTE_TX_TIMEOUT_MS;
|
||||
|
||||
/* not the last byte of the packet? */
|
||||
if (end_of_packet == BLT_FALSE)
|
||||
{
|
||||
/* wait for tx holding register to be empty */
|
||||
while ((UART->scisr1 & TDRE_BIT) == 0)
|
||||
{
|
||||
/* keep the watchdog happy. */
|
||||
CopService();
|
||||
/* break loop upon timeout. this would indicate a hardware failure. */
|
||||
if (TimerGet() > timeout)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* this is the last byte of a packet. */
|
||||
else
|
||||
{
|
||||
/* wait for tx complete flag to be set. this is needed for the last byte, otherwise
|
||||
* the transceiver's transmit output gets disabled with
|
||||
* MbRtuDriverOutputControlHook() before the byte reception completes.
|
||||
*/
|
||||
while ((UART->scisr1 & TC_BIT) == 0)
|
||||
{
|
||||
/* keep the watchdog happy. */
|
||||
CopService();
|
||||
/* break loop upon timeout. this would indicate a hardware failure. */
|
||||
if (TimerGet() > timeout)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} /*** end of MbRtuTransmitByte ***/
|
||||
|
||||
|
||||
/************************************************************************************//**
|
||||
** \brief Obtains the counter value of the 100 kHz free running counter. Note that
|
||||
** each count represent 10 us. The Modbus RTU communication module uses this
|
||||
** free running counter for Modbus RTU packet timing related purposes. The
|
||||
** already available 1 ms timer does not have the needed resolution for this
|
||||
** purpose.
|
||||
** \details This functionality reuses the timer's free running counter, which the
|
||||
** timer module already initialized to count at BOOT_CPU_SYSTEM_SPEED_KHZ/4.
|
||||
** \return Current value of the free running counter.
|
||||
**
|
||||
****************************************************************************************/
|
||||
blt_int16u MbRtuFreeRunningCounterGet(void)
|
||||
{
|
||||
static blt_bool initialized = BLT_FALSE;
|
||||
static blt_int16u counts_per_ten_us = 0;
|
||||
static blt_int16u free_running_counter_last = 0;
|
||||
static blt_int16u ten_us_tick_counter = 0;
|
||||
blt_int16u free_running_counter_now;
|
||||
blt_int16u delta_counts;
|
||||
blt_int16u ten_us_ticks;
|
||||
|
||||
/* perform one-time initialization.*/
|
||||
if (initialized == BLT_FALSE)
|
||||
{
|
||||
/* set the flag to make sure that this part only runs once. */
|
||||
initialized = BLT_TRUE;
|
||||
/* calculate how many counts of the timer's free running counter equals 10us,
|
||||
* because one count of a 100 kHz counter equals that.
|
||||
*/
|
||||
counts_per_ten_us = BOOT_CPU_SYSTEM_SPEED_KHZ / 4 / 100;
|
||||
/* initialize current value of the timer's free running counter. */
|
||||
free_running_counter_last = TIMER->tcnt;
|
||||
}
|
||||
|
||||
/* get the current value of the free running counter. */
|
||||
free_running_counter_now = TIMER->tcnt;
|
||||
/* calculate the number of counts that passed since the detection of the last
|
||||
* ten microseconds event. Note that this calculation also works, in case the free
|
||||
* running counter overflowed, thanks to integer math.
|
||||
*/
|
||||
delta_counts = free_running_counter_now - free_running_counter_last;
|
||||
|
||||
/* did one or more ten microsecond counts pass since the last event? */
|
||||
if (delta_counts >= counts_per_ten_us)
|
||||
{
|
||||
/* calculate how many ten microsecond counts passed. */
|
||||
ten_us_ticks = delta_counts / counts_per_ten_us;
|
||||
/* update the counter. */
|
||||
ten_us_tick_counter += ten_us_ticks;
|
||||
/* store the counter value of the last event to detect the next one. */
|
||||
free_running_counter_last += (ten_us_ticks * counts_per_ten_us);
|
||||
}
|
||||
|
||||
/* return the current value of the 100 kHz free running counter to the caller. */
|
||||
return ten_us_tick_counter;
|
||||
} /*** end of MbRtuFreeRunningCounterGet ***/
|
||||
#endif /* BOOT_COM_MBRTU_ENABLE > 0 */
|
||||
|
||||
/*********************************** end of mbrtu.c ************************************/
|
|
@ -64,8 +64,6 @@ typedef struct
|
|||
#define TIMER_REGS_BASE_ADDRESS (0x0040)
|
||||
/** \brief Macro for accessing the flash related control registers. */
|
||||
#define TIMER ((volatile tTimerRegs *)TIMER_REGS_BASE_ADDRESS)
|
||||
/** \brief Number of free running counter ticks in one millisecond. */
|
||||
#define TIMER_COUNTS_PER_MS (BOOT_CPU_SYSTEM_SPEED_KHZ)
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
|
@ -76,16 +74,26 @@ typedef struct
|
|||
*/
|
||||
static blt_int32u millisecond_counter;
|
||||
|
||||
/** \brief Buffer for storing the last value of the free running counter. */
|
||||
static blt_int16u free_running_counter_last;
|
||||
|
||||
/** \brief Stores the number of counts of the free running counter that equals one
|
||||
* millisecond.
|
||||
*/
|
||||
static blt_int16u counts_per_millisecond;
|
||||
|
||||
|
||||
/****************************************************************************************
|
||||
* Register definitions
|
||||
****************************************************************************************/
|
||||
/** \brief TSCR1 - timer enable bit. */
|
||||
#define TEN_BIT (0x80)
|
||||
/** \brief TIOS - channel 0 ic/oc configuration bit. */
|
||||
#define IOS0_BIT (0x01)
|
||||
/** \brief TFLG1 - channel 0 ic/oc event flag bit. */
|
||||
#define C0F_BIT (0x01)
|
||||
/** \brief TSCR2 - timer prescaler select bit 0. */
|
||||
#define PR0_BIT (0x01)
|
||||
/** \brief TSCR2 - timer prescaler select bit 1. */
|
||||
#define PR1_BIT (0x02)
|
||||
/** \brief TSCR2 - timer prescaler select bit 2. */
|
||||
#define PR2_BIT (0x04)
|
||||
|
||||
|
||||
/************************************************************************************//**
|
||||
|
@ -95,21 +103,21 @@ static blt_int32u millisecond_counter;
|
|||
****************************************************************************************/
|
||||
void TimerInit(void)
|
||||
{
|
||||
/* reset the timer configuration. note that this also sets the default prescaler
|
||||
* to 1, so the free running counter runs at the same speed as the system
|
||||
* (BOOT_CPU_SYSTEM_SPEED_KHZ).
|
||||
*/
|
||||
/* make sure the timer system is in its reset state. */
|
||||
TimerReset();
|
||||
/* configure timer channel 0 as a 1 millisecond software timer */
|
||||
TIMER->tios |= IOS0_BIT;
|
||||
/* make sure timer 0 interrupt flag is cleared */
|
||||
TIMER->tflg1 = C0F_BIT;
|
||||
/* generate output compare event in 1 milliseconds from now */
|
||||
TIMER->tc[0] = TIMER->tcnt + TIMER_COUNTS_PER_MS;
|
||||
/* enable the timer subsystem */
|
||||
/* S12 derivatives support system speeds up to 32 MHz. Typical speeds are a multiple
|
||||
* of 4 MHz. Scale the timer's free running counter down a bit to get a better
|
||||
* time range between free running counter overflows. Use a fixed prescaler of 4.
|
||||
*/
|
||||
TIMER->tscr2 &= ~(PR2_BIT | PR1_BIT | PR0_BIT);
|
||||
TIMER->tscr2 |= PR1_BIT;
|
||||
/* calculate how many counts equal 1 millisecond. */
|
||||
counts_per_millisecond = BOOT_CPU_SYSTEM_SPEED_KHZ/4;
|
||||
/* enable the timer subsystem to start the free running counter. */
|
||||
TIMER->tscr1 |= TEN_BIT;
|
||||
/* reset the millisecond counter value */
|
||||
/* initialize remaining locals. */
|
||||
millisecond_counter = 0;
|
||||
free_running_counter_last = TIMER->tcnt;
|
||||
} /*** end of TimerInit ***/
|
||||
|
||||
|
||||
|
@ -141,15 +149,27 @@ void TimerReset(void)
|
|||
****************************************************************************************/
|
||||
void TimerUpdate(void)
|
||||
{
|
||||
/* check if the millisecond event occurred */
|
||||
if ((TIMER->tflg1 & C0F_BIT) == C0F_BIT)
|
||||
blt_int16u free_running_counter_now;
|
||||
blt_int16u delta_counts;
|
||||
blt_int16u ms_counts;
|
||||
|
||||
/* get the current value of the free running counter. */
|
||||
free_running_counter_now = TIMER->tcnt;
|
||||
/* calculate the number of counts that passed since the detection of the last
|
||||
* millisecond event. Note that this calculation also works, in case the free running
|
||||
* counter overflowed, thanks to integer math.
|
||||
*/
|
||||
delta_counts = free_running_counter_now - free_running_counter_last;
|
||||
|
||||
/* did one or more milliseconds pass since the last event? */
|
||||
if (delta_counts >= counts_per_millisecond)
|
||||
{
|
||||
/* make sure timer 0 interrupt flag is cleared */
|
||||
TIMER->tflg1 = C0F_BIT;
|
||||
/* generate output compare event in 1 milliseconds from now */
|
||||
TIMER->tc[0] += TIMER_COUNTS_PER_MS;
|
||||
/* increment the millisecond counter */
|
||||
millisecond_counter++;
|
||||
/* calculate how many milliseconds passed. */
|
||||
ms_counts = delta_counts / counts_per_millisecond;
|
||||
/* update the millisecond counter. */
|
||||
millisecond_counter += ms_counts;
|
||||
/* store the counter value of the last millisecond event, to detect the next one. */
|
||||
free_running_counter_last += (ms_counts * counts_per_millisecond);
|
||||
}
|
||||
} /*** end of TimerUpdate ***/
|
||||
|
||||
|
|
Loading…
Reference in New Issue