Compare commits
12 Commits
master
...
pm35-uart-
| Author | SHA1 | Date | |
|---|---|---|---|
| 378e06a281 | |||
| 5d9818291b | |||
| c6c9128238 | |||
| 419d6b17dc | |||
| e3d43ef279 | |||
| 34a95bc553 | |||
| 1ce42a1877 | |||
| 316dd52f99 | |||
| 2a9f42331c | |||
| ee7dce4615 | |||
| a3633d8ede | |||
| df719229b7 |
11
.gitignore
vendored
11
.gitignore
vendored
@@ -1,2 +1,13 @@
|
||||
/Debug/
|
||||
/UKSSTMS320F28335.CS_/
|
||||
/Bin/UKSSTMS320F28335_*.bin
|
||||
/Bin/LoggerFix/
|
||||
/Bin/LoggerEepromFix/
|
||||
/Bin/Rs232FifoTest/
|
||||
/Bin/Rs232NoFifoTest/
|
||||
/Bin/UartFifoTest/
|
||||
/Bin/*.pending
|
||||
/UKSSTMS320F28335/Generated/
|
||||
/Bin/FirmwareIdentity/
|
||||
/Bin/*.bin.manifest.json
|
||||
/Bin/*.bin.sha256
|
||||
|
||||
BIN
Bin/GAS_M95M02/UKSSTMS320F28335_GAS_M95M02.bin
Normal file
BIN
Bin/GAS_M95M02/UKSSTMS320F28335_GAS_M95M02.bin
Normal file
Binary file not shown.
41
Bin/GAS_M95M02/UKSSTMS320F28335_GAS_M95M02.bin.manifest.json
Normal file
41
Bin/GAS_M95M02/UKSSTMS320F28335_GAS_M95M02.bin.manifest.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"schema": 1,
|
||||
"product": "Balsam-167-PM35",
|
||||
"target": "TMS320F28335",
|
||||
"version": [
|
||||
1,
|
||||
1,
|
||||
2
|
||||
],
|
||||
"build_id": "c6c9128+",
|
||||
"built_at_utc": "2026-10-09T13:10:25+00:00",
|
||||
"source": {
|
||||
"commit": "c6c91282387adc789a7ebbc6f7e763d02b549789",
|
||||
"dirty": true
|
||||
},
|
||||
"templates": {
|
||||
"commit": "86ece3ea907cc92db73390eaae7551dd01b54e2c",
|
||||
"dirty": true
|
||||
},
|
||||
"identity_contract": 1,
|
||||
"identity_register_count": 12,
|
||||
"eeprom": "M95M02",
|
||||
"eeprom_bytes": 262144,
|
||||
"firmware_limit_bytes": 261884,
|
||||
"gas": {
|
||||
"enabled": true,
|
||||
"version": 1,
|
||||
"profile": 167,
|
||||
"info_words": 8,
|
||||
"register_count": 128,
|
||||
"transports": [
|
||||
"modbus_rtu",
|
||||
"ump_service_can"
|
||||
],
|
||||
"info_base": 24320,
|
||||
"register_base": 20480
|
||||
},
|
||||
"file": "UKSSTMS320F28335_GAS_M95M02.bin",
|
||||
"size_bytes": 33174,
|
||||
"sha256": "a1c186e5f114ea2f77ac5f18a60424c79f53b1e3a49e0343ac9bd96979f0347e"
|
||||
}
|
||||
1
Bin/GAS_M95M02/UKSSTMS320F28335_GAS_M95M02.bin.sha256
Normal file
1
Bin/GAS_M95M02/UKSSTMS320F28335_GAS_M95M02.bin.sha256
Normal file
@@ -0,0 +1 @@
|
||||
a1c186e5f114ea2f77ac5f18a60424c79f53b1e3a49e0343ac9bd96979f0347e UKSSTMS320F28335_GAS_M95M02.bin
|
||||
16
Bin/GAS_M95M02/profile-comparison.json
Normal file
16
Bin/GAS_M95M02/profile-comparison.json
Normal file
@@ -0,0 +1,16 @@
|
||||
[
|
||||
{
|
||||
"after_bytes": 32472,
|
||||
"profile": 0,
|
||||
"gas_added_bytes": 0,
|
||||
"binary_identical": true,
|
||||
"before_bytes": 32472
|
||||
},
|
||||
{
|
||||
"after_bytes": 33174,
|
||||
"profile": 1,
|
||||
"gas_added_bytes": 410,
|
||||
"binary_identical": false,
|
||||
"before_bytes": 32764
|
||||
}
|
||||
]
|
||||
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
:20000000AA0800000000000000000000000000000000000098B1830200005FB300FFC0DAB5
|
||||
:20000000AA08000000000000000000000000000000000000B5B98B02000000C000FFC0DADA
|
||||
:2000200000000000C1C081C1400101C3C003800241C201C6C006800741C70005C1C581C4C4
|
||||
:20004000400401CCC00C800D41CD000FC1CF81CE400E000AC1CA81CB400B01C9C0098008A5
|
||||
:2000600041C801D8C018801941D9001BC1DB81DA401A001EC1DE81DF401F01DDC01D801CD4
|
||||
@@ -15,7 +15,7 @@
|
||||
:2001C0004054019CC05C805D419D005FC19F819E405E005AC19A819B405B0199C0598058A4
|
||||
:2001E00041980188C04880494189004BC18B818A404A004EC18E818F404F018DC04D804C33
|
||||
:20020000418C0044C184818540450187C047804641860182C042804341830041C181818051
|
||||
:200220004040C0FF40DE00000000000000000000C701B9019B0958090000000000000000DA
|
||||
:200220004040C0FFC0DE00000000000000000000C701B9019B09580900000000000000005A
|
||||
:20024000CE01B7018A09600948130D136C13F9125E076A07D509E7090C138D130C13EF1293
|
||||
:200260006A075107E709C609EC0ECE0EB10D340DC806AB0256030E00FB0EC90EC20D040D7F
|
||||
:20028000D106B1025C0311000105F804000000006E02D708000000000A05050500000000FA
|
||||
@@ -23,865 +23,997 @@
|
||||
:2002C000FFFF45DC00000000FFFF46DC00000000FFFF47DC00000000FFFF48DC000000009C
|
||||
:2002E000FFFF51DC00000000FFFF54DC00000000FFFF55DC00000000EEFF68DC00001BD654
|
||||
:20030000B738D79AFC3FA84C79BF0000000000000000000000000000000000000000000016
|
||||
:200320000000FFFFACDE00000000FFFFADDE00000000FFFFAEDE00000000FFFFAFDE000097
|
||||
:200340000000FFFFB0DE00000000FFFFB1DE00000000FFFFB2DE00000000FFFFB3DE000067
|
||||
:200360000000FFFFA4DD00000000FFFFA5DD00000000FFFFA6DD00000000FFFFA7DD00007B
|
||||
:200380000000F4FFB4DD00000000000000000000C89C0000FA9C0000C39C0000BE9C000026
|
||||
:2003A000FFFFCEDE00000000FFFFCFDE00000000FEFFD4DE000000000000FEFFD6DE000088
|
||||
:2003C00000000000FEFFD8DE000000000000FEFFDADE000000000000EEFF98DE00004A0CFC
|
||||
:200320000000FFFF72DF00000000FFFF73DF00000000FFFF74DF00000000FFFF75DF00007B
|
||||
:200340000000FFFF76DF00000000FFFF77DF00000000FFFF78DF00000000FFFF79DF00004B
|
||||
:200360000000FFFF00DF00000000FFFF01DF00000000FFFF02DF00000000FFFF03DF000003
|
||||
:200380000000F4FF10DF00000000000000000000FCA300002EA40000F7A30000F2A30000DB
|
||||
:2003A000FFFF58DF00000000FFFF59DF00000000FEFF66DF000000000000FEFF68DF00004C
|
||||
:2003C00000000000FEFF6ADF000000000000FEFF6CDF000000000000EEFF2ADD00004A0C45
|
||||
:2003E000023E4A0C023E0000803F0000803F6C09F93B6C09F93B6C09F93B6C09F93B000005
|
||||
:20040000803FF0FFB0DA00003F0006005B004F0066006D007D0007007F006F004000000030
|
||||
:200420000000000079000000FFFF37DE00000600FFFF39DE00000000FFFF3ADE00000000FF
|
||||
:20044000FEFF3EDE000000000000FFFFC2DE00000000FFFFC3DE00000000FFFFC4DE0000A6
|
||||
:200460000100FFFFC5DE00000000FFFFF4DE00000000FFFFF5DE00000000FFFFF6DE000067
|
||||
:200480000000FEFF28DF000055B30000FEFF2ADF000055B30000FEFF2CDF0000000000003A
|
||||
:2004A000FEFF2EDF000000000000FFFFE0DE00000000FFFFE1DE00000000FBFF1EDF0000C2
|
||||
:2004C00008000C00100000000400FFFF23DF00000A00FFFF24DF00000100FFFF3EDD0000CF
|
||||
:2004E0000100FFFF3FDD00000100FEFF34DF000000000000FEFF36DF000000000000FFFFC0
|
||||
:2005000000D000000100FFFFC0DD00000000FFFF41DC00000000FFFF27DF00000000000050
|
||||
:020520000000D9
|
||||
:200522005F330000008002FEA4C5A988013B008FC0DBC7924196A9A8A681A71E1F76710331
|
||||
:20054200C7CC00E041CA4296C7FF01900B9842CCFFFDA98803564201A91CFF03A9180002E8
|
||||
:20056200A6CA429682FEC796060010E70B0001E8EAFA20E740000DE8BA9E6FE819F000E7A4
|
||||
:20058200100000E7490000E70000007710E740004076A0B202E8010250E80000407679AF79
|
||||
:2005A2000600A71EA59243880860C4930461C40BA6920C6F009A0A6FC427AA2BA706AB0F8C
|
||||
:2005C2000362019A036FC40AA69206001F767A03BDB22D92BDAA03E2BD04586179D1808D3E
|
||||
:2005E200C0DB78D0013B9A92929EA985A9BD120F007700770077007789E604000077CFE64E
|
||||
:20060200210002E80818407679AF1F76710303E21E0002E8101CCFE621000FE830334076C7
|
||||
:2006220079AF7AD11F76710378D0013B008FC0DB03E220009A92949EA985A9BD120F0077FF
|
||||
:2006420000770077007789E6010002E80818407679AF7BD11F76710379D0013B008FC0DBD7
|
||||
:2006620003E222009A92949EA985A9BD120F007700770077007789E6010002E80818407652
|
||||
:2006820079AF1F76710303E224001F767A032C922F617AD1808DC0DB78D0013B9A92929EEB
|
||||
:2006A200A985A9BD120F007700770077007789E6010002E84016407679AF7BD11F767103C4
|
||||
:2006C20079D0013B03E222009A92929EA985A9BD120F007700770077007789E6010002E845
|
||||
:2006E2004016407679AF1F76710303E2240000D1008FC0DB013BA9A8A181A98A74D0C8E2E7
|
||||
:200702009400008F80DEA9A8A181A98AC4920252046002E8D123056F02E8E1300AE8010062
|
||||
:20072200407679AF013B008F98DE0356A1010156A40001D9A192045203E2C400DA64AFE2C7
|
||||
:20074200BE04BE86BE8B0600BDB2BDAA04FE0052A92DA85A06601F7671030B920B2B0C965C
|
||||
:20076200008FC0DB013BA9A8AC81A98AC44F076CAC921F7671030654E4FFB401008F21DD14
|
||||
:20078200A9A8AC81A9837FD0008FC0DB944CC4E2C500EDFF9E01A9A8AC81A98AC44D3F6CF1
|
||||
:2007A200AC921F76710306543A6300B6A79200BEA985013BA98E008F80DEA9A8AC81A98314
|
||||
:2007C200A9A8A681A98AC592C4541460008FC0DBA9A8A681A98A1F7671031392C4CE0A600A
|
||||
:2007E200008F21DDA9A8A681A98A01DFA93AC40DA98E01DEA6921852DF64A7920761A98561
|
||||
:20080200421EA93AC0004EB2A98EA93AA9BD120F007700770077007789E60000AC921F7614
|
||||
:200822007103079EA959A2922561008F80DE013BA9A8AC81A98AC4920A521A60AC92069EF9
|
||||
:20084200A988008F08DFA9A8A681A98AC8E2C401008F00DFA9A8A681A98A01E860EE0EE88F
|
||||
:20086200686600E74000C492036106E84016A29256601F767A032C9252617FD0008FC0DB9D
|
||||
:20088200949316D0D3FF9492C1FFA8CAA940246C1F767B03240620601F767A032B920552C3
|
||||
:2008A2000C6002E849280CE8010094E6080014AD0465A1920250A959A1920E64A9A8013B15
|
||||
:2008C200A181A98A8CE6000078D013E2940040765380EFFF1401AC921F7671030654E3FF6F
|
||||
:2008E2000E01A1400F6C79D0C8E29401007720E74000AFE2240300E71800007790E8007629
|
||||
:200902000E6F78D0C8E29401007720E74000AFE2220300E71800007790E800761F767A03E7
|
||||
:200922002D925261A192E3FFAF001F767A032B9202521F61AC400F6C79D0008FC0DBC8E258
|
||||
:2009420094011F76710320E74000AFE2240300E718003A6F78D0008FC0DBC8E294011F760A
|
||||
:20096200710320E74000AFE2220300E718002C6F08BEAC92A672008FC0DB013BA9A8A68170
|
||||
:20098200A983807621DDA606AC81A71E18D0C7929596AC9206520D6378D0C8E294011F7609
|
||||
:2009A200710320E74000AFE21E0300E718000C6F78D0C8E294011F76710320E74000AFE2E6
|
||||
:2009C200200300E7180016D0008FC0DB26E8000D94937FD0D0FF949232E8401AC9FFA8CAAF
|
||||
:2009E200A940036C02E8001150E80148A9A8013B8CE60000AC818CE60900A98318D01F76D1
|
||||
:200A02007B03A6BF120F13E29501432B24063460A9A8AC81A98AC493A84E2E6DA61BECFFD4
|
||||
:200A22002565A692C852226330D09592FB9CA6540363A845146D008FC0DBA9A8AC81A98AEC
|
||||
:200A420030D0A69294540B6248D0945415651F767103431A10000B1A08000E6F1F76710364
|
||||
:200A6200431A20010B1A0400076F1F767103431A01000B1A1000AD5CAC9283DCA45C40765F
|
||||
:200A820000803C6F1F767B03240616601235008F00D90156A400407617B2013B008FC0DBE7
|
||||
:200AA200A9A8A181A98A8CE6000078D013E2940040765380236F1235C07640D70156A7009E
|
||||
:200AC200008F00D90156A40011F68424176FA9A8AC81A98A8CE6000018D013E294000E6F6B
|
||||
:200AE200008FC0DBA9A8AC81A983A9A8AC81A98AC52B18D0C51A0080942B84FEBE86BE8B6A
|
||||
:200B02000600BDB2BDAABDA202FE0052A95A06601F7671030B920B2B0C96008FC0DB013BF9
|
||||
:200B2200A9A8A281A61EC64FEDFFC700408F21DDA9A0A281A9837FD0944CC4E2C500EDFFC8
|
||||
:200B4200B300408F80DEA9A0A281A9830356C501408F98DE0156A500AFE2C50100E740003D
|
||||
:200B6200A9A88CE60000A281A98AA1BF120F18D01F767B039479422B2406E0FF8E00C64EB9
|
||||
:200B8200EDFF8B00A29207525C610356A201A95B1F767A034218FFFB008D01DDA32D3806B3
|
||||
:200BA200412B22560190A95DA93AA381A98A20FFE80340763E80013B019B019089FFA395D7
|
||||
:200BC2004298A82D4218FFF73806412B22560190A95DA93AAC81A98A20FFE80340763E809A
|
||||
:200BE20001908AFF4298A29206522B60029A4218FFEFA394A92D013B3806412B2256019008
|
||||
:200C0200A95DA93AAC81A98A20FFE80340763E80013B039B0190A3958BFF4298A82D4218D5
|
||||
:200C2200FFDF38062256412B0190A95DA93AAC81A98A20FFE80340763E8001908CFF429864
|
||||
:200C42004292C0FF42CDBFFF42CA008FC0DB013BC0FF42CAC0FF42CAC3FF4090A8CA42964E
|
||||
:200C6200A9A8A281A98348D0A19295540F63408F1EDEA9A0A281A983421A0800A9A8C581CE
|
||||
:200C8200A98AC492089084FF4298429205611F7671030B1A0200AD5CA29282DCA45C407619
|
||||
:200CA2000080156FA9A8A281A98A8CE6000018D013E294000C6FA9A8A281A983A9A8A28115
|
||||
:200CC200A98AC52B18D0C51A0080942B82FEBE82BE86BE8B060000BE013B008FC0DBA9A821
|
||||
:200CE200A681A98A01DE18D0A692C41800E01852942BF46400BE013B008FC0DB408F10DF7A
|
||||
:200D0200A9A8A681A98A0356A6010156A50070D0C8E294001F767A0303E2C5002B920652DB
|
||||
:200D22001760408F80DEA9A0A681A983C59203520F60A640056D18D094288601096F008FCC
|
||||
:200D4200C0DBA9A8A681A98A18D09428300201DEA6920452D2642B9201521060008FC0DB28
|
||||
:200D62001F767103A9A80881A98AC41A0040CC1A0040D41A0040DC1A00401F767A032B92E4
|
||||
:200D820006520760008FC0DBC41A0040CC1A00404076538006001F767A032A92A9931F76F6
|
||||
:200DA2007103BDB2FF9D052B062B072B01531C69A993FD9D015311690752086109521A600B
|
||||
:200DC200BF56060FBF56070D156FBF560508BF560608BF5607080E6FBF560507BF56060E0A
|
||||
:200DE200BF56070E076FBF56050ABF560614BF5607141F767A033192AC2B013BC07668DC6C
|
||||
:200E02001F76710306940896008F80DEA9A8AC81A98AC42B008F1EDEA9A8AC81A98A408FF7
|
||||
:200E220040D71235C4210156A500008F00D90156A400AC92019C11F68524A92D185211F63C
|
||||
:200E42008424E3641F767A032E9225611F7671030692AC2B20651F767A032D920961008F82
|
||||
:200E620080DE013BA9A8AC81A98ABF56C4091F767A032C920961008F80DE013BA9A8AC8162
|
||||
:200E8200A98ABF56C408AC921F767103019CA92D0654E2641F767A033192AC2B1565013B80
|
||||
:200EA2001F7671030688AC92A672008F80DEA9A8A681A98A1F767A03AC92019CBF56C40ADB
|
||||
:200EC200A92D3154EE641F767A032F9236611F767103AC2B013BBF5612C80892AC94A988E3
|
||||
:200EE200008F80DEA9A8A681A98A408F10DFBF56C403008F1EDEA9A8A681A98AAC9201F059
|
||||
:200F02000894C4960356AC01008FC0DB0156A500A9A8AC81A98A70D01235C8E29400008FA8
|
||||
:200F220040DD0156A40003E2C500AC92019CA92D11F684240452D2641F767A032B920652DA
|
||||
:200F42000B601F767103008F80DE12282C01BF56DC02BF56D4021F767A032A92095234602C
|
||||
:200F6200008F80DE408F1EDEC42BBF56C50108D0BF56CC010ED1CD2BBF56D404BF56D50382
|
||||
:200F8200BF56DC04BF56DD02BF56E404BF56E505BF56EC04BF56ED04BF56F406BF56FC053A
|
||||
:200FA200BF56940609D0BF5694070AD0BF5694060BD0BF5694060CD0BF5694060DD0BF5667
|
||||
:200FC2009408BF569C081F7671030002132B0D28F915BF560E120F28F22B10283E49AC2B0F
|
||||
:200FE200013B90E5131A01E01F767A03381E008FBADEA9A8AC81A98AC42B008F18DFA9A82A
|
||||
:20100200AC81A98A0356AC01C42B008FE8DE0156A400AC92019CA92D03E2C4000652E8642B
|
||||
:20102200AC2B013B00BE0356AC01008F04D70156A400AC92019CC4C2A92D1C52F564AC2B9D
|
||||
:20104200013B008F01DDA9A8AC81A98AAC92019CC42BA92D2052F664AC2B013B008F00DF47
|
||||
:20106200A9A8AC81A98AC42B008F08DFA9A8AC81A98AAC92019CC42BA92D0852F064BE8B10
|
||||
:2010820006001F767A032F921F7671030880026104DF00D5013B00D40356A5038076F0D8FA
|
||||
:2010A200A4810156A60001DCA492C62B0852F56401DDA5920252F0641F767A032B92045273
|
||||
:2010C2007761A79200D52D65013BA592A2FF008FF0D8CBFFA594A3FFA927A9A8AB81A61E75
|
||||
:2010E2000356AB04A92D019BA592ACEA189A67FFA594C699A988A2FFCBFFA594189CA3FFCC
|
||||
:20110200A92701DDA9A8AB81A98A0356AB04A92DA692ACEA019A66FFC498A792A554D662FD
|
||||
:2011220000D5013B008FF0D803BEA9A8A581A71EA592A672A9A8A681A98A08D001DDC7923F
|
||||
:201142009496A5920352EF641F767A032B92008FF8D802520460A9280003036FA928000F78
|
||||
:20116200FC981F767A032F920961408FF0D8A58A0FDCC41AFF00F51A003F1F767A033192EB
|
||||
:2011820005611F766303361A08001F767A032B9206521460408FF0D8A58A08DCFC1A300009
|
||||
:2011A200EC1A0300FD1A00E0CD1A0030076F008FF8D8C41A0F00F41AFC01008FF0D8A483CB
|
||||
:2011C20008DC01DDC51A0100F41A0700FC1A00E00600BDB2BDAABDA203E2BD0403E2BD05D8
|
||||
:2011E20003E2BD060AFE1F767A0344962B9206520860449206601F7671030B920B2B0C961A
|
||||
:201202001F7671030892008F1EDE013B4494A988A9A84481A98A808DC0DBC4924696449260
|
||||
:2012220001F0019047964492A0FFA92D499603354896049AAC94A95BA9AAA681A98A457EBB
|
||||
:20124200C44FEDFF4002008F3CD7A9A84481A98A64BE4492A672C4E2C404A9AAA681A98A35
|
||||
:201262008CE62000408D10DF13E2C40044920356A9010156A10002E891340BE801E0AFE280
|
||||
:20128200C10020E72000407679AF442D008F40DD1235AFE2C10110E740000156A40003E2B8
|
||||
:2012A200C100407617B21F767B038CE60000AC281F0026C4013B1F767B038DE60000A6061C
|
||||
:2012C2002256A60740FF240F0965A9AA4481A98A8CE6000070D013E294004492408F98DE66
|
||||
:2012E200008FC0DB0356A901A71E0156A500A9A84481A98A70D0C8E29400408DE8DE21E3A0
|
||||
:20130200C501A70600E70C000156A10000E72101AFE2C10620E7880102E8512B0BE8010022
|
||||
:20132200407679AFAFE2C10110E74000007703E2C1004076A0B2013B008F18DF8CE60000EA
|
||||
:20134200A9A84481A98A13E2C4004792E0FFA4001F767103CFE62000AFE22601407622803F
|
||||
:20136200452D008F00D912350156A400407617B24588008F80DE013BA9A8A681A98ACFE67A
|
||||
:201382000600C4920352066012E8060D14AD026396E5008F80DEA9A8A681A98AC492025244
|
||||
:2013A200066012E8B61414AD026396E501E8A9FDCFE6300008E89927407679AF1F767B034B
|
||||
:2013C200CFE6050024061660008FC0DB4588013BA9A88CE6300018D0A681A98381DEA9A8A0
|
||||
:2013E200A681A98A13E295008CE62B0018D013E294031F767103013BAFE62400408DE8DE65
|
||||
:20140200AFE226000356A30120E720000156A10000E70100AFE2C10020E7080002E8512B48
|
||||
:201422000BE80100407679AFAFE2C10110E74000007703E2C1004076A0B2013B408F18DF27
|
||||
:201442008CE60000A9A0A381A61EABBF120F68B6C63F4892A772008FC0DBA9A8A781A61EDF
|
||||
:20146200A9A04681A71EAA286900C792C696A9A04481A71E4892AA72A9A8AA81A61EAA28CA
|
||||
:201482006A00C792C6964892AA72A9A8AA81A98AC43F0C6F1F767A032B9201520360AFE6EE
|
||||
:2014A20024001F76710303E22604008F18DFA9A84481A983A9A84681A98AC8E2C504C8E2BE
|
||||
:2014C200C400008F18DFA9A8A381A98A96E604001F767B03C8E2C4002406432B96E60400FF
|
||||
:2014E200E0FFEA00008FC0DBA9A84581A98AC4CC0040CDFFA959008F18DFA9A84481A98A40
|
||||
:20150200C8E2C400CFE6210020E72000407679AF01E8C9F400D50CE8D1CC94E6080014AD31
|
||||
:201522000B651F767103C8E21200007794E6040014AD026501D5008FBADE013B1F76710315
|
||||
:20154200A9A84481412BA98A0F0E40763E8000520D61009BA1920260019B0356A8084393D8
|
||||
:201562000451A818FFFEA8CA4396008F18DF013BA9A8A381A98AC8E2C400CFE6210020E757
|
||||
:201582002000407679AF01E8C9F400D50CE8D1CC94E6080014AD0B651F767103C8E21200C7
|
||||
:2015A200007794E6040014AD026501D5008FBADE013B1F767103A9A8412BA381A98A0F0E99
|
||||
:2015C20040763E8000520D61009BA1920260019B0356A80843930451A818FFFEA8CA4396CD
|
||||
:2015E2001F767A032B9206526660479264604588008FC0DB013BA9A8A681A98A30D0C8E2D7
|
||||
:201602009400007794E6050014AD0D65009BA1920260019B0356A80843932051A818FFFE32
|
||||
:20162200A8CA4396008F80DEA9A8A681A98AC49203522860008FC0DBA9A8A681A98A48D0A5
|
||||
:20164200412BC8E2940000D594E6050014AD026301D5008F36DF1F767103A9A84981A98A93
|
||||
:201662000F0E40763E8000520D61009BA1920260019B0356A80843930851A818FFFEA8CAE4
|
||||
:2016820043964588008F80DE013BA9A8A681A98AC49202521060008FC0DBA9A8A681A98ADF
|
||||
:2016A20048D0C8E29400007794E6050014AD0365431A1000AD5C459283DCA45C40760080D1
|
||||
:2016C2000E6F008FC0DBA9A8A681A983A9A8A681A98AC52B18D0C51A0080942B8AFEAFE203
|
||||
:2016E200BE06AFE2BE05AFE2BE04BE82BE86BE8B06001B76F0FF00E2BD0030E60006422904
|
||||
:2017020016562576006F1B76F0FF00E2BD0030E6000602FE422916561F76330038924196D6
|
||||
:2017220023760008267600003892382B2128FFFF1029103B419238962576006F1B76F0FF47
|
||||
:2017420000E2BD0030E6000602FE422916561F7633003892419623760008267600003818FF
|
||||
:2017620090002128FFFF1029103B419238962576006F1B76F0FF00E2BD0030E6000602FE26
|
||||
:20178200422916561F763300389241962376000826760000381890002128FFFF1029103B1F
|
||||
:2017A200419238962576006F1B76F0FF00E2BD0030E6000602FE422916561F7633003892D8
|
||||
:2017C2004196237600082676000038189C002128FFFF1029103B419238962576006F1B7600
|
||||
:2017E200F0FF00E2BD0030E6000602FE422916561F763300389241962376000826760000C0
|
||||
:2018020038189E002128FFFF1029103B419238962576006F1B76F0FF00E2BD0030E6000627
|
||||
:2018220002FE422916561F7633002292419623760101221868002128FFFF1029103B4192A1
|
||||
:2018420022962576006F1B76F0FF00E2BD0030E6000602FE422916561F763300229241965F
|
||||
:20186200237601012292222B2128FFFF1029103B419222962576006F1B76F0FF00E2BD004B
|
||||
:2018820030E6000602FE422916561F763300229241962376010026760101221878002128CD
|
||||
:2018A200FFFF1029103B419222962576006F1B76F0FF00E2BD0030E60006422916561029C4
|
||||
:2018C2002576006F1B76F0FF00E2BD0030E600064229165610292576006F1B76F0FF00E245
|
||||
:2018E200BD0030E600064229165610292576006F1B76F0FF00E2BD0030E6000642291656E1
|
||||
:2019020010292576006F1B76F0FF00E2BD0030E600064229165610292576006F1B76F0FFAD
|
||||
:2019220000E2BD0030E600064229165610292576006F1B76F0FF00E2BD0030E6000642292A
|
||||
:20194200165610292576006F1B76F0FF00E2BD0030E600064229165610292576006F1B76F0
|
||||
:20196200F0FF00E2BD0030E600064229165610292576006F1B76F0FF00E2BD0030E6000666
|
||||
:201982004229165610292576006F1B76F0FF00E2BD0030E600064229165610292576006FD6
|
||||
:2019A2001B76F0FF00E2BD0030E600064229165610292576006F1B76F0FF00E2BD0030E69B
|
||||
:2019C200000602FE422916561F7633002292419623760100267601012292222B2128FFFF55
|
||||
:2019E2001029103B419222962576006F1B76F0FF00E2BD0030E6000602FE422916561F7625
|
||||
:201A020033002C92419623762000267639012C922C2B2128FFFF1029103B41922C9625765D
|
||||
:201A2200006F1B76F0FF00E2BD0030E6000602FE422916561F7633002C924196237620000D
|
||||
:201A4200267639012C1832002128FFFF1029103B41922C962576006F1B76F0FF00E2BD00AF
|
||||
:201A620030E6000602FE422916561F7633002292419623760100267601012218F80021286B
|
||||
:201A8200FFFF1029103B419222962576006F1B76F0FF00E2BD0030E6000602FE422916561B
|
||||
:201AA2001F7633002292419623760100267601012218FA002128FFFF1029103B419222960F
|
||||
:201AC2002576006F1B76F0FF00E2BD0030E6000602FE422916561F763300309241962376EE
|
||||
:201AE200800026760000301803002128FFFF1029103B419230962576006F1B76F0FF00E2AD
|
||||
:201B0200BD0030E6000602FE422916561F76330032924196237600012676000132187500BA
|
||||
:201B22002128FFFF1029103B419232962576006F1B76F0FF00E2BD0030E6000602FE42298D
|
||||
:201B420016561F7633003292419623760001267600013218FD002128FFFF1029103B419298
|
||||
:201B620032962576006F1B76F0FF00E2BD0030E6000602FE422916561F763300309241961E
|
||||
:201B820023768000267600002C1823002128FFFF1029103B419230962576006F1B76F0FF39
|
||||
:201BA20000E2BD0030E6000602FE422916561F7633003292419623760001267600013218AD
|
||||
:201BC20071002128FFFF1029103B419232962576006F1B76F0FF00E2BD0030E6000602FEE7
|
||||
:201BE200422916561F7633003292419623760001267600013292322B2128FFFF1029103B86
|
||||
:201C0200419232962576006F1B76F0FF00E2BD0030E6000642291656237639011029257664
|
||||
:201C2200006F1B76F0FF00E2BD0030E60006422916562576006F1B76F0FF00E2BD0030E6E2
|
||||
:201C420000064229165610292576006F1B76F0FF00E2BD0030E6000602FE422916561F76BB
|
||||
:201C620033002C92419623762000267639012C1837002128FFFF1029103B41922C96257695
|
||||
:201C8200006F1B76F0FF00E2BD0030E6000602FE422916561F7633002C92419623762000AB
|
||||
:201CA200267639012C922C2B2128FFFF1029103B41922C962576006F1B76F0FF00E2BD00AE
|
||||
:201CC20030E6000602FE422916561F7633002C92419623762000267639012C183300212863
|
||||
:201CE200FFFF1029103B41922C962576006F1B76F0FF00E2BD0030E6000602FE42291656AF
|
||||
:201D02001F7633002C92419623762000267639012C1822002128FFFF1029103B41922C960F
|
||||
:201D22002576006F1B76F0FF00E2BD0030E6000602FE422916561F76330038924196237683
|
||||
:201D420000082676000038189F002128FFFF1029103B419238962576006F1B76F0FF00E216
|
||||
:201D6200BD0030E6000602FE422916561F7633003892419623760008267600003892382BDE
|
||||
:201D82002128FFFF1029103B419238962576006F1B76F0FF00E2BD0030E6000642291656B9
|
||||
:201DA2002576006F1B76F0FF00E2BD0030E60006422916562376390110292576006F1B765E
|
||||
:201DC200F0FF00E2BD0030E60006422916562376391110292576006F1B76F0FF00E2BD003B
|
||||
:201DE20030E600064229165610292576006F1B76F0FF00E2BD0030E6000602FE4229165699
|
||||
:201E02001F763300309241962376800026760000301801002128FFFF1029103B41923096FD
|
||||
:201E22002576006F1B76F0FF00E2BD0030E6000602FE422916561F7633003092419623768A
|
||||
:201E42008000267600002C922C2B2128FFFF1029103B419230962576006F1B76F0FF00E27F
|
||||
:201E6200BD0030E6000602FE422916561F7633002A92419623761000267610012A922A2BEE
|
||||
:201E82002128FFFF1029103B41922A962576006F1B76F0FF00E2BD0030E6000602FE422932
|
||||
:201EA20016561F7633002A92419623761000267610012A1802002128FFFF1029103B419221
|
||||
:201EC2002A962576006F1B76F0FF00E2BD0030E6000602FE422916561F76330024924196CF
|
||||
:201EE200237602002676000024181F002128FFFF1029103B419224962576006F1B76F0FF6C
|
||||
:201F020000E2BD0030E6000602FE422916561F763300269241962376040026763D012692A7
|
||||
:201F2200262B2128FFFF1029103B419226962576006F1B76F0FF00E2BD0030E6000602FEAF
|
||||
:201F4200422916561F76330024924196237602002676000024180F002128FFFF1029103B06
|
||||
:201F6200419224962576006F1B76F0FF00E2BD0030E6000602FE422916561F763300269236
|
||||
:201F820041962376040026763D01261826002128FFFF1029103B419226962576006F1B7698
|
||||
:201FA200F0FF00E2BD0030E6000602FE422916561F76330024924196237602002676000012
|
||||
:201FC2002492242B2128FFFF1029103B419224962576006F1B76F0FF00E2BD0030E600065D
|
||||
:201FE20002FE422916561F763300269241962376040026763D01261826002128FFFF102956
|
||||
:20200200103B419226962576006F1B76F0FF00E2BD0030E6000602FE422916561F76330000
|
||||
:20202200249241962376020026760000241808002128FFFF1029103B419224962576006F34
|
||||
:202042001B76F0FF00E2BD0030E6000602FE422916561F76330026924196237604002676DC
|
||||
:202062003D012692262B2128FFFF1029103B419226962576006F1B76F0FF00E2BD0030E67E
|
||||
:20208200000602FE422916561F76330024924196237602002676000024180C002128FFFF46
|
||||
:2020A2001029103B419224962576006F1B76F0FF00E2BD0030E6000602FE422916561F765C
|
||||
:2020C2003300269241962376040026763D012692262B2128FFFF1029103B419226962576C7
|
||||
:2020E200006F1B76F0FF00E2BD0030E6000602FE422916561F76330024924196237602006D
|
||||
:202102002676000024180E002128FFFF1029103B419224962576006F1B76F0FF00E2BD0056
|
||||
:2021220030E6000602FE422916561F763300269241962376040026763D0126183E00212817
|
||||
:20214200FFFF1029103B419226962576006F1B76F0FF00E2BD0030E6000642291656102917
|
||||
:202162002576006F1B76F0FF00E2BD0030E6000602FE422916561F7633002892419623764F
|
||||
:2021820008002676080128180F002128FFFF1029103B419228962576006F1B76F0FF00E279
|
||||
:2021A200BD0030E6000602FE422916561F76330028924196237608002676080128180F007F
|
||||
:2021C2002128FFFF1029103B419228962576006F1B76F0FF00E2BD0030E6000602FE4229F1
|
||||
:2021E20016561F763300289241962376080026760801281803002128FFFF1029103B4192F1
|
||||
:2022020028962576006F1B76F0FF00E2BD0030E6000602FE422916561F7633002892419689
|
||||
:202222002376080026760801281803002128FFFF1029103B419228962576006F1B76F0FF2D
|
||||
:2022420000E2BD0030E6000602FE422916561F7633002A924196237608002676080128928F
|
||||
:20226200282B2128FFFF1029103B419228962576006F1B76F0FF00E2BD0030E6000602FE68
|
||||
:20228200422916561F763300289241962376080026760801281802002128FFFF1029103BB9
|
||||
:2022A200419228962576006F1B76F0FF00E2BD0030E6000602FE422916561F7633003292E3
|
||||
:2022C20041962376000126760001321875002128FFFF1029103B419232962576006F1B762E
|
||||
:2022E200F0FF00E2BD0030E6000602FE422916561F763300329241962376000126760001C1
|
||||
:202302003292322B2128FFFF1029103B419232962576006F1B76F0FF00E2BD0030E60006EF
|
||||
:2023220002FE422916561F763300329241962376000126760001321831002128FFFF10292F
|
||||
:20234200103B419232962576006F1B76F0FF00E2BD0030E6000602FE422916561F763300B1
|
||||
:202362003292419623760001267600013292322B2128FFFF1029103B419232962576006FF8
|
||||
:202382001B76F0FF00E2BD0030E6000602FE422916561F7633002E92419623764000267655
|
||||
:2023A20000002E922E2B2128FFFF1029103B41922E962576006F1B76F0FF00E2BD0030E661
|
||||
:2023C200000602FE422916561F7633002E92419623764000267600002E1828002128FFFF95
|
||||
:2023E2001029103B41922E962576006F1B76F0FF00E2BD0030E6000602FE422916561F760F
|
||||
:2024020033002E92419623764000267600002E1820002128FFFF1029103B41922E96257618
|
||||
:20242200006F1B76F0FF00E2BD0030E6000602FE422916561F7633002E92419623764000E1
|
||||
:20244200267600002E1838002128FFFF1029103B41922E962576006F1B76F0FF00E2BD00D5
|
||||
:2024620030E6000602FE422916561F7633002E92419623764000267600002E1838002128CC
|
||||
:20248200FFFF1029103B41922E962576006F1B76F0FF00E2BD0030E6000602FE4229165605
|
||||
:2024A2001F7633002E92419623764000267600002E183E002128FFFF1029103B41922E9660
|
||||
:2024C2002576006F1B76F0FF00E2BD0030E60006422916562376390110292576006F1B7637
|
||||
:2024E200F0FF00E2BD0030E6000602FE422916561F763300229241962376010026760101CE
|
||||
:20250200221848002128FFFF1029103B419222962576006F22761F767A0316D0008F806FC9
|
||||
:20252200349294CDFCFF03901F76BE0118D0A8CA16961F767A03359294CDFCFF03901F762D
|
||||
:20254200BE011AD0A8CA18961F767A033692019094CDFEFF1F76BE01A8CA1BD01A961F76F1
|
||||
:202562007A03379201901F76BE0194CDFEFFA8CA1B961A7669FF060016D0008F806F1F76B6
|
||||
:202582007A039492039018D03496949203901AD03596949201901BD03696949201903796F1
|
||||
:2025A20022761F76BE011618FCFF1818FCFF1A1A01001B1A01001A7669FF0600A9881F76AA
|
||||
:2025C2007A032B9200D4003102521860A640036D008F0008A641056DA9A8A91A0002A98A5F
|
||||
:2025E200A642046DA9A88050A98AA643046DA9A80850A98A1F76BF0102A81F767A032B9228
|
||||
:2026020003524960A69205601F76BF01041A0008015205601F76BF01041A000202520560BC
|
||||
:202622001F76BF01041A8000035205601F76BF01041A0800045205601F76BF01041A020040
|
||||
:20264200055205601F76BF01041A0001065205601F76BF01041A4000075205601F76BF01C5
|
||||
:20266200041A0100085205601F76BF01051A0008095205601F76BF01051A00010A52056008
|
||||
:202682001F76BF010D1A20000B5205601F76BF010D1A04001F767A032B9201521F60A640D3
|
||||
:2026A200056DA9A8A81A0008A98AA641056DA9A8A81A0001A98AA642056DA9A8A81A000249
|
||||
:2026C200A98AA643036DAA1A0200A644036DAA1A10001F76BF0104A80CA906001F767A03AA
|
||||
:2026E2002B9202520660008F880A1F76BF0104A8015209602FFF00161F76BF01128F000049
|
||||
:20270200021E0AA81F767A032B9203520B60A928CB0BA82800091F76BF01248F0000021EAE
|
||||
:202722000AA8060022761F76BE01408F806F061800000F8F00F0A5C4071800FF08183F00A3
|
||||
:20274200091800FF1BDD0BDE1606A918C0FF161EA9A818C0A89219C0C618EFFF0B18DFFF9D
|
||||
:202762000B18BFFFC518F7FF1A76008FC06F1F767A03BF562A0109D0CC92C4FF01F0019087
|
||||
:202782002A721F76BF010192C3FF1F767A0301F0019080FF2A721F76BF010192C5FF1F7601
|
||||
:2027A2007A0301F0019081FF2A729492C2FF01F0019082FF2A942A96035203610452036022
|
||||
:2027C200BF562B010152036102520360BF562B030552036106520360BF562B06075203608D
|
||||
:2027E200BF562B0208520360BF562B04095213612B920152036106520360BF562F010252FD
|
||||
:20280200036103520360BF562D010152066105520461056FBF562B05BF562C012B920152D6
|
||||
:20282200036103520360BF562E0202520360BF562E01045217610152BF5630010360BF565B
|
||||
:20284200310203520A610152086106520B601F76BF01021A80000A6F1F76BF010B1A001010
|
||||
:20286200056F1F76BF010D1A001006520E6103520961015204610D1A0080096F0B1A008054
|
||||
:20288200066F0B1A0040036F021A800006520B6104520961025204610B1A0004066F0B1A4E
|
||||
:2028A2000040036F021A000206520661045204610B1A0020036F021A0800227604520A6297
|
||||
:2028C20004522461015240610252346103522661446F0552116106524060088F8A021F7636
|
||||
:2028E200BE01059AA82801FC0AA81A1E1F76BF01021A0800326F088F00001F76BE01049A1E
|
||||
:20290200A82801BC0AA81A1E286F088F49031F76BE0105020AA81A1E206FA928CB0BA82879
|
||||
:2029220008091F76BE010A1E059AA828257C1A1E146F088F8A0B1F76BE01059AA82801F855
|
||||
:202942000AA81A1E0A6F2FFF10161F76BE010A1E059AA82813BC1A1E1A7669FF0600BDB25F
|
||||
:20296200BDAABDA202FE1F767A032B9200D200D3025232601F76BF0116D0008FC0DB099235
|
||||
:20298200C1FF94CDFEFF01F016D116D00190A8CAA9CDFDFF949616D0099203F01F766F033F
|
||||
:2029A2000290A8CA9C9600CDFFF39492039089FFA8CA00961F76BF010040036C0102A986A1
|
||||
:2029C2000042026C02DA004A026C04DA0044026C08DA10D0947A1F767A032B92015231609E
|
||||
:2029E200408DC0DBA18A1F76BF01A183012916DCC418FDFF16DD0992C3FFA18A03F00290D5
|
||||
:202A0200C59816DCC418FBFF0992412B008FB2DEC1FF01F00190A95D20FFFFFF40763E8090
|
||||
:202A22000356A902A18A1F766F0316D0079016DCC49800CDFFE79192069089FFA8CA009697
|
||||
:202A42001F767A032B9204525B60408DC0DBA18A1F76BF0116DCC418FEFF01CC0004C9FF48
|
||||
:202A6200412BA95D008FB2DE20FFE80340763E8016D91F76BF010190C198014B026C01DA82
|
||||
:202A82000148026C02DA0945026C04DA0942026C08DA014A026C10DA0147026C20DA0944CC
|
||||
:202AA200026C40DA0044046CA9AA8009A9860149056CA9AA18FF0100A9860941056CA9AA6A
|
||||
:202AC20019FF0100A986004B056CA9AA1AFF0100A9860045056CA9AA1BFF0100A9860940B8
|
||||
:202AE200056CA9AA1CFF0100A986004A056CA9AA1DFF0100A98610D0008FC0DB947A1F76BE
|
||||
:202B02007A032B92065210601F76BF010046026D01DA0048026D02DA004B026D04DA10D0C1
|
||||
:202B2200008FC0DB947A1F767A032B920552E0FF89001F76BF010945036D01DA026F10DB83
|
||||
:202B42000944036D02DA026F40DB0042036D04DA056FA9A21CFF0100A9820044036D08DA22
|
||||
:202B6200056FA9A21DFF0100A9820046036D10DA056FA9A21EFF0100A9820040036D20DAFA
|
||||
:202B8200056FA9A21FFF0100A9820048036D40DA056FA9A21FFF0200A982004A056DA9AA3F
|
||||
:202BA2008009A986056FA9A21FFF0400A9820043066DA9AA18FF0100A986056FA9A21FFF22
|
||||
:202BC2000800A9820045066DA9AA19FF0100A986056FA9A21FFF1000A9820047066DA9AA48
|
||||
:202BE2001AFF0100A986056FA9A21FFF2000A9820041066DA9AA1BFF0100A986056FA9A252
|
||||
:202C02001FFF4000A982004B066DA9AA1CFF0100A986056FA9A21FFF8000A9820049066D89
|
||||
:202C2200A9AA1DFF0100A986056FA9A21FFF0001A9821F767A0310D0008FC0DB38A2947AE6
|
||||
:202C4200008FC06FCC92013B1F76BF01C4FF01F0019009D0A985A9860192C3FF01F0019073
|
||||
:202C620080FFA9850156A2000192C5FF01F0019081FFA9850156A2009492C2FF01F00190C3
|
||||
:202C820082FFA9850156A20017D0008FC0DB82FE947ABE82BE86BE8B060006000052A88890
|
||||
:202CA200C48A096509520763FF9CC4CDF8FF0790A8CAC496A69245520D614E5208614F5224
|
||||
:202CC2000D60C41A2000C418BFFF086FC418DFFF056FC41A2000C41A4000A592015203603F
|
||||
:202CE200C4187FFF02520360C41A8000C418EFFFC418F7FF0600BDB200D5013B008FC0DD15
|
||||
:202D0200A9A8A581A98AC47D01DDA5924652F76433D1008FC0DD34D0BF569C0CBF56940C18
|
||||
:202D22001F76400335D03BD1BF56940836D0BF56940937D0BF56941038D0BF56940839D0BD
|
||||
:202D4200BF56940C3AD0BF56940C3DD0BF569C053CD10092FE9C949641D00092FF9C94966F
|
||||
:202D62003ED0BF56940810D0BF56DC08BF56E465BF56F408BF56940DBF56EC1BBF569C12B5
|
||||
:202D8200BE8B0600A9BD120F00770077BDB21F7671038BE60100A48B50E8094088E23C002D
|
||||
:202DA200407679AF88E6000000770077A9BF120FC18AA993B7FFFF91D497C18AFF90DC96CA
|
||||
:202DC200BE8B06000852A927A4C50960089A01D54E9B4076BB93008D3B03972BAB9209521C
|
||||
:202DE2000B60089AA78A01D54E9B4076BB93008D3B03BF5697010600A71EBDB2A492BDAA81
|
||||
:202E02000152BDA22A60008F5070C08D40D01F76410300A822761F76BE01408F28AE09CDE0
|
||||
:202E2200FFF7A81A0004008FE3AD099709CDFFFD1F763700A81A000100A01F76BE01099720
|
||||
:202E42001F76370002A81F763300321A0100321A0200237600011A7602523360008F507730
|
||||
:202E6200C08DC0D31F764F0300A82276408F806F1F76BE01FDCDFFEF80769EADA58AA81A4D
|
||||
:202E82000020079716DD07CDFF3F1ADCA81A008007971F763700C518CFFF408F59ADC41A6D
|
||||
:202EA200040004C21F763300321A04001F76370006A01F763300321A0800237600011A7676
|
||||
:202EC200D396A38A01D54E9B69FF089AC3864076BB93A2C4A2830BD0A28A0CDE0CDDC61AFF
|
||||
:202EE20000400ADCC518FFDFCA18BFFFCA18DFFFCA18F7FFCA18FBFFCA1A0200CA1A010010
|
||||
:202F0200C418FFBF92CCE0FF0BD0015092964076E893A38AA70640762F94D39202520560E2
|
||||
:202F22001F76BF01081A0400C38A099ABF56E402A38A40764F94408D33030CD0932BA28A9A
|
||||
:202F4200008D9E01932B9B2B0BDCC41A4000CA1A2000BE82BE86BE8B06001F764103BF56F5
|
||||
:202F620002011F764F03BF5602021F764003009606000002008D4203941E0600BDB2BDAA76
|
||||
:202F8200A486008D3A0392923660A9AA13FF6700A98A008D360301020156C4009206008D79
|
||||
:202FA2003803920F0466C28ABF56E40208D092C5A7C408D0090201DE92C2C207A98A008D49
|
||||
:202FC2003603C792C4969206008D3803920F4966C28AE446FE6CA28A099A40764F94D292A7
|
||||
:202FE200025205601F76BF01081A0400008D9E01922B376F008D3803928A408D3803A492EA
|
||||
:20300200008D36030190A98801DC9AA89206008D3803920F0466C28ABF56E402A6920B60B2
|
||||
:2030220008D092830902C207A98AC592A7FFFF90C4960D6F08D09283A5C408D0090201DE20
|
||||
:2030420092C2C207A98AC592FF90C496008D36039206008D3803920F0466C28AE446FE6CCD
|
||||
:203062001F763300211A0001BE86BE8B0600BDB200BEACA0BDAAA486BDA2A98201DEA61B83
|
||||
:203082003075FD69D292025205601F76BF010818FBFF00BE01DEA61B1027FD69408D360396
|
||||
:2030A200A9AB08D09AA20109921E008D3A03922BC28AE446FE6CA28A089A40764F9401BE5F
|
||||
:2030C200008D38030102A30F92C21C68A7AB0902C207A98AC792C496C28AE446FE6C00BEEF
|
||||
:2030E20001DEA61BE803FD69A28A099A40764F94D292025210601F76BF01009A081A040038
|
||||
:203102000B6FC28A0902A7ABBF56E401C207A98AC792C496009ABE82BE86BE8B0600BDB205
|
||||
:20312200BDAAA486EFFF3901C28AFCCCFF00A958EC47EDFF2C01408DA0019A92E0FF2D01CD
|
||||
:20314200408D3B039A920152116000BE408D3D03BF569A01408D34039AC2408D3F039A2BC3
|
||||
:20316200408D3E039A2B0DD19A2B408D3F039A92E0FF1301408D3D039A924F60F2C4208F5C
|
||||
:203182000000A9A8A60F06662F8F0000A9A8A60F0867608F00000AD1208F0000F2A09AA83B
|
||||
:2031A2000CD19A923A52E0FFF800408DA0019A922E60408D34039AC4A692A94001DE9AC2BB
|
||||
:2031C200066DF28A0356A008C496076FF28AA9A80109F21EA092C498008D34039206E20F6B
|
||||
:2031E200E8FFDB000FD10CD0BF569A33A28A099ABF56923340764F94408D3F03008DA001EE
|
||||
:20320200BF569A01BF569201EFFFC700008D3F03BF569201EFFFC100408D3E039A923E60A1
|
||||
:20322200A0921F760403115425611F767C032454036024921F60A088408D31039A0EA60F29
|
||||
:203242000560408D33039A921560A0921F767C032354076023920561408D33039A920A618A
|
||||
:20326200408D3F03008D3D03BF569A01922BEFFF9400408D32039A78408D3E039A80019AAA
|
||||
:20328200013BA7949A96A9AAA781A98A0ED1089A9C78A28A40764F947F6F9A80019A013B9E
|
||||
:2032A200A7949A96A9AAA781A98A0ED19C78408D3E039A9207520E600DD19A9210520A6029
|
||||
:2032C200408D33039A9206600A9A1F767703A0941096408D3E039A9203520B600DD19A59FF
|
||||
:2032E200A19204520660059A008FC0DDA0949C96408D3E039A9202521A60A0920DD103523F
|
||||
:203302009A78336842523166008FC0DD949203522C68A09233520B600CD19A923A5225605C
|
||||
:20332200A09233520460008D3D03922B0DD09258408D3E03008FC0DD9A9294540467A91BA2
|
||||
:2033420090012A68A28A099A40764F94408D3D039A2B0DD0408D3F03BF569A01408DA00104
|
||||
:20336200BF569A01922B186FA28A099A40764F94408D3E039A2B0DD0408D3D03BF569A0182
|
||||
:20338200408D3F039A2B922B076FC28ACC18DFFFC28ACC1A2000C28AEC46EDFFC7FE1F7600
|
||||
:2033A20033000BDC211A0001C41A4000BE86BE8B0600BDB2BDAAA486A61EBDA2A582D29256
|
||||
:2033C200025205601F76BF010818FBFF408D360308D09AC292A2008D3A03BF569201C28A97
|
||||
:2033E200E446FE6CA28A089A40764F94008D38030102921EC28300BE0902BF56E501C20783
|
||||
:20340200A98AC392A7FFFF90C496A692BE82BE86BE8B06000600A983C57C0600BDB2BDAA39
|
||||
:20342200BDA206FE1F767B03A482BF5634010EDCEC92FF90A95AE492FF90A988A9AA37FFEB
|
||||
:20344200A6AFA986DC92FF90A988A9AA37FFA6AFA986D492FF90A98809D0A9AA37FFA6AFCE
|
||||
:20346200A9869492FF9008D0A9599492FF90A988A9B237FFA6AFA98BFC92FF90A988008DB1
|
||||
:203482003203A9B237FFA6AFA98BF492FF90A988408FFFFFA9B237FFA6AFA98BA9A210FF54
|
||||
:2034A200A101A71E441EA98A9392C7960202BF56CC3440762BB0A90E461EA28A465DA9B29D
|
||||
:2034C200407601B0419644830102A38A4076A49544830102A38ABF56C5344076A4954192FF
|
||||
:2034E200A90E461EC38AE446FE6CA9B2A38AA28340764697C38AE446FE6CA9A210FFA101B1
|
||||
:20350200A983A38A4692A993FF91A7FFFF90C597CD960602D52BDD2B4076A49586FEBE82F5
|
||||
:20352200BE86BE8B060006000600A98AC4920600A988BDB21F767103A9A8008D3203A48B70
|
||||
:20354200BF560101BDAA10FFA101408FFFFFA71EA986A98A9193C7970202CF7E40762BB0E2
|
||||
:20356200A9CDFF00A283A7FFFF90A18AD597DD960602E52BED2B4076A495BE86BE8B0600BE
|
||||
:20358200BDB202FEA48B0EDCEC92FF90A980E492FF90A988A70637FFA6AFA71EDC92FF903B
|
||||
:2035A200A9880129A70637FFA6AFA71ED492FF90A988412BA70637FFA6AFA71EFC92FF9005
|
||||
:2035C200A9934196F492A838419620FF0080A70F0666A706415C40767897086FAD5CA79210
|
||||
:2035E200029B81DCA45C40765B9E399AA18A4076059882FEBE8B0600BDB2BDAA02FE1F7695
|
||||
:203602007103A486BF5601010EDCEC92FF90A980E492FF90A988A70637FFA6AFA71EDC9232
|
||||
:20362200FF90A988A70637FFA6AFA71ED492FF90A988A70637FFA6AFA71E012920FF0080DF
|
||||
:20364200A70F0666A706407602984196086FAD5CA792029B81DCA45C40769E9EA9AA008DED
|
||||
:20366200320310FFA1011F767803A71EA98BA98A9292408FFFFFC796BF56CF384192FF905A
|
||||
:20368200D7964192A7FFFF90DF961892A9CDFF00A7FFFF90E197E996060240762BB0A9CDE4
|
||||
:2036A200FF0009D0A7FFA183A28AFF9008D1F597FD960A029D2B952B4076A49582FEBE866C
|
||||
:2036C200BE8B060002FEA61EAC281F00013B2256A60740FF0156A400C492A640036CFF900D
|
||||
:2036E200036FA7FFFF9082FE0600BDB2A48BBDAAE1C50AD09183A706A58A02194076CF98EE
|
||||
:20370200A927A706A58A01194076CF98A1C5008D3203408FFFFF0EDF0356A908AB94A95A96
|
||||
:20372200A78A9192C7960202BF56CF3340762BB00AD0A95DE106918A0219407601B0A98895
|
||||
:20374200A20EA60F1061008D3C03912BD192025205601F76BF01081A0400A18A099A4076EE
|
||||
:203762004F94096FA18A339A40760598008D3C03BF569101BE86BE8B0600A4830EDDED920A
|
||||
:20378200FF90A980E592FF90A988A70637FFA6AFA71EDD92FF90A988A70637FFA6AFA71E0F
|
||||
:2037A200D592FF90A98809D0A70637FFA6AFA71E9592FF9008D0A90EE41E9592FF90A988DC
|
||||
:2037C200E40637FFA6AFE41EFD92FF90A988E40637FFA6AFE41EF592FF90A988E40637FF43
|
||||
:2037E200A6AFE41E02020156E4000AD01F767B033A9AF4C394C3BF563401407605980600BF
|
||||
:203802000600BDB2BDAABDA2A482008DA00193923D61408DA0010FD09B2B935A008FC0DD28
|
||||
:20382200013BA9A8A281A98AC49203523268A91B90012F66A29233521A61008FC0DDA9A8C3
|
||||
:20384200A281A98AC458A059408FFFFFA38A82D981D8A1880EDC035694089CCAA959A60631
|
||||
:2038620040762BB0A188A90EA60F05600CD0A292937A1C6FD392025205601F76BF01081A7E
|
||||
:203882000400A38A099A40764F94A928FFFF0E6FD392025205601F76BF01081A0400A38AA7
|
||||
:2038A200099A40764F94A928FFFFBE82BE86BE8B0600BDB206FEA48B0EDCEC92FF90A90ED8
|
||||
:2038C200421EE492FF90A988420637FFA6AF421EDC92FF90A988420637FFA6AF421ED49256
|
||||
:2038E200FF90A98809D0420637FFA6AF421E9492FF9008D0A90E441E9492FF90A988440624
|
||||
:2039020037FFA6AF441EFC92FF90A988440637FFA6AF441EF492FF90A9880DD0440637FF90
|
||||
:20392200A6AF441E9492FF900CD0A90E461E9492FF90A9880BD0460637FFA6AF461E949200
|
||||
:20394200FF90A9880AD0460637FFA6AF461E9492FF90A9880ED0460637FFA6AF461E94CC31
|
||||
:20396200FF0004520A61055212604206448A46C4A69340769E9E076F4206448A46C4A693A2
|
||||
:2039820040765B9E3C9AA18A4076059886FEBE8B0600BDB2A9A8BDAA10FFA101A98BA48619
|
||||
:2039A200408FFFFFA98ABF56C1100602BF56C904D12BD92BE12BBF56E93040762BB0A9CDF4
|
||||
:2039C200FF00008D9E01A7FFFF90F197A28AA183F9960802BF5692014076A495BE86BE8BF0
|
||||
:2039E2000600BDB200BE00D0408FC0DBAA2B008F80DCA9A8A00DA98A9580C427A70EAB0FF8
|
||||
:203A02000361C47F01BE01D8A0928052F168A6921061408D80DC809AA18A40763CB080D0FF
|
||||
:203A2200A82802019196A18AA9287E3F40765B9EBE8B0600BDB200BE008DA101A9A8A60D73
|
||||
:203A4200A71EA9A8A60DA98301DE0EDFC7929596A6920852F468A483408D9E010EDD03565A
|
||||
:203A6200E508DD58EDCAA988A9A8408FC0DB10FFA101957EA983BF569C010A024076A495E2
|
||||
:203A8200BE8B0600BDB2BDAABDA202FEA4860EDC0356E408DC2FECCAA927A9AA10FFA101B2
|
||||
:203AA200A71E00D51F767C032492C7960356AB01BF56CF03D796AB922061A588AA92A672AB
|
||||
:203AC200008FC0DB03D1A9A8A60DA98A0356A501A980A9AA10FFA101A61EA792A17204D09F
|
||||
:203AE200C492C7FF9E96A792A07201DDC492FF909696AB92A554E2660356AB014196A993A4
|
||||
:203B0200039A408FFFFFA894A959A9AA10FFA101A982A98AA10E40762BB0A9CDFF0004D010
|
||||
:203B2200A7FF9B974193A073FF90AB280500089B9396AB9241944195A958069A4194A9800A
|
||||
:203B4200079A4194932BA758A859932BA958A28AA383A10E932B008D9E019B2BBF56920117
|
||||
:203B62004076A49582FEBE82BE86BE8B0600BDB2AC2BAB280800807608DF0C3505D106D016
|
||||
:203B8200A483A172A072A9800EDD03569D089594AC5807D19696AB92A794A958A793A173CD
|
||||
:203BA200009B95929DCA00520261019BAC92AC58408F00DF019C0852A92D9597DF68BE8B10
|
||||
:203BC2000600BDB210FEAD5C89DCA45DAD5CC07600C18FDCA45C08F6852400D0C07609C10F
|
||||
:203BE20005F68424008FC0DB942B01D8A0928052FC68A4C51F767A032A921F767A037EDF50
|
||||
:203C0200C7962B920452086160D162D0BF569C0ABF569408116F1F76700300D0BF5620026B
|
||||
:203C2200AD5C8FDCA45C9492008F22DC949601D8A0920652F66861D0008FC0DB1F767A0303
|
||||
:203C4200BF5694653192046163D0BF5694141F767A0330921B611F767A032A882A92085212
|
||||
:203C620081DE03652A8882DE00D00129008F34DC0356A603C07640DEA00D0156A700C79276
|
||||
:203C8200949601D8A0920852F4681F767A032B9201521A601F767A033188012920FFF2FF96
|
||||
:203CA20000D0A60F1161008FC0DBA9A8A00DA98A30D101D8BF569C4648D1BF569C3C319216
|
||||
:203CC2000E9CA054F1661F767A032B920252216000D0008FC0DBA9A8A00DA98A01D830D144
|
||||
:203CE200A092BF569CAA065248D1BF569C96F26806D0008FC0DBA9A8A00DA98A01D830D118
|
||||
:203D0200A092BF569C73085248D1BF569C69F2681F767A032B920352116000D0008FC0DBD5
|
||||
:203D2200A9A8A00DA98A01D830D1A092BF569C46145248D1BF569C3CF2681F767A032A92B9
|
||||
:203D420009521B6000D0013BAD5C89DCA480008F80DEA7069481A71E008F08DCC792949683
|
||||
:203D620001D8A0920F52F1683DD1008FC0DB3ED0BF569C46BF5694461F767A032B92065229
|
||||
:203D82002B60008FC0DB30D032D19428A401A4C531D09428A40133D09C2884037ADF4BD17A
|
||||
:203DA2009428840348D094282C0149D094282C014AD0942820039C282003C792A4C56ED0DB
|
||||
:203DC20051D194967BDF6FD0C792949650D0BF569406BF569C101F767A032F920A6100D0DB
|
||||
:203DE200008F30DC9428000801D8A0920452FB684076D88390FEBE8B0600BDB2408D80DC18
|
||||
:203E0200A9287E3FA8280201A18A40769E9E809AA18A40763CB0A98080D0A988910EA70F3C
|
||||
:203E22000E60A688012920FFFFFFA60F08611F767A032A887ED0910EA60F156140764E9B04
|
||||
:203E4200408DC0DB7FD0912B40765E9A1F767A032E9217617FD91F767103C11A1000112870
|
||||
:203E6200FFFF0F6F00D0008F80DC9492008FC0DB949601D8A0928052F7681F7670033F2BE1
|
||||
:203E8200BE8B0600C4A0D41A01000600C4A0D41A02000600D493009A039100530260019A39
|
||||
:203EA20006001F76BF010118F7FF06001F76BF01011A08000600227608D0408F806F1F764F
|
||||
:203EC200BE0195CCFCFF015008960BDD08CCF7FF0450089608CCDFFF1050089608183FFF24
|
||||
:203EE2001F76BF01C51A08000118F7FF1A761F76C10169FF0002BF560007BF56011F022BA6
|
||||
:203F0200BF56040D0A2800800B2B0C2BBF560F10D42BC41E001A800006001F7676032588EA
|
||||
:203F2200BDB2A48BA6921352E6FF5801C07612C10129A7060456A601A71EC7C52076C18AF3
|
||||
:203F4200260ED40F0561BF562511EFFF470108D091C5673E1F767603252B262BD118F7FF00
|
||||
:203F6200D118FDFFEFFF3A011F76C1010246ECFF3501C18A1F767603260EC407A71E1F76BF
|
||||
:203F8200C10107921F767603C796BF562513260AEFFF24011F76C1010246ECFF1F01079286
|
||||
:203FA2001F767603BF5625112796EFFF17011F76C1010246ECFF120107921F767603BF568A
|
||||
:203FC200250F2796EFFF0A011F76C1010246ECFF050108D091C5673E1F76C10107400B6D7C
|
||||
:203FE200D118FBFF1F767603D118FEFF252B262BEFFFF4001F767603BF562509EFFFEE0038
|
||||
:204002001F76C1010246ECFFE90007921F767603BF56250B2796EFFFE1001F76C101024614
|
||||
:20402200ECFFDC0007881F767603277EC18A260ED40F0561BF562507EFFFD00008D091C580
|
||||
:20404200673E1F767603BF562509EFFFC7001F76C1010246ECFFC20007921F767603BF56AB
|
||||
:2040620025072796EFFFBA001F76C1010246ECFFB50007921F767603BF5625052796EFFFDD
|
||||
:20408200AD001F76C1010246ECFFA800079208D01F767603279691C5673E1F767603BF56E5
|
||||
:2040A2002503EFFF9B00D140086CBF5625010AD0D11A040091C5673ED141ECFF8F001F76A8
|
||||
:2040C20076030AD0BF56250DD11A080091C5673EEFFF84001F76C101BF56008F082B021A9A
|
||||
:2040E20020001F767603BF562512776F1F76C101BF56008FC18AE4920896021A20001F7633
|
||||
:204102007603BF562510696F1F76C101BF56008708280003021A20001F767603BF56250E4A
|
||||
:204122005C6F1F76C101082B021A20001F767603BF56250C526F0AD091C5673E1F76C101AB
|
||||
:20414200BF56008708280005021A20001F767603BF56250A426F26801F76C101BF56008FAC
|
||||
:20416200C18AA706C407A71EC79208961F767603260A1F76C101021A20001F767603BF56CA
|
||||
:2041820025082B6F1F76C101BF56008FC18AE4920896021A20001F767603BF5625061D6FE6
|
||||
:2041A2000AD091C5673E1F76C101BF56008708280002021A20001F767603BF5625040D6FFF
|
||||
:2041C2001F76C101BF56008708280006021A20001F767603BF562502BE8B06001F7630001A
|
||||
:2041E200A880A927A48E142820400002008FB4DD1F767803181E4076B79C0052FD61A7929D
|
||||
:20420200A793C0FF0191A995A880A7922661408FA8DDAB9220BE1F90A674A792A654026717
|
||||
:20422200A7881F767603A65C0356AB01283AA90E2AA82C1E008FB4DD4076AF9C4076B79CD9
|
||||
:204242000052FD61A93AA60DA98EAB92A694A927A792A69EA980DE601F7630001428104063
|
||||
:2042620006001F763000A880A927A48E142820400002008FB4DD1F767803181E4076B79C3A
|
||||
:204282000052FD61A792A793C0FF0191A995A880A7922661408FAEDDAB9220BE1F90A67444
|
||||
:2042A200A792A6540267A7881F767603A65C0356AB012E3AA90E30A8321E008FB4DD4076FF
|
||||
:2042C200B39C4076B79C0052FD61A93AA60DA98EAB92A694A927A792A69EA980DE601F7647
|
||||
:2042E200300014281040060002FE1F76760338C5008FB4DD673E22761F763400008FDEB1AB
|
||||
:204302001CA81A7669FF4076EBB01F7671030F8F40423A0642A8C0004EB2A9BD120F00777D
|
||||
:20432200007702E84116008F16DE89E6000040762AB12376002082FE060002FE22761F76D4
|
||||
:204342007A032B9204520460008FCFAA036F008F4AA31F7634001AA81A760F8F40421F76A1
|
||||
:20436200710369FF3A0642A8C0004EB2A9BD120F0077007702E8D123008F0EDE89E6000038
|
||||
:2043820040762AB11F7630000C2820402376001082FE0600BDB2BDAABDA2407697AA00D303
|
||||
:2043A200103B69FF407678B2267600002F76000040763FB340765AB14076FF901F767A0367
|
||||
:2043C200009A2A93407620AC0D9A40761A95418F00C201D4A9A0407669941F767A033192BE
|
||||
:2043E2000860418F00C202D4A9A040766994076F012902D420FF00E1407669944076E19E91
|
||||
:2044020040762990008FC06FA48300D20BDC0CDDC51A0100C41A0100012920FF50C34076D3
|
||||
:2044220049B1008FC06FA48301DAA2920EDC0FDDC51A0100C41A01000A52EF64008FC06F8A
|
||||
:20444200A4830BDC0ADDC51A0100C41A01004076F78F40762AB31F767A03109B2A924076A8
|
||||
:2044620056B340760A9F407697B21F767A032B920452056140760DA5407638844076AE8585
|
||||
:2044820040766A9C4076D8831F767A032B920652036040764EA81F767A03C076C0DB2A9278
|
||||
:2044A2007EDFC79622761F76C001BF56292F1A761F767103BF5604011F76710303927D61B6
|
||||
:2044C20063D0032B008FC0DB94920E611F76740363D03D0A94923D5407663D2B008FC0D386
|
||||
:2044E20069FF4076369A00D2008F32DF013B408FC0DBA9A8A281A98AA9A0A281A98360D045
|
||||
:20450200C40A9592C4545566005253611F767C0332924F61408F30DFC42BA9A0A281A98AD7
|
||||
:20452200C49280520868008F30DF013BA9A8A281A98AC42B013B086F109AA794A9CCF0FF75
|
||||
:20454200C4968052F167008F30DFA9A8A281A98AC4800356A203408FF0D8A61EA792C3FFF8
|
||||
:20456200A927A606AB0D0156A500A7CD0F00A82DC59262FFA988E161013B0A6F008F30DF33
|
||||
:20458200A9A8A281A98AA692A0FFA988C40AA640F66C408D30DF013BA9B2A281A98B008FFB
|
||||
:2045A200C0DB69FF009AC19340760DADC108030001DAA292025299647FD0008FC0DB94411E
|
||||
:2045C200076C7FDC69FFC418FDFF40764E9B7FD0008FC0DB9442076C7FDC69FFC418FBFFD1
|
||||
:2045E20040765E9A7FD0008FC0DB9443076C7FDC69FFC418F7FF40766A9C7FD0008FC0DB7E
|
||||
:204602009445076C7FDC69FFC418DFFF4076538069FF40761C921F767A032B9201521360E5
|
||||
:2046220016D0408FC0DB9592A58AC1FF01F016D0A3CE0356A9027FDC0790C49895CC040013
|
||||
:20464200C1FFA95B2B9206525A607FD0008FC0DB94921F767403A99300B6D6FFC5FF0191FD
|
||||
:204662000190A9883E92026001B6A892A7CE1B61008FC06FA4831F767A030BDDC51A004064
|
||||
:204682002B9206520761045205610DDCC41A0020056F1F76BF01041A0800008FE8031F76FA
|
||||
:2046A2007B0308A81F7674033F9200B63E97026001B6A693A7CF16611F767A032B931F76BE
|
||||
:2046C200BF010B1A000406530661045304610B1A0020036F021A0800008FE8031F767B030B
|
||||
:2046E20008A81F7674033F7E1F767B03080607601F76BF010D1A00400D1A000400D2A292CA
|
||||
:204702000461408D40D0036F408DC0D3A18A40766E99A91BFFFF59611F76BF0100BE0F1AE3
|
||||
:2047220001001F76780337523EC213623752326133520A6233523A610352446104523E614C
|
||||
:2047420006523861426F34522D61355227613D6F3A5208623A5212613852186139521261F0
|
||||
:20476200346F3B5207613C523060A18A4076C6992C6FA18A40766D99286FA18A40762A9984
|
||||
:20478200246FA18A40762D98206FA18A407669981C6FA18A40760098186FA18A4076019868
|
||||
:2047A200146FA18A40767B97106FA18A4076E2980C6FA18A4076879A086FA18A4076249B13
|
||||
:2047C200046FA18A4076AF9A01DAA2920252E3FF75FE966F1B76F0FF0500BDABBDAABDA8C4
|
||||
:2047E200BDA0BDC2BDC300E2BD0003E2BD0003E2BD0103E2BD0203E2BD0303E2BD0430E672
|
||||
:20480200000602FE69FF422916561F7633002292419623760100267601012218FA00212849
|
||||
:20482200FFFF10291F767B03240604610102415624001F7671030492E1FF99011F767103BD
|
||||
:2048420011920D61FF9C11960A60008FC0DBA4837FDC7FDDC518EFFFC41A04001F767A03D2
|
||||
:204862002F92196100D2008F0871013BA9A8A281A98AD492C3FFA988008F3CD7A9A8A281CF
|
||||
:20488200A98A69FFA292C47E4076568601DAA2920452EA641F767A032B9206523A601F766A
|
||||
:2048A200C4010992C3FFA90EA9BD120F0077007763D0808DC0DB8BE60400008F40D78CE640
|
||||
:2048C200200069FF13E29200CFE62000407617B26ED16FD0013B008FC0DB9A92929EA98505
|
||||
:2048E200A9BD160F6FD0C8E29402CFE6040020E7A00089E60900407679AF50E800C800777F
|
||||
:2049020090E8008800778CE600001DD013E292001F767A032B920552436000D21F76710394
|
||||
:2049220006921F767B03210A21540262212B008F0871013BA9A82181A98AC492C3FFA90E41
|
||||
:20494200A9BD120F212D69FF008F40D712358BE604000156A400CFE62000407617B2013B2B
|
||||
:204962001F767B03008F21DD8EE60000A9A82181A98A13E2C400008F80DEA9A82181A98A2F
|
||||
:2049820001DAC4920852056121924076EE82056F2192009B40761181A2920652C0641F76FC
|
||||
:2049A2007A032E92E1FFE3001F767B0320881D0EA60F1A601F767A032C931F767B03219249
|
||||
:2049C20000530F611F767103055402600D9A1F767B0321931F767103059F015302600C9AD7
|
||||
:2049E20069FF40764B901F767B031E92205472671F767A032E9200D26D651F767B03212DD5
|
||||
:204A0200008F0871013B1F767A032E12A294A959A9A8A281A98AC492C3FFA980A7BD160F55
|
||||
:204A2200A188008F21DDA9A8A681A98A8BE60C00C4E2C400007720E7000100778CE60000C4
|
||||
:204A420000771F767B03A9BF120FA98556FF009B1F540267019B1F5422970767008F34DF6F
|
||||
:204A6200A9A8A281A98AC40A008F88DDA9A8A181A98A009AC49300530260019A22CA246173
|
||||
:204A8200A12D008F40D71235CFE6200069FF0156A400407617B21F767B03240608618EE688
|
||||
:204AA200200000770077A6BF120F076F8EE6000000770077A6BF120F008F21DD013BA9A8E8
|
||||
:204AC200A181A98AC47E01DA1F767A03A2922E5495641F767B031C92200A20544766202B4A
|
||||
:204AE20069FF4076DB9000D21F767A032E9220651F767B03212D1F767A032E12A294009B7E
|
||||
:204B0200A95940761181013BC07634DF008F88DDA706A281A71EA9A8A181A98A01DA1F7625
|
||||
:204B22007A03C792C496A292C72B2E54E2641F76710305921F767B03029C210A21541662EC
|
||||
:204B42001F767A03319200D21F767B03212B0E651F7671030692019BA2944076118101DA44
|
||||
:204B62001F767A03A2923154F464008F0071A4831F76330019DC01DDC51A0040C41A100041
|
||||
:204B8200BF562101103B419282FE2296AFE2BE04AFE2BE03AFE2BE02AFE2BE01AFE2BE00F1
|
||||
:204BA20080E2BE00BEC5BEC4BE83BE8ABE86BE870300303BF1FF177602761B76F0FF0500D4
|
||||
:204BC200BDABBDA8BDA0BDC2BDC300E2BD0003E2BD0003E2BD0103E2BD0203E2BD0330E667
|
||||
:204BE200000602FE69FF42291656227601021F767803015610002376001026763911102994
|
||||
:204C02001A767FD0008FC0DB944F046D69FF407672A91F767103020A029214520468022B54
|
||||
:204C2200BF56030116D1008FC0DB7FD09C9294CA0190A9880C9301F10191A6CB10601F7612
|
||||
:204C42007A032B93065306611F76BF010B1A0008146F1F76BF010B1A00200F6F1F767A0328
|
||||
:204C62002B93065306611F76BF010F1A0008056F1F76BF010F1A00200653E1FF4B011F7602
|
||||
:204C82007103150A15930A53E0FFA1001F767A032B931F7671030553152B03601B932260F6
|
||||
:204CA2001F767A032B93015305601F7671031A9319601F767A032B9306530F6104530D61DC
|
||||
:204CC200025306611F76BF010B1A0004226F1F76BF010B1A00401D6F1F76BF01021A00024E
|
||||
:204CE200186F1F767A032B9306530F6104530D61025306611F76BF010D1A00040A6F1F7683
|
||||
:204D0200BF010D1A0040056F1F76BF01041A00021F76710319930F601F767A032B93035337
|
||||
:204D2200136101531161065319601F76BF01021A8000186F1F767A032B9303530F61015303
|
||||
:204D42000D61065306611F76BF010B1A00100A6F1F76BF01041A8000056F1F76BF010D1A3D
|
||||
:204D620000101F7671031A9315601F767A032B9306530B610353046101531561196F1F76BF
|
||||
:204D8200BF010B1A0040226F1F76BF01021A80001D6F1F767A032B930653146103530D617C
|
||||
:204DA200015306611F76BF010B1A00800F6F1F76BF010D1A00800A6F1F76BF010D1A00408D
|
||||
:204DC200056F1F76BF01041A020000523E601F767103158062D0940EA70F37601F767A0327
|
||||
:204DE2002B9303530F6101530D61065306611F76BF010D1A00100A6F1F76BF01021A8000B5
|
||||
:204E0200056F1F76BF010B1A001006530E6103530961015304610D1A0080096F0B1A00808D
|
||||
:204E2200066F0B1A0040036F021A800006530B6104530961025304610B1A0004066F0B1A85
|
||||
:204E42000040036F021A00021F767103009A1C9300530260019AA693A9CF04611428F40197
|
||||
:204E6200162B140AC4E214001C7E12E8D01F14AD5364160A1693019100B6142B1797169375
|
||||
:204E82000791026101B6A692187F3C601F767A032A92095224611F76710316D0BF56190127
|
||||
:204EA20094937FD0D0FF9492C9FFA8CAA940026C197F0C42116D0C430C6D0C44036D1A2BC3
|
||||
:204EC2002B6F1892009B00520260019B1A97246F17921A96216FBF561A011E6F1F767103AE
|
||||
:204EE2000C41BF561B01036C1792026F009A0C401A96036D192B106F179317921B9719962C
|
||||
:204F02000B6F17931788179219971B961A7E046F69FF4076BDA882FEAFE2BE03AFE2BE0211
|
||||
:204F2200AFE2BE01AFE2BE0080E2BE00BEC5BEC4BE83BE8ABE870300303BF1FF177602767A
|
||||
:204F420002FE2276008F57A11F7635000AA81A7669FF4076F8B21F763300221A200023769F
|
||||
:204F6200010000D5013B008F88DDA9A8A581A98AC42B008F21DDA9A8A581A98A01DDA59244
|
||||
:204F8200C42B1C52F1641F767A032B9206522360008F00711F76C401D4CCF0FF05500296DD
|
||||
:204FA200DCCCF0FF0350039603CC1FFF1050039603CCFFF1A91A0005039603CCFF0FA91AC6
|
||||
:204FC20000400396E4CCF0FF0750049604CC0FFF205004961F767A032B9203521460008F57
|
||||
:204FE20000711F76C401D4CCF0FF02500296DC18F0FF03CC1FFF1050039603CCFFF0A91A21
|
||||
:20500200000203961F767A032B9201522860008F00711F76C401D4CCF0FF06500296DCCCCA
|
||||
:20502200F0FF0550039603CC0FFF4050039603CCFFF7A91A0007039603CCFF0FA91A0020A3
|
||||
:205042000396E4CCF0FF0350049604CC0FFF6050049604CCFFF1A91A000104961F767A03D1
|
||||
:205062002B9202520960408F0071A58A02DCC418F0FFDD18F0FF2B9205524C60408F0071B8
|
||||
:20508200A58A1F76C40102DCC41A0F00DDCCF0FF0250039603CC3FFF3050039603CCFFF053
|
||||
:2050A200A91A0006039603CCFF0FA91A00C00396E5CCF8FF0A50049604CCBFFFB0500496CF
|
||||
:2050C20004CCFFF7A91A0007049604CCFF0FA91A00400496EDCCF0FF0550059605CC1FFFA2
|
||||
:2050E2001050059605CCFFFEA91A000E05960518FF0FF5CCF8FF08500696061AF00006CCC0
|
||||
:20510200FFFDA91A000D069606CCFF0FA91A00900696408F0071C0760068A5C41F76C401B5
|
||||
:20512200A78A1AD019DD01DEC61A000119DC011A0008C51A1000001A10000018BFFF001A7B
|
||||
:20514200000F011A00401F763300BF5621011F76A001C41A000819CCFFFCA91A0004199672
|
||||
:2051620097CCFFFDA91A00011A96BF56098000CC7FFCA91A0001009600CCFFE3A91A0008A2
|
||||
:20518200009600CC001CC9FFA92D019A66FFA98800CC800304600102AC1E076F00CC80037B
|
||||
:2051A200C6FF80FFA985AC1EA6851F7671034456A900421E3A06C0004EB2008FA60E42A8AD
|
||||
:2051C200C0004EB21F767A03008F4C1D2B931F76A00105960018FCFF1F767B03025326A82B
|
||||
:2051E2000C60008F8A66BF561C0FBF561D04BF561E09BF561F1426A81F767A032B920352D6
|
||||
:205202000E601F767B03008FF22BBF561C0ABF561D01BF561E04BF561F1426A81F767A0392
|
||||
:205222002C920E611F767B03008FF22BBF561CFABF561D19BF561E96BF561F1426A81F7696
|
||||
:205242007A032B9206520660008F7C921F767B0326A805520660008FA60E1F767B0326A8F5
|
||||
:205262001F767B03260682FE241E0600005206601F76BF01041A0001056F1F76BF01021A14
|
||||
:2052820000010600005206601F76BF01041A4000056F1F76BF01021A400006004076A3A670
|
||||
:2052A200019A4076AFA6009A4076A3A6010240765BB3009A4076AFA61E0240765BB3060057
|
||||
:2052C200009A4076AFA61E0240765BB3019A4076A3A61E0240765BB3009A4076A3A61E020C
|
||||
:2052E20040765BB30600BDB2BDAABDA20EFE00D2A98BA288A492A52D0252A65BE3FFF00042
|
||||
:20530200A9B2026301D256FFA983AC9205640452036301D3026FAC2BAC92A58B4B2B0B65A4
|
||||
:205322000A02421EA9B2C0004EB24B0AA98BAC924B54F762A9B20A650A02421EA9B2C000D4
|
||||
:205342004EB201DE58FFA98BF862A292A58BA694A988026001BEA692AC944B2B0452A98822
|
||||
:205362000F650A02421EA9B2C0004EB2AC80A98B4B0AA69281DFFC9CA72D4B54F362AC9245
|
||||
:205382000263AC2B019A66FFA9580152026000D08076E803A9B242C2C0004EB2441EA9B28C
|
||||
:2053A20042C2C0005DB2A61E6402421EA606C0004EB2461E6402421EA9B2C0005DB2A61E0A
|
||||
:2053C2000A02421EA606C0004EB2481E0A02421EA9B2C0005DB24A1EA61E460648074407E5
|
||||
:2053E200A607046000D0A02DAC5AA3921561039A013B4B96AD888ADEA6880356A90101566D
|
||||
:20540200A600C6060960AC924B5406610F024B0BC61E4B92F062A2922061019A013B4B9684
|
||||
:20542200AD5D8ADDA55D0356A9010156A5000F02C50F09614B9203520661019C04524B963C
|
||||
:20544200F0640B6FAD5D8ADDA55D0ABE4B920356A9010156A500C5C2009A4B2B013BAD5D88
|
||||
:205462008ADDA55D0356A9010156A5008076B0DAA606C507A61EC685C51E019A4B2D66FF60
|
||||
:20548200A0CE046180020156C5004B0A4B920452E76448A3AB92AA2BFF90A927A9A9AC2844
|
||||
:2054A200180037FF5AFF4A064E1E4E92FF904E964D2B4E06ABCAAACB4E1E4606009BFF909C
|
||||
:2054C2003FFF5AFF4E06ABCAAACB4E1E44063B565AFF4E06ABCAAACB4E1E026F4EB2408F6B
|
||||
:2054E2001EDF013BA9A0A481A98A4B2BC45BA3921052246200D14E92013B0190A9884E061B
|
||||
:2055020040FF4E1EA6924076BBA601D9A1920852F364A35A00D1A293A292B0FF0190A85A58
|
||||
:205522004076BBA601D9A1920652F6644076CDA601DB4B0A4B920452DB648EFEBE82BE86B7
|
||||
:20554200BE8B0600009A019C1952FE640600005206601F76BF010D1A0010056F1F76BF01E3
|
||||
:205562000B1A00100600BDB21F76BF01BDAA0D1A0008BDA2A95B010240765BB300D1808D8C
|
||||
:20558200C06FA28AA392CEFF0BDCC41A0080407614A8A39280FFA95B010240765BB30DDA8F
|
||||
:2055A2000102C21A008040765BB301D9A1921052E7641F76BF010B1A0008BE82BE86BE8BBD
|
||||
:2055C20006001F767B03008F5902BF5600050128701706A80600BDB2BDAABDA202FE79D0CA
|
||||
:2055E200008FC0DBAC1E013BA98B94854C82A61E4456A90042A2C0004EB278D0A98342A25B
|
||||
:20560200215694004456A100C0004EB27FD0A607A5039449046C7AD0013B9485A918FF0F23
|
||||
:20562200A95AA91A0080407620A87BD0A9B2408FC0DB34FF957AA61EA9B242A232FFA60771
|
||||
:20564200C0004EB2A98A42A2C802AC1EA9B24456A900C0004EB21CD0A49E82FE289C9596E2
|
||||
:20566200BE82BE86BE8B0600A9280290407620A81F767A032B9206520F6104520D610252C5
|
||||
:2056820006611F76BF010F1A00040A6F1F76BF010F1A0040056F1F76BF01061A00020600F7
|
||||
:2056A20002FE1F767B03080604610102415608000092020A0254E6FFA8000606022BE0FF27
|
||||
:2056C20084007FD0008FC0DB9447566C0592346050D0013B9492FC9CA985A9BD120F0077BD
|
||||
:2056E20000770077007789E6000051D003E20A009492FC9CA985A9BD160F007720E80000CE
|
||||
:2057020003E20A0032E8000589E6090003E20A0003E20C01AFE20C00AFE20A0132E8000CC1
|
||||
:2057220003E20C0094E6080014AD06628FE808E0007703E20C000192C0FF03540267030AE5
|
||||
:205742000192030A035402670396AFE20A00AFE20C01C4E20103C4E2030220E709004FE879
|
||||
:2057620000604FE8096000E7180000E75100007710E74000086F0492032B90E5019CA91834
|
||||
:20578200FF0304967FD09493A892C6FF0190059604920E61A8480C6D8CE600000188013B25
|
||||
:2057A200A9BF120F42C2A985407658A82D6F4076A1A81F767B03008FC0DBBF5604017FDC29
|
||||
:2057C200C418FFFE216F06060119A61E061E20FF5802A60F136120FFF401060F0F6120FFF6
|
||||
:2057E2009001060F0B6120FF2C01060F0761C802060F04616402060F07604076A1A81F7612
|
||||
:205802007B03BF56040182FE060011D0008F107094920F9004520E60CCCC8001C6FF0252BD
|
||||
:20582200096022761F76C001BF562555BF5625AA1A7669FF060022761F76C001BF5629680A
|
||||
:205842001A7669FF0600BDB202FE1F76C001A888A9801143026C257611CC80010561227671
|
||||
:2058620011187FFE1A762276408F1070A58AA79211D00F9001DCC41A400095CDF0FFA8CA63
|
||||
:2058820021961A76A79204600102A98B026FA759A92880C3A828C90169FFAC1E0556A1009E
|
||||
:2058A200407688A9A1A91140FF6C22761118BFFF1A76A6930153036102530A602276A6926A
|
||||
:2058C20011CD7FFE039086FFA8CA11961A76A6930A60A9B2013BAC281E0040FF2256A1071F
|
||||
:2058E20041FFA98BA69301530A60A9B2013BAC281E0040FF2256A10741FFA98BA693025351
|
||||
:205902000960A9B2AC281F00013B2256A10740FFA98BA7921460A69203521160227611CCDF
|
||||
:205922007FFFA91A000169FF119620FFDA0540765BB31F76C001111A80011A761F767103B7
|
||||
:2059420082FE69FF3AB2BE8B0600BDB202FE22761F76C001BF561A011B2B1A92036001BE81
|
||||
:20596200046F03561A01A9881F76710342C269FF3A06C0004EB23E1E1F76C0011B920360D6
|
||||
:2059820001BE046F03561B01A9881F76710342C23A06C0004EB2408D1070A18315D0008F3B
|
||||
:2059A200200B3C1E0CDD1F762C0094CCF8FF015014DC3596C41A04003418F7FFC51A080048
|
||||
:2059C200787680001F76C0011C1A1000A18A1C1A00041C1A00081C1A20000DDC10D91C1ABA
|
||||
:2059E20000011C1A00101C1A00201C1A00401C1A00801C18FBFFC41A01001D1A02001D1A5F
|
||||
:205A020004001D1A08001D1A10001D1A20001C1A04001D1A00041D1A00081D1A00101D1A71
|
||||
:205A220000201D1A00011D1A00021D1A00401D1A0080C11A0001201A0002201A0004201A15
|
||||
:205A42000008201A0010201A00201A7669FF82FEBE8B0600407688A9049A029B407690A9C0
|
||||
:205A6200407612AA060002FE22761F762B002028FFFF2128FFFF2228FFFF2328FFFF2428EA
|
||||
:205A8200FFFF2528FFFF2628FFFF2728FFFF1A761F76FFCF69FF38924196399241963A92B8
|
||||
:205AA20041963B9241963C9241963D9241963E9241963F921F762B0041962F9201F00190CC
|
||||
:205AC20082FE06001B76F0FF0500BDABBDA8BDA0BDC2BDC300E2BD0003E2BD0003E2BD01AC
|
||||
:205AE20003E2BD0203E2BD0330E6000669FF4229165600D1227601021F767803015610001D
|
||||
:205B02002376391110291A767FD0008FC0DB944F046D69FF407672A91F767103020A029228
|
||||
:205B220014520668022B1F767103BF560301008FC06FA4831F767A0306DDC51A01002B92C9
|
||||
:205B420006520E6104520C61025205610FDCC41A00040A6F1F76BF010F1A0040056F1F76F2
|
||||
:205B6200BF01061A00021F767A032B9206520861045206611F76BF010F1A0020056F1F764D
|
||||
:205B8200BF01061A080001021F7678033E07A61E008F204E3E1EA9A8A60F02673EA83B0A0C
|
||||
:205BA2003B920A5202643B2B3792AC2B1261008FC0DBA9A8AC0DA98A62D094923B54046524
|
||||
:205BC200019A66FFA172AC92019C3754A92DF0683A0A3A92025202653A2B7FD0008FC0DB73
|
||||
:205BE2009493A89216D094CAA940EDFF8300A84B586D20FF204E3E0F30693A920A60013B09
|
||||
:205C02001F766F0300D401D569FF00854076E0A61F7678033A9201520A60008FC0DB013BA9
|
||||
:205C220001D569FFCC8501D44076E0A6A192408DC0DB02D400D569FFD1CEA90E4076E0A682
|
||||
:205C42001F7678033A9202527B60013B03D400D5D9854076E0A6746F3A92076000D40002C9
|
||||
:205C620000D569FF4076E0A61F7678033A920152076001D4000200D569FF4076E0A602D4ED
|
||||
:205C8200000200D569FF4076E0A61F7678033A920252566003D4000200D54076E0A6506FF8
|
||||
:205CA2003A92086020FFB82200D401D569FF4076E0A61F7678033A920152086020FFB822D7
|
||||
:205CC20001D401D569FF4076E0A6A10E02D400D569FF4076E0A61F7678033A9202523060B5
|
||||
:205CE200012903D400D520FFFFFF4076E0A6286F69FF4076C0B23A920760013B00D404D530
|
||||
:205D020036854076E0A61F7678033A9201520760013B01D404D536854076E0A61F76780303
|
||||
:205D220002D400D53C064076E0A61F7678033A92025206603C0603D400D54076E0A6AFE2E7
|
||||
:205D4200BE03AFE2BE02AFE2BE01AFE2BE0080E2BE00BEC5BEC4BE83BE8ABE870300303B2F
|
||||
:205D6200F1FF1776027634FEA892FF9C0564105204640F9A026F009A22761F76BE01AB287F
|
||||
:205D8200F0FFAA28457F09CDFFDF013B08BEA81A001008D4A0A908B6099709CDFF3FA81A9B
|
||||
:205DA20000400997A9851F7680015AFF2AC25D56A000A5A92CA8AB2BAA28467F1F7684017C
|
||||
:205DC200AB0302C3AB28FEFFAA28FFFF00B60AC21F76800103BE00C31F76840100A0081EB2
|
||||
:205DE2001F76800102A900C200BE0002011960C2601A80F2081E000260C401190C1E0002A4
|
||||
:205E020001191E1E00020119221E00020119181E14C21844FF6C16065E1E5E18FFFD5E1A5D
|
||||
:205E220000015D1800FF5D1A05005E1A7F005E18FAFF5EC416C26018FFEF6006141E1844B5
|
||||
:205E4200FF6D0002488F70641F768301541E088F7064541A010000A00031531A020001027F
|
||||
:205E620000BE02A8541A06001F768001408FA1B000D4301E54C5020232A82EA9008F76B069
|
||||
:205E82001F76370008A01F768001241E26C220C31F7637000AA81F763300321A1000321A7B
|
||||
:205EA2002000237600011A761F767B0369FF000200B60E2B141EB4FE10C212C30600BDB22A
|
||||
:205EC20006FE00021F7678030ED03E1E94C4A606A80EA9580CD19CC5467EA0CC00804396EE
|
||||
:205EE200A0CC00404296A0CC00204196A018FF1FA70645974392447F00520861A092805203
|
||||
:205F020005674692008FC0DB9496429201D80861A092805205674592008FC0DB9496419263
|
||||
:205F220001D80861A092805205674492008FC0DB94961F76BF010F1A010086FEBE8B060031
|
||||
:205F42001F767B030F92A88809611F7680010806A940046D0A06A9403E6C02D5A692013B85
|
||||
:205F6200AB28010001B6A572AA2B1F768001A9A8A581A98308A90AC301B6C58500915AFF86
|
||||
:205F8200A692A772A9A8A781A983C5853FFFABCAAACBA71EA9A8A681A98A1F768401C485C4
|
||||
:205FA20000915AFFA6853FFFAACBABCAA81A00E0061E04C322761F76800100022E1E1A7689
|
||||
:205FC2000102041E1F76BF010E1A01001F767B03BF560F0169FF06001B76F0FF0500BDAB89
|
||||
:205FE200BDA8BDA0BDC2BDC300E2BD0003E2BD0003E2BD0103E2BD0203E2BD0330E6000695
|
||||
:2060020002FE69FF422916561F763300329241962376000126760001321875002128FFFF9F
|
||||
:206022001029408FC0D369FFA58A4076269540762B95103B4192329682FEAFE2BE03AFE2FC
|
||||
:20604200BE02AFE2BE01AFE2BE0080E2BE00BEC5BEC4BE83BE8ABE870300303BF1FF177601
|
||||
:2060620002761B76F0FF0500BDABBDA8BDA0BDC2BDC300E2BD0003E2BD0003E2BD0103E22F
|
||||
:20608200BD0203E2BD0330E6000602FE69FF422916561F76330032924196237600012676A6
|
||||
:2060A2000001321871002128FFFF1029408FC0D369FFA58A407626954076FC95103B4192D3
|
||||
:2060C200329682FEAFE2BE03AFE2BE02AFE2BE01AFE2BE0080E2BE00BEC5BEC4BE83BE8A86
|
||||
:2060E200BE870300303BF1FF177602761B76F0FF0500BDABBDA8BDA0BDC2BDC300E2BD00A9
|
||||
:2061020003E2BD0003E2BD0103E2BD0203E2BD0330E6000602FE69FF422916561F763300CC
|
||||
:206122003292419623760001267600013218FD002128FFFF1029408F40D069FFA58A407698
|
||||
:20614200269540762B95103B4192329682FEAFE2BE03AFE2BE02AFE2BE01AFE2BE0080E202
|
||||
:20616200BE00BEC5BEC4BE83BE8ABE870300303BF1FF177602761B76F0FF0500BDABBDA8D7
|
||||
:20618200BDA0BDC2BDC300E2BD0003E2BD0003E2BD0103E2BD0203E2BD0330E6000602FE58
|
||||
:2061A20069FF422916561F7633003292419623760001267600013292322B2128FFFF102963
|
||||
:2061C200408F40D069FFA58A407626954076FC95103B4192329682FEAFE2BE03AFE2BE0286
|
||||
:2061E200AFE2BE01AFE2BE0080E2BE00BEC5BEC4BE83BE8ABE870300303BF1FF17760276A8
|
||||
:206202002276008F806FA483A4C41F76BE0126DDC51A030027DE261A0C00A483261A3000B6
|
||||
:20622200261AC000261A000317DD261A000C261A0030261A00C0C61A0300271A0C00271AF8
|
||||
:206242003000271AC000271A0003271A000C271A0030271A00C0C51A0300A48328DD171AC9
|
||||
:206262000C0016DC171A3000171AC000171A0003171A000C171A0030171A00C0C51A030027
|
||||
:20628200281A0C00281A3000281AC000281A0003281A000C281A0030281A00C0C41A00C095
|
||||
:2062A200161AC000161A0030161A000C1A7669FF06002276008F806FA4C4A4831F76BE0159
|
||||
:2062C20018DEC61A030019DD181A0C00181A3000181AC000181A0003181A000C181A003086
|
||||
:2062E200181A00C0C51A0300A48369FF191A0C0014DD15DC191A3000191AC000191A00038C
|
||||
:20630200191A000C191A0030191A00C0C51A0300141A0C00141A3000141AC000141A00034D
|
||||
:20632200141A000C141A0030141A00C0C41A0300151A0C00151A3000151AC000151A000339
|
||||
:20634200151A000C151A0030151A00C040766DAE0600227615D0008F200B1F762C0094CC83
|
||||
:20636200F8FFA483A4C5A4C40150359614DDC518FCFF0CDF3418F7FFA4830DDE341A0400B6
|
||||
:20638200C41A60000EDDC41A1C00C41A0300C41A0030C41A000EC41A8001CC1A4000C41A9A
|
||||
:2063A2000040C41A0080211A0300C71A60002C1A1C002C1A03002C1A00302C1A000E2C1A03
|
||||
:2063C2008001C61A40002C1A00402C1A00802D1A0300C51A6000A4830FDD2E1A1C0018DCDA
|
||||
:2063E2002E1A03002E1A00302E1A000E2E1A8001C51A40002E1A00402E1A00802F1A0300FE
|
||||
:20640200C41A0700381A38001A7669FF40766DAE07F6007769FF0600BD3ABDB2BDAABDA234
|
||||
:2064220002FE0129A9BF120F58FF5B61A85C7F91A8088000421EA493D6FFA85CA9BF160F53
|
||||
:206442006761A85D7F91A8088000A859A958A593D6FFA85DA493A571A8180001A697A41812
|
||||
:20646200FF00A518FF007FDCA492A59EA7964D64A90801FF3E62A193A09236FFA859A958AF
|
||||
:20648200420635FF0EF6A11FA95BA3010AF6A11F2D56A204A32DA03640FF0BF6A11F33FF51
|
||||
:2064A200009B30FF54FFA20CA39540FFA70801001FF677FF200940FFA70801001FF677FFBA
|
||||
:2064C2005AFFA7922265A90801FF1363A9A946FF7F91A85BA95AA625A79596FFA20CA3954B
|
||||
:2064E200A9BD120F82FEBE82BE86BE8BBE8E0600009B57FFA8087FFF5AFFA693F260A828A1
|
||||
:206502000080AA71AB92ED6F20FF0000EA6F5AFFA493A818000196FFA85CA9A9A8087FFF63
|
||||
:20652200A81C0080A4CBDD6F58FF5AFF00BE25610129A6920190A958A60640FFA407A71E17
|
||||
:20654200C793A640046DA892C7FFA92DA09201520460A8CCFF00A92DAC58A592A0F201DED4
|
||||
:20656200A092FF90A958A592408FC0DAC7FF9570A95DA9A9A60FDE66A5920600A71E8076A3
|
||||
:20658200C0DA0A6FA5928470FF90A95881DFA592C7FF9670A95DA706F660A5920600005230
|
||||
:2065A200A927FF76FFFF00BE3365A9A8013BA681A983A793C592FF90A92FAA71A880009A8B
|
||||
:2065C200A740046DB0FFA880056FB0FFA81C01A0A880019C0852F564A9A8013BA681A983AA
|
||||
:2065E200A793C592C7FFA92FAA71A880009AA740046DB0FFA880056FB0FFA81C01A0A880AE
|
||||
:20660200019C0852F56401DEAB92A654CF62A79206001B76F0FF00E2BD0030E6000602FE67
|
||||
:20662200422916561F7633003292419623760001267600013292322B2128FFFF1029010243
|
||||
:206642001F767B030E0A1F768001061E1F763300211A0001103B419282FE329680E2BE0049
|
||||
:20666200303BF1FF177602761B76F0FF0500BDABBDA8BDA0BDC2BDC300E2BD0003E2BD00C9
|
||||
:2066820003E2BD0103E2BD0203E2BD0330E6000602FE69FF422916561F763300329241964E
|
||||
:2066A20023760001267600013292322B2128FFFF1029008F006169FF4076CCAC1F76800164
|
||||
:2066C20002020C1E1F763300211A0001103B4192329682FEAFE2BE03AFE2BE02AFE2BE012D
|
||||
:2066E200AFE2BE0080E2BE00BEC5BEC4BE83BE8ABE870300303BF1FF1776027600021F765C
|
||||
:206702003000008F000C0119021E1F767803408F100C000206A81F763000062B0119072B85
|
||||
:20672200E41A1000041A20001F763000008F080C0A1E1F76300000020119121E1F763000A5
|
||||
:2067420000020E2B0F2B1F7678030EA816A0081E1F763000162B172B1F763000E41A100005
|
||||
:20676200E51A10000C1A20001F763000141A20001F767803181E101E060000E0E45003E23C
|
||||
:20678200F40188E61000C48303E2D500C483F52BC483FD2BC483E51A1000C483E51A2000F1
|
||||
:2067A200C483E518FFFBC483E518FFF7C4830002E51A0040D41E06000129BDB240FFBDAAA0
|
||||
:2067C200A98B00D20861100240765BB301DAA9B2A20FFA66BE86BE8B06001F76C001201A08
|
||||
:2067E200001040766DAE2276008F200BA4C4A4831F762C000ED015DE14DDC618F8FFC51A9E
|
||||
:2068020003003418F7FF3418FBFF94CCBFFF20502E960FDC2ECCE3FF08502E962ECCFCFFC1
|
||||
:2068220001502E962ECCFFDFA91A00102E962ECCFFF7A91A00062E962E187FFEC418BFFFF8
|
||||
:206842002E18FFBF2E18FF7F2F1A03001A7607F6007769FF0600AD28000469FF1F5616568E
|
||||
:206862001A5610E6000240291F76000002291B762276A9285FB3A828000001091B61C076ED
|
||||
:206882005FB304290F6F009BA92401DF046C0429A82401DFA61EA1F78624A706A1810109C9
|
||||
:2068A200A71EA92403635CFF043BA95901DF0900ECFF1A76A928FFFFA828FFFF01090E61C8
|
||||
:2068C200FF76FFFF066F01DFBDC3A71E673EBEC5A92401DFA82458FFF7604076DDB240765F
|
||||
:2068E20013B31B76F0FF0500BDABBDA8BDA0BDC2BDC300E2BD0003E2BD0003E2BD0103E259
|
||||
:20690200BD0203E2BD0330E6000669FF42291656227601021F76780301561800008FB4DD7C
|
||||
:2069220069FF1F7676033AC5673E1A76AFE2BE03AFE2BE02AFE2BE01AFE2BE0080E2BE0049
|
||||
:20694200BEC5BEC4BE83BE8ABE870300303BF1FF17760276BDB2CFE6010008D003E2BD045C
|
||||
:206962000ED103E2BD0503E2BD0603E2BD07AFE2F400AFE2D40510E394040CD012E39C1F38
|
||||
:206982000ED118E394DA0AE3C4A000E3E4C600E7BB0110E700010CD010E7C00003E29C021E
|
||||
:2069A20003E2940008D0F406941E03E2F401AFE2BE07AFE2BE06AFE2BE05AFE2BE04BE8B63
|
||||
:2069C2000600022904295F565AFF42065F56421E00021FF617564200AB063256022920762C
|
||||
:2069E200022904295F565AFF420656FF421E00021FF6175642003256022920765AFF0002C8
|
||||
:206A02001FF617564200A9A920765AFF00021FF6175642002076103B1F7633002018FEFFCB
|
||||
:206A2200222B242B69FF262B282B2A2B2C2B2E2B302B322B342B362B382B232B252B272BDC
|
||||
:206A4200292B2B2B2D2B2F2B312B332B352B372B392B06001F763300201A01002128FFFFA8
|
||||
:206A6200102969FF0600A0E514AD0962A0E51F767C0314AD90E5B4562701156F4FE803C03D
|
||||
:206A820092E601008CB5050000E7CA00007700E78A000077CFE812F0007700E75100007746
|
||||
:206AA20000E74000060002FE1F767803380AC4E23800007712E8D01F14AD1164390A3992D3
|
||||
:206AC200382B0A520260392B3934570436963C0603610002036F000201193C1E82FE060085
|
||||
:206AE200A928FFFFAA28FFFFAB28FFFFA828FFFFAB0F04ED00D400BE0B6FA927A928FFFF00
|
||||
:206B0200A92FA4A9C488A928FFFF0209A98AA6924076379F060022761F76C00169FF1C1A9F
|
||||
:206B22000800787680001A761F76C401028FE6491CCCFF3F69FFA91A00401C96BF5618E0E3
|
||||
:206B4200A9A840765BB306000077006F1F767C03BDB22AC5A959673E1F767C032EC5A70665
|
||||
:206B620003ECA192673E1F767C032C0603ECA71E673E407611B3BE8B0600608F00001F7660
|
||||
:206B82007B03208F00FA38A03AA838063C1E3E2B3806046FA98A842BA9A81F767B033A0FD1
|
||||
:206BA200FA680600408F00C0008F000D2276009A85C4019C805284C2FC641A7669FF0600B2
|
||||
:206BC2001F767C0328A806001F767C032AA8060006001F767C032397249606000119C35616
|
||||
:046BE200FFFF0600AB
|
||||
:206BE6001201000000C07E8B00007E8B00007E8B00007E8B00007E8B00007E8B00007E8B7D
|
||||
:206C060000007E8B00007E8B00007E8B00007E8B00007E8B00007E8B00004C8C00003F8C95
|
||||
:206C26000000CF8F0000718B0000E6880000888B0000598C00001C8A0000118A0000068ABD
|
||||
:206C46000000FB890000F0890000E5890000DA890000CF890000C48900003D8A0000328A38
|
||||
:206C66000000278A0000B48A0000998A0000E68800009089000077890000DC8F0000488A38
|
||||
:206C86000000A9890000DE8D0000A88D0000728D00003C8D0000068D0000D08C0000E688F7
|
||||
:206CA6000000E6880000F98D0000C38D00008D8D0000578D0000218D0000EB8C0000E688F9
|
||||
:206CC6000000E6880000A68E00008B8E0000708E0000558E00003A8E00001F8E0000E6882F
|
||||
:206CE6000000E6880000B58C00009A8C0000E6880000E6880000E6880000E6880000E68893
|
||||
:206D06000000E68800007E8A0000638A0000C98B0000938B0000E48B0000AE8B0000E68882
|
||||
:206D26000000E6880000B48F0000998F00007E8F0000638F0000488F00002D8F0000E68874
|
||||
:206D46000000E68800007F8C0000648C0000E6880000E6880000208B0000CF8A0000E68876
|
||||
:206D66000000E6880000568B0000058B00003B8B0000EA8A0000128F0000DC8E0000F78E64
|
||||
:206D86000000C18E0000E6880000E6880000E6880000E6880000E6880000E6880000E6889C
|
||||
:206DA6000000E6880000E6880000E6880000E6880000E6880000E6880000E6880000E6885D
|
||||
:206DC6000000E68800005C89000041890000268900000B890000F0880000E6880000FF8BDD
|
||||
:206DE60000001A8C00002C012C01000000000F00160014000A003C000A00080006000800EE
|
||||
:0A6E06000600080033000B000A002C
|
||||
:206E10002800000012C1C09D00004D9E0000AE9D00003D9E0000A19D00002F9E0000949DBD
|
||||
:206E30000000189E00007A9D0000089E00006D9D0000FE9D0000519D0000F19D0000449DCD
|
||||
:186E50000000E39D0000379D0000D79D0000219D00000C9D00000000FB
|
||||
:20040000803FFFFF02DD00000000FFFF03DD00000000FFFF04DD00000000FFFF09DD00009F
|
||||
:200420001400FFFF0CDD00000100F0FFB0DA00003F0006005B004F0066006D007D00070001
|
||||
:200440007F006F00400000000000000079000000FFFF9BDF00000600FFFF9DDF00000000FD
|
||||
:20046000FFFF9EDF00000000FEFFA2DF000000000000FFFF82DF00000000FFFF83DF0000C4
|
||||
:200480000000FFFF84DF00000100FFFF85DF00000000FEFFBCDD000069BB0000FEFFBEDD46
|
||||
:2004A000000069BB0000FEFFBCDF000000000000FEFFBEDF000000000000FFFF38DF0000D1
|
||||
:2004C0000000FFFF39DF00000000FBFFCCDF000008000C00100000000400FFFF3CDD000022
|
||||
:2004E0000A00FFFF3DDD00000100FFFFD5DF00000100FFFFD6DF00000100FEFFD9DF0000BD
|
||||
:2005000000000000FEFFDBDF000000000000FFFF00D000000100FFFF40DE00000000FFFF3B
|
||||
:1205200041DC00000000FFFF01DD0000000000000000D0
|
||||
:20053200733B0000008002FEA4C5A988013B008FC0DBC7924196A9A8A681A71E1F76710305
|
||||
:20055200C7CC00E041CA4296C7FF01900B9842CCFFFDA98803564201A91CFF03A9180002D8
|
||||
:20057200A6CA429682FEC796060010E70B0001E8EAFA20E740000DE8BA9E6FE819F000E794
|
||||
:20059200100000E7490000E70000007710E740004076BEBA02E8010250E80000407696B71E
|
||||
:2005B2000600A71EA59243880860C4930461C40BA6920C6F009A0A6FC427AA2BA706AB0F7C
|
||||
:2005D2000362019A036FC40AA69206001F767D03BDB23392BDAA03E2BD04586179D1808D25
|
||||
:2005F200C0DB78D0013B9A92929EA985A9BD120F007700770077007789E604000077CFE63E
|
||||
:20061200210002E80818407696B71F76710303E21E0002E8101CCFE621000FE83033407692
|
||||
:2006320096B77AD11F76710378D0013B008FC0DB03E220009A92949EA985A9BD120F0077CA
|
||||
:2006520000770077007789E6010002E80818407696B77BD11F76710379D0013B008FC0DBA2
|
||||
:2006720003E222009A92949EA985A9BD120F007700770077007789E6010002E80818407642
|
||||
:2006920096B71F76710303E224001F767D0332922F617AD1808DC0DB78D0013B9A92929EAD
|
||||
:2006B200A985A9BD120F007700770077007789E6010002E84016407696B77BD11F7671038F
|
||||
:2006D20079D0013B03E222009A92929EA985A9BD120F007700770077007789E6010002E835
|
||||
:2006F2004016407696B71F76710303E2240000D1008FC0DB013BA9A8A181A98A74D0C8E2B2
|
||||
:200712009400008F40DFA9A8A181A98AC4920252046002E8D123056F02E8E1300AE8010091
|
||||
:20073200407696B7013B008F2ADD0356A1010156A40001D9A192045203E2C400DA64AFE201
|
||||
:20075200BE04BE86BE8B0600BDB2BDAA04FE0052A92DA85A06601F7671030B920B2B0C964C
|
||||
:20077200008FC0DB013BA9A8AC81A98AC44F076CAC921F7671030654E4FFB401008F86DE9E
|
||||
:20079200A9A8AC81A9837FD0008FC0DB944CC4E2C500EDFF9E01A9A8AC81A98AC44D3F6CE1
|
||||
:2007B200AC921F76710306543A6300B6A79200BEA985013BA98E008F40DFA9A8AC81A98343
|
||||
:2007D200A9A8A681A98AC592C4541460008FC0DBA9A8A681A98A1F7671031392C4CE0A60FA
|
||||
:2007F200008F86DEA9A8A681A98A01DFA93AC40DA98E01DEA6921852DF64A7920761A985EB
|
||||
:20081200421EA93AC0006BBAA98EA93AA9BD120F007700770077007789E60000AC921F76DF
|
||||
:200832007103079EA959A2922561008F40DF013BA9A8AC81A98AC4920A521A60AC92069E28
|
||||
:20085200A988008FACDFA9A8A681A98AC8E2C401008FA4DFA9A8A681A98A01E860EE0EE837
|
||||
:20087200686600E74000C492036106E84016A29256601F767D03329252617FD0008FC0DB84
|
||||
:20089200949316D0D3FF9492C1FFA8CAA940246C1F767C033C0620601F767D033192055291
|
||||
:2008B2000C6002E849280CE8010094E6080014AD0465A1920250A959A1920E64A9A8013B05
|
||||
:2008D200A181A98A8CE6000078D013E2940040765380EFFF1401AC921F7671030654E3FF5F
|
||||
:2008F2000E01A1400F6C79D0C8E29401007720E74000AFE2240300E71800007790E8007619
|
||||
:200912000E6F78D0C8E29401007720E74000AFE2220300E71800007790E800761F767D03D4
|
||||
:2009320033925261A192E3FFAF001F767D03319202521F61AC400F6C79D0008FC0DBC8E239
|
||||
:2009520094011F76710320E74000AFE2240300E718003A6F78D0008FC0DBC8E294011F76FA
|
||||
:20097200710320E74000AFE2220300E718002C6F08BEAC92A672008FC0DB013BA9A8A68160
|
||||
:20099200A983807686DEA606AC81A71E18D0C7929596AC9206520D6378D0C8E294011F7693
|
||||
:2009B200710320E74000AFE21E0300E718000C6F78D0C8E294011F76710320E74000AFE2D6
|
||||
:2009D200200300E7180016D0008FC0DB26E8000D94937FD0D0FF949232E8401AC9FFA8CA9F
|
||||
:2009F200A940036C02E8001150E80148A9A8013B8CE60000AC818CE60900A98318D01F76C1
|
||||
:200A12007C03A6BF120F13E29501432B3C063460A9A8AC81A98AC493A84E2E6DA61BECFFAB
|
||||
:200A32002565A692C852226330D09592FB9CA6540363A845146D008FC0DBA9A8AC81A98ADC
|
||||
:200A520030D0A69294540B6248D0945415651F767103431A10000B1A08000E6F1F76710354
|
||||
:200A7200431A20010B1A0400076F1F767103431A01000B1A1000AD5CAC9283DCA45C40764F
|
||||
:200A920000803C6F1F767C033C0616601235008F00D90156A400407634BA013B008FC0DB99
|
||||
:200AB200A9A8A181A98A8CE6000078D013E2940040765380236F1235C07640D70156A7008E
|
||||
:200AD200008F00D90156A40011F68424176FA9A8AC81A98A8CE6000018D013E294000E6F5B
|
||||
:200AF200008FC0DBA9A8AC81A983A9A8AC81A98AC52B18D0C51A0080942B84FEBE86BE8B5A
|
||||
:200B12000600BDB2BDAABDA202FE0052A95A06601F7671030B920B2B0C96008FC0DB013BE9
|
||||
:200B3200A9A8A281A61EC64FEDFFC700408F86DEA9A0A281A9837FD0944CC4E2C500EDFF52
|
||||
:200B5200B300408F40DFA9A0A281A9830356C501408F2ADD0156A500AFE2C50100E74000DB
|
||||
:200B7200A9A88CE60000A281A98AA1BF120F18D01F767C039479422B3C06E0FF8E00C64E90
|
||||
:200B9200EDFF8B00A29207525C610356A201A95B1F767D034218FFFB008D08DEA32D3E0692
|
||||
:200BB200412B22560190A95DA93AA381A98A20FFE80340763E80013B019B019089FFA395C7
|
||||
:200BD2004298A82D4218FFF73E06412B22560190A95DA93AAC81A98A20FFE80340763E8084
|
||||
:200BF20001908AFF4298A29206522B60029A4218FFEFA394A92D013B3E06412B22560190F2
|
||||
:200C1200A95DA93AAC81A98A20FFE80340763E80013B039B0190A3958BFF4298A82D4218C5
|
||||
:200C3200FFDF3E062256412B0190A95DA93AAC81A98A20FFE80340763E8001908CFF42984E
|
||||
:200C52004292C0FF42CDBFFF42CA008FC0DB013BC0FF42CAC0FF42CAC3FF4090A8CA42963E
|
||||
:200C7200A9A8A281A98348D0A19295540F63408F1CDFA9A0A281A983421A0800A9A8C581BF
|
||||
:200C9200A98AC492089084FF4298429205611F7671030B1A0200AD5CA29282DCA45C407609
|
||||
:200CB2000080156FA9A8A281A98A8CE6000018D013E294000C6FA9A8A281A983A9A8A28105
|
||||
:200CD200A98AC52B18D0C51A0080942B82FEBE82BE86BE8B060000BE013B008FC0DBA9A811
|
||||
:200CF200A681A98A01DE18D0A692C41800E01852942BF46400BE013B008FC0DB408FB4DFC6
|
||||
:200D1200A9A8A681A98A0356A6010156A50070D0C8E294001F767D0303E2C50031920652C2
|
||||
:200D32001760408F40DFA9A0A681A983C59203520F60A640056D18D094288601096F008FFB
|
||||
:200D5200C0DBA9A8A681A98A18D09428300201DEA6920452D264319201521060008FC0DB12
|
||||
:200D72001F767103A9A80881A98AC41A0040CC1A0040D41A0040DC1A00401F767D033192CB
|
||||
:200D920006520760008FC0DBC41A0040CC1A00404076538006001F767D033092A9931F76DD
|
||||
:200DB2007103BDB2FF9D052B062B072B01531C69A993FD9D015311690752086109521A60FB
|
||||
:200DD200BF56060FBF56070D156FBF560508BF560608BF5607080E6FBF560507BF56060EFA
|
||||
:200DF200BF56070E076FBF56050ABF560614BF5607141F767D033792AC2B013BC07668DC53
|
||||
:200E12001F76710306940896008F40DFA9A8AC81A98AC42B008F1CDFA9A8AC81A98A408F27
|
||||
:200E320040D71235C4210156A500008F00D90156A400AC92019C11F68524A92D185211F62C
|
||||
:200E52008424E3641F767D03349225611F7671030692AC2B20651F767D0333920961008F60
|
||||
:200E720040DF013BA9A8AC81A98ABF56C4091F767D0332920961008F40DF013BA9A8AC81C7
|
||||
:200E9200A98ABF56C408AC921F767103019CA92D0654E2641F767D033792AC2B1565013B67
|
||||
:200EB2001F7671030688AC92A672008F40DFA9A8A681A98A1F767D03AC92019CBF56C40A07
|
||||
:200ED200A92D3754EE641F767D03359236611F767103AC2B013BBF5612C80892AC94A988C4
|
||||
:200EF200008F40DFA9A8A681A98A408FB4DFBF56C403008F1CDFA9A8A681A98AAC9201F0E5
|
||||
:200F12000894C4960356AC01008FC0DB0156A500A9A8AC81A98A70D01235C8E29400008F98
|
||||
:200F3200C0DD0156A40003E2C500AC92019CA92D11F684240452D2641F767D033192065241
|
||||
:200F52000B601F767103008F40DF12282C01BF56DC02BF56D4021F767D0330920952346052
|
||||
:200F7200008F40DF408F1CDFC42BBF56C50108D0BF56CC010ED1CD2BBF56D404BF56D503B2
|
||||
:200F9200BF56DC04BF56DD02BF56E404BF56E505BF56EC04BF56ED04BF56F406BF56FC052A
|
||||
:200FB200BF56940609D0BF5694070AD0BF5694060BD0BF5694060CD0BF5694060DD0BF5657
|
||||
:200FD2009408BF569C081F7671030002132B0D28F915BF560E120F28F22B10283E49AC2BFF
|
||||
:200FF200013B90E5131A01E01F767D033E1E008FC0DFA9A8AC81A98AC42B008FC6DFA9A85C
|
||||
:20101200AC81A98A0356AC01C42B008F8EDF0156A400AC92019CA92D03E2C4000652E86474
|
||||
:20103200AC2B013B00BE0356AC01008F04D70156A400AC92019CC4C2A92D1C52F564AC2B8D
|
||||
:20105200013B008F08DEA9A8AC81A98AAC92019CC42BA92D2052F664AC2B013B008FA4DF8B
|
||||
:20107200A9A8AC81A98AC42B008FACDFA9A8AC81A98AAC92019CC42BA92D0852F064BE8B5C
|
||||
:2010920006001F767D0335921F7671030880026104DF00D5013B00D40356A5038076F0D8E1
|
||||
:2010B200A4810156A60001DCA492C62B0852F56401DDA5920252F0641F767D03319204525A
|
||||
:2010D2007761A79200D52D65013BA592A2FF008FF0D8CBFFA594A3FFA927A9A8AB81A61E65
|
||||
:2010F2000356AB04A92D019BA592ACEA189A67FFA594C699A988A2FFCBFFA594189CA3FFBC
|
||||
:20111200A92701DDA9A8AB81A98A0356AB04A92DA692ACEA019A66FFC498A792A554D662ED
|
||||
:2011320000D5013B008FF0D803BEA9A8A581A71EA592A672A9A8A681A98A08D001DDC7922F
|
||||
:201152009496A5920352EF641F767D033192008FF8D802520460A9280003036FA928000F5F
|
||||
:20117200FC981F767D0335920961408FF0D8A58A0FDCC41AFF00F51A003F1F767D033792C9
|
||||
:2011920005611F766303361A08001F767D03319206521460408FF0D8A58A08DCFC1A3000F0
|
||||
:2011B200EC1A0300FD1A00E0CD1A0030076F008FF8D8C41A0F00F41AFC01008FF0D8A483BB
|
||||
:2011D20008DC01DDC51A0100F41A0700FC1A00E00600BDB2BDAABDA203E2BD0403E2BD05C8
|
||||
:2011F20003E2BD060AFE1F767D034496319206520860449206601F7671030B920B2B0C9601
|
||||
:201212001F7671030892008F1CDF013B4494A988A9A84481A98A808DC0DBC4924696449251
|
||||
:2012320001F0019047964492A0FFA92D499603354896049AAC94A95BA9AAA681A98A457EAB
|
||||
:20125200C44FEDFF4002008F3CD7A9A84481A98A64BE4492A672C4E2C404A9AAA681A98A25
|
||||
:201272008CE62000408DB4DF13E2C40044920356A9010156A10002E891340BE801E0AFE2CC
|
||||
:20129200C10020E72000407696B7442D008FC0DD1235AFE2C10110E740000156A40003E203
|
||||
:2012B200C100407634BA1F767C038CE60000AC281F003EC4013B1F767C038DE60000A606CD
|
||||
:2012D2002256A60740FF3C0F0965A9AA4481A98A8CE6000070D013E294004492408F2ADDAD
|
||||
:2012F200008FC0DB0356A901A71E0156A500A9A84481A98A70D0C8E29400408D8EDF21E3E9
|
||||
:20131200C501A70600E70C000156A10000E72101AFE2C10620E7880102E8512B0BE8010012
|
||||
:20133200407696B7AFE2C10110E74000007703E2C1004076BEBA013B008FC6DF8CE60000E1
|
||||
:20135200A9A84481A98A13E2C4004792E0FFA4001F767103CFE62000AFE22601407622802F
|
||||
:20137200452D008F00D912350156A400407634BA4588008F40DF013BA9A8A681A98ACFE684
|
||||
:201392000600C4920352066012E8060D14AD026396E5008F40DFA9A8A681A98AC492025273
|
||||
:2013B200066012E8B61414AD026396E501E8A9FDCFE6300008E89927407696B71F767C0315
|
||||
:2013D200CFE605003C061660008FC0DB4588013BA9A88CE6300018D0A681A98381DEA9A878
|
||||
:2013F200A681A98A13E295008CE62B0018D013E294031F767103013BAFE62400408D8EDFAE
|
||||
:20141200AFE226000356A30120E720000156A10000E70100AFE2C10020E7080002E8512B38
|
||||
:201432000BE80100407696B7AFE2C10110E74000007703E2C1004076BEBA013B408FC6DF1E
|
||||
:201452008CE60000A9A0A381A61EABBF120F68B6C63F4892A772008FC0DBA9A8A781A61ECF
|
||||
:20147200A9A04681A71EAA286900C792C696A9A04481A71E4892AA72A9A8AA81A61EAA28BA
|
||||
:201492006A00C792C6964892AA72A9A8AA81A98AC43F0C6F1F767D03319201520360AFE6D5
|
||||
:2014B20024001F76710303E22604008FC6DFA9A84481A983A9A84681A98AC8E2C504C8E200
|
||||
:2014D200C400008FC6DFA9A8A381A98A96E604001F767C03C8E2C4003C06432B96E6040028
|
||||
:2014F200E0FFEA00008FC0DBA9A84581A98AC4CC0040CDFFA959008FC6DFA9A84481A98A82
|
||||
:20151200C8E2C400CFE6210020E72000407696B701E8C9F400D50CE8D1CC94E6080014ADFC
|
||||
:201532000B651F767103C8E21200007794E6040014AD026501D5008FC0DF013B1F767103FE
|
||||
:20155200A9A84481412BA98A0F0E40763E8000520D61009BA1920260019B0356A8084393C8
|
||||
:201572000451A818FFFEA8CA4396008FC6DF013BA9A8A381A98AC8E2C400CFE6210020E799
|
||||
:201592002000407696B701E8C9F400D50CE8D1CC94E6080014AD0B651F767103C8E2120092
|
||||
:2015B200007794E6040014AD026501D5008FC0DF013B1F767103A9A8412BA381A98A0F0E82
|
||||
:2015D20040763E8000520D61009BA1920260019B0356A80843930451A818FFFEA8CA4396BD
|
||||
:2015F2001F767D03319206526660479264604588008FC0DB013BA9A8A681A98A30D0C8E2BE
|
||||
:201612009400007794E6050014AD0D65009BA1920260019B0356A80843932051A818FFFE22
|
||||
:20163200A8CA4396008F40DFA9A8A681A98AC49203522860008FC0DBA9A8A681A98A48D0D4
|
||||
:20165200412BC8E2940000D594E6050014AD026301D5008FDBDF1F767103A9A84981A98ADE
|
||||
:201672000F0E40763E8000520D61009BA1920260019B0356A80843930851A818FFFEA8CAD4
|
||||
:2016920043964588008F40DF013BA9A8A681A98AC49202521060008FC0DBA9A8A681A98A0E
|
||||
:2016B20048D0C8E29400007794E6050014AD0365431A1000AD5C459283DCA45C40760080C1
|
||||
:2016D2000E6F008FC0DBA9A8A681A983A9A8A681A98AC52B18D0C51A0080942B8AFEAFE2F3
|
||||
:2016F200BE06AFE2BE05AFE2BE04BE82BE86BE8B06001B76F0FF00E2BD0030E600064229F4
|
||||
:2017120016562576006F1B76F0FF00E2BD0030E6000602FE422916561F76330038924196C6
|
||||
:2017320023760008267600003892382B2128FFFF1029103B419238962576006F1B76F0FF37
|
||||
:2017520000E2BD0030E6000602FE422916561F7633003892419623760008267600003818EF
|
||||
:2017720090002128FFFF1029103B419238962576006F1B76F0FF00E2BD0030E6000602FE16
|
||||
:20179200422916561F763300389241962376000826760000381890002128FFFF1029103B0F
|
||||
:2017B200419238962576006F1B76F0FF00E2BD0030E6000602FE422916561F7633003892C8
|
||||
:2017D2004196237600082676000038189C002128FFFF1029103B419238962576006F1B76F0
|
||||
:2017F200F0FF00E2BD0030E6000602FE422916561F763300389241962376000826760000B0
|
||||
:2018120038189E002128FFFF1029103B419238962576006F1B76F0FF00E2BD0030E6000617
|
||||
:2018320002FE422916561F7633002292419623760101221868002128FFFF1029103B419291
|
||||
:2018520022962576006F1B76F0FF00E2BD0030E6000602FE422916561F763300229241964F
|
||||
:20187200237601012292222B2128FFFF1029103B419222962576006F1B76F0FF00E2BD003B
|
||||
:2018920030E6000602FE422916561F763300229241962376010026760101221878002128BD
|
||||
:2018B200FFFF1029103B419222962576006F1B76F0FF00E2BD0030E60006422916561029B4
|
||||
:2018D2002576006F1B76F0FF00E2BD0030E600064229165610292576006F1B76F0FF00E235
|
||||
:2018F200BD0030E600064229165610292576006F1B76F0FF00E2BD0030E6000642291656D1
|
||||
:2019120010292576006F1B76F0FF00E2BD0030E600064229165610292576006F1B76F0FF9D
|
||||
:2019320000E2BD0030E600064229165610292576006F1B76F0FF00E2BD0030E6000642291A
|
||||
:20195200165610292576006F1B76F0FF00E2BD0030E600064229165610292576006F1B76E0
|
||||
:20197200F0FF00E2BD0030E600064229165610292576006F1B76F0FF00E2BD0030E6000656
|
||||
:201992004229165610292576006F1B76F0FF00E2BD0030E600064229165610292576006FC6
|
||||
:2019B2001B76F0FF00E2BD0030E600064229165610292576006F1B76F0FF00E2BD0030E68B
|
||||
:2019D200000602FE422916561F7633002292419623760100267601012292222B2128FFFF45
|
||||
:2019F2001029103B419222962576006F1B76F0FF00E2BD0030E6000602FE422916561F7615
|
||||
:201A120033002C92419623762000267639012C922C2B2128FFFF1029103B41922C9625764D
|
||||
:201A3200006F1B76F0FF00E2BD0030E6000602FE422916561F7633002C92419623762000FD
|
||||
:201A5200267639012C1832002128FFFF1029103B41922C962576006F1B76F0FF00E2BD009F
|
||||
:201A720030E6000602FE422916561F7633002292419623760100267601012218F80021285B
|
||||
:201A9200FFFF1029103B419222962576006F1B76F0FF00E2BD0030E6000602FE422916560B
|
||||
:201AB2001F7633002292419623760100267601012218FA002128FFFF1029103B41922296FF
|
||||
:201AD2002576006F1B76F0FF00E2BD0030E6000602FE422916561F763300309241962376DE
|
||||
:201AF200800026760000301803002128FFFF1029103B419230962576006F1B76F0FF00E29D
|
||||
:201B1200BD0030E6000602FE422916561F76330032924196237600012676000132187500AA
|
||||
:201B32002128FFFF1029103B419232962576006F1B76F0FF00E2BD0030E6000602FE42297D
|
||||
:201B520016561F7633003292419623760001267600013218FD002128FFFF1029103B419288
|
||||
:201B720032962576006F1B76F0FF00E2BD0030E6000602FE422916561F763300309241960E
|
||||
:201B920023768000267600002C1823002128FFFF1029103B419230962576006F1B76F0FF29
|
||||
:201BB20000E2BD0030E6000602FE422916561F76330032924196237600012676000132189D
|
||||
:201BD20071002128FFFF1029103B419232962576006F1B76F0FF00E2BD0030E6000602FED7
|
||||
:201BF200422916561F7633003292419623760001267600013292322B2128FFFF1029103B76
|
||||
:201C1200419232962576006F1B76F0FF00E2BD0030E6000642291656237639011029257654
|
||||
:201C3200006F1B76F0FF00E2BD0030E60006422916562576006F1B76F0FF00E2BD0030E6D2
|
||||
:201C520000064229165610292576006F1B76F0FF00E2BD0030E6000602FE422916561F76AB
|
||||
:201C720033002C92419623762000267639012C1837002128FFFF1029103B41922C96257685
|
||||
:201C9200006F1B76F0FF00E2BD0030E6000602FE422916561F7633002C924196237620009B
|
||||
:201CB200267639012C922C2B2128FFFF1029103B41922C962576006F1B76F0FF00E2BD009E
|
||||
:201CD20030E6000602FE422916561F7633002C92419623762000267639012C183300212853
|
||||
:201CF200FFFF1029103B41922C962576006F1B76F0FF00E2BD0030E6000602FE422916569F
|
||||
:201D12001F7633002C92419623762000267639012C1822002128FFFF1029103B41922C96FF
|
||||
:201D32002576006F1B76F0FF00E2BD0030E6000602FE422916561F76330038924196237673
|
||||
:201D520000082676000038189F002128FFFF1029103B419238962576006F1B76F0FF00E206
|
||||
:201D7200BD0030E6000602FE422916561F7633003892419623760008267600003892382BCE
|
||||
:201D92002128FFFF1029103B419238962576006F1B76F0FF00E2BD0030E6000642291656A9
|
||||
:201DB2002576006F1B76F0FF00E2BD0030E60006422916562376390110292576006F1B764E
|
||||
:201DD200F0FF00E2BD0030E60006422916562376391110292576006F1B76F0FF00E2BD002B
|
||||
:201DF20030E600064229165610292576006F1B76F0FF00E2BD0030E6000602FE4229165689
|
||||
:201E12001F763300309241962376800026760000301801002128FFFF1029103B41923096ED
|
||||
:201E32002576006F1B76F0FF00E2BD0030E6000602FE422916561F7633003092419623767A
|
||||
:201E52008000267600002C922C2B2128FFFF1029103B419230962576006F1B76F0FF00E26F
|
||||
:201E7200BD0030E6000602FE422916561F7633002A92419623761000267610012A922A2BDE
|
||||
:201E92002128FFFF1029103B41922A962576006F1B76F0FF00E2BD0030E6000602FE422922
|
||||
:201EB20016561F7633002A92419623761000267610012A1802002128FFFF1029103B419211
|
||||
:201ED2002A962576006F1B76F0FF00E2BD0030E6000602FE422916561F76330024924196BF
|
||||
:201EF200237602002676000024181F002128FFFF1029103B419224962576006F1B76F0FF5C
|
||||
:201F120000E2BD0030E6000602FE422916561F763300269241962376040026763D01269297
|
||||
:201F3200262B2128FFFF1029103B419226962576006F1B76F0FF00E2BD0030E6000602FE9F
|
||||
:201F5200422916561F76330024924196237602002676000024180F002128FFFF1029103BF6
|
||||
:201F7200419224962576006F1B76F0FF00E2BD0030E6000602FE422916561F763300269226
|
||||
:201F920041962376040026763D01261826002128FFFF1029103B419226962576006F1B7688
|
||||
:201FB200F0FF00E2BD0030E6000602FE422916561F76330024924196237602002676000002
|
||||
:201FD2002492242B2128FFFF1029103B419224962576006F1B76F0FF00E2BD0030E600064D
|
||||
:201FF20002FE422916561F763300269241962376040026763D01261826002128FFFF102946
|
||||
:20201200103B419226962576006F1B76F0FF00E2BD0030E6000602FE422916561F763300F0
|
||||
:20203200249241962376020026760000241808002128FFFF1029103B419224962576006F24
|
||||
:202052001B76F0FF00E2BD0030E6000602FE422916561F76330026924196237604002676CC
|
||||
:202072003D012692262B2128FFFF1029103B419226962576006F1B76F0FF00E2BD0030E66E
|
||||
:20209200000602FE422916561F76330024924196237602002676000024180C002128FFFF36
|
||||
:2020B2001029103B419224962576006F1B76F0FF00E2BD0030E6000602FE422916561F764C
|
||||
:2020D2003300269241962376040026763D012692262B2128FFFF1029103B419226962576B7
|
||||
:2020F200006F1B76F0FF00E2BD0030E6000602FE422916561F76330024924196237602005D
|
||||
:202112002676000024180E002128FFFF1029103B419224962576006F1B76F0FF00E2BD0046
|
||||
:2021320030E6000602FE422916561F763300269241962376040026763D0126183E00212807
|
||||
:20215200FFFF1029103B419226962576006F1B76F0FF00E2BD0030E6000642291656102907
|
||||
:202172002576006F1B76F0FF00E2BD0030E6000602FE422916561F7633002892419623763F
|
||||
:2021920008002676080128180F002128FFFF1029103B419228962576006F1B76F0FF00E269
|
||||
:2021B200BD0030E6000602FE422916561F76330028924196237608002676080128180F006F
|
||||
:2021D2002128FFFF1029103B419228962576006F1B76F0FF00E2BD0030E6000602FE4229E1
|
||||
:2021F20016561F763300289241962376080026760801281803002128FFFF1029103B4192E1
|
||||
:2022120028962576006F1B76F0FF00E2BD0030E6000602FE422916561F7633002892419679
|
||||
:202232002376080026760801281803002128FFFF1029103B419228962576006F1B76F0FF1D
|
||||
:2022520000E2BD0030E6000602FE422916561F7633002A924196237608002676080128927F
|
||||
:20227200282B2128FFFF1029103B419228962576006F1B76F0FF00E2BD0030E6000602FE58
|
||||
:20229200422916561F763300289241962376080026760801281802002128FFFF1029103BA9
|
||||
:2022B200419228962576006F1B76F0FF00E2BD0030E6000602FE422916561F7633003292D3
|
||||
:2022D20041962376000126760001321875002128FFFF1029103B419232962576006F1B761E
|
||||
:2022F200F0FF00E2BD0030E6000602FE422916561F763300329241962376000126760001B1
|
||||
:202312003292322B2128FFFF1029103B419232962576006F1B76F0FF00E2BD0030E60006DF
|
||||
:2023320002FE422916561F763300329241962376000126760001321831002128FFFF10291F
|
||||
:20235200103B419232962576006F1B76F0FF00E2BD0030E6000602FE422916561F763300A1
|
||||
:202372003292419623760001267600013292322B2128FFFF1029103B419232962576006FE8
|
||||
:202392001B76F0FF00E2BD0030E6000602FE422916561F7633002E92419623764000267645
|
||||
:2023B20000002E922E2B2128FFFF1029103B41922E962576006F1B76F0FF00E2BD0030E651
|
||||
:2023D200000602FE422916561F7633002E92419623764000267600002E1828002128FFFF85
|
||||
:2023F2001029103B41922E962576006F1B76F0FF00E2BD0030E6000602FE422916561F76FF
|
||||
:2024120033002E92419623764000267600002E1820002128FFFF1029103B41922E96257608
|
||||
:20243200006F1B76F0FF00E2BD0030E6000602FE422916561F7633002E92419623764000D1
|
||||
:20245200267600002E1838002128FFFF1029103B41922E962576006F1B76F0FF00E2BD00C5
|
||||
:2024720030E6000602FE422916561F7633002E92419623764000267600002E1838002128BC
|
||||
:20249200FFFF1029103B41922E962576006F1B76F0FF00E2BD0030E6000602FE42291656F5
|
||||
:2024B2001F7633002E92419623764000267600002E183E002128FFFF1029103B41922E9650
|
||||
:2024D2002576006F1B76F0FF00E2BD0030E60006422916562376390110292576006F1B7627
|
||||
:2024F200F0FF00E2BD0030E6000602FE422916561F763300229241962376010026760101BE
|
||||
:20251200221848002128FFFF1029103B419222962576006F22761F767D0316D0008F806FB6
|
||||
:202532003A9294CDFCFF03901F76BE0118D0A8CA16961F767D033B9294CDFCFF03901F760E
|
||||
:20255200BE011AD0A8CA18961F767D033C92019094CDFEFF1F76BE01A8CA1BD01A961F76D8
|
||||
:202572007D033D9201901F76BE0194CDFEFFA8CA1B961A7669FF060016D0008F806F1F769D
|
||||
:202592007D039492039018D03A96949203901AD03B96949201901BD03C96949201903D96C6
|
||||
:2025B20022761F76BE011618FCFF1818FCFF1A1A01001B1A01001A7669FF0600A9881F769A
|
||||
:2025D2007D03319200D4003102521860A640036D008F0008A641056DA9A8A91A0002A98A46
|
||||
:2025F200A642046DA9A88050A98AA643046DA9A80850A98A1F76BF0102A81F767D0331920F
|
||||
:2026120003524960A69205601F76BF01041A0008015205601F76BF01041A000202520560AC
|
||||
:202632001F76BF01041A8000035205601F76BF01041A0800045205601F76BF01041A020030
|
||||
:20265200055205601F76BF01041A0001065205601F76BF01041A4000075205601F76BF01B5
|
||||
:20267200041A0100085205601F76BF01051A0008095205601F76BF01051A00010A520560F8
|
||||
:202692001F76BF010D1A20000B5205601F76BF010D1A04001F767D03319201521F60A640BA
|
||||
:2026B200056DA9A8A81A0008A98AA641056DA9A8A81A0001A98AA642056DA9A8A81A000239
|
||||
:2026D200A98AA643036DAA1A0200A644036DAA1A10001F76BF0104A80CA906001F767D0397
|
||||
:2026F200319202520660008F880A1F76BF0104A8015209602FFF00161F76BF01128F000033
|
||||
:20271200021E0AA81F767D03319203520B60A928CB0BA82800091F76BF01248F0000021E95
|
||||
:202732000AA8060022761F76BE01408F806F061800000F8F00F0A5C4071800FF08183F0093
|
||||
:20275200091800FF1BDD0BDE1606A918C0FF161EA9A818C0A89219C0C618EFFF0B18DFFF8D
|
||||
:202772000B18BFFFC518F7FF1A76008FC06F1F767D03BF56300109D0CC92C4FF01F001906E
|
||||
:2027920030721F76BF010192C3FF1F767D0301F0019080FF30721F76BF010192C5FF1F76E2
|
||||
:2027B2007D0301F0019081FF30729492C2FF01F0019082FF309430960352036104520360FD
|
||||
:2027D200BF5631010152036102520360BF5631030552036106520360BF563106075203606B
|
||||
:2027F200BF56310208520360BF5631040952136131920152036106520360BF5635010252D5
|
||||
:20281200036103520360BF5633010152066105520461056FBF563105BF56320131920152AE
|
||||
:20283200036103520360BF56340202520360BF563401045217610152BF5636010360BF5639
|
||||
:20285200370203520A610152086106520B601F76BF01021A80000A6F1F76BF010B1A0010FA
|
||||
:20287200056F1F76BF010D1A001006520E6103520961015204610D1A0080096F0B1A008044
|
||||
:20289200066F0B1A0040036F021A800006520B6104520961025204610B1A0004066F0B1A3E
|
||||
:2028B2000040036F021A000206520661045204610B1A0020036F021A0800227604520A6287
|
||||
:2028D20004522461015240610252346103522661446F0552116106524060088F8A021F7626
|
||||
:2028F200BE01059AA82801FC0AA81A1E1F76BF01021A0800326F088F00001F76BE01049A0E
|
||||
:20291200A82801BC0AA81A1E286F088F49031F76BE0105020AA81A1E206FA928CB0BA82869
|
||||
:2029320008091F76BE010A1E059AA828257C1A1E146F088F8A0B1F76BE01059AA82801F845
|
||||
:202952000AA81A1E0A6F2FFF10161F76BE010A1E059AA82813BC1A1E1A7669FF0600BDB24F
|
||||
:20297200BDAABDA202FE1F767D03319200D200D3025232601F76BF0116D0008FC0DB09921C
|
||||
:20299200C1FF94CDFEFF01F016D116D00190A8CAA9CDFDFF949616D0099203F01F766F032F
|
||||
:2029B2000290A8CA9C9600CDFFF39492039089FFA8CA00961F76BF010040036C0102A98691
|
||||
:2029D2000042026C02DA004A026C04DA0044026C08DA10D0947A1F767D0331920152316085
|
||||
:2029F200408DC0DBA18A1F76BF01A183012916DCC418FDFF16DD0992C3FFA18A03F00290C5
|
||||
:202A1200C59816DCC418FBFF0992412B008F78DFC1FF01F00190A95D20FFFFFF40763E80B9
|
||||
:202A32000356A902A18A1F766F0316D0079016DCC49800CDFFE79192069089FFA8CA009687
|
||||
:202A52001F767D03319204525B60408DC0DBA18A1F76BF0116DCC418FEFF01CC0004C9FF2F
|
||||
:202A7200412BA95D008F78DF20FFE80340763E8016D91F76BF010190C198014B026C01DAAB
|
||||
:202A92000148026C02DA0945026C04DA0942026C08DA014A026C10DA0147026C20DA0944BC
|
||||
:202AB200026C40DA0044046CA9AA8009A9860149056CA9AA18FF0100A9860941056CA9AA5A
|
||||
:202AD20019FF0100A986004B056CA9AA1AFF0100A9860045056CA9AA1BFF0100A9860940A8
|
||||
:202AF200056CA9AA1CFF0100A986004A056CA9AA1DFF0100A98610D0008FC0DB947A1F76AE
|
||||
:202B12007D033192065210601F76BF010046026D01DA0048026D02DA004B026D04DA10D0A8
|
||||
:202B3200008FC0DB947A1F767D0331920552E0FF89001F76BF010945036D01DA026F10DB6A
|
||||
:202B52000944036D02DA026F40DB0042036D04DA056FA9A21CFF0100A9820044036D08DA12
|
||||
:202B7200056FA9A21DFF0100A9820046036D10DA056FA9A21EFF0100A9820040036D20DAEA
|
||||
:202B9200056FA9A21FFF0100A9820048036D40DA056FA9A21FFF0200A982004A056DA9AA2F
|
||||
:202BB2008009A986056FA9A21FFF0400A9820043066DA9AA18FF0100A986056FA9A21FFF12
|
||||
:202BD2000800A9820045066DA9AA19FF0100A986056FA9A21FFF1000A9820047066DA9AA38
|
||||
:202BF2001AFF0100A986056FA9A21FFF2000A9820041066DA9AA1BFF0100A986056FA9A242
|
||||
:202C12001FFF4000A982004B066DA9AA1CFF0100A986056FA9A21FFF8000A9820049066D79
|
||||
:202C3200A9AA1DFF0100A986056FA9A21FFF0001A9821F767D0310D0008FC0DB3EA2947ACD
|
||||
:202C5200008FC06FCC92013B1F76BF01C4FF01F0019009D0A985A9860192C3FF01F0019063
|
||||
:202C720080FFA9850156A2000192C5FF01F0019081FFA9850156A2009492C2FF01F00190B3
|
||||
:202C920082FFA9850156A20017D0008FC0DB82FE947ABE82BE86BE8B060006000052A88880
|
||||
:202CB200C48A096509520763FF9CC4CDF8FF0790A8CAC496A69245520D614E5208614F5214
|
||||
:202CD2000D60C41A2000C418BFFF086FC418DFFF056FC41A2000C41A4000A592015203602F
|
||||
:202CF200C4187FFF02520360C41A8000C418EFFFC418F7FF0600BDB200D5013B008F40DE84
|
||||
:202D1200A9A8A581A98AC47D01DDA5924652F76433D1008F40DE34D0BF569C0CBF56940C87
|
||||
:202D32001F76400335D03BD1BF56940836D0BF56940937D0BF56941038D0BF56940839D0AD
|
||||
:202D5200BF56940C3AD0BF56940C3DD0BF569C053CD10092FE9C949641D00092FF9C94965F
|
||||
:202D72003ED0BF56940810D0BF56DC08BF56E465BF56F408BF56940DBF56EC1BBF569C12A5
|
||||
:202D9200BE8B0600A9BD120F00770077BDB21F7671038BE60100A48B50E8094088E23C001D
|
||||
:202DB200407696B788E6000000770077A9BF120FC18AA993B7FFFF91D497C18AFF90DC9695
|
||||
:202DD200BE8B06000852A927A4C50960089A01D54E9B4076BB93008D3B03972BAB9209520C
|
||||
:202DF2000B60089AA78A01D54E9B4076BB93008D3B03BF5697010600A71EBDB2A492BDAA71
|
||||
:202E12000152BDA22A60008F5070C08D40D01F76410300A822761F76BE01408F45B609CDAB
|
||||
:202E3200FFF7A81A0004008F00B6099709CDFFFD1F763700A81A000100A01F76BE010997EA
|
||||
:202E52001F76370002A81F763300321A0100321A0200237600011A7602523360008F507720
|
||||
:202E7200C08DC0D31F764F0300A82276408F806F1F76BE01FDCDFFEF8076BBB5A58AA81A18
|
||||
:202E92000020079716DD07CDFF3F1ADCA81A008007971F763700C518CFFF408F76B5C41A38
|
||||
:202EB200040004C21F763300321A04001F76370006A01F763300321A0800237600011A7666
|
||||
:202ED200D396A38A01D54E9B69FF089AC3864076BB93A2C4A2830BD0A28A0CDE0CDDC61AEF
|
||||
:202EF20000400ADCC518FFDFCA18BFFFCA18DFFFCA18F7FFCA18FBFFCA1A0200CA1A010000
|
||||
:202F1200C418FFBF92CCE0FF0BD0015092964076E893A38AA70640762F94D39202520560D2
|
||||
:202F32001F76BF01081A0400C38A099ABF56E402A38A40764F94408D33030CD0932BA28A8A
|
||||
:202F5200008D9E01932B9B2B0BDCC41A4000CA1A2000BE82BE86BE8B06001F764103BF56E5
|
||||
:202F720002011F764F03BF5602021F764003009606000002008D4203941E0600BDB2BDAA66
|
||||
:202F9200A486008D3A0392923660A9AA13FF6700A98A008D360301020156C4009206008D69
|
||||
:202FB2003803920F0466C28ABF56E40208D092C5A7C408D0090201DE92C2C207A98A008D39
|
||||
:202FD2003603C792C4969206008D3803920F4966C28AE446FE6CA28A099A40764F94D29297
|
||||
:202FF200025205601F76BF01081A0400008D9E01922B376F008D3803928A408D3803A492DA
|
||||
:20301200008D36030190A98801DC9AA89206008D3803920F0466C28ABF56E402A6920B60A2
|
||||
:2030320008D092830902C207A98AC592A7FFFF90C4960D6F08D09283A5C408D0090201DE10
|
||||
:2030520092C2C207A98AC592FF90C496008D36039206008D3803920F0466C28AE446FE6CBD
|
||||
:203072001F763300211A0001BE86BE8B0600BDB200BEACA0BDAAA486BDA2A98201DEA61B73
|
||||
:203092003075FD69D292025205601F76BF010818FBFF00BE01DEA61B1027FD69408D360386
|
||||
:2030B200A9AB08D09AA20109921E008D3A03922BC28AE446FE6CA28A089A40764F9401BE4F
|
||||
:2030D200008D38030102A30F92C21C68A7AB0902C207A98AC792C496C28AE446FE6C00BEDF
|
||||
:2030F20001DEA61BE803FD69A28A099A40764F94D292025210601F76BF01009A081A040028
|
||||
:203112000B6FC28A0902A7ABBF56E401C207A98AC792C496009ABE82BE86BE8B0600BDB2F5
|
||||
:20313200BDAAA486EFFF3901C28AFCCCFF00A958EC47EDFF2C01408DA0019A92E0FF2D01BD
|
||||
:20315200408D3B039A920152116000BE408D3D03BF569A01408D34039AC2408D3F039A2BB3
|
||||
:20317200408D3E039A2B0DD19A2B408D3F039A92E0FF1301408D3D039A924F60F2C4208F4C
|
||||
:203192000000A9A8A60F06662F8F0000A9A8A60F0867608F00000AD1208F0000F2A09AA82B
|
||||
:2031B2000CD19A923A52E0FFF800408DA0019A922E60408D34039AC4A692A94001DE9AC2AB
|
||||
:2031D200066DF28A0356A008C496076FF28AA9A80109F21EA092C498008D34039206E20F5B
|
||||
:2031F200E8FFDB000FD10CD0BF569A33A28A099ABF56923340764F94408D3F03008DA001DE
|
||||
:20321200BF569A01BF569201EFFFC700008D3F03BF569201EFFFC100408D3E039A923E6091
|
||||
:20323200A0921F760E03305425611F7674033D5403603D921F60A088408D31039A0EA60FC6
|
||||
:203252000560408D33039A921560A0921F7674033C5407603C920561408D33039A920A6150
|
||||
:20327200408D3F03008D3D03BF569A01922BEFFF9400408D32039A78408D3E039A80019A9A
|
||||
:20329200013BA7949A96A9AAA781A98A0ED1089A9C78A28A40764F947F6F9A80019A013B8E
|
||||
:2032B200A7949A96A9AAA781A98A0ED19C78408D3E039A9207520E600DD19A9210520A6019
|
||||
:2032D200408D33039A9206600A9A1F767903A0941096408D3E039A9203520B600DD19A59ED
|
||||
:2032F200A19204520660059A008F40DEA0949C96408D3E039A9202521A60A0920DD10352AE
|
||||
:203312009A78336842523166008F40DE949203522C68A09233520B600CD19A923A522560CB
|
||||
:20333200A09233520460008D3D03922B0DD09258408D3E03008F40DE9A9294540467A91B11
|
||||
:2033520090012A68A28A099A40764F94408D3D039A2B0DD0408D3F03BF569A01408DA001F4
|
||||
:20337200BF569A01922B186FA28A099A40764F94408D3E039A2B0DD0408D3D03BF569A0172
|
||||
:20339200408D3F039A2B922B076FC28ACC18DFFFC28ACC1A2000C28AEC46EDFFC7FE1F76F0
|
||||
:2033B20033000BDC211A0001C41A4000BE86BE8B0600BDB2BDAAA486A61EBDA2A582D29246
|
||||
:2033D200025205601F76BF010818FBFF408D360308D09AC292A2008D3A03BF569201C28A87
|
||||
:2033F200E446FE6CA28A089A40764F94008D38030102921EC28300BE0902BF56E501C20773
|
||||
:20341200A98AC392A7FFFF90C496A692BE82BE86BE8B06001F76BF0100920093C5FFD7FF64
|
||||
:2034320001F001F10190019190FFA9CB0092CAFF01F0019081FFA8CA060009D0008FC06F05
|
||||
:203452001F76BF0194CD0004D9FF09CC004090FFCDFFA9CBC492C2FF01F0019081FFA8CA59
|
||||
:2034720006001F767403BDB20593A9800153BDAAE0FFFD001F767D0331930653E0FFF70059
|
||||
:203492001F7671030493E1FFF2001F767403039302CBE0FFEA007FD0008FC0DB1193948837
|
||||
:2034B2001660A646036C1546086CA647036D1547046D00530C600F6F061B7C0103680628BC
|
||||
:2034D2007B01122B1128E803A71A0001061BF702E7FFC800A7920552056012930361A71AB4
|
||||
:2034F2000002AC28F802AB282A00AA2B0B30608F0000ACA9080D6556A900A9A90156A500D2
|
||||
:203512001E06C5961E06CD97D57FDD7E40767797E59640768A971F767E03ED9608921F7605
|
||||
:203532007E03F5960680008FC0DBFD7FA4C508D009D11CDC7BDFC792A4C5008FC0DB9596BD
|
||||
:2035520000D0C7929D96A9A80AD1A00DA71E5AFFA092A17218DFC7929D96A7A9A0920ED1DD
|
||||
:20357200A17201D8C7929D96A0920452ED681F76740312D01392C076D1DF13D1959614D078
|
||||
:20359200C7929D9615D1CF92959616D0D792A4C59D9614921F767D0350DF959617D018928A
|
||||
:2035B2009596A9A851095AFFC792A7A918D119D09D96C7929596A9A87909A71EC792A4C53E
|
||||
:2035D2001AD11BD078DF9D96C7929596A9A87A09A71EC792A4C51CD06FDF9596C792A4C573
|
||||
:2035F2001DD01ED11F7674036EDF008F86DE95961FD0C7929D9620D11892959621D0199289
|
||||
:203612009D9622D11A92959600D01B929D9623D11C929D9624D1A092A172949301D8A092AA
|
||||
:203632009D970452F868C076DDDF28D129D01F767403C7929D96CF929596157EE5921696D0
|
||||
:20365200A928F802ED93080A179708540260082B061BF8020267060A010201562000066FD9
|
||||
:20367200BF561201036FBF560503BE86BE8B0600BDB2A888A98001D1BDAA0876303BBE5AEC
|
||||
:20369200008F0010AA2BA727A9A8AB0F2A60A6935161A9A8AB0F2560A693015322601F7622
|
||||
:2036B2007D03319206521D601F767103049219611F767403059201521461062BC076C0DB5A
|
||||
:2036D200082B112B102B072B7FDF0A2BC7921596032B022B019ABF56050140769E972F6FCB
|
||||
:2036F20020FF0110AB0F0B601F767403059201520661A6930461A61BE8031A6920FF021008
|
||||
:20371200AB0F0460A61BF8020F68A78020FF0310A70F0860A692015205661F767403107E40
|
||||
:203732000E6F00D10C6F1F767403077E086F097E066F1F767403BF560503112BBD7A007698
|
||||
:20375200A192BE86BE8B06001F76740306930B8808920F0A0B1C0100112B062B0D970C7EE3
|
||||
:203772000E96082B0600BDB20876303BBE591F767403059201521860010201561E000A0AF1
|
||||
:2037920009920A5405660A2B019A40769E971F76740311920961FF9C11960660059A4076E2
|
||||
:2037B2009E9740761199BD790076BE8B0600BDB20876303BBE59049A40769E97BD790076C3
|
||||
:2037D200BE8B06000052A88005611F7674030D93046F1F7674030693005203610E88026F27
|
||||
:2037F2000888005203610C27026F0B27A7550366009A1B6FA692A89EA794A908F802A91BEA
|
||||
:20381200F8020668A90808FDA91BF802FC67AC28B07CAB32AC282A00A930AB07A40D208F91
|
||||
:2038320000000156A400C4920600A927AB93A80800F00F5337660356AB01A988A60800E0AE
|
||||
:20385200C076DAC3A706A60DA71EC7C52076A9284D55EFFF99002A9AEFFF9600A928F8022F
|
||||
:20387200EFFF92001F7674030992EFFF8D001F7674031E06EFFF88001F7674031E06A80E08
|
||||
:20389200EFFF82001F767D0331927D6F1F767D033092796FA928E803766F1F7674031192D3
|
||||
:2038B200726FAB1B10105A68AB1B88101A671F76740310930460059301531361AB92A9082D
|
||||
:2038D200F0EF2A9BA927C0005BBBA95C2ABEAB0E0FF6A61FA9931092079540764F99536F42
|
||||
:2038F200AB1B00113B68AB1B7C1138671F767403069302530468AA280200026F062F200644
|
||||
:20391200AB0800EFAA01A61EAB920360A6923B6F01520460A606A80E366F02520360AA9251
|
||||
:20393200326F035205601F7674030F922C6FFC9C2ABEA927AB0E0FF6A61FA95DAA93A555C2
|
||||
:203952000D69AB922A9BC0005BBBA95C0693AA9F009AA59540764F99166F009A146F1F7677
|
||||
:203972007403109205611F7674030D920C6F06920A6F1F76740310920361039A046F1F76C8
|
||||
:203992007403059206001F7674030592BDB2015227601F767D033192065222600876303B7A
|
||||
:2039B200BE597FD0008FC0DB94881F767403150EA60F116040767797A9881F767403160ECF
|
||||
:2039D200A60F096040768A97A9881F767403170EA60F0461039A40769E97BD790076BE8BE7
|
||||
:2039F20006001F767403052B00B600BE062B009B00D0008FD1DF0F2B0E2B0D2B122B112B00
|
||||
:203A1200102B142B132B0B2BBF560C01072B082BBF5609140A2B1EC320C2942B01D8A0922B
|
||||
:203A32000352FC6800D0008FDDDF942B01D8A0920252FC681F7674031A2B192B182B1C2BFF
|
||||
:203A52001B2B1597169717970600BDB2BDAA04FEA92F1F767D03A82D31920652426008762C
|
||||
:203A7200303BBE59AACCFF1FAB28008000D04321A980427C417DAB92AACE1761A75A20FFA5
|
||||
:203A92003101A20F0860AD8883DEA6881F767F0396921D96A79208520860AD8883DEA68854
|
||||
:203AB2001F767F0396921E96AB9201D8C0FF01DFA927A0920352E0681F76740305920152B7
|
||||
:203AD2000E6013578076D1DFC621029ACE7CD67D140A40769E97BD790076036FBD79007663
|
||||
:203AF20084FEBE86BE8B0600608F00001F767403208F00FA22A024A82206261E282B220686
|
||||
:203B1200046FA98A842BA9A81F767403240FFA680600BDB2A9A8BDAA10FFA101A98BA48610
|
||||
:203B3200408FFFFFA98ABF56C1100602BF56C904D12BD92BE12BBF56E930407648B8A9CD3D
|
||||
:203B5200FF00008D9E01A7FFFF90F197A28AA183F9960802BF5692014076A495BE86BE8B5E
|
||||
:203B72000600BDB200BE00D0408FC0DBAA2B008F80DCA9A8A00DA98A9580C427A70EAB0F66
|
||||
:203B92000361C47F01BE01D8A0928052F168A6921061408D80DC809AA18A407659B880D049
|
||||
:203BB200A82802019196A18AA9287E3F40768FA5BE8B0600BDB2BDAABDA2AD5A88DAAD08B4
|
||||
:203BD2008200A48B0ED90356D108D9CAA988A482A61B00100367009A3E6F0356E108E9CA98
|
||||
:203BF2000876303BBE93AD5CAD5D08D09297A40880FFA5087FFFA6934196A45CA55DC992A2
|
||||
:203C1200407663A0A98008D09292BD9600761F767403AD5CA9A23D8809D0A40880FF10FFB3
|
||||
:203C3200A101417EC988A983A45CA98B427E9292439620FF9001447F4076DE9E00520A6141
|
||||
:203C5200008D9E01A90EA38AA183BF5693014076A495019AAD087EFFBE82BE86BE8B0600E6
|
||||
:203C7200A888A927BDB2A9A8A48B1F767403BDAA10FFA101408FFFFFA71EA986A98AAB92EE
|
||||
:203C92003D278050C73FCF960302D77E407648B8A9CDFF00A7FFA283008D9E01FF90A18A3D
|
||||
:203CB200DD97E5960502BF5691014076A495BE86BE8B0600BDB2A48B4076479B00523760B4
|
||||
:203CD20000D5008DA101A9B2A50DA71EA9B2A50DA98A01DD0EDFC7929496A5920852F46881
|
||||
:203CF200A18A0EDC0356D408DCCAA9580356E408A093ECCA80531667008FC0DB9496A092BD
|
||||
:203D12007F52036040764499A9B2008D9E01A18A10FFA101BF569101A9830A024076A49599
|
||||
:203D3200066F069A029BA18A40769D9BBE8B0600BDB2BDAABDA202FEA4864076479B00520E
|
||||
:203D52007E60A28A0EDC0356D408DCCAA9270356E408ECCAA988FF9C7D526C67AB9280523A
|
||||
:203D72006967809AAB9EA6546568A9AA10FFA101A71E00D41F7674033D92C7960356A60162
|
||||
:203D9200BF56CF03D796A6921E61A458AB92408FC0DB03D1A0720356A401A980A9AA952F3F
|
||||
:203DB20010FFA101A983A792A17204D0AA92C7FF9D96A792A07201DCAACCFF009596A692BF
|
||||
:203DD200A454E4660356A6014196A993039A408FFFFFA894A959A9AA10FFA101A982A98A72
|
||||
:203DF200A10E407648B8A9CDFF0004D0A7FF9B974193A073FF90AB280500089B9396AB92D4
|
||||
:203E120041944195A958069A4194A980079A4194932BA758A859932BA958A28AA383A10E52
|
||||
:203E3200932B008D9E019B2BBF5692014076A495066F039A029BA28A40769D9B82FEBE82A0
|
||||
:203E5200BE86BE8B0600BDB2AC2BAB2808008076ACDF0C3505D106D0A483A172A072A980B9
|
||||
:203E72000EDD03569D089594AC5807D19696AB92A794A958A793A173009B95929DCA0052D4
|
||||
:203E92000261019BAC92AC58408FA4DF019C0852A92D9597DF68BE8B0600BDB210FEAD5C68
|
||||
:203EB20089DCA45DAD5CC0768CC38FDCA45C08F6852400D0C0769CC305F68424008FC0DBB8
|
||||
:203ED200942B01D8A0928052FC68A4C51F767D0330921F767D037EDFC7963192045208613F
|
||||
:203EF20060D162D0BF569C0ABF569408116F1F76700300D0BF562002AD5C8FDCA45C9492B8
|
||||
:203F1200008F22DC949601D8A0920652F66861D0008FC0DB1F767D03BF569465379204616B
|
||||
:203F320063D0BF5694141F767D0336921B611F767D0330883092085281DE0365308882DE5E
|
||||
:203F520000D00129008F34DC0356A603C076C0DEA00D0156A700C792949601D8A09208524D
|
||||
:203F7200F4681F767D03319201521A601F767D033788012920FFF2FF00D0A60F1161008F9A
|
||||
:203F9200C0DBA9A8A00DA98A30D101D8BF569C4648D1BF569C3C37920E9CA054F1661F7619
|
||||
:203FB2007D0331920252216000D0008FC0DBA9A8A00DA98A01D830D1A092BF569CAA0652ED
|
||||
:203FD20048D1BF569C96F26806D0008FC0DBA9A8A00DA98A01D830D1A092BF569C7308525A
|
||||
:203FF20048D1BF569C69F2681F767D0331920352116000D0008FC0DBA9A8A00DA98A01D880
|
||||
:2040120030D1A092BF569C46145248D1BF569C3CF2681F767D03309209521B6000D0013BE5
|
||||
:20403200AD5C89DCA480008F40DFA7069481A71E008F08DCC792949601D8A0920F52F168EC
|
||||
:204052003DD1008FC0DB3ED0BF569C46BF5694461F767D03319206522B60008FC0DB30D03D
|
||||
:2040720032D19428A401A4C531D09428A40133D09C2884037ADF4BD19428840348D0942825
|
||||
:204092002C0149D094282C014AD0942820039C282003C792A4C56ED051D194967BDF6FD01A
|
||||
:2040B200C792949650D0BF569406BF569C101F767D0335920A6100D0008F30DC9428000865
|
||||
:2040D20001D8A0920452FB684076D88390FEBE8B0600BDB2408D80DCA9287E3FA828020123
|
||||
:2040F200A18A4076D2A5809AA18A407659B8A98080D0A988910EA70F0E60A688012920FF66
|
||||
:20411200FFFFA60F08611F767D0330887ED0910EA60F15614076BA9C408DC0DB7FD0912B0D
|
||||
:2041320040761E9B1F767D03349217617FD91F767103C11A10001128FFFF0F6F00D0008F4B
|
||||
:2041520080DC9492008FC0DB949601D8A0928052F7681F7670033F2BBE8B06004076A59887
|
||||
:2041720006000652A888436103520361019A486FA5921C60A492FF9C7D523F67A61B001026
|
||||
:204192003C68A61B10100667A9281010A69EA4543667A61B10103168A61B88101F67A92827
|
||||
:2041B2008810A69EA4541A682A6FA68020FF0010A70F0460A49210522261A68020FF10100F
|
||||
:2041D200A70F0C60A49228521A6150521861785216612A52146154521261A68820FF0011BC
|
||||
:2041F200A60F0B60A4927C520860096FA61B00100468A61B03100369029A026F009A06007F
|
||||
:20421200407682990600BDB2BDAABDA206FEA927A85B44A052C44F92A4864196505D46C218
|
||||
:204232004406036146060360009A366FAB92415CA39340761E9E468A0052C4962860A9AAF7
|
||||
:204252002361AB9203520461E20604601D6FD2061B61AB9203520961E2C5C28AA3924193AD
|
||||
:20427200673E00521161136F419200D11561A192D2C5C28AA394673E448A9C9601D9419288
|
||||
:20429200A154F666096F468ABF56C403448AC47B4193029ACC9786FEBE82BE86BE8B060060
|
||||
:2042B200A993FF90D7FFC497CC960600A9838076FFFFA9A00360A692146F8492FF90A6F2C4
|
||||
:2042D20081DD009BA640046CC07601A0026F00B6A692019DC0FFA770A9880853EB67F36F93
|
||||
:2042F2000600BDB2BDAAABA0BDA2A982A9A04C884B804A58495AA4833061A2922E61F7520A
|
||||
:204312002C66A0927F522966A792FF52266600522160A9A02261A092035208600352086006
|
||||
:20433200A692FF9C7C520468186F06521660A09206520460A69202521060A7920B60A09249
|
||||
:20435200065206610356A601059CA90E046F0802026F0502A30F036900BE4A6FA4A9A79224
|
||||
:20437200C47ACC782A60A09206521B610356A601D49600D0A6920F610356A001A980A9A9C2
|
||||
:20439200A70DA98A959203DC4076BD9E01D8A692A054F3660356A601039CA90EAC1E126F0E
|
||||
:2043B200C59202DC4076BD9EA4A9CD9204DC4076BD9E0602AC1E066FCC1A80000302D47F03
|
||||
:2043D200AC1EA4A94076C39EA6A9A980A4ABA9AB0156A600A5A901DCA7CDFF00C697A9A839
|
||||
:2043F20001DC0156A500A4C4A792C7FFC596BE82A606BE86BE8B0600BDB2BDAABDA2AD5A55
|
||||
:204412008CDAAD0886000ED092A0D28010D0C227CA88927F0CD0DA5B921E0ED092060E61B5
|
||||
:204432000CD092C5FD02A70F0966A392FF9CF752056710D092927F5203690002216FAD5DB1
|
||||
:20445200A5087FFFA580AD5D413FA50880FF422BA69344C3A55D4076709EAD5C11D1417B2A
|
||||
:2044720010D0A40880FF92930ED04297A45C9A934397449692830CD092064076DE9EAD08F2
|
||||
:204492007AFFBE82BE86BE8B0600BDB2BDAA0AFEAD88C076A2C3AD58808D6D9E408D1B9E6D
|
||||
:2044B20053278ADEA688522F512D8AD805F6862448AA46B2417DA483A05C42214357443F89
|
||||
:2044D2004076699F8AFEBE86BE8B0600BDB20AFEAD88C07696C3AD588ADEA6884F27408DD8
|
||||
:2044F2006D9E8AD805F6862480761B9E48B246C2413FBF56420144A0A483A05C4076709E44
|
||||
:204512008AFEBE8B0600A4C4BDB2A827A95C4680452FA6061461A9A01261A49202520F68EF
|
||||
:204532007C520D66A4400B6DC0FFAB540869AA92FF9CFF520467A792FF520369009A1A6FF1
|
||||
:20455200A68A0356AB01A9599C92A58A4076BD9E01D0A192A072969202DC4076BD9EA58A48
|
||||
:20457200A928001FAB9404DC4076BD9EF557089AFD7FBE8B0600BDB2BDA20AFEA827A92FD3
|
||||
:20459200A9A0A5825487528851802C61A9AB2A61417FAD5DAA92AB93427E8ADDA55D407684
|
||||
:2045B200F09F00521F61012903564A0849AF3FFFA71E03564808A988A38AA706A6AF47AFB9
|
||||
:2045D200C41E0356460845AF3FFFA71E03564408A988A4ABA706A6AF43AFA71E089AC4C342
|
||||
:2045F200026F009A8AFEBE82BE8B0600BDB20AFEAD88C076A8C3AD588ADEA6884F27408D5C
|
||||
:204612006D9E8AD805F6862480761B9E48B246C2413F422B44A0A483A05C4076709E8AFE85
|
||||
:20463200BE8B0600C493CC92A8380600BDB2BDAABDA204FEA61EABA0A9A0A48B52874D5A40
|
||||
:2046520050821F61A9A21D610802A60F1A60FD02AC0F1766A292FF9CF7521367A4A9C48892
|
||||
:20467200A20EA60F0E6000D09492FF520A6601D8A0920852FA6808024076C39E0052036100
|
||||
:204692000002156FA4A902DC40767FA0A4A9A98804DC40767FA0A4A9417AA383CC934297E9
|
||||
:2046B200A18A437E4496A9AB4076699F84FEBE82BE86BE8B0600BDB2BDAA04FEAC1EA5C4B0
|
||||
:2046D200A9A0A48650C54EA34C8E3961A93A3761A9A93561A70633610802AC0F3060A9AB8E
|
||||
:2046F20000D40D61A683A9A80156A500C592FF52266601DCA483A9ABA50FF566A68A04DC45
|
||||
:2047120040767FA0A95D20FF001FA50F1860A683F5921561A4A9C496A68A40767FA0A927A0
|
||||
:2047320002DC40767FA04196BF564201AB93A28A44C3FD92A0834076709E026F009A84FE11
|
||||
:20475200BE86BE8B0600A988FF9C105203670253036900310B6F0129AB28FFFFAA28B9002A
|
||||
:204772000356A804A60D0156AB00A9A906000600A983C57C0600BDB2BDAABDA206FE1F76CE
|
||||
:204792007403A482BF5602010EDCEC92FF90A95AE492FF90A988A9AA37FFA6AFA986DC92A7
|
||||
:2047B200FF90A988A9AA37FFA6AFA986D492FF90A98809D0A9AA37FFA6AFA9869492FF9059
|
||||
:2047D20008D0A9599492FF90A988A9B237FFA6AFA98BFC92FF90A988008D3203A9B237FF4C
|
||||
:2047F200A6AFA98BF492FF90A988408FFFFFA9B237FFA6AFA98BA9A210FFA101A71E441ECE
|
||||
:20481200A98A9392C7960202BF56CC34407648B8A90E461EA28A465DA9B240761EB841965A
|
||||
:2048320044830102A38A4076A49544830102A38ABF56C5344076A4954192A90E461EC38A51
|
||||
:20485200E446FE6CA9B2A38AA28340764697C38AE446FE6CA9A210FFA101A983A38A469264
|
||||
:20487200A993FF91A7FFFF90C597CD960602D52BDD2B4076A49586FEBE82BE86BE8B060010
|
||||
:2048920006000600A98AC4920600A988BDB21F767103A9A8008D3203A48BBF560101BDAA02
|
||||
:2048B20010FFA101408FFFFFA71EA986A98A9193C7970202CF7E407648B8A9CDFF00A2831E
|
||||
:2048D200A7FFFF90A18AD597DD960602E52BED2B4076A495BE86BE8B0600BDB202FEA48B37
|
||||
:2048F2000EDCEC92FF90A980E492FF90A988A70637FFA6AFA71EDC92FF90A9880129A7064E
|
||||
:2049120037FFA6AFA71ED492FF90A988412BA70637FFA6AFA71EFC92FF90A9934196F492F0
|
||||
:20493200A838419620FF0080A70F0666A706415C407625A1086FAD5CA792029B81DCA45C74
|
||||
:2049520040768FA5399AA18A4076B2A182FEBE8B0600BDB2BDAA02FE1F767103A486BF5667
|
||||
:2049720001010EDCEC92FF90A980E492FF90A988A70637FFA6AFA71EDC92FF90A988A706F5
|
||||
:2049920037FFA6AFA71ED492FF90A988A70637FFA6AFA71E012920FF0080A70F0666A706FA
|
||||
:2049B2004076AFA14196086FAD5CA792029B81DCA45C4076D2A5A9AA008D320310FFA10162
|
||||
:2049D2001F767803A71EA98BA98A9292408FFFFFC796BF56CF384192FF90D7964192A7FFD7
|
||||
:2049F200FF90DF963A92A9CDFF00A7FFFF90E197E9960602407648B8A9CDFF0009D0A7FF82
|
||||
:204A1200A183A28AFF9008D1F597FD960A029D2B952B4076A49582FEBE86BE8B060002FE17
|
||||
:204A3200A61EAC281F00013B2256A60740FF0156A400C492A640036CFF90036FA7FFFF9031
|
||||
:204A520082FE0600BDB2A48BBDAAE1C50AD09183A706A58A021940767CA2A927A706A58AAE
|
||||
:204A7200011940767CA2A1C5008D3203408FFFFF0EDF0356A908AB94A95AA78A9192C79657
|
||||
:204A92000202BF56CF33407648B80AD0A95DE106918A021940761EB8A988A20EA60F1061A3
|
||||
:204AB200008D3C03912BD192025205601F76BF01081A0400A18A099A40764F94096FA18ABB
|
||||
:204AD200339A4076B2A1008D3C03BF569101BE86BE8B0600A4830EDDED92FF90A980E59228
|
||||
:204AF200FF90A988A70637FFA6AFA71EDD92FF90A988A70637FFA6AFA71ED592FF90A98894
|
||||
:204B120009D0A70637FFA6AFA71E9592FF9008D0A90EE41E9592FF90A988E40637FFA6AF0A
|
||||
:204B3200E41EFD92FF90A988E40637FFA6AFE41EF592FF90A988E40637FFA6AFE41E0202D9
|
||||
:204B52000156E4000AD01F7674033A9AF4C394C3BF5602014076B2A106000600BDB2BDAA3D
|
||||
:204B7200BDA2A482008DA00193923D61408DA0010FD09B2B935A008F40DE013BA9A8A28150
|
||||
:204B9200A98AC49203523268A91B90012F66A29233521A61008F40DEA9A8A281A98AC458FD
|
||||
:204BB200A059408FFFFFA38A82D981D8A1880EDC035694089CCAA959A606407648B8A18841
|
||||
:204BD200A90EA60F05600CD0A292937A1C6FD392025205601F76BF01081A0400A38A099AE1
|
||||
:204BF20040764F94A928FFFF0E6FD392025205601F76BF01081A0400A38A099A40764F94BC
|
||||
:204C1200A928FFFFBE82BE86BE8B0600BDB206FEA48B0EDCEC92FF90A90E421EE492FF902B
|
||||
:204C3200A988420637FFA6AF421EDC92FF90A988420637FFA6AF421ED492FF90A98809D09E
|
||||
:204C5200420637FFA6AF421E9492FF9008D0A90E441E9492FF90A988440637FFA6AF441E4C
|
||||
:204C7200FC92FF90A988440637FFA6AF441EF492FF90A9880DD0440637FFA6AF441E94921D
|
||||
:204C9200FF900CD0A90E461E9492FF90A9880BD0460637FFA6AF461E9492FF90A9880AD0C0
|
||||
:204CB200460637FFA6AF461E9492FF90A9880ED0460637FFA6AF461E94CCFF0004520A6188
|
||||
:204CD200055212604206448A46C4A6934076D2A5076F4206448A46C4A69340768FA53C9AE4
|
||||
:204CF200A18A4076B2A186FEBE8B0600C4A0D41A01000600C4A0D41A02000600D493009AE7
|
||||
:204D1200039100530260019A06001F76BF010118F7FF06001F76BF01011A08000600227617
|
||||
:204D320008D0408F806F1F76BE0195CCFCFF015008960BDD08CCF7FF0450089608CCDFFFD6
|
||||
:204D52001050089608183FFF1F76BF01C51A08000118F7FF1A761F76C10169FF0002BF5634
|
||||
:204D72000007BF56011F022BBF56040D0A2800800B2B0C2BBF560F10D42BC41E001A8000C4
|
||||
:204D920006001F767C030188BDB2A48BA6921352E6FF5801C076B2C30129A7060456A60162
|
||||
:204DB200A71EC7C52076C18A020ED40F0561BF560111EFFF470108D091C5673E1F767C0312
|
||||
:204DD200012B022BD118F7FFD118FDFFEFFF3A011F76C1010246ECFF3501C18A1F767C035C
|
||||
:204DF200020EC407A71E1F76C10107921F767C03C796BF560113020AEFFF24011F76C10101
|
||||
:204E12000246ECFF1F0107921F767C03BF5601110396EFFF17011F76C1010246ECFF12011D
|
||||
:204E320007921F767C03BF56010F0396EFFF0A011F76C1010246ECFF050108D091C5673E99
|
||||
:204E52001F76C10107400B6DD118FBFF1F767C03D118FEFF012B022BEFFFF4001F767C03FE
|
||||
:204E7200BF560109EFFFEE001F76C1010246ECFFE90007921F767C03BF56010B0396EFFF5D
|
||||
:204E9200E1001F76C1010246ECFFDC0007881F767C03037EC18A020ED40F0561BF560107D4
|
||||
:204EB200EFFFD00008D091C5673E1F767C03BF560109EFFFC7001F76C1010246ECFFC2001B
|
||||
:204ED20007921F767C03BF5601070396EFFFBA001F76C1010246ECFFB50007921F767C03C9
|
||||
:204EF200BF5601050396EFFFAD001F76C1010246ECFFA800079208D01F767C03039691C5AB
|
||||
:204F1200673E1F767C03BF560103EFFF9B00D140086CBF5601010AD0D11A040091C5673EC4
|
||||
:204F3200D141ECFF8F001F767C030AD0BF56010DD11A080091C5673EEFFF84001F76C1010B
|
||||
:204F5200BF56008F082B021A20001F767C03BF560112776F1F76C101BF56008FC18AE4924E
|
||||
:204F72000896021A20001F767C03BF560110696F1F76C101BF56008708280003021A2000D1
|
||||
:204F92001F767C03BF56010E5C6F1F76C101082B021A20001F767C03BF56010C526F0AD065
|
||||
:204FB20091C5673E1F76C101BF56008708280005021A20001F767C03BF56010A426F028019
|
||||
:204FD2001F76C101BF56008FC18AA706C407A71EC79208961F767C03020A1F76C101021AB2
|
||||
:204FF20020001F767C03BF5601082B6F1F76C101BF56008FC18AE4920896021A20001F7688
|
||||
:205012007C03BF5601061D6F0AD091C5673E1F76C101BF56008708280002021A20001F768C
|
||||
:205032007C03BF5601040D6F1F76C101BF56008708280006021A20001F767C03BF560102B8
|
||||
:20505200BE8B06001F763000A880A927A48E142820400002008F10DF1F7678033A1E4076C6
|
||||
:20507200EBA30052FD61A792A793C0FF0191A995A880A7922661408F04DFAB9220BE1F907A
|
||||
:20509200A674A792A6540267A7881F767C03A65C0356AB01043AA90E06A8081E008F10DFB7
|
||||
:2050B2004076E3A34076EBA30052FD61A93AA60DA98EAB92A694A927A792A69EA980DE60B6
|
||||
:2050D2001F7630001428104006001F763000A880A927A48E142820400002008F10DF1F76C7
|
||||
:2050F20078033A1E4076EBA30052FD61A792A793C0FF0191A995A880A7922661408F0ADF35
|
||||
:20511200AB9220BE1F90A674A792A6540267A7881F767C03A65C0356AB010A3AA90E0CA804
|
||||
:205132000E1E008F10DF4076E7A34076EBA30052FD61A93AA60DA98EAB92A694A927A79232
|
||||
:20515200A69EA980DE601F76300014281040060002FE1F767C0314C5008F10DF673E227693
|
||||
:205172001F763400008FFBB91CA81A7669FF407608B91F7671030F8F40423A0642A8C000CB
|
||||
:205192006BBAA9BD120F0077007702E84116008F38DE89E60000407647B92376002082FE1F
|
||||
:2051B200060002FE22761F767D03319204520460008F25B4036F008F77AC1F7634001AA896
|
||||
:2051D2001A760F8F40421F76710369FF3A0642A8C0006BBAA9BD120F0077007702E8D1233A
|
||||
:2051F200008F30DE89E60000407647B91F7630000C2820402376001082FE0600BDB2BDAA7D
|
||||
:20521200BDA24076EDB300D3103B69FF407695BA267600002F760000407648BB407677B95C
|
||||
:205232004076FF901F767D03009A3093407620A90D9A40761A95418F00C201D4A9A04076B4
|
||||
:2052520069941F767D0337920860418F00C202D4A9A040766994076F012902D420FF00E11F
|
||||
:2052720040766994407615A640762990008FC06FA48300D20BDC0CDDC51A0100C41A010043
|
||||
:20529200012920FF50C3407666B9008FC06FA48301DAA2920EDC0FDDC51A0100C41A010042
|
||||
:2052B2000A52EF64008FC06FA4830BDC0ADDC51A0100C41A01004076F78F4076E19A407698
|
||||
:2052D2005E9A1F767D03109B309240766ABB40763EA64076B4BA1F767D0331920452056115
|
||||
:2052F20040763CAE407638844076AE854076D69D4076D8831F767D0331920652036040761E
|
||||
:2053120011B01F767D03C076C0DB30927EDFC79622761F76C001BF56292F1A761F76710364
|
||||
:20533200BF56040169FF40768BA81F76710303927B6163D0032B008FC0DB94920D611F76C2
|
||||
:205352007F0363D0140A949214540666142B008FC0D34076F69A00D2008FD7DF013B408FA5
|
||||
:20537200C0DBA9A8A281A98AA9A0A281A98360D0C40A9592C4545466005252611F767F032E
|
||||
:2053920017924E61408FBEDEC42BA9A0A281A98AC49280520868008FBEDE013BA9A8A28137
|
||||
:2053B200A98AC42B013B086F109AA794A9CCF0FFC4968052F167008FBEDEA9A8A281A98A67
|
||||
:2053D200C4800356A203408FF0D8A61EA792C3FFA927A606AB0D0156A500A7CD0F00A82D9B
|
||||
:2053F200C59262FFA988E161013B0A6F008FBEDEA9A8A281A98AA692A0FFA988C40AA6402D
|
||||
:20541200F66C408DBEDE013BA9B2A281A98B008FC0DB009AC193407638AAC108030001DA6A
|
||||
:20543200A29202529A647FD0008FC0DB9441066C7FDCC418FDFF4076BA9C7FD0008FC0DB5C
|
||||
:205452009442066C7FDCC418FBFF40761E9B7FD0008FC0DB9443066C7FDCC418F7FF4076AD
|
||||
:20547200D69D7FD0008FC0DB9445066C7FDCC418DFFF4076538040761C921F767D03319209
|
||||
:205492000152136016D0408FC0DB9592A58AC1FF01F016D0A3CE0356A9027FDC0790C49834
|
||||
:2054B20095CC0400C1FFA95B319206525A607FD0008FC0DB94921F767F03A99300B6D6FF5F
|
||||
:2054D200C5FF01910190A9881592026001B6A892A7CE1B61008FC06FA4831F767D030BDDD5
|
||||
:2054F200C51A0040319206520761045205610DDCC41A0020056F1F76BF01041A0800008FD7
|
||||
:20551200E8031F767E0308A81F767F03169200B61597026001B6A693A7CF16611F767D0353
|
||||
:2055320031931F76BF010B1A000406530661045304610B1A0020036F021A0800008FE80346
|
||||
:205552001F767E0308A81F767F03167E1F767E03080607601F76BF010D1A00400D1A000456
|
||||
:205572004076309A00D2A2920461408D40D0036F408DC0D3A18A40761BA3A91BFFFF596164
|
||||
:205592001F76BF0100BE0F1A01001F767E03375222C213623752326133520A6233523A6197
|
||||
:2055B2000352446104523E6106523861426F34522D61355227613D6F3A5208623A52126184
|
||||
:2055D2003852186139521261346F3B5207613C523060A18A407673A32C6FA18A40761AA3D2
|
||||
:2055F200286FA18A4076D7A2246FA18A4076DAA1206FA18A407616A21C6FA18A4076ADA1D7
|
||||
:20561200186FA18A4076AEA1146FA18A407628A1106FA18A40768FA20C6FA18A4076C79B45
|
||||
:20563200086FA18A4076909C046FA18A4076059C01DAA2920252E3FF77FE966FBDB2BDAA4A
|
||||
:205652000AFE1F767D03219225611F76800108421A6D0A420A6D1F767803FABE32061F76A3
|
||||
:205672007D032E03A60F7C6904021F768001061E0A42766C1F767D03212B1E2B1F7680019F
|
||||
:205692000A1E0D6F1F767D030402212B1F768001081E1F767D031E921F5423661F767D03DB
|
||||
:2056B2001A921C610876303BBE5A1B59AD5D1C93008F40DD1D88A1CCFF0089DD1A2BA55D17
|
||||
:2056D200417E4076D39F1F767D03A1CD00FF1F2B49CB1E962097BD7A00761E921F5440690D
|
||||
:2056F2001F7680010406A9403B6D1F767D032092AD5CAD5DC7FF1F93419686DC88DDA488CB
|
||||
:2057120020C6D0FF4296A55D008F40DD1E9244C2407628A0005205601F767D031E2B206F64
|
||||
:205732001F76780332C5040204BE1F768001468A48A3081E1F767D031F0802001F7680013D
|
||||
:205752000AC21F76840116A81F767D03BF5621012EC31F76840114A91F768001041E8AFEBF
|
||||
:20577200BE86BE8B0600BDAA34FEA892FF9C0564105204640F9A026F009A22761F76BE0143
|
||||
:20579200AB28F0FFAA28457F09CDFFDF013B08B6A81A0010A4A908BE099700D209CDFF3F86
|
||||
:2057B200A81A00400997A9851F7680015AFF2AC35D56A400A0A9AB2BAA28467F08D42CC2D4
|
||||
:2057D200ACA91F7684015AFF5D56AC0002A8A5A9AB28E0FFAA28457F0AC3AB03AB28FAFF09
|
||||
:2057F200AA28FFFF12C21F76800107BE00AA1F768401003A08A0101E1F76800102A900C2C1
|
||||
:2058120000BE0002011960C2601A80F2081E000260C401190C1E000201191E1E000201198A
|
||||
:20583200221E00020119181E14C21844FF6C16065E1E5E18FFFD5E1A00015D1800FF5D1AB9
|
||||
:2058520005005E1A7F005E18FAFF5EC416C26018FFEF6006141E1844FF6D0002488F70645E
|
||||
:205872001F768301541E088F7064541A010000A00031531A0200010200BE02A8541A060092
|
||||
:205892001F768001408FBEB800D4301E54C5020232A82EA9008F93B81F76370008A01F76C8
|
||||
:2058B2008001241E26C220C31F7637000AA81F763300321A1000321A2000237600011A7610
|
||||
:2058D2001F767D0369FF000200B6182B261EB4FE22C224C3BE86060006FE00021F767E0317
|
||||
:2058F2000ED0221E94A3AA8820FF001F0CD094C5A60F3D61A9A9A80EA958463FA0CC0080CF
|
||||
:205912004396A0CC00404296A0CC00204196A706A018FF1F45974392447F00520861A092D1
|
||||
:20593200805205674692008FC0DB9496429201D80861A092805205674592008FC0DB94963A
|
||||
:20595200419201D80861A092805205674492008FC0DB9496A9A9455C445DA80E46934076AD
|
||||
:20597200929A1F76BF010F1A0100146F0AD094920F9008520F60A9A9A91800FF009158FF85
|
||||
:2059920009611F767D03A7061B3F1C971D7FBF561A0186FE06001F767D031992A88809610C
|
||||
:2059B2001F7680010806A940046D0A06A9403E6C02D5A692013BAB28010001B6A572AA2BF2
|
||||
:2059D2001F768001A9A8A581A98308A90AC301B6C58500915AFFA692A772A9A8A781A9839D
|
||||
:2059F200C5853FFFABCAAACBA71EA9A8A681A98A1F768401C48500915AFFA6853FFFAACB88
|
||||
:205A1200ABCAA81A00E0061E04C322761F76800100022E1E1A760102041E1F76BF010E1A44
|
||||
:205A320001001F767D03BF56190169FF06001B76F0FF0500BDABBDAABDA8BDA0BDC2BDC38C
|
||||
:205A520000E2BD0003E2BD0003E2BD0103E2BD0203E2BD0303E2BD0430E6000602FE69FFDD
|
||||
:205A7200422916561F7633002292419623760100267601012218FA002128FFFF10291F7669
|
||||
:205A92007C033C060461010241563C001F7671030492E1FF99011F76710311920D61FF9C2A
|
||||
:205AB20011960A60008FC0DBA4837FDC7FDDC518EFFFC41A04001F767D033592196100D2E6
|
||||
:205AD200008F0871013BA9A8A281A98AD492C3FFA988008F3CD7A9A8A281A98A69FFA2928B
|
||||
:205AF200C47E4076568601DAA2920452EA641F767D03319206523A601F76C4010992C3FF8C
|
||||
:205B1200A90EA9BD120F0077007763D0808DC0DB8BE60400008F40D78CE6200069FF13E262
|
||||
:205B32009200CFE62000407634BA6ED16FD0013B008FC0DB9A92929EA985A9BD160F6FD010
|
||||
:205B5200C8E29402CFE6040020E7A00089E60900407696B750E800C8007790E8008800772A
|
||||
:205B72008CE600001DD013E292001F767D0331920552436000D21F76710306921F767C03D4
|
||||
:205B9200390A39540262392B008F0871013BA9A83981A98AC492C3FFA90EA9BD120F392D1D
|
||||
:205BB20069FF008F40D712358BE604000156A400CFE62000407634BA013B1F767C03008FB6
|
||||
:205BD20086DE8EE60000A9A83981A98A13E2C400008F40DFA9A83981A98A01DAC49208526D
|
||||
:205BF200056139924076EE82056F3992009B40761181A2920652C0641F767D033492E1FFAF
|
||||
:205C1200E3001F767C033888350EA60F1A601F767D0332931F767C03399200530F611F7638
|
||||
:205C32007103055402600D9A1F767C0339931F767103059F015302600C9A69FF40764B909A
|
||||
:205C52001F767C033692385472671F767D03349200D26D651F767C03392D008F0871013BB4
|
||||
:205C72001F767D033412A294A959A9A8A281A98AC492C3FFA980A7BD160FA188008F86DEF2
|
||||
:205C9200A9A8A681A98A8BE60C00C4E2C400007720E7000100778CE6000000771F767C036D
|
||||
:205CB200A9BF120FA98556FF009B37540267019B37543A970767008FD9DFA9A8A281A98AE3
|
||||
:205CD200C40A008FA2DEA9A8A181A98A009AC49300530260019A3ACA2461A12D008F40D7F1
|
||||
:205CF2001235CFE6200069FF0156A400407634BA1F767C033C0608618EE62000007700772E
|
||||
:205D1200A6BF120F076F8EE6000000770077A6BF120F008F86DE013BA9A8A181A98AC47E76
|
||||
:205D320001DA1F767D03A292345495641F767C033492380A38544766382B69FF4076DB906B
|
||||
:205D520000D21F767D03349220651F767C03392D1F767D033412A294009BA959407611810F
|
||||
:205D7200013BC076D9DF008FA2DEA706A281A71EA9A8A181A98A01DA1F767D03C792C496FA
|
||||
:205D9200A292C72B3454E2641F76710305921F767C03029C390A395416621F767D03379285
|
||||
:205DB20000D21F767C03392B0E651F7671030692019BA2944076118101DA1F767D03A29235
|
||||
:205DD2003754F464008F0071A4831F76330019DC01DDC51A0040C41A1000BF562101103B7D
|
||||
:205DF200419282FE2296AFE2BE04AFE2BE03AFE2BE02AFE2BE01AFE2BE0080E2BE00BEC54E
|
||||
:205E1200BEC4BE83BE8ABE86BE870300303BF1FF177602761B76F0FF0500BDABBDA8BDA0CA
|
||||
:205E3200BDC2BDC300E2BD0003E2BD0003E2BD0103E2BD0203E2BD0330E6000602FE69FFA0
|
||||
:205E520042291656227601021F76780301563200237600102676391110291A767FD0008FEF
|
||||
:205E7200C0DB944F046D69FF4076C8B21F767103020A029214520468022BBF56030116D1E1
|
||||
:205E9200008FC0DB7FD09C9294CA0190A9880C9301F10191A6CB10601F767D0331930653F3
|
||||
:205EB20006611F76BF010B1A0008146F1F76BF010B1A00200F6F1F767D03319306530661B3
|
||||
:205ED2001F76BF010F1A0008056F1F76BF010F1A00200653E1FF4B011F767103150A1593C3
|
||||
:205EF2000A53E0FFA1001F767D0331931F7671030553152B03601B9322601F767D033193CD
|
||||
:205F1200015305601F7671031A9319601F767D03319306530F6104530D61025306611F76CF
|
||||
:205F3200BF010B1A0004226F1F76BF010B1A00401D6F1F76BF01021A0002186F1F767D0380
|
||||
:205F5200319306530F6104530D61025306611F76BF010D1A00040A6F1F76BF010D1A00406C
|
||||
:205F7200056F1F76BF01041A00021F76710319930F601F767D033193035313610153116199
|
||||
:205F9200065319601F76BF01021A8000186F1F767D03319303530F6101530D610653066184
|
||||
:205FB2001F76BF010B1A00100A6F1F76BF01041A8000056F1F76BF010D1A00101F767103D0
|
||||
:205FD2001A9315601F767D03319306530B610353046101531561196F1F76BF010B1A004028
|
||||
:205FF200226F1F76BF01021A80001D6F1F767D0331930653146103530D61015306611F76C6
|
||||
:20601200BF010B1A00800F6F1F76BF010D1A00800A6F1F76BF010D1A0040056F1F76BF0191
|
||||
:20603200041A020000523E601F767103158062D0940EA70F37601F767D03319303530F61E0
|
||||
:2060520001530D61065306611F76BF010D1A00100A6F1F76BF01021A8000056F1F76BF01ED
|
||||
:206072000B1A001006530E6103530961015304610D1A0080096F0B1A0080066F0B1A0040FA
|
||||
:20609200036F021A800006530B6104530961025304610B1A0004066F0B1A0040036F021A0F
|
||||
:2060B20000021F767103009A1C9300530260019AA693A9CF04611428F401162B140AC4E2DE
|
||||
:2060D20014001C7E12E8D01F14AD5564160A1693019100B6142B179716930791026101B644
|
||||
:2060F200A692187F3C601F767D033092095224611F76710316D0BF56190194937FD0D0FF09
|
||||
:206112009492C9FFA8CAA940026C197F0C42116D0C430C6D0C44036D1A2B2D6F1892009BA4
|
||||
:2061320000520260019B1A97266F17921A96236FBF561A01206F1F7671030C41BF561B0186
|
||||
:20615200036C1792026F009A0C401A96036D192B126F179317921B9719960D6F1793178860
|
||||
:20617200179219971B961A7E066F69FF407680B04076209982FEAFE2BE03AFE2BE02AFE285
|
||||
:20619200BE01AFE2BE0080E2BE00BEC5BEC4BE83BE8ABE870300303BF1FF1776027602FE89
|
||||
:2061B2002276008F84AA1F7635000AA81A7669FF407616BB1F763300221A200023760100BF
|
||||
:2061D20000D5013B008FA2DEA9A8A581A98AC42B008F86DEA9A8A581A98A01DDA592C42B53
|
||||
:2061F2001C52F1641F767D03319206522360008F00711F76C401D4CCF0FF05500296DCCC99
|
||||
:20621200F0FF0350039603CC1FFF1050039603CCFFF1A91A0005039603CCFF0FA91A0040AB
|
||||
:206232000396E4CCF0FF0750049604CC0FFF205004961F767D03319203521460008F00719A
|
||||
:206252001F76C401D4CCF0FF02500296DC18F0FF03CC1FFF1050039603CCFFF0A91A00020D
|
||||
:2062720003961F767D03319201522860008F00711F76C401D4CCF0FF06500296DCCCF0FF52
|
||||
:206292000550039603CC0FFF4050039603CCFFF7A91A0007039603CCFF0FA91A0020039677
|
||||
:2062B200E4CCF0FF0350049604CC0FFF6050049604CCFFF1A91A000104961F767D03319222
|
||||
:2062D20002520960408F0071A58A02DCC418F0FFDD18F0FF319205524C60408F0071A58ABE
|
||||
:2062F2001F76C40102DCC41A0F00DDCCF0FF0250039603CC3FFF3050039603CCFFF0A91A3D
|
||||
:206312000006039603CCFF0FA91A00C00396E5CCF8FF0A50049604CCBFFFB050049604CC3F
|
||||
:20633200FFF7A91A0007049604CCFF0FA91A00400496EDCCF0FF0550059605CC1FFF10508F
|
||||
:20635200059605CCFFFEA91A000E05960518FF0FF5CCF8FF08500696061AF00006CCFFFDA1
|
||||
:20637200A91A000D069606CCFF0FA91A00900696408F0071C0760068A5C41F76C401A78AFE
|
||||
:206392001AD019DD01DEC61A000119DC011A0008C51A1000001A10000018BFFF001A000F1B
|
||||
:2063B200011A00401F763300BF5621011F76A001C41A000819CCFFFCA91A0004199697CC9C
|
||||
:2063D200FFFDA91A00011A96BF56098000CC7FFCA91A0001009600CCFFE3A91A00080096ED
|
||||
:2063F20000CC001CC9FFA92D019A66FFA98800CC800304600102AC1E076F00CC8003C6FFCA
|
||||
:2064120080FFA985AC1EA6851F7671034456A900421E3A06C0006BBA008FA60E42A8C0000A
|
||||
:206432006BBA1F767D03008F4C1D31931F76A00105960018FCFF1F767C0302533EA80C60B5
|
||||
:20645200008F8A66BF56340FBF563504BF563609BF5637143EA81F767D03319203520E60D0
|
||||
:206472001F767C03008FF22BBF56340ABF563501BF563604BF5637143EA81F767D0332923E
|
||||
:206492000E611F767C03008FF22BBF5634FABF563519BF563696BF5637143EA81F767D03D9
|
||||
:2064B200319206520660008F7C921F767C033EA805520660008FA60E1F767C033EA81F7623
|
||||
:2064D2007C033E0682FE3C1E0600009A019C1952FE640600005206601F76BF010D1A0010B9
|
||||
:2064F200056F1F76BF010B1A00100600BDB21F76BF01BDAA0D1A0008BDA2A95B0102407610
|
||||
:206512006FBB00D1808DC06FA28AA392CEFF0BDCC41A00804076D7AFA39280FFA95B0102C8
|
||||
:2065320040766FBB0DDA0102C21A008040766FBB01D9A1921052E7641F76BF010B1A000807
|
||||
:20655200BE82BE86BE8B06001F767E03008F5902BF5600050128701706A80600BDB2BDAA02
|
||||
:20657200BDA202FE79D0008FC0DBAC1E013BA98B94854C82A61E4456A90042A2C0006BBA46
|
||||
:2065920078D0A98342A2215694004456A100C0006BBA7FD0A607A5039449046C7AD0013BEF
|
||||
:2065B2009485A918FF0FA95AA91A00804076E3AF7BD0A9B2408FC0DB34FF957AA61EA9B2E2
|
||||
:2065D20042A232FFA607C0006BBAA98A42A2C802AC1EA9B24456A900C0006BBA1CD0A49EA6
|
||||
:2065F20082FE289C9596BE82BE86BE8B0600A92802904076E3AF1F767D03319206520F61FC
|
||||
:2066120004520D61025206611F76BF010F1A00040A6F1F76BF010F1A0040056F1F76BF0167
|
||||
:20663200061A0002060002FE1F767E03080604610102415608000092020A0254E6FFCF004D
|
||||
:206652000606022BE0FFAB007FD0008FC0DB9447706C05924C6050D0013B9492FC9CA985AA
|
||||
:20667200A9BD120F007700770077007789E6000051D003E20A009492FC9CA985A9BD160FAF
|
||||
:20669200007720E8000003E20A0032E8000589E6090003E20A0003E20C0112E8010C14AD3A
|
||||
:2066B200056502E8000C03E20A0094E6010014AD06628FE800E0007703E20C00AFE20A017A
|
||||
:2066D200AFE20C0090E8092090E800201F76740350E8094850E800488EE609008EE60000CC
|
||||
:2066F20013E21A011F76740313E21B001F767E030192C0FF03540267030A0192030A035430
|
||||
:2067120002670396AFE20A00AFE20C01C4E20103C4E2030220E709004FE800604FE8096090
|
||||
:2067320000E7180000E75100007710E74000086F0492032B90E5019CA918FF0304968EE644
|
||||
:20675200000003887FD0A9BF120F01931F767403187E1F76740319971F7674031C969488F8
|
||||
:206772001F767E03A693D6FF0191059704930A61A648086D0188013BA98542C240761BB0D8
|
||||
:206792002D6F407664B01F767E03008FC0DBBF5604017FDCC418FFFE216F06060119A61E79
|
||||
:2067B200061E20FF5802A60F136120FFF401060F0F6120FF9001060F0B6120FF2C01060FD6
|
||||
:2067D2000761C802060F04616402060F0760407664B01F767E03BF56040182FE0600005247
|
||||
:2067F20006601F76BF01041A0001056F1F76BF01021A00010600005206601F76BF01041A96
|
||||
:206812004000056F1F76BF01021A4000060040765CB1019A407668B1009A40765CB101026E
|
||||
:2068320040766FBB009A407668B11E0240766FBB0600009A407668B11E0240766FBB019AF3
|
||||
:2068520040765CB11E0240766FBB009A40765CB11E0240766FBB0600BDB2BDAABDA20EFEBF
|
||||
:2068720000D2A98BA288A492A52D0252A65BE3FFF000A9B2026301D256FFA983AC920564EC
|
||||
:206892000452036301D3026FAC2BAC92A58B4B2B0B650A02421EA9B2C0006BBA4B0AA98B85
|
||||
:2068B200AC924B54F762A9B20A650A02421EA9B2C0006BBA01DE58FFA98BF862A292A58BF2
|
||||
:2068D200A694A988026001BEA692AC944B2B0452A9880F650A02421EA9B2C0006BBAAC8059
|
||||
:2068F200A98B4B0AA69281DFFC9CA72D4B54F362AC920263AC2B019A66FFA95801520260D5
|
||||
:2069120000D08076E803A9B242C2C0006BBA441EA9B242C2C0007ABAA61E6402421EA60685
|
||||
:20693200C0006BBA461E6402421EA9B2C0007ABAA61E0A02421EA606C0006BBA481E0A02B4
|
||||
:20695200421EA9B2C0007ABA4A1EA61E460648074407A607046000D0A02DAC5AA392156105
|
||||
:20697200039A013B4B96AD888ADEA6880356A9010156A600C6060960AC924B5406610F02F6
|
||||
:206992004B0BC61E4B92F062A2922061019A013B4B96AD5D8ADDA55D0356A9010156A5009D
|
||||
:2069B2000F02C50F09614B9203520661019C04524B96F0640B6FAD5D8ADDA55D0ABE4B9223
|
||||
:2069D2000356A9010156A500C5C2009A4B2B013BAD5D8ADDA55D0356A9010156A50080766B
|
||||
:2069F200B0DAA606C507A61EC685C51E019A4B2D66FFA0CE046180020156C5004B0A4B9276
|
||||
:206A12000452E76448A3AB92AA2BFF90A927A9A9AC28180037FF5AFF4A064E1E4E92FF906F
|
||||
:206A32004E964D2B4E06ABCAAACB4E1E4606009BFF903FFF5AFF4E06ABCAAACB4E1E44063D
|
||||
:206A52003B565AFF4E06ABCAAACB4E1E026F4EB2408FCCDF013BA9A0A481A98A4B2BC45B33
|
||||
:206A7200A3921052246200D14E92013B0190A9884E0640FF4E1EA692407674B101D9A19219
|
||||
:206A92000852F364A35A00D1A293A292B0FF0190A85A407674B101D9A1920652F66440766A
|
||||
:206AB20086B101DB4B0A4B920452DB648EFEBE82BE86BE8B060011D0008F107094920F90D6
|
||||
:206AD20004520E60CCCC8001C6FF0252096022761F76C001BF562555BF5625AA1A7669FFEC
|
||||
:206AF200060022761F76C001BF5629681A7669FF0600BDB202FE1F76C001A888A98011437A
|
||||
:206B1200026C257611CC80010561227611187FFE1A762276408F1070A58AA79211D00F90F9
|
||||
:206B320001DCC41A400095CDF0FFA8CA21961A76A79204600102A98B026FA759A92880C3E5
|
||||
:206B5200A828C90169FFAC1E0556A1004076DEB2A1A91140FF6C22761118BFFF1A76A693C7
|
||||
:206B72000153036102530A602276A69211CD7FFE039086FFA8CA11961A76A6930A60A9B2A2
|
||||
:206B9200013BAC281E0040FF2256A10741FFA98BA69301530A60A9B2013BAC281E0040FF23
|
||||
:206BB2002256A10741FFA98BA69302530960A9B2AC281F00013B2256A10740FFA98BA792E2
|
||||
:206BD2001460A69203521160227611CC7FFFA91A000169FF119620FFDA0540766FBB1F76F8
|
||||
:206BF200C001111A80011A761F76710382FE69FF3AB2BE8B0600BDB202FE22761F76C001FD
|
||||
:206C1200BF561A011B2B1A92036001BE046F03561A01A9881F76710342C269FF3A06C00091
|
||||
:206C32006BBA3E1E1F76C0011B92036001BE046F03561B01A9881F76710342C23A06C00076
|
||||
:206C52006BBA408D1070A18315D0008F200B3C1E0CDD1F762C0094CCF8FF015014DC359686
|
||||
:206C7200C41A04003418F7FFC51A0800787680001F76C0011C1A1000A18A1C1A00041C1A52
|
||||
:206C920000081C1A20000DDC10D91C1A00011C1A00101C1A00201C1A00401C1A00801C187F
|
||||
:206CB200FBFFC41A01001D1A02001D1A04001D1A08001D1A10001D1A20001C1A04001D1A27
|
||||
:206CD20000041D1A00081D1A00101D1A00201D1A00011D1A00021D1A00401D1A0080C11A47
|
||||
:206CF2000001201A0002201A0004201A0008201A0010201A00201A7669FF82FEBE8B06005A
|
||||
:206D12004076DEB2049A029B4076E6B2407668B3060002FE22761F762B002028FFFF2128D4
|
||||
:206D3200FFFF2228FFFF2328FFFF2428FFFF2528FFFF2628FFFF2728FFFF1A761F76FFCF91
|
||||
:206D520069FF38924196399241963A9241963B9241963C9241963D9241963E9241963F926C
|
||||
:206D72001F762B0041962F9201F0019082FE06001B76F0FF0500BDABBDA8BDA0BDC2BDC3F3
|
||||
:206D920000E2BD0003E2BD0003E2BD0103E2BD0203E2BD0330E6000669FF4229165600D188
|
||||
:206DB200227601021F767803015632002376391110291A767FD0008FC0DB944F046D69FFAC
|
||||
:206DD2004076C8B21F767103020A029214520668022B1F767103BF560301008FC06FA483C0
|
||||
:206DF2001F767D0306DDC51A0100319206520E6104520C61025205610FDCC41A00040A6F5C
|
||||
:206E12001F76BF010F1A0040056F1F76BF01061A00021F767D033192065208610452066161
|
||||
:206E32001F76BF010F1A0020056F1F76BF01061A080001021F767E032207A61E008F204EAE
|
||||
:206E5200221EA9A8A60F026722A81F0A1F920A5202641F2B1B92AC2B1261008FC0DBA9A84F
|
||||
:206E7200AC0DA98A62D094921F540465019A66FFA172AC92019C1B54A92DF0681E0A1E927D
|
||||
:206E9200025202651E2B7FD0008FC0DB9493A89216D094CAA940EDFF8300A84B586D20FF8F
|
||||
:206EB200204E220F30691E920A60013B1F766F0300D401D569FF0085407699B11F767E037E
|
||||
:206ED2001E9201520A60008FC0DB013B01D569FFCC8501D4407699B1A192408DC0DB02D4F8
|
||||
:206EF20000D569FFD1CEA90E407699B11F767E031E9202527B60013B03D400D5D9854076FC
|
||||
:206F120099B1746F1E92076000D4000200D569FF407699B11F767E031E920152076001D4B3
|
||||
:206F3200000200D569FF407699B102D4000200D569FF407699B11F767E031E92025256601B
|
||||
:206F520003D4000200D5407699B1506F1E92086020FFB82200D401D569FF407699B11F76FA
|
||||
:206F72007E031E920152086020FFB82201D401D569FF407699B1A10E02D400D569FF40768F
|
||||
:206F920099B11F767E031E9202523060012903D400D520FFFFFF407699B1286F69FF407643
|
||||
:206FB200DEBA1E920760013B00D404D51A85407699B11F767E031E9201520760013B01D4F7
|
||||
:206FD20004D51A85407699B11F767E0302D400D52006407699B11F767E031E9202520660C0
|
||||
:206FF200200603D400D5407699B1AFE2BE03AFE2BE02AFE2BE01AFE2BE0080E2BE00BEC5C8
|
||||
:20701200BEC4BE83BE8ABE870300303BF1FF177602761B76F0FF0500BDABBDA8BDA0BDC27D
|
||||
:20703200BDC300E2BD0003E2BD0003E2BD0103E2BD0203E2BD0330E6000602FE69FF4229A2
|
||||
:2070520016561F763300329241962376000126760001321875002128FFFF1029408FC0D377
|
||||
:2070720069FFA58A4076269540762B95103B4192329682FEAFE2BE03AFE2BE02AFE2BE0127
|
||||
:20709200AFE2BE0080E2BE00BEC5BEC4BE83BE8ABE870300303BF1FF177602761B76F0FFB9
|
||||
:2070B2000500BDABBDA8BDA0BDC2BDC300E2BD0003E2BD0003E2BD0103E2BD0203E2BD0363
|
||||
:2070D20030E6000602FE69FF422916561F76330032924196237600012676000132187100EE
|
||||
:2070F2002128FFFF1029408FC0D369FFA58A407626954076FC95103B4192329682FEAFE256
|
||||
:20711200BE03AFE2BE02AFE2BE01AFE2BE0080E2BE00BEC5BEC4BE83BE8ABE870300303B4B
|
||||
:20713200F1FF177602761B76F0FF0500BDABBDA8BDA0BDC2BDC300E2BD0003E2BD0003E274
|
||||
:20715200BD0103E2BD0203E2BD0330E6000602FE69FF422916561F763300329241962376BF
|
||||
:207172000001267600013218FD002128FFFF1029408F40D069FFA58A4076269540762B953B
|
||||
:20719200103B4192329682FEAFE2BE03AFE2BE02AFE2BE01AFE2BE0080E2BE00BEC5BEC410
|
||||
:2071B200BE83BE8ABE870300303BF1FF177602761B76F0FF0500BDABBDA8BDA0BDC2BDC3DE
|
||||
:2071D20000E2BD0003E2BD0003E2BD0103E2BD0203E2BD0330E6000602FE69FF4229165615
|
||||
:2071F2001F7633003292419623760001267600013292322B2128FFFF1029408F40D069FFFB
|
||||
:20721200A58A407626954076FC95103B4192329682FEAFE2BE03AFE2BE02AFE2BE01AFE28B
|
||||
:20723200BE0080E2BE00BEC5BEC4BE83BE8ABE870300303BF1FF177602762276008F806F12
|
||||
:20725200A483A4C41F76BE0126DDC51A030027DE261A0C00A483261A3000261AC000261A2C
|
||||
:20727200000317DD261A000C261A0030261A00C0C61A0300271A0C00271A3000271AC000A7
|
||||
:20729200271A0003271A000C271A0030271A00C0C51A0300A48328DD171A0C0016DC171A6B
|
||||
:2072B2003000171AC000171A0003171A000C171A0030171A00C0C51A0300281A0C00281A66
|
||||
:2072D2003000281AC000281A0003281A000C281A0030281A00C0C41A00C0161AC000161AA5
|
||||
:2072F2000030161A000C1A7669FF06002276008F806FA4C4A4831F76BE0118DEC61A030040
|
||||
:2073120019DD181A0C00181A3000181AC000181A0003181A000C181A0030181A00C0C51A2D
|
||||
:207332000300A48369FF191A0C0014DD15DC191A3000191AC000191A0003191A000C191A8A
|
||||
:207352000030191A00C0C51A0300141A0C00141A3000141AC000141A0003141A000C141AF7
|
||||
:207372000030141A00C0C41A0300151A0C00151A3000151AC000151A0003151A000C151AD7
|
||||
:207392000030151A00C040768AB60600227615D0008F200B1F762C0094CCF8FFA483A4C5E1
|
||||
:2073B200A4C40150359614DDC518FCFF0CDF3418F7FFA4830DDE341A0400C41A60000EDDB4
|
||||
:2073D200C41A1C00C41A0300C41A0030C41A000EC41A8001CC1A4000C41A0040C41A0080C5
|
||||
:2073F200211A0300C71A60002C1A1C002C1A03002C1A00302C1A000E2C1A8001C61A4000A0
|
||||
:207412002C1A00402C1A00802D1A0300C51A6000A4830FDD2E1A1C0018DC2E1A03002E1A87
|
||||
:2074320000302E1A000E2E1A8001C51A40002E1A00402E1A00802F1A0300C41A0700381AF9
|
||||
:2074520038001A7669FF40768AB607F6007769FF0600BD3ABDB2BDAABDA202FE0129A9BF54
|
||||
:20747200120F58FF5B61A85C7F91A8088000421EA493D6FFA85CA9BF160F6761A85D7F91A8
|
||||
:20749200A8088000A859A958A593D6FFA85DA493A571A8180001A697A418FF00A518FF00D4
|
||||
:2074B2007FDCA492A59EA7964D64A90801FF3E62A193A09236FFA859A958420635FF0EF68A
|
||||
:2074D200A11FA95BA3010AF6A11F2D56A204A32DA03640FF0BF6A11F33FF009B30FF54FF54
|
||||
:2074F200A20CA39540FFA70801001FF677FF200940FFA70801001FF677FF5AFFA79222655E
|
||||
:20751200A90801FF1363A9A946FF7F91A85BA95AA625A79596FFA20CA395A9BD120F82FEFC
|
||||
:20753200BE82BE86BE8BBE8E0600009B57FFA8087FFF5AFFA693F260A8280080AA71AB926F
|
||||
:20755200ED6F20FF0000EA6F5AFFA493A818000196FFA85CA9A9A8087FFFA81C0080A4CB28
|
||||
:20757200DD6F58FF5AFF00BE25610129A6920190A958A60640FFA407A71EC793A640046DB9
|
||||
:20759200A892C7FFA92DA09201520460A8CCFF00A92DAC58A592A0F201DEA092FF90A95863
|
||||
:2075B200A592408FC0DAC7FF9570A95DA9A9A60FDE66A5920600A71E8076C0DA0A6FA592BB
|
||||
:2075D2008470FF90A95881DFA592C7FF9670A95DA706F660A59206000052A927FF76FFFFD7
|
||||
:2075F20000BE3365A9A8013BA681A983A793C592FF90A92FAA71A880009AA740046DB0FF67
|
||||
:20761200A880056FB0FFA81C01A0A880019C0852F564A9A8013BA681A983A793C592C7FFF9
|
||||
:20763200A92FAA71A880009AA740046DB0FFA880056FB0FFA81C01A0A880019C0852F56454
|
||||
:2076520001DEAB92A654CF62A79206001B76F0FF00E2BD0030E6000602FE422916561F76EB
|
||||
:2076720033003292419623760001267600013292322B2128FFFF102901021F767D03180A18
|
||||
:207692001F768001061E1F763300211A0001103B419282FE329680E2BE00303BF1FF17762C
|
||||
:2076B20002761B76F0FF0500BDABBDA8BDA0BDC2BDC300E2BD0003E2BD0003E2BD0103E2C9
|
||||
:2076D200BD0203E2BD0330E6000602FE69FF422916561F7633003292419623760001267640
|
||||
:2076F20000013292322B2128FFFF1029008F006169FF4076D9A91F76800102020C1E1F766D
|
||||
:207712003300211A0001103B4192329682FEAFE2BE03AFE2BE02AFE2BE01AFE2BE0080E2DE
|
||||
:20773200BE00BEC5BEC4BE83BE8ABE870300303BF1FF1776027600021F763000008F000CE1
|
||||
:207752000119021E1F767803408F100C000228A81F763000062B0119072BE41A1000041AA2
|
||||
:2077720020001F763000008F080C0A1E1F76300000020119121E1F76300000020E2B0F2BFC
|
||||
:207792001F76780330A838A02A1E1F763000162B172B1F763000E41A1000E51A10000C1A7F
|
||||
:2077B20020001F763000141A20001F7678033A1E321E060000E0E45003E2F40188E610005A
|
||||
:2077D200C48303E2D500C483F52BC483FD2BC483E51A1000C483E51A2000C483E518FFFBC6
|
||||
:2077F200C483E518FFF7C4830002E51A0040D41E06000129BDB240FFBDAAA98B00D208610F
|
||||
:20781200100240766FBB01DAA9B2A20FFA66BE86BE8B06001F76C001201A001040768AB6F4
|
||||
:207832002276008F200BA4C4A4831F762C000ED015DE14DDC618F8FFC51A03003418F7FFD9
|
||||
:207852003418FBFF94CCBFFF20502E960FDC2ECCE3FF08502E962ECCFCFF01502E962ECC97
|
||||
:20787200FFDFA91A00102E962ECCFFF7A91A00062E962E187FFEC418BFFF2E18FFBF2E185D
|
||||
:20789200FF7F2F1A03001A7607F6007769FF0600AD28000469FF1F5616561A5610E6000210
|
||||
:2078B20040291F76000002291B762276A92800C0A828000001091B61C07600C004290F6FDC
|
||||
:2078D200009BA92401DF046C0429A82401DFA61EA1F78624A706A1810109A71EA92403632E
|
||||
:2078F2005CFF043BA95901DF0900ECFF1A76A928FFFFA828FFFF01090E61FF76FFFF066F78
|
||||
:2079120001DFBDC3A71E673EBEC5A92401DFA82458FFF7604076FBBA407631BB1B76F0FF54
|
||||
:207932000500BDABBDA8BDA0BDC2BDC300E2BD0003E2BD0003E2BD0103E2BD0203E2BD03DA
|
||||
:2079520030E6000669FF42291656227601021F76780301563A00008F10DF69FF1F767C0384
|
||||
:2079720016C5673E1A76AFE2BE03AFE2BE02AFE2BE01AFE2BE0080E2BE00BEC5BEC4BE833D
|
||||
:20799200BE8ABE870300303BF1FF17760276BDB2CFE6010008D003E2BD040ED103E2BD05BC
|
||||
:2079B20003E2BD0603E2BD07AFE2F400AFE2D40510E394040CD012E39C1F0ED118E394DA16
|
||||
:2079D2000AE3C4A000E3E4C600E7BB0110E700010CD010E7C00003E29C0203E2940008D0B5
|
||||
:2079F200F406941E03E2F401AFE2BE07AFE2BE06AFE2BE05AFE2BE04BE8B060002290429F6
|
||||
:207A12005F565AFF42065F56421E00021FF617564200AB06325602292076022904295F561C
|
||||
:207A32005AFF420656FF421E00021FF6175642003256022920765AFF00021FF617564200B0
|
||||
:207A5200A9A920765AFF00021FF6175642002076103B1F7633002018FEFF222B242B69FF2B
|
||||
:207A7200262B282B2A2B2C2B2E2B302B322B342B362B382B232B252B272B292B2B2B2D2B7E
|
||||
:207A92002F2B312B332B352B372B392B06001F763300201A01002128FFFF102969FF0600A3
|
||||
:207AB2000000A0E514AD0962A0E51F76740314AD90E5B4560101156F4FE803C092E6010039
|
||||
:207AD2008CB5050000E7CA00007700E78A000077CFE812F0007700E75100007700E7400038
|
||||
:207AF200060002FE1F767E031C0AC4E21C00007712E8D01F14AD11641D0A1D921C2B0A5261
|
||||
:207B120002601D2B1D3457041A96200603610002036F00020119201E82FE0600A928FFFFA0
|
||||
:207B3200AA28FFFFAB28FFFFA828FFFFAB0F04ED00D400BE0B6FA927A928FFFFA92FA4A949
|
||||
:207B5200C488A928FFFF0209A98AA69240766BA6060022761F76C00169FF1C1A0800787633
|
||||
:207B720080001A761F76C401028FE6491CCCFF3F69FFA91A00401C96BF5618E0A9A8407672
|
||||
:207B92006FBB06000077006F1F767603BDB23EC5A959673E1F767E033EC5A70603ECA192AE
|
||||
:207BB200673E1F767E033C0603ECA71E673E40762FBBBE8B0600408F8CC2008F000D22761D
|
||||
:207BD200009A85C4019C805284C2FC641A7669FF0600A697009B0FF6A61F2076A697009B8D
|
||||
:207BF2000FF6A61FA89220761F7676033CA806001F7676033EA8060006001F7674033C9702
|
||||
:0C7C12003D9606000119C356FFFF060056
|
||||
:207C1E00250100008CC27E8B00007E8B00007E8B00007E8B00007E8B00007E8B00007E8B93
|
||||
:207C3E0000007E8B00007E8B00007E8B00007E8B00007E8B00007E8B00004C8C00003F8C4D
|
||||
:207C5E000000CF8F0000718B0000E6880000888B0000598C00001C8A0000118A0000068A75
|
||||
:207C7E000000FB890000F0890000E5890000DA890000CF890000C48900003D8A0000328AF0
|
||||
:207C9E000000278A0000B48A0000998A0000E68800009089000077890000DC8F0000488AF0
|
||||
:207CBE000000A9890000DE8D0000A88D0000728D00003C8D0000068D0000D08C0000E688AF
|
||||
:207CDE000000E6880000F98D0000C38D00008D8D0000578D0000218D0000EB8C0000E688B1
|
||||
:207CFE000000E6880000A68E00008B8E0000708E0000558E00003A8E00001F8E0000E688E7
|
||||
:207D1E000000E6880000B58C00009A8C0000E6880000E6880000E6880000E6880000E6884A
|
||||
:207D3E000000E68800007E8A0000638A0000C98B0000938B0000E48B0000AE8B0000E6883A
|
||||
:207D5E000000E6880000B48F0000998F00007E8F0000638F0000488F00002D8F0000E6882C
|
||||
:207D7E000000E68800007F8C0000648C0000E6880000E6880000208B0000CF8A0000E6882E
|
||||
:207D9E000000E6880000568B0000058B00003B8B0000EA8A0000128F0000DC8E0000F78E1C
|
||||
:207DBE000000C18E0000E6880000E6880000E6880000E6880000E6880000E6880000E68854
|
||||
:207DDE000000E6880000E6880000E6880000E6880000E6880000E6880000E6880000E68815
|
||||
:207DFE000000E68800005C89000041890000268900000B890000F0880000E6880000FF8B95
|
||||
:207E1E0000001A8C00002C012C01000000000F00160014000A003C000000000000000000C5
|
||||
:207E3E000000000000000A00080006000800060008000000000000000000000000000000F6
|
||||
:107E5E000000000000000000000033000B000A00CC
|
||||
:207E6E0048000000B2C3F4A4000081A50000E2A4000071A50000D5A4000063A50000C8A4F0
|
||||
:207E8E0000004CA50000AEA400003CA50000A1A4000032A5000085A4000025A5000078A485
|
||||
:207EAE00000017A500006BA400000BA5000055A4000040A40000949900002A9A0000269AAB
|
||||
:207ECE0000001C9A0000989900009B9900009F990000A4990000A9990000AF990000B3992E
|
||||
:187EEE000000B7990000009A0000209A0000BA9900002C9A00000000BF
|
||||
:00000001FF
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
TMS320C2000 Hex Converter v5.2.7
|
||||
********************************************************************************
|
||||
|
||||
INPUT FILE NAME: <C:\Dima\Project\Balsam_167\Bin\UKSSTMS320F28335.out>
|
||||
INPUT FILE NAME: <UKSSTMS320F28335.out>
|
||||
OUTPUT FORMAT: Binary
|
||||
|
||||
PHYSICAL MEMORY PARAMETERS
|
||||
@@ -12,20 +12,20 @@ PHYSICAL MEMORY PARAMETERS
|
||||
|
||||
BOOT LOADER PARAMETERS
|
||||
Table Type: SERIAL PORT (SCI 8 bit Mode)
|
||||
Entry Point: 0x0000b198
|
||||
Entry Point: 0x0000b9b5
|
||||
|
||||
|
||||
OUTPUT TRANSLATION MAP
|
||||
--------------------------------------------------------------------------------
|
||||
00000000..003fffff Page=0 Memory Width=8 ROM Width=8
|
||||
--------------------------------------------------------------------------------
|
||||
OUTPUT FILES: C:\Dima\Project\Balsam_167\Bin\UKSSTMS320F28335.bin [b0..b7]
|
||||
OUTPUT FILES: UKSSTMS320F28335_34a95bc5.bin [b0..b7]
|
||||
|
||||
CONTENTS: 00000000..00006e67 BOOT TABLE
|
||||
.cinit : dest=0000b35f size=00000283 width=00000002
|
||||
.text : dest=00008000 size=0000335f width=00000002
|
||||
.econst : dest=0000c000 size=00000112 width=00000002
|
||||
.switch : dest=0000c112 size=00000028 width=00000002
|
||||
CONTENTS: 00000000..00007f05 BOOT TABLE
|
||||
.cinit : dest=0000c000 size=0000028b width=00000002
|
||||
.text : dest=00008000 size=00003b73 width=00000002
|
||||
.econst : dest=0000c28c size=00000125 width=00000002
|
||||
.switch : dest=0000c3b2 size=00000048 width=00000002
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
00000000..003fffff Page=1 Memory Width=8 ROM Width=8 "*DEFAULT PAGE 1*"
|
||||
|
||||
Binary file not shown.
288
Doc/DAC_SPI_REVIEW.md
Normal file
288
Doc/DAC_SPI_REVIEW.md
Normal file
@@ -0,0 +1,288 @@
|
||||
# SPI и управление ЦАП в Бальзам 167
|
||||
|
||||
Дата анализа: 23.09.2026. Рассмотрена текущая рабочая копия проекта `167`.
|
||||
Документ описывает существующий код и предложения; прошивка в рамках этого анализа не изменялась.
|
||||
|
||||
## 1. Как устроено сейчас
|
||||
|
||||
ЦАП обслуживает **программный SPI через GPIO**, реализованный в `DAC.c`.
|
||||
Аппаратный SPI-A используется отдельно для EEPROM в `spise2p.c`.
|
||||
Изменение `SpiaRegs.SPIBRR` не меняет скорость передачи в ЦАП.
|
||||
|
||||
| Сигнал ЦАП | Вывод DSP | Имя в таблице платы | Действие |
|
||||
|---|---|---|---|
|
||||
| CS | GPIO59 | csdac, 1:13B | 0 на время кадра, затем 1 |
|
||||
| DIN / MOSI | GPIO60 | didac, 1:13A | данные от DSP к ЦАП |
|
||||
| SCLK | GPIO63 | clkdac, 1:14A | 16 тактов на слово |
|
||||
|
||||
Обозначения контактов взяты из комментариев `GPIO_table.h`, а не из проверенной схемы.
|
||||
MISO в драйвере отсутствует: код отправляет команды, но не читает подтверждение или статус ЦАП.
|
||||
Для платы нагрузки `get_Mode()` выбирает обычные GPIO и выходные направления этих линий.
|
||||
|
||||
Цепочка работы:
|
||||
|
||||
```text
|
||||
CPU Timer1: 1000 Гц, период 1 мс
|
||||
→ cpu_timer1_isr_SENS(), только Desk == dsk_LOAD
|
||||
→ Load_runner()
|
||||
→ каждые 5 вызовов: расчёт задания / инициализация
|
||||
→ Anal_output(kod, time_dac)
|
||||
→ dSEND(16-битное слово)
|
||||
→ GPIO59, GPIO60, GPIO63
|
||||
→ ump_log_tick()
|
||||
```
|
||||
|
||||
`READY_FREQ=1000`, `DAC_FREQ=200`, поэтому `period_dac=5`.
|
||||
200 Гц — частота обновления задания, **не частота SCLK**.
|
||||
`LOAD_TIME=30`, `time_dac=6000` — количество шагов, используемое в расчёте разгона.
|
||||
Вызов `dSEND` синхронный: обработчик таймера занят, пока не выставлены все биты.
|
||||
|
||||
## 2. Что происходит внутри одного SPI-кадра
|
||||
|
||||
Функция `dSEND(word)` выполняет:
|
||||
|
||||
1. Опускает CS и вызывает `DSP28x_usDelay(1L)`.
|
||||
2. Повторяет 16 раз: SCLK=1 → DIN=старший бит → сдвиг слова влево → задержка → SCLK=0 → задержка.
|
||||
3. Поднимает CS.
|
||||
|
||||
Передача начинается со старшего бита: D15 … D0. После кадра SCLK остаётся в 0,
|
||||
DIN — в состоянии последнего бита. Между кадрами CS остаётся в 1.
|
||||
Перед первым кадром `dSEND` отдельно не устанавливает исходное состояние SCLK.
|
||||
|
||||
Последовательность одного бита:
|
||||
|
||||
```text
|
||||
SCLK ↑ → выставить DIN → выдержать время → SCLK ↓ → выдержать время
|
||||
```
|
||||
|
||||
Новый бит устанавливается **после восходящего фронта**, но до нисходящего.
|
||||
Следовательно, код рассчитан на чтение данных по нисходящему фронту; это
|
||||
вывод из последовательности операций, а не подтверждение режима конкретной микросхемы.
|
||||
При SCLK idle=0 такое поведение соответствует замыслу SPI mode 1.
|
||||
Если приёмник читает по восходящему фронту, нужного setup-time здесь нет.
|
||||
Нельзя менять фронты по привычному примеру SPI mode 0 без проверки схемы и паспорта ЦАП.
|
||||
|
||||
Из исходников установлены такие слова:
|
||||
|
||||
| Вызов | Передаваемое слово |
|
||||
|---|---|
|
||||
| `Init_DAC()` | `0x9002` |
|
||||
| Обычное обновление | `0x8000 | (out & 0x0FFF)` |
|
||||
| Ручная калибровка | `0x8000 | (DAC_cal() & 0x0FFF)` |
|
||||
|
||||
Локальная переменная `x` в `Anal_output()` каждый раз получает 0. Ветка отправки
|
||||
без `0x8000` сейчас не выполняется. Точный смысл командных битов, номера канала,
|
||||
режима питания и `0x9002` нельзя достоверно назвать: маркировка ЦАП в исследованных
|
||||
исходниках не указана. Нужны схема или название установленной микросхемы.
|
||||
|
||||
После отправки `0x9002` функция `Init_DAC()` также переключает `RES_OUT_1` —
|
||||
для платы нагрузки это GPIO9. Это отдельная линия с неизвестным здесь
|
||||
электрическим назначением; считать её аппаратным RESET или LDAC без схемы нельзя.
|
||||
|
||||
## 3. Задержки и влияние прерываний
|
||||
|
||||
`DSP28x_usDelay(1L)` **не задаёт 1 мкс**. Ассемблерная функция принимает счётчик
|
||||
циклов своего внутреннего цикла. Для микросекунд библиотека предоставляет макрос
|
||||
`DELAY_US`, который предварительно пересчитывает время.
|
||||
|
||||
В комментарии самой ассемблерной функции приведена модель `9 + 5 × LoopCount`
|
||||
тактов процессора. Она применима с оговорками о памяти без wait-state; вызовы,
|
||||
GPIO-записи, цикл C и прерывания дополнительно влияют на реальную длительность.
|
||||
Поэтому по числу `1L` нельзя вычислять частоту SCLK как 500 кГц или 1 МГц.
|
||||
|
||||
В проекте `XCLKIN=30 МГц`, `CLKMULT=2`, PLL множитель 4, делитель 2:
|
||||
расчётная частота SYSCLKOUT — **60 МГц**, если входной генератор соответствует
|
||||
константе. При этом `CPU_RATE` для макроса `DELAY_US` остался `6.667 нс`
|
||||
(150 МГц). Это несоответствие не участвует в прямом вызове `DSP28x_usDelay(1L)`,
|
||||
но помешает простой замене на `DELAY_US(1)`: сначала надо согласовать CPU_RATE
|
||||
с фактической частотой. При 60 МГц период такта примерно 16.667 нс.
|
||||
|
||||
В таймерном ISR выполняется `EINT` после настройки `IER/MINT13`.
|
||||
В текущей таблице приоритетов Group9 имеет уровень 1, Timer1 — 4;
|
||||
разрешённые прерывания CAN/UART могут удлинять части SPI-кадра.
|
||||
Сам `dSEND` не запрещает прерывания и не имеет защиты от повторного входа.
|
||||
В найденных вызовах передача ЦАП идёт из `Load_runner`; добавлять второго
|
||||
вызывающего без организации единого владельца передачи нельзя.
|
||||
|
||||
Это не доказывает потерю данных: некоторые ЦАП допускают произвольное растяжение
|
||||
SCLK. Следует проверить паспортные ограничения и измерить минимальные и
|
||||
максимальные времена под нагрузкой CAN/RS. Полный запрет прерываний на кадр
|
||||
может уменьшить разброс, но увеличит задержку обработки связи.
|
||||
|
||||
## 4. Инициализация и расчёт аналогового выхода
|
||||
|
||||
`Setup_DAC_time()` задаёт `WAKEpowse=601`. Счётчик уменьшается с частотой 200 Гц.
|
||||
Во время примерно трёхсекундной стартовой фазы `Init_DAC()` вызывается шесть раз,
|
||||
при остатках 600, 500, 400, 300, 200, 100. После этого начинается обычный вывод.
|
||||
Команда `cInitDac` вызывает повторную инициализацию; на этом шаге слово задания
|
||||
не отправляется. При остановленном УМП счётчик `x` в `Load_runner` также вызывает
|
||||
периодическую инициализацию примерно раз в 5.12 с. Это другая переменная `x`,
|
||||
не связанная с постоянным нулём в `Anal_output`.
|
||||
|
||||
Расчёт кода:
|
||||
|
||||
```text
|
||||
out = DAC_min + vrot × DAC_max / maxx − vrot × DAC_min / maxx
|
||||
при cCalibrDac: out = DAC_cal
|
||||
затем out &= 0x0FFF
|
||||
```
|
||||
|
||||
Два деления здесь целочисленные. Их нельзя без проверки заменить одним:
|
||||
`DAC_min + vrot × (DAC_max − DAC_min) / maxx` может дать другое округление.
|
||||
Сначала нужно определить требуемое округление и допустимость изменения результата.
|
||||
|
||||
В `modbus[0x7B]` сохраняется отправленный 12-битный код, а в `modbus[0x1C]` —
|
||||
расчётное задание в десятых долях мА. Это **не измерение выходного тока**.
|
||||
В режиме `cCalibrDac` эти значения могут описывать разные вещи: в ЦАП уходит
|
||||
ручной код, а `0x1C` остаётся результатом формулы разгона.
|
||||
|
||||
## 5. Что стоит исправить в первую очередь
|
||||
|
||||
### 5.1. Порядок запуска таймера — высокий приоритет
|
||||
|
||||
В `main()` выполняются `timer_Init(); EnableInterrupts();`, а затем загрузка
|
||||
параметров и только после неё `Setup_DAC_time()`.
|
||||
В `cpu_timer1_isr_SENS` перед `Load_runner()` нет проверки `READY`.
|
||||
До настройки глобальные `period_dac`, `time_dac`, `WAKEpowse` нулевые.
|
||||
|
||||
Если в этом промежутке сработает Timer1 на плате нагрузки, условие счётчика
|
||||
проходит при нулевом `period_dac`, стартовая задержка отсутствует, и путь может
|
||||
дойти до `Anal_output(..., 0)` — деления на ноль. Это найденный путь выполнения,
|
||||
не результат воспроизведения на железе.
|
||||
|
||||
Предложение: до допуска обслуживания ЦАП настроить GPIO в известное состояние,
|
||||
загрузить/проверить параметры и выполнить `Setup_DAC_time`. Для этого можно
|
||||
отдельно разрешать ветку ЦАП флагом готовности или запускать Timer1 позднее.
|
||||
Нельзя просто отключить все прерывания на время загрузки: EEPROM использует Timer2.
|
||||
Дополнительно проверять `maxx > 0` и допустимость `period_dac` перед расчётом.
|
||||
|
||||
### 5.2. Ошибка ограничения уставки
|
||||
|
||||
В `Load_runner` есть строка:
|
||||
|
||||
```c
|
||||
if (dac_stop > 16) dac_go = 16;
|
||||
```
|
||||
|
||||
При превышении конечной уставки меняется начальная. Вероятное намерение —
|
||||
ограничивать `dac_stop`, но это надо подтвердить требованиями к разгонной
|
||||
характеристике. Ранее `dac_go` ограничивается диапазоном 0..5, а эта строка
|
||||
может сразу заменить его на 16. Следующая проверка способна поднять `dac_stop`
|
||||
до 17. Это влияет на ток независимо от исправности SPI.
|
||||
|
||||
Предложение: описать допустимые пары начальной/конечной уставок в мА,
|
||||
проверять их совместно и протестировать границы. Внутри алгоритма из обеих
|
||||
уставок вычитается 4 мА; ограничения должны учитывать это смещение.
|
||||
|
||||
### 5.3. Маскирование вместо насыщения
|
||||
|
||||
`out & 0xFFF` обрезает старшие биты, но не ограничивает числовое значение:
|
||||
4096 превращается в 0, −1 — в 4095. При ошибочной калибровке или выходе
|
||||
за диапазон это создаёт скачок кода.
|
||||
|
||||
Предложение: сначала проверить входные данные и ограничить результат
|
||||
диапазоном 0..4095, затем сформировать командное слово. Для ошибочных параметров
|
||||
явно определить поведение: отказ, удержание предыдущего кода или заданное
|
||||
проектом аварийное значение. Не выбирать «0» автоматически: код и ток связаны
|
||||
калибровкой и внешней схемой.
|
||||
|
||||
### 5.4. Реальная длительность разгона
|
||||
|
||||
После половины диапазона `count_load` увеличивается дважды за шаг:
|
||||
один раз в `if(count_load > time_dac/2)`, второй — в `++count_load`.
|
||||
Поэтому достижение конца при `LOAD_TIME=30` занимает примерно **22.5 с**,
|
||||
а не 30 с, без учёта начальной фазы и задержек исполнения.
|
||||
Это может быть намеренной двухступенчатой характеристикой.
|
||||
Предложение: явно описать её либо перейти к расчёту по прошедшему времени,
|
||||
если требование действительно состоит в линейном разгоне за 30 с.
|
||||
|
||||
## 6. Улучшения непосредственно SPI
|
||||
|
||||
| Изменение | Польза | Что проверить |
|
||||
|---|---|---|
|
||||
| Явный `dac_bus_init`: CS=1, SCLK в idle, DIN определён; затем включение выходов | Предсказуемый первый кадр | Схема, подтяжки, активные уровни |
|
||||
| Именованные задержки setup/hold/high/low/CS-high | Понятные временные ограничения | Паспорт ЦАП и фактическая частота DSP |
|
||||
| Имена констант вместо `0x9002`, `0x8000`, `0xFFF` | Ясный смысл команд | Сначала установить модель ЦАП |
|
||||
| Один владелец передачи и флаг занятости | Исключает наложение двух кадров | Все вызывающие и разрешённые ISR |
|
||||
| Отдельные функции расчёта кода и отправки слова | Проверка алгоритма без железа | Сохранение округления и масштаба |
|
||||
| Диагностика отправок/максимальной длительности | Показывает нагрузку и задержки | Счётчик отправок не считать ACK от ЦАП |
|
||||
| Удаление неиспользуемого `wast()` и недостижимой ветки `x` | Упрощает чтение | Не затронуть другой `x` в Load_runner |
|
||||
|
||||
Не следует повышать DAC_FREQ ради ускорения SPI: меняется алгоритм обновления,
|
||||
число шагов и стартовые интервалы. Для других частот проверить целочисленность
|
||||
отношения READY_FREQ/DAC_FREQ и диапазон 16-битного `time_dac` на C28x.
|
||||
Текущие 6000 шагов помещаются; будущие LOAD_TIME/DAC_FREQ могут вызвать переполнение.
|
||||
|
||||
Вариант без переделки платы: сохранить GPIO-передачу, нормировать её тайминги,
|
||||
измерить длительность кадра и только затем решать, нужна ли короткая критическая секция.
|
||||
Не переносить отправку в основной цикл без анализа задержек: в проекте есть
|
||||
блокирующие операции EEPROM. Если переносить — использовать явную очередь/последнее
|
||||
задание с оговорённым временем обслуживания и отдельными командами инициализации.
|
||||
|
||||
## 7. Можно ли перейти на аппаратный SPI
|
||||
|
||||
У F28335 один SPI-A. Его выводы могут быть GPIO16/17/18/19 или GPIO54/55/56/57.
|
||||
GPIO60 и GPIO63 не имеют функции SPISIMOA/SPICLKA, поэтому текущие DIN/SCLK
|
||||
не переводятся на SPI-A одной настройкой mux. Нужны изменения соединений.
|
||||
Это подтверждается [таблицами выводов TI, SPRS439Q](https://www.ti.com/lit/ds/symlink/tms320f28335.pdf).
|
||||
|
||||
В данном проекте SPI-A уже обслуживает EEPROM на GPIO16/17/18 и CS=GPIO19.
|
||||
Вариант общей шины требует подключения ЦАП к тем же MOSI/SCLK и отдельного CS,
|
||||
проверки электрической совместимости и последовательного доступа к SPI-A.
|
||||
Если меняются длина слова/фаза/частота, переключать настройки можно только
|
||||
после завершения предыдущей операции. Текущий автомат EEPROM работает через
|
||||
Timer2 и сам меняет формат слова: потребуется общий владелец шины.
|
||||
|
||||
Сначала достаточно рассмотреть один 16-битный аппаратный кадр с ограниченным
|
||||
ожиданием либо прерыванием завершения. FIFO/DMA усложнят короткую передачу;
|
||||
их необходимость следует обосновывать измерениями. CS надо отпускать после
|
||||
фактического окончания сдвига последнего бита, а не сразу после записи TXBUF.
|
||||
Возможность DMA именно для выбранного периферийного блока отдельно проверять
|
||||
по TRM, не переносить механически решение STM32.
|
||||
|
||||
Для будущего порта STM32 можно сохранить общий расчёт и формат слова,
|
||||
а отправку реализовать аппаратным SPI на выводах конкретной платы. Нынешний
|
||||
эмулятор лишь генерирует поля ЦАП в журнале; он не подтверждает физические
|
||||
SPI-фронты и выходной ток устройства.
|
||||
|
||||
## 8. Практический порядок работ и проверка
|
||||
|
||||
1. Установить модель ЦАП, назначение GPIO9, схемные инверсии и требования timing.
|
||||
2. Исправить порядок готовности ЦАП при запуске и защитить деление на ноль.
|
||||
3. Согласовать диапазоны уставок, исправить ограничение и обрезание кода.
|
||||
4. Снять текущие CS/SCLK/DIN при запуске, рабочем разгоне и нагрузке CAN/RS.
|
||||
5. Нормировать программные задержки; аппаратный SPI выбирать по результатам измерений.
|
||||
|
||||
Логический анализатор подключить к CS, SCLK, DIN и общей земле; при необходимости
|
||||
добавить GPIO9. Записать 16 бит каждого кадра, порядок битов, `0x9002`,
|
||||
минимум/середину/максимум кода, setup/hold DIN, CS setup/hold, SCLK high/low,
|
||||
длину кадра и интервал обновления. Отдельно проверить первый кадр после сброса.
|
||||
Частоту дискретизации анализатора выбрать по измеренному SCLK с запасом.
|
||||
Осциллографом проверить форму фронтов и выбросы, внешним измерителем — ток.
|
||||
|
||||
После правок проверить граничные и ошибочные уставки, `maxx=0`, калибровку,
|
||||
разгон/останов, cInitDac, сохранение параметров EEPROM одновременно с CAN/RS.
|
||||
Тесты расчёта должны фиксировать требуемое округление и поведение вне диапазона;
|
||||
программная трасса GPIO — количество фронтов и порядок данных. Проверка GPIO
|
||||
на компьютере не заменяет измерение времён на собранной плате.
|
||||
|
||||
## 9. Основания анализа
|
||||
|
||||
Факты о текущем поведении взяты из следующих файлов; номера строк относятся
|
||||
к рабочей копии на дату анализа:
|
||||
|
||||
- [Формирование кадра, инициализация, расчёт выхода и разгон](C:/setcorp/git/tms_periph_28335/167/Source/Internal/DAC.c:45).
|
||||
- [Запуск таймера и порядок инициализации](C:/setcorp/git/tms_periph_28335/167/Source/Internal/main.c:26).
|
||||
- [Вызов Load_runner из ISR](C:/setcorp/git/tms_periph_28335/167/Source/Internal/measure.c:119).
|
||||
- [Частоты и время разгона](C:/setcorp/git/tms_periph_28335/167/Source/Internal/Include/measure.h:73).
|
||||
- [Назначение линий платы](C:/setcorp/git/tms_periph_28335/167/Source/Internal/Include/GPIO_table.h:294).
|
||||
- [Mux и направления GPIO](C:/setcorp/git/tms_periph_28335/167/Source/Internal/peripher.c:44).
|
||||
- [Аппаратный SPI EEPROM](C:/setcorp/git/tms_periph_28335/167/Source/Internal/spise2p.c:98).
|
||||
- [Счётчик ассемблерной задержки](C:/setcorp/git/tms_periph_28335/167/Source/External/v120/DSP2833x_common/source/DSP2833x_usDelay.asm:62).
|
||||
- [Настройки PLL и CPU_RATE](C:/setcorp/git/tms_periph_28335/167/Source/External/v120/DSP2833x_common/include/DSP2833x_Examples.h:66).
|
||||
- [Приоритеты прерываний](C:/setcorp/git/tms_periph_28335/167/Source/External/v120/DSP2833x_common/include/DSP2833x_SWPrioritizedIsrLevels.h:61).
|
||||
|
||||
Модель ЦАП и электрическая схема не установлены. Режим выборки, назначение
|
||||
командных битов и допустимые длительности нельзя считать подтверждёнными
|
||||
до сверки с документацией конкретной микросхемы. Сборка/прошивка и стендовые
|
||||
измерения в рамках подготовки этого документа не выполнялись.
|
||||
136
Doc/EEPROM_LAYOUT.md
Normal file
136
Doc/EEPROM_LAYOUT.md
Normal file
@@ -0,0 +1,136 @@
|
||||
# EEPROM 167: выбор AT25256B / M95M02
|
||||
|
||||
Маркировка платы `ATMLH516 5EBL` определяет AT25256B: **256 Кбит**, то есть
|
||||
**32 768 байт**. Расшифровка и характеристики приведены в
|
||||
[даташите Microchip](https://ww1.microchip.com/downloads/aemDocuments/documents/MPD/ProductDocuments/DataSheets/AT25128B-AT25256B-128-256-Kbit-SPI-Serial-EEPROM-Industrial-Grade-Data-Sheet-DS20006193.pdf).
|
||||
|
||||
Константы общей разметки находятся в
|
||||
[templates/include/balsam167_eeprom_layout.h](../../newProject/SETGUI/third_party/templates/c/set-protocol/include/balsam167_eeprom_layout.h).
|
||||
`spise2p.h` использует их для физического размера, количества слов и длины
|
||||
страницы. `message.c` — для адреса параметров. Размер массива параметров
|
||||
проверяется относительно `ANSWER_LEN` на этапе компиляции.
|
||||
|
||||
`F28335.cmd` включает тот же заголовок и экспортирует символы `_EEPROM_*` в
|
||||
`.map`. Путь к templates/c/set-protocol добавлен в search path линкера CLI и CCS.
|
||||
EEPROM не стала секцией CPU MEMORY: SPI-образ загружается в RAM загрузчиком.
|
||||
Расположение `.text`, `.cinit`, `.econst`, `.switch` не менялось.
|
||||
|
||||
| Область | Начало, байт | Конец, исключая | Размер |
|
||||
|---|---:|---:|---:|
|
||||
| Прошивка SCI8 | `0x0000` | `0x7EFC` | 32 508 |
|
||||
| Параметры | `0x7EFC` | `0x7FFE` | 258 |
|
||||
| Неиспользуемое слово | `0x7FFE` | `0x8000` | 2 |
|
||||
|
||||
`check_firmware.ps1` получает размер и резерв из общего заголовка и сверяет
|
||||
резерв с `ANSWER_LEN`. При нестандартном checkout передайте `-TemplatesRoot`;
|
||||
`build_logger.ps1` делает это автоматически. Исторические параметры не перенесены.
|
||||
|
||||
Чтение с платы, единицы адресов, порядок байтов и сохранение дампа описаны в
|
||||
[руководстве SETGUI](../../newProject/SETGUI/docs/BALSAM167_EEPROM.md).
|
||||
Для старой прошивки reader использует CMD_PEEK (2 байта за запрос).
|
||||
Версия 0.1.1 также поддерживает блочное чтение FC03, регистры 0x8000..0xBFFF,
|
||||
до 120 слов (240 байт) за запрос. Полный дамп требует 137 запросов.
|
||||
Границы и формат заданы в templates, GUI использует тонкий Python-порт.
|
||||
Блочное чтение выполняется с разрешёнными прерываниями для работы SPI Timer2.
|
||||
Запись через это окно запрещена; параметры и их расположение не изменяются.
|
||||
|
||||
Размер каждого нового BIN проверяется при сборке; прежний вариант с одним
|
||||
PEEK занимал 32 286 байт. Точный размер новой сборки указан в её manifest.
|
||||
Для реального увеличения памяти потребовались бы другая микросхема, проверка
|
||||
SPI-загрузчика и драйвера, а не только правка линкера.
|
||||
|
||||
|
||||
## Выбор типа памяти (прошивка 0.1.2)
|
||||
|
||||
По умолчанию остаётся AT25256B. Автоматического определения ёмкости нет:
|
||||
контрольные записи для определения типа не выполняются. Выбранный тип должен
|
||||
совпадать с физической микросхемой до запуска программы и чтения параметров.
|
||||
|
||||
### CCS12
|
||||
|
||||
Откройте `Source/Internal/Include/eeprom_config.h`:
|
||||
|
||||
```c
|
||||
#define EEPROM_M95M02 0 /* AT25256B, 32 КиБ */
|
||||
/* Для установленной M95M02 измените значение на 1. */
|
||||
```
|
||||
|
||||
После изменения выполните **Project → Clean**, затем **Rebuild**. Этот файл
|
||||
читают драйвер, обработчик команд и F28335.cmd; post-build использует тот же
|
||||
выбор. Не задавайте противоречащий ему отдельный define только компилятору CCS:
|
||||
тогда компилятор, линкер и проверка BIN могут получить разные настройки.
|
||||
|
||||
### Сборка скриптом
|
||||
|
||||
```powershell
|
||||
./build_logger.ps1 -Eeprom AT25256B -OutputDirectory ./Bin/EepromProfiles/AT25256B -ImageName UKSSTMS320F28335_AT25256B
|
||||
./build_logger.ps1 -Eeprom M95M02 -OutputDirectory ./Bin/EepromProfiles/M95M02 -ImageName UKSSTMS320F28335_M95M02
|
||||
```
|
||||
|
||||
Параметр скрипта передаётся компилятору, линкеру и проверке размера; исходный
|
||||
config не меняется. Скрипт по умолчанию собирает AT25256B. Рядом с BIN создаются
|
||||
manifest и SHA-256; поле `eeprom` в manifest различает аппаратные варианты.
|
||||
UART остаётся 115200; алгоритм UART и FIFO не изменялся.
|
||||
|
||||
| Параметр | AT25256B | M95M02-DR |
|
||||
|---|---:|---:|
|
||||
| Ёмкость, байт | 32768 | 262144 |
|
||||
| Адрес SPI | 2 байта | 3 байта |
|
||||
| Страница записи, байт | 64 | 256 |
|
||||
| Начало параметров, байт | 0x7EFC | 0x3FEFC |
|
||||
| Начало параметров, слова | 0x3F7E | 0x1FF7E |
|
||||
| Конец параметров, исключая | 0x7FFE | 0x3FFFE |
|
||||
| Максимальная область BIN | 32508 | 261884 |
|
||||
|
||||
Последние два байта не используются. У M95M02 старшие адресные биты передаются
|
||||
отдельным восьмибитным тактом, затем младшие 16 бит. Адреса и длины драйвера
|
||||
расширены до 32 бит только в сборке M95M02. Запись делится по физическим страницам;
|
||||
готовность определяется WIP в регистре состояния. На плате с новым чипом ещё
|
||||
нужна проверка записи/считывания и холодного SPI boot; тесты на ПК не заменяют её.
|
||||
|
||||
### SETGUI
|
||||
|
||||
На вкладках **EEPROM 167** и **Загрузка / запуск / прошивка** есть синхронный
|
||||
чекбокс **M95M02 · 256 КиБ**. Снято — AT25256B · 32 КиБ. Он выбирает протокол
|
||||
и допустимый диапазон ПК, но не перепрограммирует тип EEPROM работающей платы.
|
||||
Во время чтения/загрузки переключатель блокируется.
|
||||
|
||||
Для полного дампа нажмите «Вся EEPROM»: 32768 либо 262144 байта. Длина блока
|
||||
остаётся 240 байт. M95M02 требует блочного чтения; автоматический переход на
|
||||
PEEK запрещён. Неподходящая прошивка должна отклонить запрос, а не вернуть
|
||||
повторяющиеся первые 32 КиБ как полный дамп. Дамп можно передать кнопкой
|
||||
«Сравнить с файлом…» напрямую в сравнение BIN.
|
||||
|
||||
При загрузке BIN проверяется поле `eeprom`, если оно присутствует в manifest.
|
||||
Старые файлы без этого поля не позволяют проверить тип. Команда «В SEEPROM»
|
||||
использует отдельный подкод M95M02; старая прошивка его не исполняет. Операция
|
||||
может завершиться таймаутом при несовпадении типа; это не успешная запись.
|
||||
GUI ограничивает отдельную загрузку в RAM существующим пределом 199993 байт:
|
||||
ёмкость EEPROM 256 КиБ сама по себе не увеличивает буфер загрузки или RAM CPU.
|
||||
|
||||
### Замена микросхемы и параметры
|
||||
|
||||
Сначала сохраните полный дамп старой EEPROM и настройки платы. После установки
|
||||
M95M02 запустите её сборку через CCS, запишите соответствующий BIN и сохраните
|
||||
параметры штатной командой Save. Параметры автоматически не мигрируют с 0x7EFC
|
||||
на 0x3FEFC. Простое копирование старого полного дампа в начало новой памяти
|
||||
не переносит настройки в их новую область и оставляет старый вариант прошивки.
|
||||
|
||||
### Общий протокол templates
|
||||
|
||||
Реализация и границы: `balsam167_eeprom_layout.h`, `balsam167_eeprom_block.h`,
|
||||
`periph28335.c`. Публичные функции `*_profile` получают 0 (AT25256B) или 1
|
||||
(M95M02); старые функции и структура reader из четырёх uint32_t сохранены.
|
||||
Python — тонкий ctypes-порт. Профили ПМ67/2812 и STM этим выбором не изменяются.
|
||||
|
||||
Для M95M02 используется частное расширение окна FC03: адрес 0x8000…0xFFFF,
|
||||
quantity = 0x8000 | (bank << 8) | word_count, bank 0…3, word_count 1…120.
|
||||
Каждый запрос содержит свой банк 64 КиБ; общего переключаемого банкового
|
||||
регистра нет. Блок не пересекает границу банка. Это не стандартное количество
|
||||
регистров Modbus — пользоваться следует общим API templates.
|
||||
Подкод EXTEND записи: 4 для AT25256B, 0x44 для M95M02. Адрес назначения в словах,
|
||||
размер в байтах. Обе стороны проверяют границу области прошивки.
|
||||
|
||||
Проверки: C-тест полного дампа 256 КиБ с нечётного адреса, все переходы банков,
|
||||
CRC и выход за границы; Qt-тесты выбора и запрета fallback; host-тест реального
|
||||
SPI-автомата `python tests/eeprom_profiles/run_test.py`; сборка обоих вариантов TI.
|
||||
167
Doc/FIRMWARE_IDENTITY.md
Normal file
167
Doc/FIRMWARE_IDENTITY.md
Normal file
@@ -0,0 +1,167 @@
|
||||
# 167: версия работающей прошивки, SHA-256 и выпуск
|
||||
|
||||
## Что подключено
|
||||
|
||||
167 использует общий `templates/c/firmware-info`, а не копию Climate.
|
||||
Работающий ПМ35 отдаёт 12 регистров версии через RS и служебный CAN.
|
||||
После сборки на компьютере создаются SHA-256 BIN и JSON-паспорт.
|
||||
|
||||
Общая подробная инструкция, включая перенос на TMS320F2812 и STM32:
|
||||
[BUILD_IDENTITY.md](../../newProject/SETGUI/third_party/templates/c/firmware-info/BUILD_IDENTITY.md).
|
||||
|
||||
| Файл проекта | Роль |
|
||||
|---|---|
|
||||
| `UKSSTMS320F28335/firmware_version.h` | Редактируемый номер выпуска: FIRMWARE_VERSION_MAJOR/MINOR/PATCH |
|
||||
| `UKSSTMS320F28335/firmware_identity.json` | Product и target; версия берётся из C-заголовка |
|
||||
| `Source/Internal/shared_ump.c` | Подключение общей таблицы версии и привязка к UMP ПМ35 |
|
||||
| `UKSSTMS320F28335/prepare_identity.py` | Генерация идентичности из C-заголовка перед CCS Debug/Release |
|
||||
| `build_logger.ps1` | Полный CLI build: prepare, compile, link, SCI8, size check, seal |
|
||||
| `build_bin.bat` | Debug post-build: проверка SCI8 и паспорт конечного BIN |
|
||||
| `tests/firmware_identity/port_test.c` | Host-проверка привязки версии к реальному порту 167 |
|
||||
|
||||
Номер `0.1.0` — начальная версия разработки этого механизма; он не выдаётся за
|
||||
историческую версию предыдущих BIN. Назначайте release-номер вручную перед выпуском.
|
||||
|
||||
## Сборка из PowerShell
|
||||
|
||||
Из корня 167:
|
||||
|
||||
```powershell
|
||||
./build_logger.ps1 -OutputDirectory "$PWD/Bin/FirmwareIdentity" `
|
||||
-ImageName UKSSTMS320F28335
|
||||
```
|
||||
|
||||
По умолчанию применяется `-O2 --opt_for_speed=0`. Результаты:
|
||||
|
||||
```text
|
||||
Bin/FirmwareIdentity/UKSSTMS320F28335.bin
|
||||
Bin/FirmwareIdentity/UKSSTMS320F28335.bin.manifest.json
|
||||
Bin/FirmwareIdentity/UKSSTMS320F28335.bin.sha256
|
||||
Bin/FirmwareIdentity/generated/firmware_identity.h
|
||||
Bin/FirmwareIdentity/generated/firmware_identity.json
|
||||
```
|
||||
|
||||
Проверка файла перед передачей:
|
||||
|
||||
```powershell
|
||||
python ../newProject/SETGUI/third_party/templates/c/firmware-info/tools/identity.py verify `
|
||||
--image Bin/FirmwareIdentity/UKSSTMS320F28335.bin `
|
||||
--manifest Bin/FirmwareIdentity/UKSSTMS320F28335.bin.manifest.json
|
||||
```
|
||||
|
||||
CLI принимает `-TemplatesRoot`, если общий checkout расположен иначе. Все
|
||||
исходники общего механизма собираются непосредственно из этого checkout.
|
||||
|
||||
## Сборка CCS
|
||||
|
||||
В `.cproject` добавлены pre-build и include paths `${BuildDirectory}/generated` и
|
||||
`templates/c/firmware-info/include`. После изменения настроек закройте/откройте
|
||||
проект в IDE, затем выполните Clean/Rebuild.
|
||||
|
||||
Pre-build требует Python 3.10+ и Git в PATH процесса CCS. `Generated` принадлежит
|
||||
этому проекту: не запускайте Debug/Release одновременно. Для параллельных
|
||||
сборок используйте CLI с разными output-каталогами.
|
||||
|
||||
Штатный Debug post-build создаёт в `Bin`:
|
||||
|
||||
```text
|
||||
UKSSTMS320F28335_<commit>.bin
|
||||
UKSSTMS320F28335_<commit>.bin.manifest.json
|
||||
UKSSTMS320F28335_<commit>.bin.sha256
|
||||
```
|
||||
|
||||
Имя BIN исторически содержит HEAD без dirty-суффикса; достоверные признаки dirty
|
||||
находятся внутри ответа версии и паспорта. Не определяйте чистоту только по имени.
|
||||
Release-конфигурация получает embedded identity через pre-build, но её старый
|
||||
проект не имел автоматического BIN post-build. Для готового проверенного BIN с
|
||||
паспортом используйте описанный CLI либо настройте release-конверсию по общей
|
||||
инструкции; нельзя запускать Debug `build_bin.bat` на Release и ожидать другой `.out`.
|
||||
|
||||
Если CCS пишет `Error ... (ignored)`, сборка не считается успешной: убедитесь,
|
||||
что последняя проверка и `seal` завершились без ошибок. Старый BIN с таким же
|
||||
именем может оставаться на диске после неудачной сборки.
|
||||
|
||||
## Как прочитать версию
|
||||
|
||||
По прямому RS232/RS485: Modbus **03**, адрес начала **4608 (`0x1200`)**, **12 слов**.
|
||||
Это zero-based адрес в запросе, а не обозначение `4xxxx` в интерфейсе терминала.
|
||||
Адрес ведомого остаётся текущим `CNTRL_ADDR`. Возвращается стандартный RTU-ответ
|
||||
с 24 байтами данных и CRC; дополнительного legacy padding в этом окне нет.
|
||||
|
||||
| Адрес | Содержимое |
|
||||
|---|---|
|
||||
| `0x1200` | Версия формата = 1 |
|
||||
| `0x1201..0x1203` | Major, minor, patch |
|
||||
| `0x1204` | Год UTC |
|
||||
| `0x1205` | Месяц:день, старший:младший октет |
|
||||
| `0x1206` | Час:минута UTC |
|
||||
| `0x1207` | Секунда |
|
||||
| `0x1208..0x120B` | 8 ASCII-символов Build ID, по два на слово |
|
||||
|
||||
По служебному CAN ПМ35: запрос UMP функции 03, `0x1200`, 12 слов; ответ состоит
|
||||
из шести фрагментов. Используется выбранный Mode и существующий token запроса.
|
||||
CAN ПМ67 не переназначается. Запись функции 06 в окно версии запрещена.
|
||||
|
||||
Старый образ может вернуть исключение или неизвестный контракт. Это не следует
|
||||
заменять «ожидаемой» версией выбранного BIN. После прошивки переподключитесь или
|
||||
явно обновите чтение: ответ должен поступить с устройства, а не из кэша GUI.
|
||||
|
||||
## Что сравнивать после заливки
|
||||
|
||||
Сравните SemVer, все поля UTC и Build ID с паспортом именно загруженного BIN.
|
||||
`+` означает локальные изменения приложения **или templates**; полный Git SHA
|
||||
и состояние обоих деревьев записаны в JSON. Проверка SHA на ПК подтверждает
|
||||
целостность файла, но не заменяет проверку программатором записанной памяти.
|
||||
|
||||
В контракте нет аппаратного product ID и хеша всей памяти. Подключённый профиль
|
||||
должен оставаться ПМ35/167, а файл — `product=Balsam-167-PM35`,
|
||||
`target=TMS320F28335`. Не переносите файл на ПМ67 только по похожему имени.
|
||||
|
||||
## Влияние на память и параметры
|
||||
|
||||
С проверенными настройками текущий образ занимает **32 286 байт**, предел —
|
||||
**32 508**, запас **222 байта**. Механизм добавил 116 байт относительно сборки
|
||||
без него. Это результат конкретной сборки, не обещание для следующих изменений.
|
||||
|
||||
Таблица версии — часть `.econst` прошивки. Её не сохраняют в область параметров;
|
||||
старые настройки не могут подменить версию после обновления. Размер буфера лога
|
||||
и размещение EEPROM-параметров не менялись. Дата не разбирается на MCU, SHA-256
|
||||
не вычисляется на MCU. Проверка размера `check_firmware.ps1` остаётся обязательной.
|
||||
|
||||
## Проверки и ограничения
|
||||
|
||||
Проверка соответствия паспорта **реально встроенной** таблице в собранном SCI8:
|
||||
|
||||
```powershell
|
||||
python tests/firmware_identity/check_build.py Bin/FirmwareIdentity/UKSSTMS320F28335.bin
|
||||
```
|
||||
|
||||
Этот независимый тест также сверяет SHA и размер, проходит boot-блоки и ищет
|
||||
точное 12-словное представление версии. Он обнаружит старый объект версии или
|
||||
паспорт другой сборки. Это тест для 167, не транспортный код для GUI.
|
||||
|
||||
Host-тест реального порта (GCC должен быть в PATH):
|
||||
|
||||
```powershell
|
||||
$templates = '../newProject/SETGUI/third_party/templates'
|
||||
gcc -std=c99 -Wall -Wextra -Werror `
|
||||
"-I$templates/c/firmware-info/include" -IBin/FirmwareIdentity/generated `
|
||||
"-I$templates/c/set-protocol" "-I$templates/c/set-protocol/ports/tms320f28335" `
|
||||
tests/firmware_identity/port_test.c Source/Internal/shared_ump.c `
|
||||
-o Bin/FirmwareIdentity/port_test.exe
|
||||
./Bin/FirmwareIdentity/port_test.exe
|
||||
python tests/ump_logger/test_firmware_image.py
|
||||
python tests/ump_logger/run_test.py
|
||||
python tests/ump_logger/run_init_test.py
|
||||
```
|
||||
|
||||
Проверены полный TI build 167, формат SCI8, host-тесты протокола и регистратора,
|
||||
общие тесты identity/SHA, компиляция общего C-кода TI C28x без FPU и ARM Cortex-M4.
|
||||
Это не аппаратная проверка TMS2812/STM32 и не полноценная сборка другого проекта.
|
||||
Физическое чтение нового окна версии и проверку после загрузки нужно выполнить
|
||||
на стенде. В SETGUI на вкладке «Загрузка / запуск / прошивка» доступны
|
||||
«Прочитать версию с платы» и «Проверить файл»: показаны SemVer, дата UTC,
|
||||
Build ID и сравнение с выбранным BIN. Для проверки файла держите рядом его
|
||||
`.bin.manifest.json`; GUI проверяет product/target, размер и SHA-256 и повторяет
|
||||
проверку перед передачей. BIN без паспорта отмечается как непроверенный старый
|
||||
образ; неверный паспорт блокирует загрузку. После RESET прочитайте версию снова.
|
||||
97
Doc/GAS_167_M95M02.md
Normal file
97
Doc/GAS_167_M95M02.md
Normal file
File diff suppressed because one or more lines are too long
97
Doc/GAS_ADDRESS_ALLOCATION.md
Normal file
97
Doc/GAS_ADDRESS_ALLOCATION.md
Normal file
File diff suppressed because one or more lines are too long
267
Doc/GAS_MODBUS_MAP.md
Normal file
267
Doc/GAS_MODBUS_MAP.md
Normal file
File diff suppressed because one or more lines are too long
241
Doc/GAS_MODBUS_PROJECT_COMPARISON.md
Normal file
241
Doc/GAS_MODBUS_PROJECT_COMPARISON.md
Normal file
File diff suppressed because one or more lines are too long
119
Doc/PERIPH28335_CAN.md
Normal file
119
Doc/PERIPH28335_CAN.md
Normal file
@@ -0,0 +1,119 @@
|
||||
# periph_28335: общая панель RS/CAN и регистратор УМП
|
||||
|
||||
## Где находятся панели
|
||||
|
||||
В верхнем ряду вкладок, рядом с **Altera Logic**, появилась **periph_28335**.
|
||||
Внутри неё:
|
||||
|
||||
- **Dima / CAN terminal** — существующий CAN-терминал, его проекты, узлы и настройки адаптера;
|
||||
- **rs232_periph_28335** — существующие операции RS232/485, Modbus и настройки COM;
|
||||
- **Логгер УМП** — единая панель графиков и архива для обоих транспортов.
|
||||
|
||||
В общей группе CAN остались «Шина CAN / мост» и «DevBoard_V1».
|
||||
В общей группе RS232/485 остался RS_TERMINAL_2812.
|
||||
Терминалы сохраняют свои соединения: перенос вкладок не создаёт новые порты.
|
||||
|
||||
## Онлайн и чтение по CAN
|
||||
|
||||
1. Откройте **periph_28335 → Dima / CAN terminal → Настройки**.
|
||||
2. Выберите Candle/gs_usb либо SLCAN/Lawicel и канал адаптера.
|
||||
Для штатной прошивки Бальзам 167 используется CAN 250000 бит/с.
|
||||
Нажмите «Подключить».
|
||||
3. Перейдите в соседнюю вкладку **Логгер УМП**.
|
||||
4. В строке **Связь логгера** выберите **CAN · адаптер Dima**.
|
||||
5. Укажите **CAN-плата (Mode)**: физический номер платы в прошивке, 1..16.
|
||||
Платы нагрузки Бальзам 167 имеют номера 5/6; выбирайте фактически подключённую.
|
||||
Это не RS-адрес 16 и не индекс строки таблицы Dima. Выбор проекта в Dima
|
||||
не меняет CAN-адрес регистратора: он явно определяется этим полем.
|
||||
6. Нажмите **Начать запись** или **Онлайн**, если запись на плате уже идёт.
|
||||
Остальные действия, флажки, легенда, единицы мА и CSV одинаковы для RS и CAN.
|
||||
7. После команды отключения и секунды постинтервала нажмите
|
||||
**Прочитать отключение**. Запись текущего банка на плате продолжается.
|
||||
|
||||
Кнопка **Настройки связи** открывает настройки выбранного транспорта.
|
||||
Состояние адаптера/порта и адреса CAN постоянно отображаются над графиком.
|
||||
**Прервать обмен** останавливает чтение GUI, не посылая команду остановки
|
||||
регистратора или УМП. При переключении канала/платы незавершённые запросы
|
||||
отменяются, поздние ответы не продолжают старую цепочку.
|
||||
|
||||
Для RS выберите **RS232/485** и настройте COM в соседней RS-панели:
|
||||
обычно 115200, адрес 16. Сообщения «не подключён» и «занят запросом» разделены.
|
||||
Отключение RS-порта не останавливает CAN-просмотр. CAN-разрыв не мешает RS.
|
||||
Демо, если оно включено в сборке, по-прежнему работает без физической платы.
|
||||
|
||||
## Изменения прошивки
|
||||
|
||||
Для CAN требуется новая прошивка этой ветки. Предыдущая версия регистратора
|
||||
умела отдавать данные только через Modbus. Старая плата игнорирует новые
|
||||
служебные запросы; GUI сообщает о тайм-ауте без изменения команд УМП.
|
||||
|
||||
- MBOX0: прежняя передача технологических данных, ID 0xBA0010 + Mode - 1.
|
||||
- MBOX1: прежний приём команд, ID 0xBA0000 + Mode - 1; дополнительно
|
||||
распознаётся служебный заголовок 0x1F00 и длина ровно 8 байт.
|
||||
- MBOX2: отдельные ответы регистратора, ID 0xBA0020 + Mode - 1.
|
||||
|
||||
Биты маски записи регистров у служебного запроса равны нулю. Обработчик
|
||||
перехватывает его до изменения modbus[] и до журналирования CAN-команд:
|
||||
опрос собственного журнала не заполняет журнал.
|
||||
|
||||
Запрос ставится в очередь из ISR. Основной цикл формирует целый снимок
|
||||
под короткой блокировкой IRQ и отправляет максимум один кадр за вызов
|
||||
UMP_CAN_service(). Ожидания передачи в цикле нет. Перед следующим
|
||||
фрагментом приоритет отдаётся ожидающей штатной телеметрии MBOX0.
|
||||
Если ACK служебного mailbox не приходит 250 тиков таймера, передача
|
||||
отменяется. При этом штатные CAN-команды и MBOX0 не отменяются.
|
||||
|
||||
По CAN доступны те же расширенные адреса 0x1000 / 0x1010 / 0x1100,
|
||||
состав записи и версия снимка 2. Новый протокол не даёт писать через
|
||||
служебный запрос в технологические адреса 0..127.
|
||||
|
||||
## Формат кадров
|
||||
|
||||
CAN 2.0B, расширенный ID, 8 байт данных. Порядок соответствует существующей
|
||||
прошивке: MDL (слова 1,2), затем MDH (заголовок, слово 0). Каждое слово
|
||||
содержит сначала старший байт.
|
||||
|
||||
Запрос: `[адрес BE16, значение/длина BE16, 0x1F00 BE16, token:function BE16]`.
|
||||
Функция 3 — чтение, 6 — запись; token — номер запроса 1..255.
|
||||
|
||||
Ответ: `[данные0 BE16, данные1 BE16, (0x1F00+индекс) BE16, token:error BE16]`.
|
||||
Номер фрагмента 0..61, в нём два слова снимка. Ошибка 0 означает успех,
|
||||
1 — неизвестная функция, 2 — неверный адрес/диапазон, 3 — запрещённое значение.
|
||||
У записи успешный ответ содержит эхо адреса и значения.
|
||||
|
||||
Пример: Mode=5, token=7, чтение статуса 16 слов.
|
||||
Запрос ID `0x00BA0004`, данные `10 00 00 10 1F 00 07 03`.
|
||||
Ответы ID `0x00BA0024`, восемь фрагментов по два слова.
|
||||
Онлайн-снимок из 124 слов передаётся 62 фрагментами.
|
||||
|
||||
GUI принимает только ответ выбранной платы с номером текущего запроса,
|
||||
восстанавливает порядок фрагментов, игнорирует одинаковые дубликаты и
|
||||
отклоняет противоречащие. Неполный снимок не попадает на график.
|
||||
После потери подтверждения записи GUI прямо сообщает, что команда могла
|
||||
выполниться; автоматического повторного старта регистратора нет.
|
||||
|
||||
Онлайн показывает последние три записи из полного снимка. При высокой
|
||||
нагрузке шины/низкой скорости возможны пропуски онлайн-отображения;
|
||||
они считаются существующим счётчиком. Архив читается целиком по блокам.
|
||||
Предполагается один активный читатель архива: его курсор общий для RS/CAN.
|
||||
Одновременное управление архивным курсором из двух независимых программ
|
||||
не поддерживается.
|
||||
|
||||
## Проверки и ограничения
|
||||
|
||||
Пройдены тесты протокола, сборки всех 62 фрагментов, неверного адреса/токена,
|
||||
пропущенных и повторных фрагментов, ACK и ошибок, отмены при смене канала,
|
||||
иерархии вкладок и сохранения RS/демо. Набор тестов выполнен на Qt 6 и Qt 5.
|
||||
В прошивке проверен настоящий код формирования ответов через host-тест;
|
||||
изменённые C-файлы прошли проверку синтаксиса Clang с исходными заголовками.
|
||||
|
||||
Сборка TI/CCS, проверка MAP и испытание CAN на реальной плате ещё требуются.
|
||||
Особенно проверить тайминги IRQ и приоритет штатной телеметрии на нагруженной
|
||||
шине. Файлы прошивки Bin/*.out/hex не заменены. Архив остаётся в ОЗУ:
|
||||
команда отключения фиксирует его, пропадание питания стирает.
|
||||
|
||||
## Общее ядро templates
|
||||
|
||||
Сервер CAN/RS логгера подключён через `Source/Internal/shared_ump.c`.
|
||||
Для сборки требуется соседний `../../templates`. Контракт и порты:
|
||||
`templates/c/set-protocol/docs/UMP_PROTOCOL.md`.
|
||||
69
Doc/RS232_FIFO.md
Normal file
69
Doc/RS232_FIFO.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# RS232 FIFO для ПМ35 / TMS320F28335
|
||||
|
||||
Ветка `codex/pm35-uart-fifo`. FIFO включён **только SCI-A / COM_1 / RS232**.
|
||||
SCI-B / COM_2 / RS485 сохраняет прежние настройки и обработчики без FIFO.
|
||||
Скорости портов не менялись: RS232 115200; RS485 — прежние 57600/115200.
|
||||
|
||||
`Source/Internal/Include/RS485.h`: `RS232_USE_FIFO=1` по умолчанию.
|
||||
Для сборки прежнего пути передачи определить `RS232_USE_FIFO=0`.
|
||||
|
||||
## Работа
|
||||
|
||||
- TX заполняет до 16 байт, пополняет при остатке не более 8.
|
||||
- После постановки последнего байта порог переключается на 0. Следующее
|
||||
прерывание завершает передачу только после пустого FIFO и `TXEMPTY`.
|
||||
Ожидание внутри завершающего ISR ограничено остатком последнего символа;
|
||||
передача всего FIFO внутри ISR не ожидается.
|
||||
- Первый блок ставится в FIFO до разрешения TX-прерывания, под короткой
|
||||
IRQ-блокировкой с восстановлением прежнего состояния.
|
||||
- Убраны программные задержки перед передачей именно для SCI-A. Данные
|
||||
`BM_CHAR32` и упакованный поток `BM_PACKED` сохраняют прежний порядок байтов.
|
||||
Нулевая длина не обращается к указателю и не включает передатчик.
|
||||
- RX читает накопленные байты из FIFO. Порог 1 сохраняет немедленный приём
|
||||
коротких команд и остатка блока. `SCIRXBUF` читается один раз вместе с FE/PE.
|
||||
- Ошибка/переполнение аннулирует пакет и `BS_LoadOK`, очищает FIFO. После
|
||||
3–4 мс тишины обработчик таймера 1 мс возвращает SCI-A к ожиданию адреса.
|
||||
Продолжающийся повреждённый поток продлевает ожидание. CMD_LOAD после
|
||||
ошибки требует нового CMD_INITLOAD. Расчёт паузы предназначен для 115200.
|
||||
- Счётчики отладчика: `rs_a.fifo_rx_errors`, `rs_a.fifo_overflows`.
|
||||
|
||||
Это UART-оптимизация. Она не меняет команды/формат логгера УМП и не подключает
|
||||
экспериментальный GAS-логгер. Размеры блоков чтения УМП остаются прежними.
|
||||
|
||||
## Проверка
|
||||
|
||||
```powershell
|
||||
python tests/rs232_fifo/run_test.py --cc C:/msys64/mingw64/bin/gcc.exe
|
||||
```
|
||||
|
||||
Тест извлекает рабочие функции из `RS485.c`; заменяется только поведение
|
||||
аппаратных регистров, ожидание продвижения UART и модель 16-битного char C28x.
|
||||
Проверены TX-длины 0/1/2/7/8/15/16/17/31/120/253/400, упакованный блок 8194,
|
||||
приём короткого/разделённого пакета и LOAD 8194, FIFO overflow, FE/PE,
|
||||
восстановление после тишины, остаток сдвигового регистра и независимость SCI-B.
|
||||
|
||||
Полная сборка TI C2000 22.6.0.LTS:
|
||||
|
||||
```powershell
|
||||
./build_logger.ps1 -OptimizeForSize -Rs232Fifo 1 `
|
||||
-OutputDirectory "$PWD/Bin/Rs232FifoTest" -ImageName PM35_167_rs232_fifo
|
||||
./build_logger.ps1 -OptimizeForSize -Rs232Fifo 0 `
|
||||
-OutputDirectory "$PWD/Bin/Rs232NoFifoTest" -ImageName PM35_167_rs232_no_fifo
|
||||
```
|
||||
|
||||
| Образ | Размер | Запас до параметров EEPROM |
|
||||
|---|---:|---:|
|
||||
| FIFO, `-O2 --opt_for_speed=0` | 32158 байт | 350 байт |
|
||||
| Без FIFO, те же параметры оптимизации | 31234 байта | 1274 байта |
|
||||
|
||||
Оба BIN прошли проверку структуры SCI8 и лимита 32508 байт существующим
|
||||
`check_firmware.ps1`. Старые `-O1 --opt_for_speed=3` с FIFO превышают лимит;
|
||||
для этого варианта обязателен `-OptimizeForSize`. Проверка запрещает выпуск
|
||||
слишком большого BIN и не даёт затронуть сохранённые параметры.
|
||||
Оптимизация размера применяется ко всей сборке, поэтому временные
|
||||
характеристики приложения нужно проверить на стенде.
|
||||
|
||||
На плату образы не загружены. Пока подтверждены сборка и тесты модели;
|
||||
ускорение чтения логгера и устойчивость физического RS232 не измерены.
|
||||
Для стенда сравнить одно и то же чтение архива на двух образах, проверить
|
||||
CMD_LOAD/UPLOAD и параллельный RS485. FIFO не увеличивает baud rate.
|
||||
241
Doc/UMP_LOGGER.md
Normal file
241
Doc/UMP_LOGGER.md
Normal file
@@ -0,0 +1,241 @@
|
||||
# Логгер запуска и отключения УМП: прошивка Бальзам 167 и SetGUI
|
||||
|
||||
## Назначение и работа оператора
|
||||
|
||||
В SetGUI открыть ПМ35 → Настройки, выбрать COM, скорость (обычно 115200)
|
||||
и адрес контроллера (обычно 16). Затем открыть вкладку **Логгер УМП**.
|
||||
Подключение используется существующее: прямой RS232/RS485 Modbus RTU.
|
||||
CAN-команды от управляющего контроллера фиксируются самой платой нагрузки.
|
||||
|
||||
1. **Начать запись** включает только регистратор, не пуск УМП.
|
||||
Период снимков по умолчанию 20 мс, диапазон 1–1000 мс.
|
||||
2. Флажки выбирают отображаемые сигналы. Аналоги рисуются линиями,
|
||||
дискретные сигналы — отдельными дорожками. Выбор не меняет состав
|
||||
записи на плате: скрытую кривую можно включить после захвата.
|
||||
3. **Онлайн** подключает график к уже идущей записи, в том числе после
|
||||
восстановления соединения. Тайм-аут не посылает плате команду останова.
|
||||
4. Фронт `cUMPreset` (бит 6 команды 0x7F) или спад `cUMPstart` (бит 7)
|
||||
запускает фиксацию отключения. Ещё через 1000 тиков таймера / 1 секунду
|
||||
банк становится архивом. Повторные команды внутри этой секунды
|
||||
не продлевают интервал. Другие изменения команд не служат триггером.
|
||||
5. **Прочитать отключение** загружает архив, не останавливая запись на плате.
|
||||
На время чтения и просмотра архива онлайн-график приостанавливается;
|
||||
вернуться к нему можно кнопкой **Онлайн**.
|
||||
6. **Остановить и прочитать** останавливает только регистратор и читает
|
||||
текущий банк. При этом существующий архив отключения остаётся доступным.
|
||||
7. **Сохранить CSV** сохраняет все поля загруженного/онлайн-буфера,
|
||||
включая невидимые кривые, время и код события. История GUI ограничена
|
||||
800 последними точками; это не непрерывная запись на диск.
|
||||
|
||||
При разрыве связи журнал на плате продолжает работать. Архив хранится в ОЗУ
|
||||
до следующей фиксации отключения либо перезагрузки/пропадания питания.
|
||||
EEPROM не используется: под отключением в этой задаче понимается команда
|
||||
управляющего контроллера, а не потеря питания.
|
||||
|
||||
## Память и точность
|
||||
|
||||
Использована существующая секция `.logg` по адресу 0x200000: 64000
|
||||
16-битных слов. Два банка по 760 записей × 42 слова занимают 63840 слов (160 слов свободны).
|
||||
Текущий банк кольцевой. При триггере сохраняются последние до 379 записей,
|
||||
добавляется событие отключения, оставшаяся половина банка отведена
|
||||
постинтервалу. При 20 мс это до примерно 7.6 секунды до отключения и 1 секунды
|
||||
после. Дополнительные события CAN и дискретов сокращают временную глубину.
|
||||
|
||||
При интенсивном потоке событий или периоде 1 мс постинтервал может заполнить
|
||||
свои места раньше секунды. Последнее место зарезервировано под конечный
|
||||
снимок; он помечается `event & 0x200`, и GUI сообщает об усечении.
|
||||
Событие отключения и предыстория при этом не вытесняются.
|
||||
|
||||
Время — 32-битный счётчик миллисекунд записи. Он идёт только при включённом
|
||||
регистраторе и не является абсолютным временем. События в одном тике имеют
|
||||
одинаковую отметку; порядок сохраняется порядком записей. На перезапуске
|
||||
регистратора счётчик продолжает прежнюю шкалу, при перезагрузке платы — 0.
|
||||
|
||||
Онлайн-опрос возвращает две последние записи каждые 40 мс. Он не гарантирует
|
||||
передачу каждого события при высоком CAN-трафике, медленном UART или паузах
|
||||
GUI. Номера записей позволяют убрать дубликаты и явно показать пропуски.
|
||||
Полный сохранившийся фрагмент следует читать кнопкой архива. Частота 20 мс
|
||||
выбрана с учётом размера кадра; на низких скоростях нужна большая пауза
|
||||
снимков и подходящий тайм-аут RS.
|
||||
|
||||
Все писатели и чтение одного Modbus-блока используют короткие критические
|
||||
секции с восстановлением прежнего состояния IRQ. Внутри нет ожидания UART,
|
||||
EEPROM, выделения памяти или копирования целого банка. Реальную задержку
|
||||
прерываний и длительность критических секций нужно измерить на F28335.
|
||||
|
||||
## Состав записи v3: 42 слова
|
||||
|
||||
| Слова | Данные | Единицы/смысл |
|
||||
|---|---|---|
|
||||
| 0–1 | Время, младшее/старшее слово | мс записи |
|
||||
| 2 | Событие | 1 период, 2 CAN RX, 3 изменение I/O, 4 RS-команда, 5 конец постинтервала |
|
||||
| 2, бит 8 | Триггер отключения | флаг поверх причины события |
|
||||
| 2, бит 9 | Усечён постинтервал | установлен в конечном снимке |
|
||||
| 3 | Commands / modbus[0x7F] | все 16 бит, в том числе пуск, сброс, инициализация и калибровка ЦАП |
|
||||
| 4 | Входы OMEGA, Start_1, Res_in | биты 0,1,2, активный уровень приведён к 1 |
|
||||
| 5 | START_DPTB, STOP_DPTB, RES_OUT_2 | биты 0,1,2, активный уровень приведён к 1 |
|
||||
| 6 | IMPowse | остаток импульса, мс |
|
||||
| 7 | WAKEpowse | остаток инициализации, тики DAC_FREQ |
|
||||
| 8 | modbus[0x7B] | 12-битный код, переданный функцией dSEND в ЦАП |
|
||||
| 9 | modbus[0x1C] | расчётное задание в 0.1 мА; GUI/CSV переводит в мА |
|
||||
| 10–13 | sens_data[0..3] | измеренные сигналы, знаковое 16-битное значение в исходном масштабе |
|
||||
| 14–17 | modbus[0..3] | маски ошибок измерений |
|
||||
| 18 | CAN заголовок | адрес регистра в младших 13 битах и маска трёх слов в старших |
|
||||
| 19–21 | Три слова последнего принятого CAN-кадра | без преобразования |
|
||||
| 22 | Счётчик записанных CAN RX | младшие 16 бит |
|
||||
| 23 | CanTimeOutErrorTR | младшие 16 бит счётчика тайм-аутов CAN TX |
|
||||
| 24–25 | DAC_go, DAC_stop | исходные начальная/конечная уставки, мА |
|
||||
| 26–28 | DAC_min(), DAC_max(), DAC_cal() | коды калибровки и ручного задания ЦАП |
|
||||
| 29–30 | DAC_04, DAC_20 | значения соответствующих регистров |
|
||||
| 31–32 | count_load, time_dac | положение и длительность разгона в тиках |
|
||||
| 33–34 | эффективные dac_go/dac_stop + 4 | 0.1 мА после ограничений алгоритма; GUI переводит в мА |
|
||||
| 35 | kod | целочисленное положение, используемое Anal_output |
|
||||
| 36–39 | ADC_table[0..3] | значения таблицы АЦП в исходном масштабе прошивки |
|
||||
| 40 | ЗПТ1: U1 + U2, ПМ67 регистр 306 / индекс 305 | исходное 16-битное слово без пересчёта |
|
||||
| 41 | ЗПТ2: U3 + U4, ПМ67 регистр 9 / индекс 8 | исходное 16-битное слово без пересчёта |
|
||||
|
||||
Напряжения принимаются из технологических CAN-кадров с нулевыми индексами
|
||||
305 и 8. Учитываются все три позиции и биты маски 0x8000/0x4000/0x2000.
|
||||
Они хранятся отдельно от массива modbus[0..127], обновляются и при выключенном
|
||||
логгере. Запись содержит последние принятые значения; до первого приёма — 0.
|
||||
При потере связи остаётся последнее значение: отдельного признака свежести нет.
|
||||
Масштаб и знаковость физического напряжения не заданы исходной таблицей;
|
||||
SetGUI показывает исходное беззнаковое слово, коэффициент задаётся в интерфейсе.
|
||||
|
||||
**Отправленный код ЦАП не является измеренным током выхода.** В этом проекте
|
||||
не установлено, какой вход аппаратно измеряет ток ЦАП. При включённом
|
||||
`cCalibrDac` отправляется `DAC_cal()`, а расчётное задание 0x1C остаётся
|
||||
результатом алгоритма разгона. Для диагностики это различие сохранено.
|
||||
ADC_table также уже обрабатывается существующим измерительным кодом;
|
||||
это не обязательно необработанный регистр ADCRESULT.
|
||||
|
||||
Управляющая логика не исправлялась. Например, существующая строка
|
||||
`if(dac_stop>16) dac_go=16;` в Load_runner сохранена; журнал показывает
|
||||
фактически получившиеся эффективные уставки, чтобы выявить такое поведение.
|
||||
|
||||
## Протокол расширения Modbus
|
||||
|
||||
Технологические адреса 0..127 сохранены. Новая область использует полный
|
||||
16-битный адрес; исходная реализация игнорировала старший байт.
|
||||
Сначала GUI читает 16 слов 0x1000 и проверяет сигнатуру, версию, размер записи
|
||||
и тип платы. До успешной проверки расширенные записи запрещены.
|
||||
Обычный ответ расширения не содержит исторических хвостовых нулей.
|
||||
Между ответом и следующим запросом GUI выдерживает паузу RTU.
|
||||
|
||||
FC03, 0x1000, 16 слов:
|
||||
|
||||
| Смещение | Значение |
|
||||
|---|---|
|
||||
| 0,1 | 0x554D, версия 3 |
|
||||
| 2,3 | состояние и число записей выбранного источника |
|
||||
| 4,5 | 42 слова в записи, 760 записей в банке |
|
||||
| 6 | период периодических снимков, мс |
|
||||
| 7,8 | счётчик времени, младшее/старшее слово |
|
||||
| 9,10 | Desk (требуется 6 / dsk_LOAD), Mode |
|
||||
| 11 | частота временной базы, 1000 Гц |
|
||||
| 12 | поколение архива, mod 65536 |
|
||||
| 13 | число записей архива |
|
||||
| 14 | оставшиеся миллисекунды постинтервала |
|
||||
| 15 | состояние текущего регистратора независимо от выбора источника |
|
||||
|
||||
Состояния: 0 — ещё не запущен, 1 — запись, 3 — остановлен/архив.
|
||||
|
||||
FC06:
|
||||
- 0x1000: 1 — новый текущий журнал, 0 — остановить его;
|
||||
- 0x1001: период 1..1000, менять только при остановленном журнале;
|
||||
- 0x1002: хронологический индекс первой записи окна 0..759;
|
||||
- 0x1003: источник окна, 0 — текущий остановленный банк, 1 — архив отключения.
|
||||
|
||||
FC03, 0x1010, до 120 слов: окно от установленного индекса; для целых записей v3 читать 42 или 84 слова.
|
||||
CAN допускает 42/84 и прежние размеры 40/80/120; RTU допускает 1..120 слов.
|
||||
Чтение текущего банка этим окном во время записи не выдаёт изменяющиеся
|
||||
данные. GUI сначала останавливает его; архив можно читать при работающем
|
||||
текущем банке. После всех блоков GUI повторно проверяет поколение архива;
|
||||
при замене во время чтения результат не подменяет предыдущий график.
|
||||
|
||||
FC03, 0x1100, ровно 124 слова: онлайн-блок. Слова 0,1 — 32-битный номер
|
||||
первой записи, 2 — число записей 0..2, 3 — поколение архива, далее до двух
|
||||
записей по 42 слова. Неиспользованные слова равны нулю. Окно онлайн не
|
||||
зависит от курсора/выбора архива. Разделение 0x1010 и 0x1100 предотвращает
|
||||
пересечение двух окон.
|
||||
|
||||
Недопустимые диапазоны и значения возвращают исключения Modbus 2/3.
|
||||
CRC и разбор стандартного ответа GUI используют существующее общее ядро.
|
||||
SetGUI распознаёт v2 (40 слов, 800 записей) и v3 (42 слова, 760 записей).
|
||||
Для v2 новые напряжения недоступны (NaN), для v3 доступны графики и CSV.
|
||||
CAN-валидация общей библиотеки расширена размерами 42/84 слова.
|
||||
Исходники протокола подключаются к прошивке из templates/c/set-protocol.
|
||||
|
||||
## Проверка и запуск
|
||||
|
||||
Полная сборка исправления: `./build_logger.ps1`. По умолчанию используется
|
||||
`../newProject/SETGUI/third_party/templates`; другую копию можно указать
|
||||
параметром `-TemplatesRoot`. В ней нужны `c/set-protocol/src/ump_protocol.c`
|
||||
и `c/set-protocol/ports/tms320f28335/ump_tms28335.c` (порт УМП v3).
|
||||
Само наличие папки templates не гарантирует наличие этого порта.
|
||||
Результат — `Bin/LoggerFix/UKSSTMS320F28335_logger_fix.bin` (SCI8 boot),
|
||||
рядом OUT и MAP. Старые образы в Bin не заменяются.
|
||||
Скрипт использует TI C2000 22.6 COFF, оптимизацию размера и секции функций;
|
||||
таблица `.cinit` размещена в RAML4 вместе с константами, код — в RAML0.
|
||||
Для сборки из CCS добавьте `Source/Internal/shared_ump.c` в проект и каталоги
|
||||
`<templates>/c/set-protocol`, `<templates>/c/set-protocol/ports/tms320f28335`
|
||||
в include path; используйте параметры оптимизации из скрипта.
|
||||
|
||||
При загрузке `main()` вызывает `ump_log_init()` до включения прерываний.
|
||||
Это обязательно для TI COFF: стартовый код не обнуляет неинициализированные
|
||||
переменные `.ebss`. Без явной инициализации состояние, счётчики и номера
|
||||
банков могут содержать остаточные значения RAM. Очистка `.logg` функцией
|
||||
`clear_mem()` эти переменные не затрагивает. Повторный запуск записи через
|
||||
FC06 не вызывает загрузочную инициализацию и сохраняет архив и шкалу времени.
|
||||
Регрессия `python tests/ump_logger/run_init_test.py` (GCC в PATH) проверяет
|
||||
запуск с ненулевой RAM и отрицательный контроль без инициализации;
|
||||
внешняя библиотека `templates/c/set-protocol` для этого теста не нужна.
|
||||
|
||||
Изменены исходники прошивки и SetGUI. Готовый образ в Bin не обновлялся.
|
||||
Для платы необходима сборка штатным TI C2000/CCS, проверка размещения .text,
|
||||
.stack, .ebss и .logg по MAP, прошивка и испытание на стенде.
|
||||
|
||||
Автотест C в tests/ump_logger компилирует непосредственно log_to_mem.c
|
||||
с подменой GPIO/IRQ. Проверяет кольцо, граничные адреса, обе команды
|
||||
отключения, защиту триггера от переполнения, переключение банков,
|
||||
сохранность архива во время дальнейшей записи и контрольные поля CAN/ЦАП.
|
||||
Это проверка алгоритма на компьютере, не проверка таймингов и 16-битной ABI
|
||||
TI. Отдельно выполнена синтаксическая проверка изменённых C-файлов Clang
|
||||
с исходными заголовками и декларациями TI-интринсиков.
|
||||
|
||||
Тесты SetGUI: tests/test_ump_logger.py и tests/test_periph28335_tab.py.
|
||||
Они проверяют единицы мА, битовые сигналы, временные метки, несовместимую
|
||||
прошивку, порядок команд, архив при активной записи, замену поколения,
|
||||
дубликаты/пропуски онлайн, потерю связи и флажки графиков.
|
||||
|
||||
Проверка на стенде: включить запись → подать CAN-пуск → изменить уставку →
|
||||
подать откл. → через секунду прочитать архив → сверить код ЦАП, ток внешним
|
||||
измерителем и физические входы/выходы; затем повторить с разрывом RS.
|
||||
Период 1 мс проверить отдельно под максимальной CAN-нагрузкой.
|
||||
|
||||
Для сборки v3 нужен templates/main начиная с коммита c0ee7c4
|
||||
(поддержка CAN-чтения 42/84 слов и порт TMS320F28335).
|
||||
|
||||
## Пересечение образа 34a95bc5 с параметрами EEPROM
|
||||
|
||||
Образ `UKSSTMS320F28335_34a95bc5.bin` имеет размер 32518 байт.
|
||||
`Save_params` записывает 129 слов с адреса `0x3FFF-(128+1)`;
|
||||
драйвер EEPROM умножает адрес на 2. Параметры начинаются с байта 32508.
|
||||
Последние 10 байт BIN пересекаются с параметрами: два последних адреса
|
||||
таблицы переходов `ump_log_read` (регистры 0x100E/0x100F) и завершающее
|
||||
нулевое слово загрузочной таблицы. Сохранение параметров повреждает эту
|
||||
часть образа для последующей загрузки. Это установленный дефект образа;
|
||||
причину таймаута на конкретной плате нужно подтвердить повторной проверкой.
|
||||
|
||||
В исправлении временный снимок RS перенесён со стека в статический буфер:
|
||||
обработчики RS вызываются последовательно из main, а перед возвратом
|
||||
снимок полностью кодируется в собственный буфер UART. CAN имеет свой буфер.
|
||||
Сборка `build_logger.ps1` использует параметры CCS Debug (-O1, speed=3)
|
||||
и создаёт отдельный `Bin/LoggerEepromFix/UKSSTMS320F28335_logger_eeprom_fix.bin`.
|
||||
Проверенный размер — 32494 байта, запас до параметров — 14 байт.
|
||||
|
||||
Оба сценария сборки вызывают `check_firmware.ps1` до публикации BIN.
|
||||
Проверяются размер, формат SCI8, полнота блоков и конец загрузочной таблицы.
|
||||
При превышении границы остаётся только файл `.pending`; готовый BIN
|
||||
не публикуется. Проверка: `python tests/ump_logger/test_firmware_image.py`.
|
||||
После перепрошивки требуется проверка на плате; проверка на ПК её не заменяет.
|
||||
115
Doc/UMP_VOLTAGE_PROTECTION.md
Normal file
115
Doc/UMP_VOLTAGE_PROTECTION.md
Normal file
@@ -0,0 +1,115 @@
|
||||
# Контроль роста ЗПТ при пуске УМП
|
||||
|
||||
УМП с адресом 5 (`Mode=5`) контролирует ЗПТ1 — CAN-индекс 305
|
||||
(регистр ПМ67 306). УМП 6 контролирует ЗПТ2 — CAN-индекс 8
|
||||
(регистр ПМ67 9). Масштаб исходного слова: 1 единица = 1 В.
|
||||
|
||||
## Условия и последовательность
|
||||
|
||||
Начальный безопасный код задания соответствует 4 мА по `DAC_min()`.
|
||||
Рост напряжения считается достаточным при ЗПТ **не меньше 30 В**.
|
||||
Проверяется расчётное задание ЦАП, а не измеренный выходной ток.
|
||||
Ручная калибровка не подменяет задание при активной команде пуска
|
||||
или удерживаемом STOP.
|
||||
|
||||
Если очередной шаг рампы требует **строго больше 6 мА**, а свежее
|
||||
CAN-напряжение меньше 30 В, шаг не передаётся в ЦАП. Вместо него:
|
||||
|
||||
1. Снимается START, включается STOP, снимается разрешение RES_OUT_2.
|
||||
2. Положение рампы обнуляется, передаётся код 4 мА без подмены калибровкой.
|
||||
3. STOP остаётся включённым **1000 мс от момента его установки**.
|
||||
4. Когда код 4 мА отправлен, прошла секунда и есть свежее ЗПТ,
|
||||
снимается STOP, сразу выставляется START, затем разрешение.
|
||||
5. Новая рампа начинается с нулевого положения с исходными уставками
|
||||
`DAC_go`/`DAC_stop` (штатные значения могут начинать рост с 6 мА).
|
||||
|
||||
Первый START входит в лимит: **всего 5 попыток**, не 5 дополнительных.
|
||||
После пятой неудачной попытки удерживаются STOP и 4 мА, разрешение снято,
|
||||
шестой START не выдаётся. Ошибка снимается командой `cUMPstart=0`;
|
||||
затем можно подать новый пуск. Команда RESET имеет приоритет перед START.
|
||||
Отпускание RESET с оставшимся START=1 само по себе не перезапускает УМП.
|
||||
|
||||
Выходами и рампой управляет один обработчик Timer1 (1 мс). Основной цикл
|
||||
больше не формирует независимые фронты START/STOP. Расчёт/отправка ЦАП
|
||||
остались с периодом 5 мс. Импульс START длится до 1000 мс, но защита
|
||||
или RESET прекращают его раньше.
|
||||
|
||||
## Отсутствие CAN
|
||||
|
||||
Таймаут по умолчанию **600 мс**, диапазон настройки **1…60000 мс**.
|
||||
Свежесть подтверждается только получением нужного ЗПТ в полном
|
||||
технологическом CAN-кадре с соответствующим битом маски. Другое
|
||||
напряжение, сервисные запросы, команды и произвольные CAN-пакеты
|
||||
таймаут не сбрасывают. До первого значения напряжение считается неизвестным.
|
||||
|
||||
При таймауте работающая рампа удерживает последнее положение и отправленный
|
||||
код. Попытка не считается неудачной, STOP по одному таймауту не включается.
|
||||
После свежего ЗПТ рост продолжается; если оно меньше 30 В при задании
|
||||
больше 6 мА, выполняется защитный STOP. Если обмен исчез во время
|
||||
сброса, STOP держится и после секунды — до свежего напряжения.
|
||||
Первый пуск также ждёт свежего значения.
|
||||
|
||||
Настройка хранится в технологическом регистре `0x52` платы нагрузки.
|
||||
Значение 0 в старом EEPROM заменяется на 600 мс при запуске.
|
||||
Для сохранения изменения используйте штатную команду сохранения параметров.
|
||||
|
||||
## Диагностика и эмуляция в GUI
|
||||
|
||||
Во вкладке **Логгер УМП** добавлены:
|
||||
|
||||
- **Защита ЗПТ: прочитать** — состояние защиты, число попыток, напряжение.
|
||||
- **Эмуляция: нет CAN** — получение своего ЗПТ игнорируется платой;
|
||||
после заданного таймаута рампа удерживается.
|
||||
- **Эмуляция: ЗПТ не растёт** — для проверки защиты используется 0 В,
|
||||
хотя настоящие кадры продолжают поступать. Реальные напряжения в
|
||||
журнале не подменяются. Этот режим действительно вызывает STOP/пуски.
|
||||
- **Задать таймаут** — запись значения в плату с обязательным чтением обратно.
|
||||
|
||||
Кнопки эмуляции включаются после проверки сигнатуры прошивки. Их положение
|
||||
меняется только после подтверждённого чтения обратно. Два режима можно
|
||||
включать независимо; при отсутствии свежести проверка роста приостановлена.
|
||||
Эмуляция живёт только в RAM, не сохраняется в EEPROM и выключена после
|
||||
перезагрузки. GUI показывает активную эмуляцию отдельно от реального ЗПТ.
|
||||
|
||||
При онлайн-чтении GUI опрашивает защиту каждые 500 мс и показывает
|
||||
**«НЕИСПРАВНОСТЬ: ЗПТ не достигло 30 В за 5 попыток»**.
|
||||
Старые прошивки без блока защиты продолжают обычное онлайн-чтение;
|
||||
эмуляция для них недоступна.
|
||||
|
||||
Технологические регистры только для чтения: `0x7C` — статус,
|
||||
`0x7D` — число попыток. Оба включены в быстрый CAN-цикл.
|
||||
Статус: бит 0 — ошибка пяти попыток, бит 1 — нет свежего ЗПТ,
|
||||
бит 2 — сброс перед повтором, бит 3 — работа рампы,
|
||||
биты 4/5 — активная эмуляция отсутствия CAN/роста ЗПТ.
|
||||
|
||||
Локальный блок RTU и служебного CAN: FC03 `0x1300`, ровно 8 слов:
|
||||
|
||||
| Смещение | Значение |
|
||||
|---|---|
|
||||
| 0 | Сигнатура `0x5550` |
|
||||
| 1 | Версия 1 |
|
||||
| 2 | Эмуляция: бит 0 — нет CAN, бит 1 — нет роста |
|
||||
| 3 | Таймаут, мс |
|
||||
| 4 | Статус защиты |
|
||||
| 5 | Число попыток |
|
||||
| 6 | Последнее реальное CAN-напряжение, В |
|
||||
| 7 | Возраст значения, мс; 65535 до первого значения |
|
||||
|
||||
FC06 допускает запись только `0x1302` (0…3) и `0x1303` (1…60000).
|
||||
Диагностический обмен не обновляет возраст технологического напряжения.
|
||||
|
||||
## Проверки
|
||||
|
||||
`python tests/load_control/run_test.py` компилирует непосредственно
|
||||
`DAC.c` с подменой GPIO/IRQ. Проверяются выбор ЗПТ, маски CAN, таймаут,
|
||||
удержание кода, граница 30 В, порядок STOP/START, точная пауза 1000 мс,
|
||||
лимит пяти пусков, RESET, эмуляция и невозможность подмены 4 мА калибровкой.
|
||||
|
||||
GUI: `tests/test_ump_voltage_protection.py` в SETGUI плюс регрессии логгера.
|
||||
Сборка: `build_logger.ps1 -OutputDirectory Bin/VoltageProtection
|
||||
-ImageName UKSSTMS320F28335_voltage_protection`. Размер проверяется до
|
||||
публикации BIN; для AT25256B предел — 32508 байт. В режиме оптимизации
|
||||
функции разнесены по секциям, чтобы линкер удалял неиспользуемые функции.
|
||||
|
||||
Это проверки на компьютере. Физический ток 4 мА, уровни разрешения,
|
||||
STOP и интервал 1 с нужно проверить на стенде с установленной прошивкой.
|
||||
15
F28335.cmd
15
F28335.cmd
@@ -69,6 +69,18 @@
|
||||
*/
|
||||
|
||||
|
||||
/* Serial EEPROM is NOT CPU-addressable RAM/Flash. Do not add a fake MEMORY
|
||||
* region at address zero: SPI boot copies its table into the RAM areas below.
|
||||
* Export its physical layout as absolute byte/word symbols for .map/debugging.
|
||||
* The final SCI8 image size (including boot headers) is checked after hex2000. */
|
||||
#include "Source/Internal/Include/eeprom_config.h"
|
||||
#include "include/balsam167_eeprom_layout.h"
|
||||
_EEPROM_TOTAL_BYTES = BALSAM167_EEPROM_BYTES;
|
||||
_EEPROM_FIRMWARE_LIMIT_BYTES = BALSAM167_EEPROM_FIRMWARE_BYTES;
|
||||
_EEPROM_PARAMS_START_WORD = BALSAM167_EEPROM_PARAMS_START_WORD;
|
||||
_EEPROM_PARAMS_START_BYTE = BALSAM167_EEPROM_FIRMWARE_BYTES;
|
||||
_EEPROM_PARAMS_END_BYTE = BALSAM167_EEPROM_PARAMS_END_WORD * 2;
|
||||
|
||||
MEMORY
|
||||
{
|
||||
PAGE 0: /* Program Memory */
|
||||
@@ -128,7 +140,8 @@ SECTIONS
|
||||
{
|
||||
|
||||
/* Allocate program areas: */
|
||||
.cinit : > RAML0 PAGE = 0
|
||||
/* Keep initialization tables out of the code RAM block. */
|
||||
.cinit : > RAML4 PAGE = 0
|
||||
.pinit : > RAML0 PAGE = 0
|
||||
.text : > RAML0 PAGE = 0
|
||||
codestart : > BEGIN PAGE = 0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include "DSP2833x_Device.h" // DSP281x Headerfile Include File
|
||||
#include "DSP2833x_Examples.h" // DSP281x Examples Include File
|
||||
#include "DSP2833x_Examples.h" // DSP281x Examples Include File
|
||||
#include "DSP2833x_SWPrioritizedIsrLevels.h"
|
||||
|
||||
#include "ADC.h"
|
||||
|
||||
@@ -21,12 +21,110 @@ unsigned long WAKEpowse;
|
||||
unsigned long IMPowse;
|
||||
unsigned int period_dac, time_dac;
|
||||
|
||||
/* Âñå âûõîäû ÓÌÏ è ðàìïà ïðèíàäëåæàò îäíîìó îáðàáîò÷èêó Timer1.
|
||||
* Îñíîâíîé öèêë áîëüøå íå âûäà¸ò START: èíà÷å îí ìîæåò óâèäåòü êîðîòêèé
|
||||
* ñïàä êîìàíäû, êîòîðûé ïðîïóñòèò ðàñ÷¸ò ÖÀÏ ñ ïåðèîäîì 5 ìñ. */
|
||||
#define LOAD_IDLE 0U
|
||||
#define LOAD_RUN 1U
|
||||
#define LOAD_RELOAD 2U
|
||||
#define LOAD_FAULT 3U
|
||||
#define LOAD_MAX_ATTEMPTS 5U
|
||||
#define LOAD_VOLTAGE_MIN 30U
|
||||
#define LOAD_PULSE_MS 1000U
|
||||
static unsigned int load_state, load_attempts, load_inhibit;
|
||||
static unsigned int load_count_dac, load_count_ramp, load_init_count;
|
||||
static unsigned int load_zero_sent, load_stop_asserted, load_initialized;
|
||||
static float load_go, load_end;
|
||||
/* 16-áèòíûå ïîëÿ îáùèå ñ CAN ISR. Ñíèìîê è óâåëè÷åíèå âîçðàñòà âûïîëíÿþòñÿ
|
||||
* ïîä êîðîòêîé áëîêèðîâêîé IRQ; îòïðàâêà SPI ïîä áëîêèðîâêîé íå âûïîëíÿåòñÿ. */
|
||||
static volatile unsigned int load_voltage, load_voltage_age, load_voltage_seen;
|
||||
static volatile unsigned int load_simulation;
|
||||
|
||||
void Load_control_init(void)
|
||||
{
|
||||
load_state = LOAD_IDLE; load_attempts = 0; load_inhibit = 0;
|
||||
load_count_dac = 0; load_count_ramp = 0; load_init_count = 1;
|
||||
load_zero_sent = 0; load_stop_asserted = 0; load_initialized = 0;
|
||||
load_go = 0; load_end = 0;
|
||||
load_voltage = 0; load_voltage_age = 0; load_voltage_seen = 0;
|
||||
load_simulation = 0;
|
||||
IMPowse = 0; WAKEpowse = 0; period_dac = 0; time_dac = 0;
|
||||
}
|
||||
|
||||
/* Âîçðàñò ñáðàñûâàåò òîëüêî íóæíîå íàïðÿæåíèå, à íå ëþáîé CAN-ïàêåò.
|
||||
* ÓÌÏ 5: ÇÏÒ1, èíäåêñ 305; ÓÌÏ 6: ÇÏÒ2, èíäåêñ 8. Ìàñøòàá 1 Â/åä.
|
||||
* Ìàñêè ñëîòîâ ñîõðàíÿþò àäðåñà äàæå äëÿ ïðîïóùåííûõ ñëîâ êàäðà. */
|
||||
void Load_voltage_can(unsigned int header, unsigned int a,
|
||||
unsigned int b, unsigned int c)
|
||||
{
|
||||
unsigned int address = header & 0x1FFFU;
|
||||
unsigned int selected, i, mask = 0x8000U, data[3];
|
||||
if (Desk != dsk_LOAD || (load_simulation & 1U)) return;
|
||||
if (Mode == adr_LOA1) selected = 305U;
|
||||
else if (Mode == adr_LOA2) selected = 8U;
|
||||
else return;
|
||||
data[0] = a; data[1] = b; data[2] = c;
|
||||
for (i = 0; i < 3; i++, address++, mask >>= 1) {
|
||||
if ((header & mask) && address == selected) {
|
||||
load_voltage = data[i];
|
||||
load_voltage_age = 0;
|
||||
load_voltage_seen = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* STOP óäåðæèâàåòñÿ âåñü ñáðîñ, âêëþ÷àÿ îòïðàâêó êîäà 4 ìÀ â ÖÀÏ.
|
||||
* Ïîâòîðíûé ïóñê ðàçðåø¸í òîëüêî ïîñëå ýòîé îòïðàâêè è 1000 ìñ STOP.
|
||||
* Ýòî ïîäòâåðæäåíèå ïðîãðàììíîé îòïðàâêè, íå èçìåðåíèå ôèçè÷åñêîãî òîêà. */
|
||||
static void load_stop(unsigned int state)
|
||||
{
|
||||
clear_START_DPTB();
|
||||
set_STOP_DPTB();
|
||||
clear_RES_OUT_2();
|
||||
load_stop_asserted = 1;
|
||||
load_state = state;
|
||||
load_count_ramp = 0;
|
||||
load_zero_sent = 0;
|
||||
IMPowse = LOAD_PULSE_MS;
|
||||
}
|
||||
|
||||
static void load_start(void)
|
||||
{
|
||||
/* Óñòàâêè ôèêñèðóþòñÿ äëÿ êàæäîé ïîïûòêè. Âíóòðåííèé íîëü = 4 ìÀ.
|
||||
* Èñïðàâëåíà îïå÷àòêà ñòàðîãî îãðàíè÷åíèÿ: îãðàíè÷èâàåì êîíåö ðàìïû,
|
||||
* à íå çàìåíÿåì íà÷àëüíóþ óñòàâêó íà 16 (÷òî äàâàëî ñêà÷îê äî 20 ìÀ). */
|
||||
load_go = (float)DAC_go - 4.0;
|
||||
load_end = (float)DAC_stop - 4.0;
|
||||
if (load_go < 0) load_go = 0;
|
||||
if (load_go > 5) load_go = 5;
|
||||
if (load_end > 16) load_end = 16;
|
||||
if (load_end <= load_go) load_end = load_go + 1;
|
||||
ump_dac_go10 = (unsigned int)((load_go + 4.0) * 10.0);
|
||||
ump_dac_stop10 = (unsigned int)((load_end + 4.0) * 10.0);
|
||||
load_count_ramp = 0;
|
||||
load_attempts++;
|
||||
/* STOP îòïóñêàåì íåïîñðåäñòâåííî ïåðåä START, ðàçðåøåíèå — ïîñëå íåãî.
|
||||
* Çàäàíèå îñòà¸òñÿ 4 ìÀ äî ïåðâîãî øàãà íîâîé ðàìïû. */
|
||||
clear_STOP_DPTB();
|
||||
load_stop_asserted = 0;
|
||||
set_START_DPTB();
|
||||
set_RES_OUT_2();
|
||||
IMPowse = LOAD_PULSE_MS;
|
||||
load_state = LOAD_RUN;
|
||||
}
|
||||
|
||||
void Setup_DAC_time(void)
|
||||
{
|
||||
WAKEpowse = 3L * DAC_FREQ +1;
|
||||
|
||||
period_dac = READY_FREQ / DAC_FREQ;
|
||||
time_dac = LOAD_TIME * DAC_FREQ;
|
||||
/* Ñòàðûå EEPROM èìåþò íîëü â íîâîì ïàðàìåòðå: èñïîëüçóåì 600 ìñ.
|
||||
* 1..60000 ìñ ìîæíî ìåíÿòü ÷åðåç ðåãèñòð 0x52 è ñîõðàíÿòü øòàòíî. */
|
||||
if ((unsigned int)LOAD_CAN_TIMEOUT == 0U ||
|
||||
(unsigned int)LOAD_CAN_TIMEOUT > 60000U) LOAD_CAN_TIMEOUT = 600;
|
||||
LOAD_STATUS = 0; LOAD_ATTEMPTS = 0;
|
||||
load_initialized = 1;
|
||||
}
|
||||
|
||||
void dOUT(int x)
|
||||
@@ -63,7 +161,7 @@ void Init_DAC(void)
|
||||
toggle_RES_OUT_1();
|
||||
}
|
||||
|
||||
void Anal_output(long vrot, long maxx)
|
||||
static void anal_output(long vrot, long maxx, int calibration)
|
||||
{
|
||||
long out;
|
||||
static int x;
|
||||
@@ -72,7 +170,7 @@ void Anal_output(long vrot, long maxx)
|
||||
|
||||
x=0;// !x; òùåòíî áûòèå
|
||||
|
||||
if(cCalibrDac) out=DAC_cal();
|
||||
if(calibration && cCalibrDac) out=DAC_cal();
|
||||
|
||||
out = out & 0xFFF;
|
||||
|
||||
@@ -99,70 +197,145 @@ Log_to_mem(modbus[0x1D]);
|
||||
|
||||
}
|
||||
|
||||
void Load_runner()
|
||||
/* Ñîõðàí¸í ïóáëè÷íûé èíòåðôåéñ; çàùèòíûé ñáðîñ âûçûâàåò âíóòðåííþþ
|
||||
* ôóíêöèþ ñ calibration=0, ÷òîáû ðó÷íàÿ êàëèáðîâêà íå ïîäìåíèëà 4 ìÀ. */
|
||||
void Anal_output(long vrot, long maxx)
|
||||
{
|
||||
static unsigned int count_dac=0, count_load=0, x=1;
|
||||
static unsigned int preStart=0;
|
||||
static float dac_go,dac_stop;
|
||||
float sinus=0;
|
||||
int kod;
|
||||
if (maxx > 0) anal_output(vrot, maxx, 1);
|
||||
}
|
||||
|
||||
if(IMPowse) IMPowse--;
|
||||
if(++count_dac >= period_dac)
|
||||
{
|
||||
count_dac=0;
|
||||
void Load_runner(void)
|
||||
{
|
||||
unsigned int saved, commands, voltage, fresh, timeout;
|
||||
unsigned int start, reset, active = 0;
|
||||
float sinus = 0;
|
||||
|
||||
if(WAKEpowse)
|
||||
{
|
||||
--WAKEpowse;
|
||||
/* ISR ðàáîòàåò 1 êÃö, íî GPIO/ÖÀÏ íåëüçÿ îáñëóæèâàòü äî çàãðóçêè
|
||||
* ïàðàìåòðîâ. Ýòî òàêæå èñêëþ÷àåò ïðåæíåå äåëåíèå íà time_dac=0. */
|
||||
if (!load_initialized || !READY || !period_dac || !time_dac) return;
|
||||
saved = __disable_interrupts();
|
||||
commands = (unsigned int)Commands;
|
||||
voltage = (load_simulation & 2U) ? 0U : load_voltage;
|
||||
timeout = (unsigned int)LOAD_CAN_TIMEOUT;
|
||||
if (!timeout || timeout > 60000U) timeout = 600U;
|
||||
/* Äî ïåðâîãî ïàêåòà çíà÷åíèå 0 íå ñ÷èòàåòñÿ ñâåæèì èçìåðåíèåì.
|
||||
* Íàñûùåíèå âîçðàñòà èñêëþ÷àåò ëîæíîå âîññòàíîâëåíèå ïîñëå ïåðåïîëíåíèÿ. */
|
||||
fresh = load_voltage_seen && load_voltage_age < timeout;
|
||||
if (load_voltage_age < 65535U) load_voltage_age++;
|
||||
__restore_interrupts(saved);
|
||||
start = commands & 0x80U; reset = commands & 0x40U;
|
||||
if (IMPowse) IMPowse--;
|
||||
|
||||
if( (WAKEpowse == DAC_FREQ/2*6)||
|
||||
(WAKEpowse == DAC_FREQ/2*5)||
|
||||
(WAKEpowse == DAC_FREQ/2*4)||
|
||||
(WAKEpowse == DAC_FREQ/2*3)||
|
||||
(WAKEpowse == DAC_FREQ/2*2)||
|
||||
(WAKEpowse == DAC_FREQ/2*1) )
|
||||
{
|
||||
Init_DAC(); x=1;
|
||||
} }
|
||||
/* Îòñóòñòâèå êîìàíäû ïóñêà — íà÷àëî íîâîãî ñåàíñà, ñáðàñûâàåò îøèáêó.
|
||||
* RESET âñåãäà ñòàðøå START; îòïóñêàíèå RESET ïðè îñòàâøåìñÿ START
|
||||
* íå äà¸ò íåîæèäàííîãî ïîâòîðíîãî ïóñêà: ñíà÷àëà òðåáóåòñÿ START=0. */
|
||||
if (!start) {
|
||||
if (load_state != LOAD_IDLE) load_stop(LOAD_IDLE);
|
||||
load_attempts = 0; load_inhibit = 0;
|
||||
} else if (reset) {
|
||||
if (load_state != LOAD_FAULT && load_state != LOAD_IDLE)
|
||||
load_stop(LOAD_IDLE);
|
||||
load_inhibit = 1;
|
||||
}
|
||||
if (reset && !load_stop_asserted) load_stop(LOAD_IDLE);
|
||||
|
||||
else
|
||||
{
|
||||
if(cUMPstart)
|
||||
{
|
||||
if(!preStart)
|
||||
{
|
||||
dac_go=DAC_go-4;
|
||||
dac_stop=DAC_stop-4;
|
||||
if(dac_go<0) dac_go=0;
|
||||
if(dac_go>5) dac_go=5;
|
||||
if(dac_stop>16) dac_stop=16;
|
||||
if(dac_stop<=dac_go) dac_stop=dac_go+1;
|
||||
}
|
||||
/* Ïîâòîðíûé START äîïóñêàåòñÿ ïîñëå ñáðîñà ÖÀÏ, îêîí÷àíèÿ STOP è
|
||||
* âîññòàíîâëåíèÿ íóæíîãî CAN-íàïðÿæåíèÿ. Òàéìàóò ñàì íå òðàòèò ïîïûòêó. */
|
||||
if (start && !reset && !load_inhibit && !WAKEpowse && fresh &&
|
||||
load_zero_sent && !IMPowse &&
|
||||
(load_state == LOAD_IDLE || load_state == LOAD_RELOAD)) load_start();
|
||||
if (load_state == LOAD_RUN && !IMPowse) clear_START_DPTB();
|
||||
|
||||
if(count_load > (time_dac/2))count_load++;
|
||||
if (++load_count_dac >= period_dac) {
|
||||
load_count_dac = 0;
|
||||
if (WAKEpowse) {
|
||||
--WAKEpowse;
|
||||
if (WAKEpowse && !(WAKEpowse % (DAC_FREQ / 2))) {
|
||||
Init_DAC(); load_init_count = 1;
|
||||
}
|
||||
} else {
|
||||
active = load_state == LOAD_RUN;
|
||||
if (active) {
|
||||
/* Ïðè òàéìàóòå ñîõðàíÿåì ïîëîæåíèå È îòïðàâëåííîå çàäàíèå,
|
||||
* íå äåëàåì STOP è íå ïðîäîëæàåì ðàçãîí áåç îáðàòíîé ñâÿçè. */
|
||||
if (fresh) {
|
||||
if (load_count_ramp > time_dac / 2) load_count_ramp++;
|
||||
if (++load_count_ramp > time_dac) load_count_ramp = time_dac;
|
||||
}
|
||||
sinus = ((load_end - load_go) / 16.0 * load_count_ramp) +
|
||||
(load_go / 16.0 * time_dac);
|
||||
/* Ïðîâåðÿåì ñëåäóþùèé øàã ÄÎ ïåðåäà÷è ÖÀÏ. 6 ìÀ äîïóñòèìû,
|
||||
* ñòðîãî >6 ìÀ è <30  òðåáóþò íåìåäëåííîãî STOP.
|
||||
* Ïåðâàÿ ïîïûòêà âõîäèò â ëèìèò 5; øåñòîãî START íå áóäåò. */
|
||||
if (fresh && voltage < LOAD_VOLTAGE_MIN &&
|
||||
sinus * 16.0 > 2.0 * time_dac) {
|
||||
load_stop(load_attempts >= LOAD_MAX_ATTEMPTS ?
|
||||
LOAD_FAULT : LOAD_RELOAD);
|
||||
active = 0; sinus = 0;
|
||||
}
|
||||
} else {
|
||||
load_count_ramp = 0;
|
||||
load_init_count = (load_init_count + 1) & 0x3FFU;
|
||||
}
|
||||
/* Âî âðåìÿ çàùèòû è ïóñêà ðó÷íîé êîä êàëèáðîâêè çàïðåù¸í.
|
||||
* Êàëèáðîâêà ñîõðàíåíà òîëüêî ïðè ñíÿòîì START è ñâîáîäíîì STOP.
|
||||
* Íóëåâîé êîä çàäàíèÿ çäåñü îçíà÷àåò òîê 4 ìÀ ïî DAC_min(). */
|
||||
ump_dac_ramp = load_count_ramp;
|
||||
ump_dac_duration = time_dac;
|
||||
ump_dac_position = (unsigned int)sinus;
|
||||
if (active && !fresh) {
|
||||
/* Óäåðæèâàåì ÖÀÏ. Äàæå cInitDac íå ìåíÿåò òîê â ïàóçå CAN. */
|
||||
} else if ((!load_init_count || cInitDac) && !load_stop_asserted) {
|
||||
Init_DAC(); load_init_count = 1; cInitDac = 0;
|
||||
} else {
|
||||
anal_output((int)sinus, time_dac,
|
||||
!start && !load_stop_asserted);
|
||||
/* A manual calibration frame is not a confirmed 4 mA reload.
|
||||
* START must wait for a forced baseline frame after it. */
|
||||
if (!active) load_zero_sent = !(!start && !load_stop_asserted && cCalibrDac);
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Äèàãíîñòèêà äîñòóïíà îáû÷íûì Modbus/CAN, íåçàâèñèìî îò ëîããåðà:
|
||||
* áèò 0 — îøèáêà ïÿòè ïóñêîâ; áèò 1 — íåò ñâåæåãî íàïðÿæåíèÿ;
|
||||
* áèò 2 — ñáðîñ ïåðåä ïîâòîðîì; áèò 3 — ðàáîòà ðàìïû.
|
||||
* Îøèáêà óäåðæèâàåòñÿ ñî STOP, ïîêà îïåðàòîð íå ñíèìåò START. */
|
||||
LOAD_STATUS = (load_state == LOAD_FAULT ? 1U : 0U) |
|
||||
(!fresh ? 2U : 0U) |
|
||||
(load_state == LOAD_RELOAD ? 4U : 0U) |
|
||||
(load_state == LOAD_RUN ? 8U : 0U) |
|
||||
(load_simulation << 4);
|
||||
LOAD_ATTEMPTS = load_attempts;
|
||||
}
|
||||
|
||||
if(++count_load > time_dac) count_load = time_dac;
|
||||
|
||||
sinus = ((dac_stop - dac_go) / 16.0 * count_load) + (dac_go / 16.0 * time_dac);
|
||||
|
||||
// sinus = (10.0 / 16.0 * count_load) + (2.0 / 16.0 * time_dac);
|
||||
}
|
||||
else
|
||||
{ count_load = 0;
|
||||
sinus=0;
|
||||
x = (x+1)&0x3FF;
|
||||
}
|
||||
|
||||
preStart = cUMPstart;
|
||||
|
||||
if(!x || cInitDac)
|
||||
{
|
||||
Init_DAC(); x=1; cInitDac=0;
|
||||
}
|
||||
else
|
||||
{
|
||||
kod = (int)sinus;
|
||||
|
||||
Anal_output(kod, time_dac);
|
||||
} } } }
|
||||
/* Local versioned block, shared by RTU and service CAN. Probe its signature
|
||||
* before writes: old firmware returns exception 2 instead of starting tests.
|
||||
* Simulation is RAM-only, zeroed at boot, and never copied into EEPROM.
|
||||
* bit 0 ignores ZPT reception (age reaches the configured timeout);
|
||||
* bit 1 substitutes 0 V only for protection, leaving real logged CAN intact. */
|
||||
unsigned int Load_protection_prepare(unsigned int function, unsigned int address,
|
||||
unsigned int value, unsigned int *out, unsigned int *error)
|
||||
{
|
||||
unsigned int saved = __disable_interrupts();
|
||||
*error = 2;
|
||||
if (Desk == dsk_LOAD && address == 0x1300U && function == 3 && value == 8) {
|
||||
out[0] = 0x5550U; out[1] = 1;
|
||||
out[2] = load_simulation; out[3] = (unsigned int)LOAD_CAN_TIMEOUT;
|
||||
out[4] = (unsigned int)LOAD_STATUS; out[5] = load_attempts;
|
||||
out[6] = load_voltage; out[7] = load_voltage_seen ? load_voltage_age : 65535U;
|
||||
*error = 0;
|
||||
__restore_interrupts(saved);
|
||||
return 8;
|
||||
}
|
||||
if (Desk == dsk_LOAD && function == 6) {
|
||||
if (address == 0x1302U && value <= 3U) {
|
||||
load_simulation = value;
|
||||
*error = 0;
|
||||
} else if (address == 0x1303U && value >= 1U && value <= 60000U) {
|
||||
LOAD_CAN_TIMEOUT = value; *error = 0;
|
||||
} else if (address == 0x1302U || address == 0x1303U) *error = 3;
|
||||
}
|
||||
out[0] = address; out[1] = value;
|
||||
__restore_interrupts(saved);
|
||||
return 2;
|
||||
}
|
||||
|
||||
@@ -3,5 +3,16 @@ void Anal_output(long vrot, long maxx);
|
||||
void Init_DAC(void);
|
||||
void Setup_DAC_time(void);
|
||||
|
||||
extern unsigned long IMPowse;
|
||||
/* Ñ÷¸ò÷èê ïóñêîâîãî èìïóëüñà è âûäåðæêè èíèöèàëèçàöèè äîñòóïíû ëîããåðó. */
|
||||
extern unsigned long IMPowse, WAKEpowse;
|
||||
extern unsigned int period_dac, time_dac;
|
||||
|
||||
/* Call once before IRQ; complete technological CAN packets update voltage. */
|
||||
void Load_control_init(void);
|
||||
void Load_voltage_can(unsigned int header, unsigned int a,
|
||||
unsigned int b, unsigned int c);
|
||||
|
||||
/* 0x1300/8 words: signature, version, simulation, timeout, status, attempts,
|
||||
* voltage, age. Only 0x1302 (simulation) and 0x1303 (timeout) are writable. */
|
||||
unsigned int Load_protection_prepare(unsigned int function, unsigned int address,
|
||||
unsigned int value, unsigned int *out, unsigned int *error);
|
||||
|
||||
@@ -1,12 +1,3 @@
|
||||
/****************************************************************/
|
||||
/* TMS320C32 */
|
||||
/* ====== BIOS, КЛАИН, КЛВСП ====== */
|
||||
/* ЦНИИ СЭТ (с) 1998-2000 г. */
|
||||
/****************************************************************
|
||||
RS485.h
|
||||
****************************************************************
|
||||
* Процедуры работы с UART *
|
||||
****************************************************************/
|
||||
#ifndef _RS485
|
||||
#define _RS485
|
||||
|
||||
@@ -19,6 +10,10 @@
|
||||
//#include "cntrl_adr.h"
|
||||
//#include "params.h"
|
||||
|
||||
#ifndef RS232_USE_FIFO
|
||||
#define RS232_USE_FIFO 1
|
||||
#endif
|
||||
|
||||
#define COM_1 1
|
||||
#define COM_2 2
|
||||
|
||||
@@ -67,6 +62,10 @@ typedef struct
|
||||
int RS_FlagSkiping;
|
||||
unsigned long curr_baud;
|
||||
unsigned long time_wait_rs_out;
|
||||
#if RS232_USE_FIFO
|
||||
volatile unsigned int fifo_tx_active, fifo_rx_guard;
|
||||
volatile unsigned long fifo_rx_errors, fifo_overflows;
|
||||
#endif
|
||||
|
||||
} RS_DATA;
|
||||
|
||||
@@ -115,7 +114,13 @@ void RS_SetLineSpeed(RS_DATA *rs_arr, unsigned long speed);
|
||||
|
||||
// Îæèäàíèå çàâåðøåíèà ïåðåäà÷è UART
|
||||
// wait for TRDY =1 for empty state
|
||||
#if RS232_USE_FIFO
|
||||
void RS_FifoWait(RS_DATA *rs_arr);
|
||||
void RS_FifoTick1ms(void);
|
||||
#define RS_Wait4OK(x) RS_FifoWait(x)
|
||||
#else
|
||||
#define RS_Wait4OK(x) while(!(x->SciRegs->SCICTL2.bit.TXEMPTY))
|
||||
#endif
|
||||
|
||||
/** Ïåðåêëþ÷åíèå ëèíèè íà ïðèåì */
|
||||
#define RS_Line_to_receive(x) if(x->commnumber==COM_2) GpioDataRegs.GPBDAT.bit.GPIO34 = 1;
|
||||
|
||||
@@ -1,12 +1,3 @@
|
||||
/****************************************************************/
|
||||
/* TMS320C32 */
|
||||
/* ====== BIOS, ÊËÀÈÍ, ÊËÂÑÏ ====== */
|
||||
/* ÖÍÈÈ ÑÝÒ (ñ) 1998-2000 ã. */
|
||||
/****************************************************************/
|
||||
/* Bios_dsp.h */
|
||||
/****************************************************************/
|
||||
/* Îñíîâíûå êîììàíäû BIOS */
|
||||
/****************************************************************/
|
||||
#ifndef _BIOS_DSP
|
||||
#define _BIOS_DSP
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
4876, 5005, 4876, 4847, 1898, 1873, 2535, 2502, // Áîðò 1
|
||||
|
||||
// ÓÌÏ UA UC IA IC 20mA O 4mA O 20mA I 4mA I
|
||||
3820, 3790, 3505, 3380, 1736, 683, 854, 14, // Αξπς 0 1062 1980
|
||||
3835, 3785, 3522, 3332, 1745, 689, 860, 17, // Αξπς 1 1720 2405
|
||||
7580, 7540, 2310, 2420, 1736, 683, 854, 14, // Αξπς 0 1062 1980
|
||||
7580, 7540, 2310, 2420, 1745, 689, 860, 17, // Αξπς 1 1720 2405
|
||||
|
||||
// ÁÊÑÑÄ 100 Ohm 150 Ohm
|
||||
1281, 1272, 0, 0, 622, 2263, 0, 0,
|
||||
|
||||
@@ -1,13 +1,3 @@
|
||||
/****************************************************************/
|
||||
/* TMS320C32 */
|
||||
/* ====== BIOS, КЛАИН, КЛВСП ====== */
|
||||
/* ЦНИИ СЭТ (с) 1998-2000 г. */
|
||||
/****************************************************************
|
||||
cntrl_adr.h
|
||||
****************************************************************
|
||||
* Адрес контроллера *
|
||||
****************************************************************/
|
||||
|
||||
#ifndef _CNTRL_ADR
|
||||
#define _CNTRL_ADR
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
void InitCan(int Port, int DevNum);
|
||||
void CAN_send(int Port, int data[], int Addr);
|
||||
extern int CAN_input_data[];
|
||||
|
||||
/* Íåáëîêèðóþùàÿ ïåðåäà÷à îòâåòîâ ëîããåðà îòäåëüíûì CAN mailbox. */
|
||||
void UMP_CAN_service(void);
|
||||
|
||||
15
Source/Internal/Include/eeprom_config.h
Normal file
15
Source/Internal/Include/eeprom_config.h
Normal file
@@ -0,0 +1,15 @@
|
||||
#ifndef BALSAM167_EEPROM_CONFIG_H
|
||||
#define BALSAM167_EEPROM_CONFIG_H
|
||||
/* Build-time checkbox: 0 = AT25256B (32 KiB), 1 = M95M02-DR (256 KiB).
|
||||
* This must match the soldered part BEFORE startup loads saved parameters.
|
||||
* CCS: change the value below, then Project > Clean and Rebuild.
|
||||
* Command-line builds may override EEPROM_M95M02 for that build only.
|
||||
* A GUI checkbox cannot change SPI ROM boot or startup initialization.
|
||||
*/
|
||||
#ifndef EEPROM_M95M02
|
||||
#define EEPROM_M95M02 0
|
||||
#endif
|
||||
#if EEPROM_M95M02 != 0 && EEPROM_M95M02 != 1
|
||||
#error EEPROM_M95M02_must_be_0_or_1
|
||||
#endif
|
||||
#endif
|
||||
28
Source/Internal/Include/gas167.h
Normal file
28
Source/Internal/Include/gas167.h
Normal file
@@ -0,0 +1,28 @@
|
||||
#ifndef BALSAM167_GAS_H
|
||||
#define BALSAM167_GAS_H
|
||||
#include "eeprom_config.h"
|
||||
#include <stdint.h>
|
||||
|
||||
/* Board profile 167/v1, word addresses, independent of the wire transport.
|
||||
* The original register and UMP addresses remain valid in both builds.
|
||||
* Only the physically fitted M95M02 version exposes the additional regions. */
|
||||
#if EEPROM_M95M02
|
||||
#define GAS167_REG_BASE 0x5000U
|
||||
#define GAS167_REG_COUNT 128U
|
||||
#define GAS167_INFO_BASE 0x5F00U
|
||||
#define GAS167_INFO_WORDS 8U
|
||||
#define GAS167_MAX_WORDS 124U
|
||||
#define GAS167_PROFILE_VERSION 1U
|
||||
#define GAS167_CAPABILITIES 7U /* bit 0 RTU, bit 1 service CAN, bit 2 FC06 */
|
||||
|
||||
/* Called by the main-loop transports under their snapshot IRQ lock.
|
||||
* Capacity: at least GAS167_MAX_WORDS uint16_t words.
|
||||
* RTU reads: 1..124 words; paired service CAN reads: 2..124, even.
|
||||
* Successful reads return their count. Writes/errors return address/value.
|
||||
* error uses Modbus codes 0 (success), 1 (function), 2 (address), 3 (value).
|
||||
* No EEPROM I/O, allocation, or changes to the existing logger. */
|
||||
int gas167_contains(uint16_t address);
|
||||
unsigned gas167_prepare(unsigned function, uint16_t address, uint16_t value,
|
||||
int can, uint16_t *reply, unsigned *error);
|
||||
#endif
|
||||
#endif
|
||||
@@ -1,13 +1,3 @@
|
||||
/****************************************************************/
|
||||
/* TMS320C32 */
|
||||
/* ====== BIOS, КЛАИН, КЛВСП ====== */
|
||||
/* ЦНИИ СЭТ (с) 1998-2001г. */
|
||||
/****************************************************************/
|
||||
/* log_to_mem.h
|
||||
****************************************************************
|
||||
* Запись логов в памyть *
|
||||
****************************************************************/
|
||||
|
||||
#ifndef _LOG_TO_MEM
|
||||
#define _LOG_TO_MEM
|
||||
|
||||
@@ -42,6 +32,24 @@ extern LOG Log;
|
||||
/* Î÷èñòêà ïàìàòè (îáíóëåíèå) */
|
||||
void clear_mem();
|
||||
|
||||
/* Ëîããåð ÓÌÏ: îòäåëüíîå àäðåñíîå ïðîñòðàíñòâî Modbus, áåç èçìåíåíèÿ
|
||||
* 128 òåõíîëîãè÷åñêèõ ðåãèñòðîâ. Äâà áàíêà ïî 760 çàïèñåé:
|
||||
* òåêóùèé êîëüöåâîé æóðíàë è çàôèêñèðîâàííûé ôðàãìåíò îòêëþ÷åíèÿ. */
|
||||
#define UMP_LOG_BASE 0x1000U
|
||||
#define UMP_LOG_DATA 0x1010U
|
||||
#define UMP_LOG_WORDS 42U
|
||||
#define UMP_LOG_CAPACITY 760U
|
||||
#define UMP_LOG_LIVE_RECORDS (120U / UMP_LOG_WORDS)
|
||||
#define UMP_LOG_LIVE 0x1100U
|
||||
extern unsigned int ump_dac_ramp, ump_dac_duration, ump_dac_go10, ump_dac_stop10, ump_dac_position;
|
||||
void ump_log_init(void);
|
||||
void ump_log_tick(void);
|
||||
void ump_log_io(void);
|
||||
void ump_log_can(unsigned int header, unsigned int a, unsigned int b, unsigned int c);
|
||||
void ump_log_rs(void);
|
||||
unsigned int ump_log_read(unsigned int address);
|
||||
int ump_log_write(unsigned int address, unsigned int value);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// <20><><E2>
|
||||
#ifndef _MEASURE
|
||||
#define _MEASURE
|
||||
|
||||
|
||||
@@ -95,6 +95,11 @@
|
||||
#define DAC_go modbus[0x50] // íà÷àëî çàðàäà
|
||||
#define DAC_stop modbus[0x51] // êîíåö çàðàäà
|
||||
|
||||
/* LOAD-only persistent CAN timeout (ms), read-only status and attempts. */
|
||||
#define LOAD_CAN_TIMEOUT modbus[0x52]
|
||||
#define LOAD_STATUS modbus[0x7C]
|
||||
#define LOAD_ATTEMPTS modbus[0x7D]
|
||||
|
||||
#define Cancount (modbus+0x60) // ïàóçà ìåæäó I ïîñûëêàìè CAN
|
||||
#define Bright (modbus+0x62) // àðêîñòü ñèãíàëüíûõ ëàìïî÷åê
|
||||
#define Brightness modbus[0x62] // àðêîñòü ñèãíàëüíûõ ëàìïî÷åê
|
||||
|
||||
@@ -1,24 +1,20 @@
|
||||
/*=====================================================================
|
||||
File name : SPISE2P.H
|
||||
|
||||
Originator : Settu Duraisamy
|
||||
C2000 Applications Team
|
||||
Texas Instruments
|
||||
|
||||
Description :
|
||||
Header file containing object definitions, proto type
|
||||
declaration and default object initializers for
|
||||
SPI Serial EEPROM driver using VSPI
|
||||
|
||||
Date : 30/6/2003 (DD/MM/YYYY)
|
||||
=======================================================================*/
|
||||
|
||||
#ifndef __SPISE2P_H__
|
||||
|
||||
#define __SPISE2P_H__
|
||||
|
||||
/* Physical EEPROM layout shared with the linker and SETGUI. */
|
||||
#include "eeprom_config.h"
|
||||
#include "include/balsam167_eeprom_layout.h"
|
||||
|
||||
// ¨ìêîñòü ïàìàòè â áàéòàõ
|
||||
#define SEEPROM_LEN 0x10000
|
||||
/* Preserve compact 16-bit arithmetic for the original 32-KiB build.
|
||||
* Only the large part needs 32-bit word addresses and transfer lengths. */
|
||||
#if EEPROM_M95M02
|
||||
typedef unsigned long SE2P_SIZE;
|
||||
#else
|
||||
typedef unsigned int SE2P_SIZE;
|
||||
#endif
|
||||
#define SEEPROM_LEN BALSAM167_EEPROM_BYTES
|
||||
|
||||
#define NULL 0
|
||||
|
||||
@@ -73,8 +69,10 @@ typedef struct {
|
||||
|
||||
/* Object declaration */
|
||||
typedef struct {
|
||||
SE2P_DATA *msgPtr;
|
||||
unsigned int csr; /* control/status register */
|
||||
/* Main loop publishes the descriptor before setting csr; Timer2 consumes it.
|
||||
* Both accesses are volatile so optimization cannot publish the request first. */
|
||||
SE2P_DATA * volatile msgPtr;
|
||||
volatile unsigned int csr; /* control/status register */
|
||||
void (*init)(void *);
|
||||
void (*tick)(void *);
|
||||
void (*csset)(void);
|
||||
@@ -100,12 +98,12 @@ void spiSe2pWrite(SPISE2P_DRV *se2p, SE2P_DATA *data);
|
||||
void spiSe2pRead(SPISE2P_DRV *se2p, SE2P_DATA *data);
|
||||
|
||||
#if(SPISE2P_DATA_WIDTH==SIXTEEN_BIT)
|
||||
#define PROM_LEN 0x8000
|
||||
#define PAGE_LEN 0x20
|
||||
#define PROM_LEN BALSAM167_EEPROM_WORDS
|
||||
#define PAGE_LEN (BALSAM167_EEPROM_PAGE_BYTES / 2)
|
||||
#define WORD_LEN 2
|
||||
#else
|
||||
#define PROM_LEN 0x4000
|
||||
#define PAGE_LEN 0x40
|
||||
#define PROM_LEN BALSAM167_EEPROM_BYTES
|
||||
#define PAGE_LEN BALSAM167_EEPROM_PAGE_BYTES
|
||||
#define WORD_LEN 1
|
||||
#endif
|
||||
|
||||
@@ -120,7 +118,7 @@ void InitSeeprom(void);
|
||||
** adres = 0..0x4000, åñëè äëèíà ñëîâà 16 áèò **
|
||||
** buf - óêàçàòåëü íà ïàìàòü, îòêóäà ïèñàòü. **
|
||||
** size - äëèíà áëîêà â áàéòàõ. Ïî-ëþáîìó â áàéòàõ! */
|
||||
void Seeprom_write(unsigned int adres, unsigned int buf[], unsigned int size);
|
||||
void Seeprom_write(SE2P_SIZE adres, unsigned int buf[], SE2P_SIZE size);
|
||||
|
||||
/* ×òåíèå áëîêà èç SEEPROM. Ïàðàìåòðû òàêîâû: **
|
||||
** adres - àäðåñ â åïðîìêå, îòêóäà ÷èòàòü. **
|
||||
@@ -128,7 +126,7 @@ void Seeprom_write(unsigned int adres, unsigned int buf[], unsigned int size);
|
||||
** adres = 0..0x4000, åñëè äëèíà ñëîâà 16 áèò **
|
||||
** buf - óêàçàòåëü íà ïàìàòü, êóäà ÷èòàòü. **
|
||||
** size - äëèíà áëîêà â áàéòàõ. Ïî-ëþáîìó â áàéòàõ! */
|
||||
void Seeprom_read(unsigned int adres, unsigned int buf[], unsigned int size);
|
||||
void Seeprom_read(SE2P_SIZE adres, unsigned int buf[], SE2P_SIZE size);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
9
Source/Internal/Include/ump_can_protocol.h
Normal file
9
Source/Internal/Include/ump_can_protocol.h
Normal file
@@ -0,0 +1,9 @@
|
||||
/* Shared logger protocol; application owns IRQ protection and CAN scheduling. */
|
||||
#ifndef UMP_CAN_PROTOCOL_H
|
||||
#define UMP_CAN_PROTOCOL_H
|
||||
#include "log_to_mem.h"
|
||||
#include "ump_tms28335.h"
|
||||
#define UMP_CAN_MARKER UMP_MARKER
|
||||
#define UMP_CAN_MAX_WORDS UMP_MAX_WORDS
|
||||
#define ump_can_prepare ump_tms28335_prepare
|
||||
#endif
|
||||
@@ -1,13 +1,3 @@
|
||||
/****************************************************************/
|
||||
/* TMS320C32 */
|
||||
/* ====== BIOS, ÊËÀÈÍ, ÊËÂÑÏ ====== */
|
||||
/* ÖÍÈÈ ÑÝÒ (ñ) 1998-2000 ã. */
|
||||
/****************************************************************
|
||||
RS485.ñ
|
||||
****************************************************************
|
||||
* Ïðîöåäóðû ðàáîòû ñ UART *
|
||||
****************************************************************/
|
||||
|
||||
//#include "big_dsp_module.h"
|
||||
|
||||
|
||||
@@ -31,6 +21,11 @@ static char size_cmd15=1;
|
||||
|
||||
void RS_RX_Handler(RS_DATA *rs_arr);
|
||||
void RS_TX_Handler(RS_DATA *rs_arr);
|
||||
#if RS232_USE_FIFO
|
||||
static int RS_FifoStart(RS_DATA *, unsigned int *, unsigned long, int);
|
||||
static void RS_FifoTx(RS_DATA *);
|
||||
static void RS_FifoAbort(RS_DATA *);
|
||||
#endif
|
||||
|
||||
/** Îáðàáîò÷èê ïðåðûâàíèé UART - ïðèíàòî */
|
||||
interrupt void RSA_RX_Handler(void)
|
||||
@@ -115,6 +110,24 @@ void RS_RX_Handler(RS_DATA *rs_arr)
|
||||
|
||||
for(;;) // 'goto' ýòî íå îïåðàòîð àçûêà Ñ
|
||||
{
|
||||
#if RS232_USE_FIFO
|
||||
if (rs_arr->commnumber == COM_1) {
|
||||
unsigned int received;
|
||||
if (rs_arr->SciRegs->SCIFFRX.bit.RXFFOVF || rs_arr->SciRegs->SCIRXST.bit.RXERROR) {
|
||||
RS_FifoAbort(rs_arr); return;
|
||||
}
|
||||
if (!rs_arr->SciRegs->SCIFFRX.bit.RXFFST) {
|
||||
rs_arr->SciRegs->SCIFFRX.bit.RXFFINTCLR=1;
|
||||
PieCtrlRegs.PIEACK.bit.ACK9 |= 1;
|
||||
return;
|
||||
}
|
||||
received=rs_arr->SciRegs->SCIRXBUF.all; /* one pop, data + FE/PE */
|
||||
if (received & 0xC000U) { RS_FifoAbort(rs_arr); return; }
|
||||
if (rs_arr->fifo_rx_guard) { rs_arr->fifo_rx_guard=4; continue; }
|
||||
Rc=received & 255U;
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
if(!rs_arr->SciRegs->SCIRXST.bit.RXRDY) // Receiver ready flag
|
||||
{
|
||||
PieCtrlRegs.PIEACK.bit.ACK9 |= 1;
|
||||
@@ -132,6 +145,8 @@ void RS_RX_Handler(RS_DATA *rs_arr)
|
||||
continue;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(rs_arr->RS_DataReady) continue; // Íå çàáðàëè äàííûå
|
||||
|
||||
if (rs_arr->RS_Flag9bit==1) // äëà RS485????????
|
||||
@@ -244,6 +259,9 @@ void RS_RX_Handler(RS_DATA *rs_arr)
|
||||
/** Îáðàáîò÷èê ïðåðûâàíèé UART - ïîñëàíî */
|
||||
void RS_TX_Handler(RS_DATA *rs_arr)
|
||||
{
|
||||
#if RS232_USE_FIFO
|
||||
if (rs_arr->commnumber == COM_1) { RS_FifoTx(rs_arr); return; }
|
||||
#endif
|
||||
char RS_BytePtr;
|
||||
// unsigned int i;
|
||||
|
||||
@@ -288,6 +306,7 @@ void RS_TX_Handler(RS_DATA *rs_arr)
|
||||
|
||||
PieCtrlRegs.PIEACK.bit.ACK9 |= 1;
|
||||
// rs_arr->SciRegs->SCIFFTX.bit.TXINTCLR=1; // Clear INT flag
|
||||
|
||||
}
|
||||
|
||||
/** Èíèöèàëèçàöèà ìàññèâà äëèí êîìàíä */
|
||||
@@ -339,6 +358,9 @@ void RS_SetBitMode(RS_DATA *rs_arr,int n)
|
||||
@see RS_BSend, RS_TRANSMIT_INTR */
|
||||
int RS_Send(RS_DATA *rs_arr,unsigned int *pBuf,unsigned long len)
|
||||
{
|
||||
#if RS232_USE_FIFO
|
||||
if (rs_arr->commnumber == COM_1) return RS_FifoStart(rs_arr,pBuf,len,BM_CHAR32);
|
||||
#endif
|
||||
unsigned int i;
|
||||
for (i=0; i <= 30000; i++){} /* Ïàóçà äëà PC */
|
||||
|
||||
@@ -369,11 +391,15 @@ int RS_Send(RS_DATA *rs_arr,unsigned int *pBuf,unsigned long len)
|
||||
RS_Line_to_receive(rs_arr); /* ðåæèì ïðèåìà RS485 */
|
||||
}
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
// Ïîñûëêà áëîêà óïàêîâàííûõ áàéòîâ
|
||||
int RS_BSend(RS_DATA *rs_arr,unsigned int *pBuf, unsigned long len)
|
||||
{
|
||||
#if RS232_USE_FIFO
|
||||
if (rs_arr->commnumber == COM_1) return RS_FifoStart(rs_arr,pBuf,len,BM_PACKED);
|
||||
#endif
|
||||
|
||||
RS_Line_to_send(rs_arr); // ðåæèì ïåðåäà÷è RS485
|
||||
|
||||
@@ -391,6 +417,7 @@ int RS_BSend(RS_DATA *rs_arr,unsigned int *pBuf, unsigned long len)
|
||||
SCI_send(rs_arr,HIBYTE(*pBuf));// Ïåðåäàåì ïåðâûé áàéò
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
/** Óñòàíàâëèâàåò ñêîðîñòü îáìåíà.
|
||||
@@ -484,7 +511,20 @@ void setup_uart(char commnumber, unsigned long speed_baud)
|
||||
SciRegs->SCICTL1.bit.TXENA=1;
|
||||
SciRegs->SCICTL1.bit.RXENA=1;
|
||||
|
||||
SciRegs->SCIFFTX.bit.SCIFFENA=0; // fifo off
|
||||
#if RS232_USE_FIFO
|
||||
if (commnumber == COM_1) {
|
||||
SciRegs->SCIFFTX.all=0xC008U; /* enhancement, reset held, TX level 8, IRQ off */
|
||||
SciRegs->SCIFFRX.all=0x0061U; /* reset held, RX level 1, IRQ on */
|
||||
SciRegs->SCIFFCT.all=0;
|
||||
SciRegs->SCIFFRX.bit.RXFFOVRCLR=1;
|
||||
SciRegs->SCIFFTX.bit.TXFFINTCLR=1;
|
||||
SciRegs->SCIFFTX.bit.TXFIFOXRESET=1;
|
||||
SciRegs->SCIFFRX.bit.RXFIFORESET=1;
|
||||
rs_arr->fifo_tx_active=rs_arr->fifo_rx_guard=0;
|
||||
rs_arr->fifo_rx_errors=rs_arr->fifo_overflows=0;
|
||||
} else
|
||||
#endif
|
||||
SciRegs->SCIFFTX.bit.SCIFFENA=0; // fifo off
|
||||
SciRegs->SCIFFRX.bit.RXFFIL=1; // Äëèíà íàèìåíüøåé êîìàíäû
|
||||
|
||||
setup_arr_cmd_length();
|
||||
@@ -557,3 +597,117 @@ void test_rs_live(RS_DATA *rs_arr)
|
||||
RS_Line_to_receive(rs_arr); // ðåæèì ïðèåìà RS485
|
||||
RS_SetBitMode(rs_arr,9);
|
||||
}*/ }
|
||||
|
||||
#if RS232_USE_FIFO
|
||||
/* FIFO is exclusively SCI-A / RS232. SCI-B keeps the legacy path. */
|
||||
void RS_FifoWait(RS_DATA *rs_arr)
|
||||
{
|
||||
if (rs_arr->commnumber != COM_1) {
|
||||
while (!rs_arr->SciRegs->SCICTL2.bit.TXEMPTY) { }
|
||||
return;
|
||||
}
|
||||
while (rs_arr->fifo_tx_active || rs_arr->SciRegs->SCIFFTX.bit.TXFFST ||
|
||||
!rs_arr->SciRegs->SCICTL2.bit.TXEMPTY) { }
|
||||
}
|
||||
|
||||
static void RS_FifoTx(RS_DATA *rs_arr)
|
||||
{
|
||||
unsigned int data;
|
||||
if (!rs_arr->fifo_tx_active) {
|
||||
rs_arr->SciRegs->SCIFFTX.bit.TXFFIENA=0;
|
||||
} else if (rs_arr->RS_SendLen == rs_arr->RS_SLength) {
|
||||
/* Level 0 interrupt: FIFO drained, last symbol may still be shifting.
|
||||
* Do not finish on TXFFST alone. At most one symbol remains. */
|
||||
if (rs_arr->SciRegs->SCIFFTX.bit.TXFFST) {
|
||||
rs_arr->SciRegs->SCIFFTX.bit.TXFFINTCLR=1;
|
||||
PieCtrlRegs.PIEACK.bit.ACK9 |= 1;
|
||||
return;
|
||||
}
|
||||
rs_arr->SciRegs->SCIFFTX.bit.TXFFIENA=0;
|
||||
while (!rs_arr->SciRegs->SCICTL2.bit.TXEMPTY) { }
|
||||
if (rs_arr->RS_SendBlockMode == BM_CHAR32) {
|
||||
RS_SetBitMode(rs_arr,9);
|
||||
rs_arr->flag_TIMEOUT_to_Send=false;
|
||||
}
|
||||
rs_arr->SciRegs->SCIFFRX.bit.RXFIFORESET=0;
|
||||
rs_arr->SciRegs->SCIFFRX.bit.RXFFOVRCLR=1;
|
||||
rs_arr->SciRegs->SCIFFRX.bit.RXFFINTCLR=1;
|
||||
rs_arr->SciRegs->SCIFFRX.bit.RXFIFORESET=1;
|
||||
enableUARTInt(rs_arr);
|
||||
rs_arr->SciRegs->SCIFFRX.bit.RXFFIENA=1;
|
||||
rs_arr->fifo_tx_active=0;
|
||||
} else {
|
||||
while (rs_arr->RS_SendLen < rs_arr->RS_SLength &&
|
||||
rs_arr->SciRegs->SCIFFTX.bit.TXFFST < 16) {
|
||||
if (rs_arr->RS_SendBlockMode == BM_CHAR32)
|
||||
data=*rs_arr->pRS_SendPtr++;
|
||||
else if (rs_arr->RS_SendLen & 1U)
|
||||
data=LOBYTE(*rs_arr->pRS_SendPtr++);
|
||||
else data=HIBYTE(*rs_arr->pRS_SendPtr);
|
||||
SCI_send(rs_arr,data);
|
||||
rs_arr->RS_SendLen++;
|
||||
}
|
||||
rs_arr->SciRegs->SCIFFTX.bit.TXFFIL=
|
||||
rs_arr->RS_SendLen == rs_arr->RS_SLength ? 0 : 8;
|
||||
}
|
||||
rs_arr->SciRegs->SCIFFTX.bit.TXFFINTCLR=1;
|
||||
PieCtrlRegs.PIEACK.bit.ACK9 |= 1;
|
||||
}
|
||||
|
||||
static int RS_FifoStart(RS_DATA *rs_arr,unsigned int *buffer,unsigned long count,int mode)
|
||||
{
|
||||
unsigned int saved;
|
||||
if (!count) return 0;
|
||||
if (!buffer) return -1;
|
||||
RS_FifoWait(rs_arr); /* before replacing the previous transfer's counters */
|
||||
saved=__disable_interrupts();
|
||||
rs_arr->SciRegs->SCIFFTX.bit.TXFFIENA=0;
|
||||
rs_arr->SciRegs->SCIFFRX.bit.RXFFIENA=0;
|
||||
enableUARTIntW(rs_arr);
|
||||
RS_SetBitMode(rs_arr,8);
|
||||
rs_arr->pRS_SendPtr=buffer;
|
||||
rs_arr->RS_SLength=count;
|
||||
rs_arr->RS_SendLen=0;
|
||||
rs_arr->RS_SendBlockMode=mode;
|
||||
rs_arr->fifo_tx_active=1;
|
||||
RS_FifoTx(rs_arr); /* prime before enabling a possibly immediate TX IRQ */
|
||||
rs_arr->SciRegs->SCIFFTX.bit.TXFFIENA=1;
|
||||
__restore_interrupts(saved);
|
||||
if (count == 1 && mode == BM_CHAR32) RS_FifoWait(rs_arr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void RS_FifoAbort(RS_DATA *rs_arr)
|
||||
{
|
||||
rs_arr->fifo_rx_errors++;
|
||||
if (rs_arr->SciRegs->SCIFFRX.bit.RXFFOVF) rs_arr->fifo_overflows++;
|
||||
rs_arr->RS_DataReady=0; rs_arr->BS_LoadOK=0;
|
||||
rs_arr->RS_PrevCmd=0; rs_arr->RS_Cmd=0;
|
||||
rs_arr->RS_Flag9bit=0; rs_arr->RS_FlagSkiping=1;
|
||||
rs_arr->fifo_rx_guard=4;
|
||||
rs_arr->SciRegs->SCIFFRX.bit.RXFIFORESET=0;
|
||||
rs_arr->SciRegs->SCIFFRX.bit.RXFFOVRCLR=1;
|
||||
rs_arr->SciRegs->SCIFFRX.bit.RXFFINTCLR=1;
|
||||
if (rs_arr->SciRegs->SCIRXST.bit.RXERROR) {
|
||||
rs_arr->SciRegs->SCICTL1.bit.SWRESET=0;
|
||||
rs_arr->SciRegs->SCICTL1.bit.SWRESET=1;
|
||||
}
|
||||
rs_arr->SciRegs->SCIFFRX.bit.RXFIFORESET=1;
|
||||
PieCtrlRegs.PIEACK.bit.ACK9 |= 1;
|
||||
}
|
||||
|
||||
void RS_FifoTick1ms(void)
|
||||
{
|
||||
unsigned int saved=__disable_interrupts();
|
||||
RS_DATA *p=&rs_a;
|
||||
if (p->SciRegs && p->fifo_rx_guard) {
|
||||
if (p->SciRegs->SCIFFRX.bit.RXFFST) p->fifo_rx_guard=4;
|
||||
else if (--p->fifo_rx_guard == 0) {
|
||||
p->RS_HeaderCnt=0;p->RS_RecvLen=0;
|
||||
p->RS_FlagBegin=1;p->RS_FlagSkiping=0;
|
||||
RS_SetBitMode(p,9); /* fresh address after 3..4 ms of idle */
|
||||
}
|
||||
}
|
||||
__restore_interrupts(saved);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1,13 +1,3 @@
|
||||
/****************************************************************/
|
||||
/* TMS320C32 */
|
||||
/* ====== BIOS, ÊËÀÈÍ, ÊËÂÑÏ ====== */
|
||||
/* ÖÍÈÈ ÑÝÒ (ñ) 1998-2000 ã. */
|
||||
/****************************************************************
|
||||
Bios.c
|
||||
**************************************************************
|
||||
Îñíîâíûå êîììàíäû BIOS *
|
||||
äëà ðàáîòû ñ RS232
|
||||
****************************************************************/
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
#include "RS485.h"
|
||||
#include "bios_dsp.h"
|
||||
@@ -408,7 +398,16 @@ void extendbios(RS_DATA *rs_arr)
|
||||
switch ( code )
|
||||
{
|
||||
// Ïðîøèâàåì EPROM Èç RAM
|
||||
case 4: Seeprom_write(Address1,(unsigned int*)Address2,Length);
|
||||
#if EEPROM_M95M02
|
||||
/* 0x44 is intentionally rejected by old firmware. Conversely this build
|
||||
* rejects legacy code 4, preventing writes with the wrong GUI profile. */
|
||||
case 0x44:
|
||||
#else
|
||||
case 4:
|
||||
#endif
|
||||
if (!Length || Address1 >= BALSAM167_EEPROM_FIRMWARE_BYTES/2UL ||
|
||||
Length > BALSAM167_EEPROM_FIRMWARE_BYTES-Address1*2UL) return;
|
||||
Seeprom_write(Address1,(unsigned int*)Address2,Length);
|
||||
break;
|
||||
// ×èòàåì èç EPROM â RAM
|
||||
case 5: Seeprom_read(Address1,(unsigned int*)Address2,Length);
|
||||
|
||||
@@ -1,13 +1,3 @@
|
||||
/****************************************************************/
|
||||
/* TMS320C32 */
|
||||
/* ====== BIOS, КЛАИН, КЛВСП ====== */
|
||||
/* ЦНИИ СЭТ (с) 1998-2000 г. */
|
||||
/****************************************************************
|
||||
cntrl_adr.c
|
||||
****************************************************************
|
||||
* Адрес контроллера *
|
||||
****************************************************************/
|
||||
|
||||
#include "cntrl_adr.h"
|
||||
|
||||
#define ADDR_FOR_ALL_DEF 10
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
#include "RS485.h"
|
||||
#include "message.h"
|
||||
#include "peripher.h"
|
||||
#include "log_to_mem.h"
|
||||
#include "DAC.h"
|
||||
#include "ump_can_protocol.h"
|
||||
#include "gas167.h"
|
||||
|
||||
|
||||
// Prototype statements for functions found within this file.
|
||||
@@ -30,6 +34,16 @@ int CanTimeOutErrorTR = 0;
|
||||
|
||||
int wait=0;
|
||||
|
||||
/* MBOX2 âûäåëåí ïîä îòâåòû ðåãèñòðàòîðà; øòàòíûé MBOX0 ïðîäîëæàåò
|
||||
* ïåðåäàâàòü òåõíîëîãè÷åñêèå äàííûå íåçàâèñèìî. ISR òîëüêî ñòàâèò çàïðîñ,
|
||||
* à ñíèìîê è îòïðàâêà êîðîòêèìè øàãàìè âûïîëíÿþòñÿ â îñíîâíîì öèêëå. */
|
||||
static volatile unsigned int ump_can_pending;
|
||||
static volatile unsigned int ump_can_tag, ump_can_address, ump_can_value;
|
||||
static unsigned int ump_can_reply[UMP_CAN_MAX_WORDS];
|
||||
static unsigned int ump_can_length, ump_can_index, ump_can_reply_tag;
|
||||
static unsigned int ump_can_waiting;
|
||||
static unsigned long ump_can_sent_at;
|
||||
|
||||
void InitCan(int Port, int DevNum)
|
||||
{
|
||||
struct ECAN_REGS ECanShadow;
|
||||
@@ -61,6 +75,7 @@ void InitCan(int Port, int DevNum)
|
||||
// Specify that 8 bits will be sent/received
|
||||
ECanMboxes->MBOX0.MSGCTRL.all = 0x00000008;
|
||||
ECanMboxes->MBOX1.MSGCTRL.all = 0x00000008;
|
||||
ECanMboxes->MBOX2.MSGCTRL.all = 0x00000008;
|
||||
|
||||
// Disable all Mailboxes
|
||||
// Required before writing the MSGIDs
|
||||
@@ -72,11 +87,12 @@ void InitCan(int Port, int DevNum)
|
||||
// çàäàåì àäðåñ 1 àùèêa íà ïðèåì
|
||||
ECanMboxes->MBOX1.MSGID.all = id + DevNum; //ïîìåíàòü!!!! 1 è 0!!!
|
||||
|
||||
// çàäàåì ðåæèìû ðàáîòû àùèêa 0 íà ïåðåäà÷ó, îñòàëüíûå íà ïðèåì
|
||||
ECanRegs->CANMD.all = 0xFFFFFFFE;
|
||||
// MBOX0 è MBOX2 ïåðåäàþò äàííûå; MBOX1 ïðèíèìàåò êîìàíäû.
|
||||
ECanMboxes->MBOX2.MSGID.all = id + 0x20 + DevNum;
|
||||
ECanRegs->CANMD.all = 0xFFFFFFFA;
|
||||
|
||||
// âûáèðàåì òîëüêî 2 àùèêa äëà ðàáîòû, îñòàëüíûå çàïðåùàåì
|
||||
ECanRegs->CANME.all = 0x00000003;
|
||||
// Âêëþ÷àåì òðè mailbox: òåëåìåòðèÿ, êîìàíäû è îòâåòû ëîããåðà.
|
||||
ECanRegs->CANME.all = 0x00000007;
|
||||
|
||||
// Clear all TAn bits
|
||||
ECanRegs->CANTA.all = 0xFFFFFFFF;
|
||||
@@ -196,6 +212,18 @@ void Handlai(volatile struct ECAN_MBOXES * ECanMboxes)
|
||||
hiword = ECanMboxes->MBOX1.MDH.all;
|
||||
loword = ECanMboxes->MBOX1.MDL.all;
|
||||
|
||||
/* Ñëóæåáíûé çàïðîñ ëîããåðà íå ÿâëÿåòñÿ êîìàíäîé ÓÌÏ è ñàì íå äîëæåí
|
||||
* çàïîëíÿòü æóðíàë CAN-ñîáûòèÿìè ïðè îíëàéí-÷òåíèè. Êîðîòêèå êàäðû
|
||||
* îòáðàñûâàþòñÿ: íåçàïîëíåííûå áàéòû mailbox ìîãëè îñòàòüñÿ îò ïðîøëîãî. */
|
||||
if ((unsigned int)(hiword >> 16) == UMP_CAN_MARKER) {
|
||||
if (ECanMboxes->MBOX1.MSGCTRL.bit.DLC == 8 && (hiword & 0xFF00UL)) {
|
||||
ump_can_tag = (unsigned int)hiword;
|
||||
ump_can_address = (unsigned int)(loword >> 16);
|
||||
ump_can_value = (unsigned int)loword;
|
||||
ump_can_pending = 1;
|
||||
}
|
||||
return;
|
||||
}
|
||||
adr = (hiword >> 16);
|
||||
|
||||
bit[0] = adr & 0x8000;
|
||||
@@ -208,10 +236,19 @@ void Handlai(volatile struct ECAN_MBOXES * ECanMboxes)
|
||||
Data[1] = (loword>>16) & 0xffff;
|
||||
Data[2] = (loword ) & 0xffff;
|
||||
|
||||
if(bit[0]) if(adr < ANSWER_LEN) modbus[adr] = Data[0]; adr++;
|
||||
if(bit[1]) if(adr < ANSWER_LEN) modbus[adr] = Data[1]; adr++;
|
||||
if(bit[2]) if(adr < ANSWER_LEN) modbus[adr] = Data[2];
|
||||
if(bit[0]) if(adr < ANSWER_LEN &&
|
||||
!(Desk == dsk_LOAD && (adr == 0x7CU || adr == 0x7DU))) modbus[adr] = Data[0]; adr++;
|
||||
if(bit[1]) if(adr < ANSWER_LEN &&
|
||||
!(Desk == dsk_LOAD && (adr == 0x7CU || adr == 0x7DU))) modbus[adr] = Data[1]; adr++;
|
||||
if(bit[2]) if(adr < ANSWER_LEN &&
|
||||
!(Desk == dsk_LOAD && (adr == 0x7CU || adr == 0x7DU))) modbus[adr] = Data[2];
|
||||
|
||||
/* Ôèêñèðóåì ïðèìåí¸ííóþ êîìàíäó äî âûõîäà èç îáðàáîò÷èêà CAN. */
|
||||
/* A short frame cannot confirm voltage freshness. Service frames
|
||||
* UMP_MARKER return above and do not refresh this timeout. */
|
||||
if (ECanMboxes->MBOX1.MSGCTRL.bit.DLC == 8)
|
||||
Load_voltage_can((unsigned int)(hiword >> 16), Data[0], Data[1], Data[2]);
|
||||
ump_log_can((unsigned int)(hiword >> 16), Data[0], Data[1], Data[2]);
|
||||
led2_toggle();
|
||||
}
|
||||
|
||||
@@ -257,3 +294,61 @@ interrupt void CANa_reset_err(void)
|
||||
//===========================================================================
|
||||
// No more.
|
||||
//===========================================================================
|
||||
|
||||
|
||||
/* Îäèí âûçîâ îáñëóæèâàåò ìàêñèìóì îäèí êàäð è íèêîãäà íå æä¸ò ACK â öèêëå.
|
||||
* Ñíèìîê ôèêñèðóåòñÿ îäèí ðàç íà çàïðîñ: CAN-ôðàãìåíòû íå ñìåøèâàþò
|
||||
* çíà÷åíèÿ äî/ïîñëå ïåðåêëþ÷åíèÿ êîëüöåâîãî áàíêà. Íîâûå çàïðîñû çàáèðàåì
|
||||
* ïîñëå çàâåðøåíèÿ ïðåäûäóùåãî îòâåòà. GUI äåðæèò òîëüêî îäèí çàïðîñ. */
|
||||
void UMP_CAN_service(void)
|
||||
{
|
||||
unsigned int saved, tag, address, value, error;
|
||||
uint32_t hiword, loword;
|
||||
if (ump_can_waiting) {
|
||||
if (ECanaRegs.CANTA.all & 4UL) {
|
||||
ECanaRegs.CANTA.all = 4UL;
|
||||
ump_can_waiting = 0;
|
||||
} else if ((ECanaRegs.CANAA.all & 4UL) ||
|
||||
((unsigned long)CpuTimer1.InterruptCount - ump_can_sent_at > 250UL)) {
|
||||
/* Íåò ïîäòâåðæäåíèÿ øèíû: îòìåíÿåì òîëüêî ñëóæåáíûé mailbox.
|
||||
* GUI îáíàðóæèò íåïîëíûé îòâåò ïî òàéì-àóòó; óïðàâëåíèå MBOX0
|
||||
* è ïðè¸ì êîìàíä MBOX1 ïðîäîëæàþòñÿ. */
|
||||
ECanaRegs.CANTRR.all = 4UL;
|
||||
/* Äî ôàêòè÷åñêîãî çàâåðøåíèÿ îòìåíû mailbox íå ïåðåèñïîëüçóåì. */
|
||||
if (!(ECanaRegs.CANAA.all & 4UL)) return;
|
||||
ECanaRegs.CANAA.all = 4UL;
|
||||
ump_can_waiting = 0;
|
||||
ump_can_length = 0;
|
||||
} else return;
|
||||
}
|
||||
if (ump_can_index >= ump_can_length && ump_can_pending) {
|
||||
saved = __disable_interrupts();
|
||||
tag = ump_can_tag; address = ump_can_address; value = ump_can_value;
|
||||
ump_can_pending = 0;
|
||||
if (address >= 0x1300U && address < 0x1308U)
|
||||
ump_can_length = Load_protection_prepare(tag & 0xFF, address, value, ump_can_reply, &error);
|
||||
#if EEPROM_M95M02
|
||||
else if (gas167_contains(address))
|
||||
ump_can_length = gas167_prepare(tag & 0xFF, address, value, 1, ump_can_reply, &error);
|
||||
#endif
|
||||
else ump_can_length = ump_can_prepare(tag & 0xFF, address, value, ump_can_reply, &error);
|
||||
ump_can_reply_tag = (tag & 0xFF00) | error;
|
||||
ump_can_index = 0;
|
||||
__restore_interrupts(saved);
|
||||
}
|
||||
if (ump_can_index >= ump_can_length) return;
|
||||
/* Ïåðåä ñëåäóþùèì ôðàãìåíòîì óñòóïàåì øòàòíîé òåëåìåòðèè MBOX0. */
|
||||
if (ECanaRegs.CANTRS.all & 1UL) return;
|
||||
if (!ump_tms28335_fragment(ump_can_reply, ump_can_length, ump_can_index/2,
|
||||
ump_can_reply_tag >> 8, ump_can_reply_tag & 255U, &loword, &hiword)) {
|
||||
ump_can_length = 0;
|
||||
return;
|
||||
}
|
||||
ECanaRegs.CANTA.all = 4UL; ECanaRegs.CANAA.all = 4UL;
|
||||
ECanaMboxes.MBOX2.MDH.all = hiword;
|
||||
ECanaMboxes.MBOX2.MDL.all = loword;
|
||||
ump_can_sent_at = CpuTimer1.InterruptCount;
|
||||
ECanaRegs.CANTRS.all = 4UL;
|
||||
ump_can_waiting = 1;
|
||||
ump_can_index += 2;
|
||||
}
|
||||
|
||||
63
Source/Internal/gas167.c
Normal file
63
Source/Internal/gas167.c
Normal file
@@ -0,0 +1,63 @@
|
||||
#include "gas167.h"
|
||||
#if EEPROM_M95M02
|
||||
#include "package.h"
|
||||
|
||||
extern int modbus[];
|
||||
extern int Desk;
|
||||
extern void ump_log_rs(void);
|
||||
|
||||
static const uint16_t gas167_info[GAS167_INFO_WORDS] = {
|
||||
0x4741U, 0x5331U, GAS167_PROFILE_VERSION, 167U,
|
||||
GAS167_REG_BASE, GAS167_REG_COUNT, GAS167_CAPABILITIES, 1U
|
||||
};
|
||||
|
||||
int gas167_contains(uint16_t address)
|
||||
{
|
||||
return (uint16_t)(address - GAS167_REG_BASE) < GAS167_REG_COUNT ||
|
||||
(uint16_t)(address - GAS167_INFO_BASE) < GAS167_INFO_WORDS;
|
||||
}
|
||||
|
||||
static unsigned gas167_write(uint16_t offset, uint16_t value)
|
||||
{
|
||||
/* Match the existing native Modbus write policy. These status words
|
||||
* cannot be overwritten and an invalid timeout cannot bypass protection. */
|
||||
if (Desk == dsk_LOAD && (offset == 0x7CU || offset == 0x7DU)) return 2;
|
||||
if (Desk == dsk_LOAD && offset == 0x52U &&
|
||||
(value == 0U || value > 60000U)) return 3;
|
||||
/* C28x int is one register word; reads always expose the raw uint16_t. */
|
||||
modbus[offset] = (int)value;
|
||||
if (offset == 127U) ump_log_rs();
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned gas167_prepare(unsigned function, uint16_t address, uint16_t value,
|
||||
int can, uint16_t *reply, unsigned *error)
|
||||
{
|
||||
uint16_t offset;
|
||||
unsigned i, available;
|
||||
int info;
|
||||
if (!reply || !error) return 0;
|
||||
*error = 0;
|
||||
info = (uint16_t)(address - GAS167_INFO_BASE) < GAS167_INFO_WORDS;
|
||||
offset = (uint16_t)(address - (info ? GAS167_INFO_BASE : GAS167_REG_BASE));
|
||||
available = info ? GAS167_INFO_WORDS : GAS167_REG_COUNT;
|
||||
if (function != 3U && function != 6U) *error = 1;
|
||||
else if (offset >= available) *error = 2;
|
||||
else if (function == 6U) {
|
||||
*error = info ? 2U : gas167_write(offset, value);
|
||||
} else if (!value || value > GAS167_MAX_WORDS || (can && (value & 1U))) {
|
||||
*error = 3;
|
||||
} else if (value > available - offset) {
|
||||
*error = 2;
|
||||
} else {
|
||||
/* Validate the entire block before reading. A block cannot cross a
|
||||
* region boundary, wrap at 0xFFFF, or leak the hidden parameter word. */
|
||||
for (i = 0; i < value; ++i)
|
||||
reply[i] = info ? gas167_info[offset+i] : (uint16_t)modbus[offset+i];
|
||||
return value;
|
||||
}
|
||||
reply[0] = address;
|
||||
reply[1] = value;
|
||||
return 2;
|
||||
}
|
||||
#endif
|
||||
@@ -1,13 +1,12 @@
|
||||
/****************************************************************/
|
||||
/* TMS320C32 */
|
||||
/* ====== BIOS, КЛАИН, КЛВСП ====== */
|
||||
/* ЦНИИ СЭТ (с) 1998-2001г. */
|
||||
/****************************************************************/
|
||||
/* log_to_mem.c
|
||||
****************************************************************
|
||||
* Запись логов в памyть *
|
||||
****************************************************************/
|
||||
|
||||
#include "DSP2833x_Device.h"
|
||||
#include "filter_bat2.h"
|
||||
#include "measure.h"
|
||||
#include "package.h"
|
||||
#include "RS485.h"
|
||||
#include "message.h"
|
||||
#include "peripher.h"
|
||||
#include "DAC.h"
|
||||
#include "ADC.h"
|
||||
#include "log_to_mem.h"
|
||||
|
||||
int no_write = 0,
|
||||
@@ -32,3 +31,266 @@ void clear_mem()
|
||||
for (i=Log.Start; i<Log.Finis; i++)
|
||||
*(volatile int *)i = 0;
|
||||
}
|
||||
/* Two RAM banks: freeze after 10% of bank capacity is recorded after stop. */
|
||||
static volatile unsigned int ump_state, ump_count, ump_cursor, ump_next;
|
||||
static volatile unsigned int ump_period = 20, ump_divider;
|
||||
static volatile unsigned long ump_time, ump_sequence;
|
||||
static unsigned int ump_bank, ump_archive_bank = 1;
|
||||
static unsigned int ump_archive_count, ump_archive_next, ump_generation;
|
||||
static unsigned int ump_source, ump_post;
|
||||
#define UMP_POST_POINTS (UMP_LOG_CAPACITY / 10U)
|
||||
static void ump_freeze(void);
|
||||
static unsigned int ump_can_header, ump_can_data[3], ump_can_count;
|
||||
/* Latest PM67 sums: register 306 (index 305), register 9 (index 8). */
|
||||
static unsigned int ump_pm67_voltage[2];
|
||||
static unsigned int ump_prev_commands, ump_prev_inputs, ump_prev_outputs;
|
||||
extern int CanTimeOutErrorTR;
|
||||
/* Äèàãíîñòèêà âíóòðåííèõ ïåðåìåííûõ ðàçãîíà. Îáíîâëÿåòñÿ ñàìèì Load_runner,
|
||||
* íå ïåðåñ÷èòûâàåò è íå èçìåíÿåò óïðàâëÿþùèé àëãîðèòì. */
|
||||
unsigned int ump_dac_ramp, ump_dac_duration, ump_dac_go10, ump_dac_stop10, ump_dac_position;
|
||||
|
||||
/* Called once at boot, before enabling interrupts. TI COFF startup does
|
||||
* not clear uninitialized globals in .ebss. Do not use for record restart:
|
||||
* restart must preserve the archive, time and latest received voltages. */
|
||||
void ump_log_init(void)
|
||||
{
|
||||
unsigned int i;
|
||||
ump_state = 0; ump_count = 0; ump_cursor = 0; ump_next = 0;
|
||||
ump_period = 20; ump_divider = 0;
|
||||
ump_time = 0; ump_sequence = 0;
|
||||
ump_bank = 0; ump_archive_bank = 1;
|
||||
ump_archive_count = 0; ump_archive_next = 0; ump_generation = 0;
|
||||
ump_source = 0; ump_post = 0;
|
||||
ump_can_header = 0; ump_can_count = 0;
|
||||
for (i = 0; i < 3; i++) ump_can_data[i] = 0;
|
||||
for (i = 0; i < 2; i++) ump_pm67_voltage[i] = 0;
|
||||
ump_prev_commands = 0; ump_prev_inputs = 0; ump_prev_outputs = 0;
|
||||
ump_dac_ramp = 0; ump_dac_duration = 0; ump_dac_go10 = 0;
|
||||
ump_dac_stop10 = 0; ump_dac_position = 0;
|
||||
}
|
||||
|
||||
/* Ëîãè÷åñêèå óðîâíè âõîäîâ ïëàòû íàãðóçêè: ôèçè÷åñêèé íîëü îçíà÷àåò 1.
|
||||
* ×òåíèå GPIO íåïîñðåäñòâåííî çäåñü ïîçâîëÿåò çàïèñàòü âõîä äî ñëåäóþùåãî
|
||||
* îáíîâëåíèÿ ðåãèñòðà Inputs â îñíîâíîì öèêëå. */
|
||||
static unsigned int ump_inputs(void)
|
||||
{
|
||||
return (!GpioDataRegs.GPADAT.bit.GPIO6) |
|
||||
((!GpioDataRegs.GPADAT.bit.GPIO8) << 1) |
|
||||
((!GpioDataRegs.GPADAT.bit.GPIO11) << 2);
|
||||
}
|
||||
|
||||
/* START/STOP àêòèâíû åäèíèöåé; RES_OUT_2 àêòèâåí ôèçè÷åñêèì íóë¸ì. */
|
||||
static unsigned int ump_outputs(void)
|
||||
{
|
||||
return GpioDataRegs.GPBDAT.bit.GPIO62 |
|
||||
(GpioDataRegs.GPBDAT.bit.GPIO58 << 1) |
|
||||
((!GpioDataRegs.GPADAT.bit.GPIO3) << 2);
|
||||
}
|
||||
|
||||
/* Âûçûâàåòñÿ òîëüêî âíóòðè êîðîòêîé êðèòè÷åñêîé ñåêöèè. Âñå òðè èñòî÷íèêà
|
||||
* çàïèñåé (main, CAN ISR, timer ISR) èñïîëüçóþò îäíó áëîêèðîâêó IRQ ñ
|
||||
* âîññòàíîâëåíèåì ïðåæíåãî ñîñòîÿíèÿ, âêëþ÷àÿ âûçîâû èç ïðåðûâàíèÿ. */
|
||||
static void ump_capture(unsigned int reason)
|
||||
{
|
||||
volatile unsigned int *p;
|
||||
unsigned int i, commands, inputs, outputs;
|
||||
if (ump_state != 1 || Desk != dsk_LOAD || !READY) return;
|
||||
if (no_write || never_write) { ump_state = 3; return; }
|
||||
commands = Commands;
|
||||
inputs = ump_inputs(); outputs = ump_outputs();
|
||||
/* Freeze only an actual running-to-stopped output transition.
|
||||
* STOP is set before RES_OUT_2 is cleared in main; an interrupt can
|
||||
* observe these writes separately, so require its level, not its edge.
|
||||
* Repeated reset/STOP pulses while already stopped leave the archive. */
|
||||
if (!ump_post && (ump_prev_outputs & 4U) && !(outputs & 4U) &&
|
||||
(outputs & 2U)) {
|
||||
/* Keep 90% including the trigger; reserve 10% for later records. */
|
||||
if (ump_count >= UMP_LOG_CAPACITY - UMP_POST_POINTS)
|
||||
ump_count = UMP_LOG_CAPACITY - UMP_POST_POINTS - 1;
|
||||
ump_post = UMP_POST_POINTS;
|
||||
reason |= 0x100;
|
||||
}
|
||||
ump_prev_commands = commands; ump_prev_inputs = inputs; ump_prev_outputs = outputs;
|
||||
/* Every stored point counts, including CAN and I/O, except the trigger. */
|
||||
if (ump_post && !(reason & 0x100) && --ump_post == 0) reason = 5;
|
||||
p = logs_block + ((unsigned long)ump_bank * UMP_LOG_CAPACITY + ump_next) * UMP_LOG_WORDS;
|
||||
p[0] = (unsigned int)ump_time; p[1] = (unsigned int)(ump_time >> 16);
|
||||
p[2] = reason; p[3] = commands;
|
||||
p[4] = inputs; p[5] = outputs;
|
||||
p[6] = (unsigned int)IMPowse; p[7] = (unsigned int)WAKEpowse;
|
||||
p[8] = modbus[0x7B]; p[9] = modbus[0x1C];
|
||||
for (i = 0; i < 4; i++) { p[10+i] = sens_data[i]; p[14+i] = modbus[i]; }
|
||||
p[18] = ump_can_header;
|
||||
p[19] = ump_can_data[0]; p[20] = ump_can_data[1]; p[21] = ump_can_data[2];
|
||||
p[22] = ump_can_count; p[23] = CanTimeOutErrorTR;
|
||||
/* Èñõîäíûå óñòàâêè — ìÀ; ýôôåêòèâíûå óñòàâêè ïîñëå îãðàíè÷åíèé — 0.1 ìÀ.
|
||||
* p[8] — îòïðàâëåííûé êîä, à p[9] — ðàñ÷¸òíîå çàäàíèå, ÍÅ èçìåðåíèå òîêà. */
|
||||
p[24] = DAC_go; p[25] = DAC_stop;
|
||||
p[26] = DAC_min(); p[27] = DAC_max(); p[28] = DAC_cal();
|
||||
p[29] = DAC_04; p[30] = DAC_20;
|
||||
p[31] = ump_dac_ramp; p[32] = ump_dac_duration;
|
||||
p[33] = ump_dac_go10; p[34] = ump_dac_stop10; p[35] = ump_dac_position;
|
||||
for (i = 0; i < 4; i++) p[36+i] = ADC_table[i];
|
||||
p[40] = ump_pm67_voltage[0]; p[41] = ump_pm67_voltage[1];
|
||||
ump_next++;
|
||||
if (ump_next == UMP_LOG_CAPACITY) ump_next = 0;
|
||||
if (ump_count < UMP_LOG_CAPACITY) ump_count++;
|
||||
ump_sequence++;
|
||||
if (reason == 5) ump_freeze();
|
||||
}
|
||||
|
||||
/* Çàâåðø¸ííûé áàíê áîëüøå íå èçìåíÿåòñÿ äî ñëåäóþùåãî îòêëþ÷åíèÿ.
|
||||
* Íîìåð ïîêîëåíèÿ ïîçâîëÿåò GUI îáíàðóæèòü çàìåíó àðõèâà âî âðåìÿ ÷òåíèÿ. */
|
||||
static void ump_freeze(void)
|
||||
{
|
||||
ump_archive_bank = ump_bank;
|
||||
ump_archive_count = ump_count; ump_archive_next = ump_next;
|
||||
ump_generation++;
|
||||
ump_bank ^= 1;
|
||||
ump_count = 0; ump_next = 0; ump_post = 0;
|
||||
}
|
||||
|
||||
void ump_log_tick(void)
|
||||
{
|
||||
unsigned int saved = __disable_interrupts();
|
||||
if (ump_state == 1) {
|
||||
ump_time++;
|
||||
if (++ump_divider >= ump_period) { ump_divider = 0; ump_capture(1); }
|
||||
}
|
||||
__restore_interrupts(saved);
|
||||
}
|
||||
|
||||
/* Äîïîëíèòåëüíûé ñíèìîê òîëüêî ïðè èçìåíåíèè êîìàíä, âõîäîâ èëè âûõîäîâ.
|
||||
* Ýòî íå çàìåíÿåò ïåðèîäè÷åñêóþ çàïèñü àíàëîãîâûõ âåëè÷èí â òàéìåðå. */
|
||||
void ump_log_io(void)
|
||||
{
|
||||
unsigned int saved;
|
||||
if (ump_state != 1 || Desk != dsk_LOAD) return;
|
||||
saved = __disable_interrupts();
|
||||
if (Commands != ump_prev_commands || ump_inputs() != ump_prev_inputs ||
|
||||
ump_outputs() != ump_prev_outputs) ump_capture(3);
|
||||
__restore_interrupts(saved);
|
||||
}
|
||||
|
||||
/* Âûçûâàåòñÿ ïîñëå ïðèìåíåíèÿ ñëîâ ïðèíÿòîãî CAN-êàäðà: ñíèìîê ñîäåðæèò
|
||||
* íîâûå êîìàíäû, à òàêæå èñõîäíûé àäðåñ/ìàñêó è âñå òðè ñëîâà êàäðà. */
|
||||
void ump_log_can(unsigned int header, unsigned int a, unsigned int b, unsigned int c)
|
||||
{
|
||||
unsigned int saved, i, address, mask, data[3];
|
||||
if (Desk != dsk_LOAD) return;
|
||||
saved = __disable_interrupts();
|
||||
data[0] = a; data[1] = b; data[2] = c;
|
||||
address = header & 0x1FFFU;
|
||||
mask = 0x8000U;
|
||||
/* Track reception even while recording is stopped. Each mask bit
|
||||
* refers to its own address, including disabled words in between. */
|
||||
for (i = 0; i < 3; i++, address++, mask >>= 1) {
|
||||
if (!(header & mask)) continue;
|
||||
if (address == 305U) ump_pm67_voltage[0] = data[i];
|
||||
if (address == 8U) ump_pm67_voltage[1] = data[i];
|
||||
}
|
||||
if (ump_state != 1) { __restore_interrupts(saved); return; }
|
||||
ump_can_header = header;
|
||||
ump_can_data[0] = a; ump_can_data[1] = b; ump_can_data[2] = c;
|
||||
ump_can_count++;
|
||||
ump_capture(2);
|
||||
__restore_interrupts(saved);
|
||||
}
|
||||
|
||||
void ump_log_rs(void)
|
||||
{
|
||||
unsigned int saved = __disable_interrupts();
|
||||
ump_capture(4);
|
||||
__restore_interrupts(saved);
|
||||
}
|
||||
|
||||
/* Óïðàâëåíèå æóðíàëîì îòäåëåíî îò òåõíîëîãè÷åñêèõ êîìàíä: íà÷àëî çàïèñè
|
||||
* ÍÅ çàïóñêàåò ÓÌÏ. Âûáîð àðõèâà íå îñòàíàâëèâàåò òåêóùóþ çàïèñü. */
|
||||
int ump_log_write(unsigned int address, unsigned int value)
|
||||
{
|
||||
unsigned int saved, valid = 1;
|
||||
saved = __disable_interrupts();
|
||||
if (address == UMP_LOG_BASE && value == 0) {
|
||||
ump_state = 3; ump_post = 0;
|
||||
} else if (address == UMP_LOG_BASE && value == 1 && Desk == dsk_LOAD && READY && ump_state != 1) {
|
||||
ump_count = 0; ump_next = 0; ump_cursor = 0; ump_divider = 0; ump_post = 0;
|
||||
ump_source = 0;
|
||||
ump_prev_commands = Commands;
|
||||
ump_prev_inputs = ump_inputs(); ump_prev_outputs = ump_outputs();
|
||||
no_write = 0; never_write = 0;
|
||||
ump_state = 1;
|
||||
ump_capture(1);
|
||||
}
|
||||
else if (address == UMP_LOG_BASE+1 && ump_state != 1 && value >= 1 && value <= 1000)
|
||||
ump_period = value;
|
||||
else if (address == UMP_LOG_BASE+2 && value < UMP_LOG_CAPACITY)
|
||||
ump_cursor = value;
|
||||
else if (address == UMP_LOG_BASE+3 && value <= 1) ump_source = value;
|
||||
else valid = 0;
|
||||
__restore_interrupts(saved);
|
||||
return valid;
|
||||
}
|
||||
|
||||
/* Ïðåîáðàçîâàíèå õðîíîëîãè÷åñêîãî èíäåêñà â ôèçè÷åñêóþ ïîçèöèþ êîëüöà.
|
||||
* Äëÿ àðõèâà ñîõðàíåíû ñîáñòâåííûå count/next, íåçàâèñèìûå îò æèâîãî áàíêà. */
|
||||
static unsigned int ump_word(unsigned int archived, unsigned int record, unsigned int word)
|
||||
{
|
||||
unsigned int count = archived ? ump_archive_count : ump_count;
|
||||
unsigned int next = archived ? ump_archive_next : ump_next;
|
||||
unsigned int bank = archived ? ump_archive_bank : ump_bank;
|
||||
unsigned int slot;
|
||||
if (record >= count) return 0;
|
||||
slot = next + UMP_LOG_CAPACITY - count + record;
|
||||
while (slot >= UMP_LOG_CAPACITY) slot -= UMP_LOG_CAPACITY;
|
||||
return logs_block[((unsigned long)bank * UMP_LOG_CAPACITY + slot) * UMP_LOG_WORDS + word];
|
||||
}
|
||||
|
||||
/* Âåñü Modbus-áëîê ÷èòàåòñÿ âûçûâàþùèì êîäîì ïîä îäíîé áëîêèðîâêîé IRQ.
|
||||
* Ïîýòîìó timestamp/äàííûå è çàãîëîâîê îíëàéí-áëîêà îòíîñÿòñÿ ê îäíîìó
|
||||
* ñîñòîÿíèþ êîëüöà, äàæå åñëè â ýòîò ìîìåíò ïðèõîäèò íîâàÿ CAN-êîìàíäà. */
|
||||
unsigned int ump_log_read(unsigned int address)
|
||||
{
|
||||
unsigned int offset, count;
|
||||
unsigned long first;
|
||||
switch (address) {
|
||||
case UMP_LOG_BASE: return 0x554D;
|
||||
case UMP_LOG_BASE+1: return 3;
|
||||
case UMP_LOG_BASE+2: return ump_source ? 3 : ump_state;
|
||||
case UMP_LOG_BASE+3: return ump_source ? ump_archive_count : ump_count;
|
||||
case UMP_LOG_BASE+4: return UMP_LOG_WORDS;
|
||||
case UMP_LOG_BASE+5: return UMP_LOG_CAPACITY;
|
||||
case UMP_LOG_BASE+6: return ump_period;
|
||||
case UMP_LOG_BASE+7: return (unsigned int)ump_time;
|
||||
case UMP_LOG_BASE+8: return (unsigned int)(ump_time >> 16);
|
||||
case UMP_LOG_BASE+9: return Desk;
|
||||
case UMP_LOG_BASE+10: return Mode;
|
||||
case UMP_LOG_BASE+11: return (unsigned int)READY_FREQ;
|
||||
case UMP_LOG_BASE+12: return ump_generation;
|
||||
case UMP_LOG_BASE+13: return ump_archive_count;
|
||||
/* Preserve the legacy millisecond status field as an upper estimate.
|
||||
* Additional event records may finish the post interval sooner. */
|
||||
case UMP_LOG_BASE+14:
|
||||
first = (unsigned long)ump_post * ump_period;
|
||||
return first > 65535UL ? 65535U : (unsigned int)first;
|
||||
case UMP_LOG_BASE+15: return ump_state;
|
||||
}
|
||||
if (address >= UMP_LOG_DATA && address < UMP_LOG_DATA+120 && (ump_source || ump_state != 1)) {
|
||||
offset = address - UMP_LOG_DATA;
|
||||
return ump_word(ump_source, ump_cursor + offset / UMP_LOG_WORDS, offset % UMP_LOG_WORDS);
|
||||
}
|
||||
/* Ïîñëåäíèå òðè çàïèñè äëÿ îíëàéí-ãðàôèêà, áåç îñòàíîâêè è áåç
|
||||
* èçìåíåíèÿ êóðñîðà àðõèâíîãî ÷òåíèÿ. Ïåðâûå äâà ñëîâà — èõ íîìåð. */
|
||||
if (address >= UMP_LOG_LIVE && address < UMP_LOG_LIVE+124) {
|
||||
count = ump_count < UMP_LOG_LIVE_RECORDS ? ump_count : UMP_LOG_LIVE_RECORDS;
|
||||
first = ump_sequence - count;
|
||||
offset = address - UMP_LOG_LIVE;
|
||||
if (offset == 0) return (unsigned int)first;
|
||||
if (offset == 1) return (unsigned int)(first >> 16);
|
||||
if (offset == 2) return count;
|
||||
if (offset == 3) return ump_generation;
|
||||
offset -= 4;
|
||||
if (offset / UMP_LOG_WORDS < count)
|
||||
return ump_word(0, ump_count - count + offset / UMP_LOG_WORDS, offset % UMP_LOG_WORDS);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -39,8 +39,6 @@ void main()
|
||||
{
|
||||
int i,j,mask;
|
||||
static unsigned int cancount[2], cancell[2], rscount;
|
||||
static int preCstart=1,preCstop=1;
|
||||
int umpstart,umpstop;
|
||||
RS_DATA * rs;
|
||||
int presbyt=0;
|
||||
|
||||
@@ -82,6 +80,8 @@ void main()
|
||||
unsetup_leds_line();
|
||||
|
||||
clear_mem();
|
||||
ump_log_init();
|
||||
Load_control_init(); /* Explicit initialization before IRQ. */
|
||||
set_cntrl_addr(Mode,16);
|
||||
timer_Init();
|
||||
EnableInterrupts();
|
||||
@@ -109,6 +109,8 @@ void main()
|
||||
|
||||
while(1)
|
||||
{
|
||||
/* ×òåíèå ëîããåðà ïî CAN íå áëîêèðóåò öèêë óïðàâëåíèÿ. */
|
||||
UMP_CAN_service();
|
||||
if(CanGO)
|
||||
{
|
||||
CanGO=0;
|
||||
@@ -175,27 +177,11 @@ void main()
|
||||
presbyt = bTermoCal;
|
||||
}
|
||||
|
||||
if(Desk==dsk_LOAD)
|
||||
{
|
||||
umpstart = cUMPstart;
|
||||
umpstop = cUMPreset;
|
||||
/* Timer1 owns START/STOP/permission and the DAC ramp together.
|
||||
* Main must not re-enable the output during a protected reload. */
|
||||
|
||||
if(umpstart & !preCstart)
|
||||
{
|
||||
set_START_DPTB(); set_RES_OUT_2();
|
||||
IMPowse = READY_FREQ;
|
||||
}
|
||||
preCstart = umpstart;
|
||||
|
||||
if(umpstop & !preCstop)
|
||||
{
|
||||
set_STOP_DPTB(); clear_RES_OUT_2();
|
||||
IMPowse = READY_FREQ;
|
||||
}
|
||||
preCstop = umpstop;
|
||||
|
||||
if(!IMPowse) { clear_START_DPTB(); clear_STOP_DPTB(); }
|
||||
}
|
||||
/* Ñíèìîê ïîñëå îáíîâëåíèÿ âõîäîâ è ôîðìèðîâàíèÿ ïóñêîâûõ âûõîäîâ. */
|
||||
ump_log_io();
|
||||
|
||||
for(i=0;i<2;i++)
|
||||
{
|
||||
|
||||
@@ -130,6 +130,9 @@ interrupt void cpu_timer1_isr_SENS(void)
|
||||
|
||||
EALLOW;
|
||||
CpuTimer1.InterruptCount++;
|
||||
#if RS232_USE_FIFO
|
||||
RS_FifoTick1ms();
|
||||
#endif
|
||||
IER |= M_INT13; // Set "global" priority
|
||||
IER &= MINT13; // Set "global" priority
|
||||
EINT;
|
||||
@@ -151,6 +154,8 @@ interrupt void cpu_timer1_isr_SENS(void)
|
||||
if(Desk==dsk_LOAD)
|
||||
{
|
||||
Load_runner();
|
||||
/* Áàçà âðåìåíè 1 ìñ; ñíèìîê ñîäåðæèò ðåçóëüòàò òåêóùåãî øàãà ÖÀÏ. */
|
||||
ump_log_tick();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -412,7 +417,7 @@ void Init_packMask()
|
||||
if(Desk==dsk_LOAD)
|
||||
{ Maska[m_SLOW][7]|= 0x0030; // Êàëèáðîâêà ÖÀÏ
|
||||
Maska[m_SLOW][5]|= 0x0003; // Íà÷àëî è êîíåö çàðàäà
|
||||
Maska[m_FAST][7]|= 0xE000; // Дублировать команды
|
||||
Maska[m_FAST][7]|= 0xF000; /* Protection status 0x7C + attempts 0x7D. */ // Äóáëèðîâàòü êîìàíäû
|
||||
Maska[m_FAST][1]|= 0x3000; // Óïðàâëàþùèé òîê ÑÈÔÓ
|
||||
} }
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#include "eeprom_config.h"
|
||||
#include "include/balsam167_eeprom_block.h"
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
#include "package.h"
|
||||
#include "RS485.h"
|
||||
@@ -17,6 +19,14 @@
|
||||
#include "spise2p.h"
|
||||
|
||||
#include "caliber.h"
|
||||
#include "log_to_mem.h"
|
||||
#include "DAC.h"
|
||||
#include "ump_tms28335.h"
|
||||
#include "gas167.h"
|
||||
#include "include/balsam167_eeprom_layout.h"
|
||||
#if (ANSWER_LEN + 1) != BALSAM167_EEPROM_PARAM_WORDS
|
||||
#error EEPROM_parameter_reservation_must_match_ANSWER_LEN
|
||||
#endif
|
||||
|
||||
int modbus[ANSWER_LEN+1];
|
||||
unsigned int param[ANSWER_LEN+1];
|
||||
@@ -124,6 +134,7 @@ void Default_params()
|
||||
|
||||
// Ïðèøëî âðåìà!
|
||||
DAC_go = 6; // íà÷àëî çàðàäà
|
||||
LOAD_CAN_TIMEOUT = 2000; /* ms without fresh ZPT: freeze ramp. */
|
||||
DAC_stop= 16; // êîíåö çàðàäà
|
||||
|
||||
}
|
||||
@@ -139,7 +150,7 @@ void Load_params()
|
||||
{
|
||||
unsigned int i,crc;
|
||||
|
||||
Seeprom_read(0x3FFF-(ANSWER_LEN+1), param, (ANSWER_LEN+1)*2);
|
||||
Seeprom_read(BALSAM167_EEPROM_PARAMS_START_WORD, param, (ANSWER_LEN+1)*2);
|
||||
crc = get_crc16(param,ANSWER_LEN);
|
||||
if( (crc==param[ANSWER_LEN]) &&
|
||||
(crc !=0xFFFF) &&
|
||||
@@ -172,7 +183,7 @@ void Save_params()
|
||||
if(dif)
|
||||
{
|
||||
param[ANSWER_LEN] = get_crc16(param,ANSWER_LEN);
|
||||
Seeprom_write(0x3FFF-(ANSWER_LEN+1),param,(ANSWER_LEN+1)*2);
|
||||
Seeprom_write(BALSAM167_EEPROM_PARAMS_START_WORD,param,(ANSWER_LEN+1)*2);
|
||||
} }
|
||||
|
||||
/***************************************************************/
|
||||
@@ -182,15 +193,84 @@ void Save_params()
|
||||
/***************************************************************/
|
||||
/***************************************************************/
|
||||
|
||||
static void modbus_exception(RS_DATA *rs_arr, unsigned int function, unsigned int error)
|
||||
{
|
||||
unsigned int crc;
|
||||
rs_arr->buffer[0] = CNTRL_ADDR;
|
||||
rs_arr->buffer[1] = function | 0x80;
|
||||
rs_arr->buffer[2] = error;
|
||||
crc = get_crc_16(0xFFFF, rs_arr->buffer, 3);
|
||||
rs_arr->buffer[3] = LOBYTE(crc); rs_arr->buffer[4] = HIBYTE(crc);
|
||||
rs_arr->flag_TIMEOUT_to_Send = true;
|
||||
RS_Send(rs_arr, rs_arr->buffer, 5);
|
||||
}
|
||||
|
||||
/* UART parser has already validated CRC and accepted the device address. */
|
||||
static int receive_ump(RS_DATA *rs_arr)
|
||||
{
|
||||
unsigned int address, value, saved, length, count, error;
|
||||
/* Main-loop only; encoded into the UART buffer before the next request.
|
||||
* Keep the 124-word snapshot off the shared interrupt stack. */
|
||||
static uint16_t words[UMP_MAX_WORDS];
|
||||
address = (rs_arr->RS_Header[2] << 8) | rs_arr->RS_Header[3];
|
||||
if (address < UMP_BASE) return 0;
|
||||
value = (rs_arr->RS_Header[4] << 8) | rs_arr->RS_Header[5];
|
||||
/* SPI driver advances in Timer2 ISR: NEVER mask interrupts here.
|
||||
* Reuse the existing snapshot buffer; the main loop owns this transaction.
|
||||
* The shared validator rejects writes, wraparound and out-of-device reads. */
|
||||
if (address >= 0x1300U && address < 0x1308U) {
|
||||
count = Load_protection_prepare(rs_arr->RS_Header[1], address, value, words, &error);
|
||||
} else if (address >= BALSAM167_EEPROM_RTU_BASE) {
|
||||
error = 2;
|
||||
#if EEPROM_M95M02
|
||||
/* Exception 3 prevents old AT-profile clients from falling back to
|
||||
* legacy PEEK after a profile mismatch. No SPI transaction is issued. */
|
||||
if (!(value & BALSAM167_EEPROM_M95_MARKER)) error = 3;
|
||||
#endif
|
||||
count = 0;
|
||||
if (balsam167_eeprom_block_valid(rs_arr->RS_Header[1], address, value)) {
|
||||
#if EEPROM_M95M02
|
||||
count = value & 255U;
|
||||
Seeprom_read(balsam167_eeprom_block_word(address, value), words, count * 2);
|
||||
#else
|
||||
count = value;
|
||||
Seeprom_read(address - BALSAM167_EEPROM_RTU_BASE, words, count * 2);
|
||||
#endif
|
||||
error = 0;
|
||||
}
|
||||
} else {
|
||||
saved = __disable_interrupts();
|
||||
#if EEPROM_M95M02
|
||||
if (gas167_contains(address))
|
||||
count = gas167_prepare(rs_arr->RS_Header[1], address, value, 0, words, &error);
|
||||
else
|
||||
#endif
|
||||
count = ump_tms28335_capture(rs_arr->RS_Header[1], address, value, words, &error);
|
||||
__restore_interrupts(saved);
|
||||
}
|
||||
length = ump_rtu_encode(CNTRL_ADDR, rs_arr->RS_Header[1], error,
|
||||
words, count, rs_arr->buffer, MAX_SEND_LENGTH);
|
||||
if (length) {
|
||||
rs_arr->flag_TIMEOUT_to_Send = true;
|
||||
RS_Send(rs_arr, rs_arr->buffer, length);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
void ReceiveCommandModbus3(RS_DATA *rs_arr)
|
||||
{
|
||||
unsigned int crc, Address_MB, Length_MB, i;
|
||||
unsigned int crc, Address_MB, Length_MB, i, value;
|
||||
if (receive_ump(rs_arr)) return;
|
||||
|
||||
// ïîëó÷èëè íà÷àëüíûé àäðåñ ÷òåíèà
|
||||
Address_MB =/*(rs_arr->RS_Header[2] << 8) |*/ rs_arr->RS_Header[3];
|
||||
Address_MB = (rs_arr->RS_Header[2] << 8) | rs_arr->RS_Header[3];
|
||||
|
||||
// ïîëó÷èëè êîëè÷åñòâî ñëîâ äàííûõ
|
||||
Length_MB = (rs_arr->RS_Header[4] << 8) | rs_arr->RS_Header[5];
|
||||
if (!Length_MB || Length_MB > 125 ||
|
||||
!(Address_MB < ANSWER_LEN && Length_MB <= ANSWER_LEN-Address_MB)) {
|
||||
modbus_exception(rs_arr, CMD_MODBUS_3, 2); return;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// Îòñûëêà
|
||||
@@ -200,10 +280,13 @@ void ReceiveCommandModbus3(RS_DATA *rs_arr)
|
||||
rs_arr->buffer[1] = CMD_MODBUS_3;
|
||||
rs_arr->buffer[2] = Length_MB*2;
|
||||
|
||||
/* Çàùèùàåì öåëîñòíîñòü îäíîãî ñíèìêà/áëîêà; ïåðåäà÷à UART èä¸ò óæå
|
||||
* ñ ðàçðåø¸ííûìè ïðåðûâàíèÿìè è íå çàäåðæèâàåò èçìåðåíèå/óïðàâëåíèå. */
|
||||
for (i=0;i<Length_MB;i++)
|
||||
{
|
||||
rs_arr->buffer[3+i*2 ]=(Modbus[Address_MB+i].byt.byte_hi);
|
||||
rs_arr->buffer[3+i*2+1]=(Modbus[Address_MB+i].byt.byte_lo);
|
||||
value = modbus[Address_MB+i];
|
||||
rs_arr->buffer[3+i*2] = (value >> 8) & 0xFF;
|
||||
rs_arr->buffer[3+i*2+1] = value & 0xFF;
|
||||
}
|
||||
|
||||
crc = 0xffff;
|
||||
@@ -218,7 +301,10 @@ void ReceiveCommandModbus3(RS_DATA *rs_arr)
|
||||
rs_arr->buffer[Length_MB*2+8] = 0;
|
||||
|
||||
rs_arr->flag_TIMEOUT_to_Send=true;
|
||||
RS_Send(rs_arr, rs_arr->buffer, Length_MB*2+8);
|
||||
/* Ðàñøèðåíèå ëîããåðà îòâå÷àåò òî÷íûì êàäðîì Modbus áåç õâîñòîâûõ
|
||||
* íóëåé: îíè èíà÷å ïîïàëè áû â íà÷àëî îòâåòà ñëåäóþùåãî áëîêà GUI.
|
||||
* Èñòîðè÷åñêèé ôîðìàò òåõíîëîãè÷åñêèõ ðåãèñòðîâ îñòàâëåí ïðåæíèì. */
|
||||
RS_Send(rs_arr, rs_arr->buffer, Length_MB*2+8);
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -226,6 +312,7 @@ void ReceiveCommandModbus3(RS_DATA *rs_arr)
|
||||
void ReceiveCommandModbus6(RS_DATA *rs_arr)
|
||||
{
|
||||
unsigned int Address_MB, Data_MB, i;
|
||||
if (receive_ump(rs_arr)) return;
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// Îòñûëêà
|
||||
@@ -236,12 +323,22 @@ void ReceiveCommandModbus6(RS_DATA *rs_arr)
|
||||
|
||||
|
||||
// ïîëó÷èëè íà÷àëüíûé àäðåñ çàïèñè
|
||||
Address_MB = (/*(rs_arr->RS_Header[2] << 8) | */rs_arr->RS_Header[3]);
|
||||
Address_MB = (rs_arr->RS_Header[2] << 8) | rs_arr->RS_Header[3];
|
||||
|
||||
// ïîëó÷èëè ñëîâî äàííûõ
|
||||
Data_MB = (rs_arr->RS_Header[4] << 8) | rs_arr->RS_Header[5];
|
||||
|
||||
Modbus[Address_MB].all = Data_MB;
|
||||
if (Desk == dsk_LOAD && (Address_MB == 0x7CU || Address_MB == 0x7DU)) {
|
||||
modbus_exception(rs_arr, CMD_MODBUS_6, 2); return;
|
||||
}
|
||||
if (Desk == dsk_LOAD && Address_MB == 0x52U &&
|
||||
(Data_MB == 0U || Data_MB > 60000U)) {
|
||||
modbus_exception(rs_arr, CMD_MODBUS_6, 3); return;
|
||||
}
|
||||
if (Address_MB < ANSWER_LEN) {
|
||||
Modbus[Address_MB].all = Data_MB;
|
||||
if (Address_MB == 127) ump_log_rs();
|
||||
} else { modbus_exception(rs_arr, CMD_MODBUS_6, 2); return; }
|
||||
|
||||
rs_arr->flag_TIMEOUT_to_Send=true;
|
||||
RS_Send(rs_arr, rs_arr->buffer, 10);
|
||||
|
||||
7
Source/Internal/shared_ump.c
Normal file
7
Source/Internal/shared_ump.c
Normal file
@@ -0,0 +1,7 @@
|
||||
/* Build the canonical sources directly; do not copy their implementations. */
|
||||
#include "../firmware-info/src/firmware_info_static.c"
|
||||
/* Bind only this PM35 application's identity. The shared transport still owns
|
||||
* range checks, read-only access, CRC and CAN fragment packing. */
|
||||
#define UMP_FIRMWARE_INFO_READ firmware_info_static_read
|
||||
#include "src/ump_protocol.c"
|
||||
#include "ports/tms320f28335/ump_tms28335.c"
|
||||
@@ -1,16 +1,3 @@
|
||||
/*=================================================================
|
||||
File name : SPISE2PD.C
|
||||
|
||||
Originator : Settu Duraisamy
|
||||
C2000 Applications Team
|
||||
Texas Instruments
|
||||
|
||||
Description : This file contains the SPI bus Serial EEPROM driver
|
||||
implemented using Virtual SPI driver
|
||||
|
||||
Date : 6/30/2003 (DD/MM/YYYY)
|
||||
====================================================================*/
|
||||
|
||||
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
|
||||
|
||||
#include "spise2p.h"
|
||||
@@ -32,12 +19,18 @@ int ccc=0;
|
||||
/******* SPI bus Serial EEPROM driver Initialization routine ********/
|
||||
/********************************************************************/
|
||||
|
||||
void Seeprom_write( unsigned int adres,
|
||||
void Seeprom_write( SE2P_SIZE adres,
|
||||
unsigned int buf[],
|
||||
unsigned int size)
|
||||
SE2P_SIZE size)
|
||||
{
|
||||
unsigned int len;
|
||||
|
||||
#if EEPROM_M95M02
|
||||
/* Bound physical accesses before byte-to-word rounding. Legacy 32-KiB
|
||||
* callers retain their compact driver; EXTEND is checked independently. */
|
||||
if (adres >= PROM_LEN || !size || size > (PROM_LEN-adres)*2) return;
|
||||
#endif
|
||||
|
||||
CpuTimer2.InterruptCount=0;
|
||||
CpuTimer2Regs.TCR.all = 0x4020; // Use write-only instruction to set TSS bit = 0
|
||||
|
||||
@@ -63,12 +56,18 @@ void Seeprom_write( unsigned int adres,
|
||||
CpuTimer2Regs.TCR.all = 0x4010; // Use write-only instruction to set TSS bit = 1
|
||||
}
|
||||
|
||||
void Seeprom_read( unsigned int adres,
|
||||
void Seeprom_read( SE2P_SIZE adres,
|
||||
unsigned int buf[],
|
||||
unsigned int size)
|
||||
SE2P_SIZE size)
|
||||
{
|
||||
unsigned int len;
|
||||
|
||||
#if EEPROM_M95M02
|
||||
/* Bound physical accesses before byte-to-word rounding. Legacy 32-KiB
|
||||
* callers retain their compact driver; EXTEND is checked independently. */
|
||||
if (adres >= PROM_LEN || !size || size > (PROM_LEN-adres)*2) return;
|
||||
#endif
|
||||
|
||||
CpuTimer2.InterruptCount=0;
|
||||
CpuTimer2Regs.TCR.all = 0x4020; // Use write-only instruction to set TSS bit = 0
|
||||
|
||||
@@ -257,6 +256,15 @@ void SPISE2P_DRV_tick(SPISE2P_DRV *eeprom)
|
||||
case 5:
|
||||
/* Send Address */
|
||||
|
||||
#if EEPROM_M95M02
|
||||
SpiaRegs.SPICCR.all=SPISE2P_TFR8BIT;
|
||||
SpiaRegs.SPITXBUF=(unsigned int)(eeprom->msgPtr->se2pAddr >> 16) << 8;
|
||||
step=20;
|
||||
break;
|
||||
case 20:
|
||||
if (!SpiaRegs.SPISTS.bit.INT_FLAG) break;
|
||||
dummy=SpiaRegs.SPIRXBUF;
|
||||
#endif
|
||||
#if(SPISE2P_ADDR_WIDTH==SIXTEEN_BIT)
|
||||
SpiaRegs.SPICCR.all= SPISE2P_TFR16BIT;
|
||||
SpiaRegs.SPITXBUF=eeprom->msgPtr->se2pAddr;
|
||||
@@ -387,7 +395,16 @@ void SPISE2P_DRV_tick(SPISE2P_DRV *eeprom)
|
||||
case 15:
|
||||
/* Send Address */
|
||||
|
||||
#if(SPISE2P_ADDR_WIDTH==SIXTEEN_BIT)
|
||||
#if EEPROM_M95M02
|
||||
SpiaRegs.SPICCR.all=SPISE2P_TFR8BIT;
|
||||
SpiaRegs.SPITXBUF=(unsigned int)(eeprom->msgPtr->se2pAddr >> 16) << 8;
|
||||
step=21;
|
||||
break;
|
||||
case 21:
|
||||
if (!SpiaRegs.SPISTS.bit.INT_FLAG) break;
|
||||
dummy=SpiaRegs.SPIRXBUF;
|
||||
#endif
|
||||
#if(SPISE2P_ADDR_WIDTH==SIXTEEN_BIT)
|
||||
SpiaRegs.SPICCR.all= SPISE2P_TFR16BIT;
|
||||
SpiaRegs.SPITXBUF=eeprom->msgPtr->se2pAddr;
|
||||
#endif
|
||||
|
||||
1176
UKSSTMS320F28335.map
1176
UKSSTMS320F28335.map
@@ -1,10 +1,10 @@
|
||||
******************************************************************************
|
||||
TMS320C2000 Linker PC v22.6.1
|
||||
TMS320C2000 Linker PC v22.6.0
|
||||
******************************************************************************
|
||||
>> Linked Tue Sep 22 07:49:31 2026
|
||||
>> Linked Thu Oct 1 18:01:50 2026
|
||||
|
||||
OUTPUT FILE NAME: <C:/Dima/Project/Balsam_167/UKSSTMS320F28335/../bin/UKSSTMS320F28335.out>
|
||||
ENTRY POINT SYMBOL: "_c_int00" address: 0000b198
|
||||
OUTPUT FILE NAME: <K:/git_project/Balsam_167_periph/UKSSTMS320F28335/../bin/UKSSTMS320F28335.out>
|
||||
ENTRY POINT SYMBOL: "_c_int00" address: 0000b9b5
|
||||
|
||||
|
||||
MEMORY CONFIGURATION
|
||||
@@ -13,8 +13,8 @@ MEMORY CONFIGURATION
|
||||
---------------------- -------- --------- -------- -------- ---- --------
|
||||
PAGE 0:
|
||||
ZONE0 00004000 00001000 00000000 00001000 RWIX
|
||||
RAML0 00008000 00004000 000035e2 00000a1e RWIX
|
||||
RAML4 0000c000 00001000 0000013a 00000ec6 RWIX
|
||||
RAML0 00008000 00004000 00003b73 0000048d RWIX
|
||||
RAML4 0000c000 00001000 000003f8 00000c08 RWIX
|
||||
ZONE6 00100000 00100000 00000000 00100000 RWIX
|
||||
FLASHH 00300000 00008000 00000000 00008000 RWIX
|
||||
FLASHG 00308000 00008000 00000000 00008000 RWIX
|
||||
@@ -87,7 +87,7 @@ PAGE 1:
|
||||
SCIB 00007750 00000010 00000010 00000000 RWIX
|
||||
SCIC 00007770 00000010 00000010 00000000 RWIX
|
||||
I2CA 00007900 00000040 00000022 0000001e RWIX
|
||||
RAML5 0000d000 00003000 00000f38 000020c8 RWIX
|
||||
RAML5 0000d000 00003000 00000fdf 00002021 RWIX
|
||||
ZONE7A 00200000 0000fc00 0000fa00 00000200 RWIX
|
||||
ZONE7B 0020fc00 00000400 00000000 00000400 RWIX
|
||||
FLASHB 00330000 00008000 00000000 00008000 RWIX
|
||||
@@ -100,89 +100,97 @@ SECTION ALLOCATION MAP
|
||||
output attributes/
|
||||
section page origin length input sections
|
||||
-------- ---- ---------- ---------- ----------------
|
||||
.cinit 0 0000b35f 00000283
|
||||
0000b35f 00000103 crc16.obj (.cinit:_crc_16_tab)
|
||||
0000b462 00000043 message.obj (.cinit:_def_cal)
|
||||
0000b4a5 0000003d measure.obj (.cinit)
|
||||
0000b4e2 00000020 peripher.obj (.cinit)
|
||||
0000b502 0000001f spise2p.obj (.cinit)
|
||||
0000b521 0000001c ecan.obj (.cinit)
|
||||
0000b53d 00000015 measure.obj (.cinit:_powK)
|
||||
0000b552 00000013 kanal.obj (.cinit:_digits)
|
||||
0000b565 00000011 pulto.obj (.cinit)
|
||||
0000b576 00000010 DAC.obj (.cinit)
|
||||
0000b586 0000000c log_to_mem.obj (.cinit)
|
||||
0000b592 0000000a rts2800_fpu32.lib : _lock.obj (.cinit)
|
||||
0000b59c 0000000a : exit.obj (.cinit)
|
||||
0000b5a6 00000008 ADC.obj (.cinit)
|
||||
0000b5ae 00000008 kanal.obj (.cinit:_readr)
|
||||
0000b5b6 00000008 cntrl_adr.obj (.cinit)
|
||||
0000b5be 00000008 main.obj (.cinit)
|
||||
0000b5c6 00000005 ADC.obj (.cinit:_cwnt_ok$4)
|
||||
0000b5cb 00000005 measure.obj (.cinit:_low_count)
|
||||
0000b5d0 00000004 RS485.obj (.cinit)
|
||||
0000b5d4 00000004 RS485.obj (.cinit:_RS_Len)
|
||||
0000b5d8 00000004 bios.obj (.cinit)
|
||||
0000b5dc 00000004 rts2800_fpu32.lib : errno.obj (.cinit)
|
||||
0000b5e0 00000002 --HOLE-- [fill = 0]
|
||||
.cinit 0 0000c000 0000028b
|
||||
0000c000 00000103 crc16.obj (.cinit:_crc_16_tab)
|
||||
0000c103 00000043 message.obj (.cinit:_def_cal)
|
||||
0000c146 0000003d measure.obj (.cinit)
|
||||
0000c183 00000020 peripher.obj (.cinit)
|
||||
0000c1a3 0000001f spise2p.obj (.cinit)
|
||||
0000c1c2 0000001c ecan.obj (.cinit)
|
||||
0000c1de 00000015 measure.obj (.cinit:_powK)
|
||||
0000c1f3 00000014 log_to_mem.obj (.cinit)
|
||||
0000c207 00000013 kanal.obj (.cinit:_digits)
|
||||
0000c21a 00000011 pulto.obj (.cinit)
|
||||
0000c22b 00000010 DAC.obj (.cinit)
|
||||
0000c23b 0000000a rts2800_fpu32.lib : _lock.obj (.cinit)
|
||||
0000c245 0000000a : exit.obj (.cinit)
|
||||
0000c24f 00000008 ADC.obj (.cinit)
|
||||
0000c257 00000008 kanal.obj (.cinit:_readr)
|
||||
0000c25f 00000008 cntrl_adr.obj (.cinit)
|
||||
0000c267 00000008 main.obj (.cinit)
|
||||
0000c26f 00000005 ADC.obj (.cinit:_cwnt_ok$4)
|
||||
0000c274 00000005 measure.obj (.cinit:_low_count)
|
||||
0000c279 00000004 RS485.obj (.cinit)
|
||||
0000c27d 00000004 RS485.obj (.cinit:_RS_Len)
|
||||
0000c281 00000004 bios.obj (.cinit)
|
||||
0000c285 00000004 rts2800_fpu32.lib : errno.obj (.cinit)
|
||||
0000c289 00000002 --HOLE-- [fill = 0]
|
||||
|
||||
.pinit 0 00008000 00000000 UNINITIALIZED
|
||||
|
||||
.text 0 00008000 0000335f
|
||||
.text 0 00008000 00003b73
|
||||
00008000 000008e6 measure.obj (.text)
|
||||
000088e6 00000711 DSP2833x_SWPrioritizedDefaultIsr.obj (.text:retain)
|
||||
00008ff7 000003c3 peripher.obj (.text)
|
||||
000093ba 000003bd RS485.obj (.text)
|
||||
00009777 000002bf bios.obj (.text)
|
||||
00009a36 00000279 message.obj (.text)
|
||||
00009caf 0000025b spise2p.obj (.text)
|
||||
00009f0a 0000024d main.obj (.text)
|
||||
0000a157 000001f3 ADC.obj (.text:retain)
|
||||
0000a34a 000001c3 measure.obj (.text:retain)
|
||||
0000a50d 00000196 ADC.obj (.text)
|
||||
0000a6a3 0000016c kanal.obj (.text)
|
||||
0000a80f 00000163 DAC.obj (.text)
|
||||
0000a972 0000015d DSP2833x_SysCtrl.obj (.text)
|
||||
0000aacf 00000151 pulto.obj (.text:retain)
|
||||
0000ac20 00000139 ecan.obj (.text)
|
||||
0000ad59 00000114 RS485.obj (.text:retain)
|
||||
0000ae6d 0000010c DSP2833x_Xintf.obj (.text)
|
||||
0000af79 00000088 rts2800_fpu32.lib : fs_div.obj (.text)
|
||||
0000b001 00000075 crc16.obj (.text)
|
||||
0000b076 00000075 ecan.obj (.text:retain)
|
||||
0000b0eb 0000005e DSP2833x_CpuTimers.obj (.text)
|
||||
0000b149 0000004f tools.obj (.text)
|
||||
0000b198 00000046 rts2800_fpu32.lib : boot.obj (.text)
|
||||
0000b1de 00000039 spise2p.obj (.text:retain)
|
||||
0000b217 00000037 filter_bat2.obj (.text)
|
||||
0000b24e 0000002a rts2800_fpu32.lib : l_div.obj (.text)
|
||||
0000b278 00000028 DSP2833x_PieCtrl.obj (.text)
|
||||
0000b2a0 00000020 rts2800_fpu32.lib : sqrt.obj (.text)
|
||||
0000b2c0 0000001d pulto.obj (.text)
|
||||
0000b2dd 0000001b rts2800_fpu32.lib : args_main.obj (.text)
|
||||
0000b2f8 00000019 DSP2833x_Adc.obj (.text)
|
||||
0000b311 00000019 rts2800_fpu32.lib : exit.obj (.text)
|
||||
0000b32a 00000015 log_to_mem.obj (.text)
|
||||
0000b33f 0000000e DSP2833x_SWPrioritizedPieVect.obj (.text)
|
||||
0000b34d 00000009 rts2800_fpu32.lib : _lock.obj (.text)
|
||||
0000b356 00000005 cntrl_adr.obj (.text)
|
||||
0000b35b 00000004 DSP2833x_usDelay.obj (.text)
|
||||
00009777 0000037f log_to_mem.obj (.text)
|
||||
00009af6 00000325 message.obj (.text)
|
||||
00009e1b 00000309 shared_ump.obj (.text)
|
||||
0000a124 000002bf bios.obj (.text)
|
||||
0000a3e3 0000025b spise2p.obj (.text)
|
||||
0000a63e 0000024d main.obj (.text)
|
||||
0000a88b 000001f9 ecan.obj (.text)
|
||||
0000aa84 000001f3 ADC.obj (.text:retain)
|
||||
0000ac77 000001c5 measure.obj (.text:retain)
|
||||
0000ae3c 00000196 ADC.obj (.text)
|
||||
0000afd2 0000018a DAC.obj (.text)
|
||||
0000b15c 0000016c kanal.obj (.text)
|
||||
0000b2c8 0000015d DSP2833x_SysCtrl.obj (.text)
|
||||
0000b425 00000151 pulto.obj (.text:retain)
|
||||
0000b576 00000114 RS485.obj (.text:retain)
|
||||
0000b68a 0000010c DSP2833x_Xintf.obj (.text)
|
||||
0000b796 00000088 rts2800_fpu32.lib : fs_div.obj (.text)
|
||||
0000b81e 00000075 crc16.obj (.text)
|
||||
0000b893 00000075 ecan.obj (.text:retain)
|
||||
0000b908 0000005e DSP2833x_CpuTimers.obj (.text)
|
||||
0000b966 0000004f tools.obj (.text)
|
||||
0000b9b5 00000046 rts2800_fpu32.lib : boot.obj (.text)
|
||||
0000b9fb 00000039 spise2p.obj (.text:retain)
|
||||
0000ba34 00000037 filter_bat2.obj (.text)
|
||||
0000ba6b 0000002a rts2800_fpu32.lib : l_div.obj (.text)
|
||||
0000ba95 00000028 DSP2833x_PieCtrl.obj (.text)
|
||||
0000babd 00000001 --HOLE-- [fill = 0]
|
||||
0000babe 00000020 rts2800_fpu32.lib : sqrt.obj (.text)
|
||||
0000bade 0000001d pulto.obj (.text)
|
||||
0000bafb 0000001b rts2800_fpu32.lib : args_main.obj (.text)
|
||||
0000bb16 00000019 DSP2833x_Adc.obj (.text)
|
||||
0000bb2f 00000019 rts2800_fpu32.lib : exit.obj (.text)
|
||||
0000bb48 0000000e DSP2833x_SWPrioritizedPieVect.obj (.text)
|
||||
0000bb56 0000000b rts2800_fpu32.lib : u_div.obj (.text)
|
||||
0000bb61 00000009 : _lock.obj (.text)
|
||||
0000bb6a 00000005 cntrl_adr.obj (.text)
|
||||
0000bb6f 00000004 DSP2833x_usDelay.obj (.text)
|
||||
|
||||
ramfuncs 0 0000c000 00000000 UNINITIALIZED
|
||||
|
||||
.econst 0 0000c000 00000112
|
||||
0000c000 00000100 DSP2833x_SWPrioritizedPieVect.obj (.econst:_PieVectTableInit)
|
||||
0000c100 00000009 message.obj (.econst:_$P$T0$1)
|
||||
0000c109 00000006 message.obj (.econst:_$P$T1$2)
|
||||
0000c10f 00000003 cntrl_adr.obj (.econst)
|
||||
.econst 0 0000c28c 00000125
|
||||
0000c28c 00000100 DSP2833x_SWPrioritizedPieVect.obj (.econst:_PieVectTableInit)
|
||||
0000c38c 00000009 message.obj (.econst:_$P$T0$1)
|
||||
0000c395 00000001 --HOLE-- [fill = 0]
|
||||
0000c396 00000006 shared_ump.obj (.econst:_$P$T0$1)
|
||||
0000c39c 00000006 message.obj (.econst:_$P$T1$2)
|
||||
0000c3a2 00000006 shared_ump.obj (.econst:_$P$T1$2)
|
||||
0000c3a8 00000006 shared_ump.obj (.econst:_$P$T2$3)
|
||||
0000c3ae 00000003 cntrl_adr.obj (.econst)
|
||||
|
||||
.switch 0 0000c112 00000028
|
||||
0000c112 00000028 spise2p.obj (.switch:_SPISE2P_DRV_tick)
|
||||
.switch 0 0000c3b2 00000048
|
||||
0000c3b2 00000028 spise2p.obj (.switch:_SPISE2P_DRV_tick)
|
||||
0000c3da 00000020 log_to_mem.obj (.switch:_ump_log_read)
|
||||
|
||||
.stack 1 00000400 000003f0 UNINITIALIZED
|
||||
00000400 000003f0 --HOLE--
|
||||
|
||||
.ebss 1 0000d000 00000f38 UNINITIALIZED
|
||||
.ebss 1 0000d000 00000fdf UNINITIALIZED
|
||||
0000d000 00000704 RS485.obj (.ebss)
|
||||
0000d704 00000038 measure.obj (.ebss:_sens_count)
|
||||
0000d73c 00000004 ADC.obj (.ebss:_adc_table_lem)
|
||||
@@ -196,39 +204,42 @@ ramfuncs 0 0000c000 00000000 UNINITIALIZED
|
||||
0000dc42 00000038 measure.obj (.ebss)
|
||||
0000dc7a 00000006 DSP2833x_SysCtrl.obj (.ebss)
|
||||
0000dc80 00000081 message.obj (.ebss:_param)
|
||||
0000dd01 00000020 measure.obj (.ebss:_din_count)
|
||||
0000dd21 0000001c ADC.obj (.ebss:_ADC_table)
|
||||
0000dd3d 00000003 main.obj (.ebss)
|
||||
0000dd40 00000048 measure.obj (.ebss:_zer_filter)
|
||||
0000dd88 0000001c ADC.obj (.ebss:_prev_ok)
|
||||
0000dda4 0000001c spise2p.obj (.ebss)
|
||||
0000ddc0 00000046 RS485.obj (.ebss:_RS_Len)
|
||||
0000de06 00000018 DSP2833x_CpuTimers.obj (.ebss)
|
||||
0000de1e 00000018 measure.obj (.ebss:_sens_pair)
|
||||
0000de36 0000000a pulto.obj (.ebss)
|
||||
0000de40 00000040 message.obj (.ebss:_def_cal)
|
||||
0000de80 00000018 measure.obj (.ebss:_sens_type)
|
||||
0000de98 00000012 measure.obj (.ebss:_powK)
|
||||
0000deaa 00000010 peripher.obj (.ebss)
|
||||
0000deba 00000006 measure.obj (.ebss:_err_count)
|
||||
0000dec0 0000000e DAC.obj (.ebss)
|
||||
0000dece 0000000e ecan.obj (.ebss)
|
||||
0000dedc 0000000c ADC.obj (.ebss)
|
||||
0000dee8 0000000c measure.obj (.ebss:_lev_quadr)
|
||||
0000def4 0000000c log_to_mem.obj (.ebss)
|
||||
0000df00 00000008 measure.obj (.ebss:_ext_diag)
|
||||
0000df08 00000008 measure.obj (.ebss:_ext_temp)
|
||||
0000df10 00000008 measure.obj (.ebss:_zer_count)
|
||||
0000df18 00000006 measure.obj (.ebss:_lev_count)
|
||||
0000df1e 00000005 kanal.obj (.ebss:_readr)
|
||||
0000df23 00000004 cntrl_adr.obj (.ebss)
|
||||
0000df27 00000001 rts2800_fpu32.lib : errno.obj (.ebss)
|
||||
0000df28 00000004 : _lock.obj (.ebss)
|
||||
0000df2c 00000004 : exit.obj (.ebss)
|
||||
0000df30 00000002 main.obj (.ebss:_cancell$2)
|
||||
0000df32 00000002 main.obj (.ebss:_cancount$1)
|
||||
0000df34 00000002 ADC.obj (.ebss:_cwnt_ok$4)
|
||||
0000df36 00000002 measure.obj (.ebss:_low_count)
|
||||
0000dd01 00000001 rts2800_fpu32.lib : errno.obj (.ebss)
|
||||
0000dd02 00000028 log_to_mem.obj (.ebss)
|
||||
0000dd2a 00000012 measure.obj (.ebss:_powK)
|
||||
0000dd3c 00000004 cntrl_adr.obj (.ebss)
|
||||
0000dd40 0000007c ecan.obj (.ebss:_ump_can_reply)
|
||||
0000ddbc 00000004 rts2800_fpu32.lib : _lock.obj (.ebss)
|
||||
0000ddc0 00000048 measure.obj (.ebss:_zer_filter)
|
||||
0000de08 00000020 measure.obj (.ebss:_din_count)
|
||||
0000de28 00000018 DSP2833x_CpuTimers.obj (.ebss)
|
||||
0000de40 00000046 RS485.obj (.ebss:_RS_Len)
|
||||
0000de86 0000001c ADC.obj (.ebss:_ADC_table)
|
||||
0000dea2 0000001c ADC.obj (.ebss:_prev_ok)
|
||||
0000debe 00000002 main.obj (.ebss:_cancell$2)
|
||||
0000dec0 00000040 message.obj (.ebss:_def_cal)
|
||||
0000df00 0000001c spise2p.obj (.ebss)
|
||||
0000df1c 00000018 measure.obj (.ebss:_sens_pair)
|
||||
0000df34 0000000c ADC.obj (.ebss)
|
||||
0000df40 00000018 measure.obj (.ebss:_sens_type)
|
||||
0000df58 00000018 ecan.obj (.ebss)
|
||||
0000df70 00000010 peripher.obj (.ebss)
|
||||
0000df80 0000000e DAC.obj (.ebss)
|
||||
0000df8e 0000000c measure.obj (.ebss:_lev_quadr)
|
||||
0000df9a 0000000a pulto.obj (.ebss)
|
||||
0000dfa4 00000008 measure.obj (.ebss:_ext_diag)
|
||||
0000dfac 00000008 measure.obj (.ebss:_ext_temp)
|
||||
0000dfb4 00000008 measure.obj (.ebss:_zer_count)
|
||||
0000dfbc 00000004 rts2800_fpu32.lib : exit.obj (.ebss)
|
||||
0000dfc0 00000006 measure.obj (.ebss:_err_count)
|
||||
0000dfc6 00000006 measure.obj (.ebss:_lev_count)
|
||||
0000dfcc 00000005 kanal.obj (.ebss:_readr)
|
||||
0000dfd1 00000003 log_to_mem.obj (.ebss:_ump_can_data)
|
||||
0000dfd4 00000003 main.obj (.ebss)
|
||||
0000dfd7 00000002 main.obj (.ebss:_cancount$1)
|
||||
0000dfd9 00000002 ADC.obj (.ebss:_cwnt_ok$4)
|
||||
0000dfdb 00000002 measure.obj (.ebss:_low_count)
|
||||
0000dfdd 00000002 log_to_mem.obj (.ebss:_ump_pm67_voltage)
|
||||
|
||||
.logg 1 00200000 0000fa00 UNINITIALIZED
|
||||
00200000 0000fa00 log_to_mem.obj (.logg)
|
||||
@@ -445,7 +456,7 @@ MODULE SUMMARY
|
||||
|
||||
Module code initialized data uninitialized data
|
||||
------ ---- ---------------- ------------------
|
||||
C:\Dima\Project\Balsam_167\Debug\Source\External\v120\DSP2833x_common\source\
|
||||
K:\git_project\Balsam_167_periph\Debug\Source\External\v120\DSP2833x_common\source\
|
||||
DSP2833x_SWPrioritizedDefaultIsr.obj 1809 0 0
|
||||
DSP2833x_SysCtrl.obj 349 0 6
|
||||
DSP2833x_SWPrioritizedPieVect.obj 14 256 0
|
||||
@@ -458,33 +469,34 @@ MODULE SUMMARY
|
||||
+--+--------------------------------------+-------+------------------+--------------------+
|
||||
Total: 2610 256 30
|
||||
|
||||
C:\Dima\Project\Balsam_167\Debug\Source\External\v120\DSP2833x_headers\source\
|
||||
K:\git_project\Balsam_167_periph\Debug\Source\External\v120\DSP2833x_headers\source\
|
||||
DSP2833x_GlobalVariableDefs.obj 0 0 2679
|
||||
+--+--------------------------------------+-------+------------------+--------------------+
|
||||
Total: 0 0 2679
|
||||
|
||||
C:\Dima\Project\Balsam_167\Debug\Source\Internal\
|
||||
log_to_mem.obj 21 12 64012
|
||||
measure.obj 2729 87 1212
|
||||
K:\git_project\Balsam_167_periph\Debug\Source\Internal\
|
||||
log_to_mem.obj 895 52 64045
|
||||
measure.obj 2731 87 1212
|
||||
RS485.obj 1233 8 1866
|
||||
message.obj 633 82 322
|
||||
message.obj 805 82 322
|
||||
peripher.obj 963 32 16
|
||||
ADC.obj 905 13 74
|
||||
ecan.obj 622 28 148
|
||||
shared_ump.obj 777 18 0
|
||||
spise2p.obj 660 71 28
|
||||
bios.obj 703 4 1
|
||||
crc16.obj 117 259 256
|
||||
main.obj 589 8 7
|
||||
ecan.obj 430 28 14
|
||||
DAC.obj 394 16 14
|
||||
kanal.obj 364 27 21
|
||||
pulto.obj 366 17 10
|
||||
DAC.obj 355 16 14
|
||||
tools.obj 79 0 0
|
||||
filter_bat2.obj 55 0 0
|
||||
cntrl_adr.obj 5 11 4
|
||||
+--+--------------------------------------+-------+------------------+--------------------+
|
||||
Total: 10207 675 67857
|
||||
Total: 12263 733 68024
|
||||
|
||||
C:/Dima/Project/Balsam_167/Libraries/rts2800_fpu32.lib
|
||||
K:/git_project/Balsam_167_periph/Libraries/rts2800_fpu32.lib
|
||||
fs_div.obj 136 0 0
|
||||
boot.obj 70 0 0
|
||||
l_div.obj 42 0 0
|
||||
@@ -492,13 +504,14 @@ MODULE SUMMARY
|
||||
sqrt.obj 32 0 0
|
||||
args_main.obj 27 0 0
|
||||
_lock.obj 9 10 4
|
||||
u_div.obj 11 0 0
|
||||
errno.obj 0 4 1
|
||||
+--+--------------------------------------+-------+------------------+--------------------+
|
||||
Total: 341 24 9
|
||||
Total: 352 24 9
|
||||
|
||||
Stack: 0 0 1008
|
||||
+--+--------------------------------------+-------+------------------+--------------------+
|
||||
Grand Total: 13158 955 71583
|
||||
Grand Total: 15225 1013 71750
|
||||
|
||||
|
||||
GLOBAL DATA SYMBOLS: SORTED BY DATA PAGE
|
||||
@@ -593,11 +606,11 @@ address data page name
|
||||
|
||||
00007900 1e4 (00007900) _I2caRegs
|
||||
|
||||
0000c000 300 (0000c000) _PieVectTableInit
|
||||
0000c28c 30a (0000c280) _PieVectTableInit
|
||||
|
||||
0000c10f 304 (0000c100) _ADDR_ANSWER
|
||||
0000c110 304 (0000c100) _ADDR_TERMINAL
|
||||
0000c111 304 (0000c100) _CNTRL_ADDR_UNIVERSAL
|
||||
0000c3ae 30e (0000c380) _ADDR_ANSWER
|
||||
0000c3af 30e (0000c380) _ADDR_TERMINAL
|
||||
0000c3b0 30e (0000c380) _CNTRL_ADDR_UNIVERSAL
|
||||
|
||||
0000d040 341 (0000d040) _rs_a
|
||||
|
||||
@@ -648,85 +661,92 @@ address data page name
|
||||
|
||||
0000dc80 372 (0000dc80) _param
|
||||
|
||||
0000dd01 374 (0000dd00) _din_count
|
||||
0000dd21 374 (0000dd00) _ADC_table
|
||||
0000dd01 374 (0000dd00) _errno
|
||||
0000dd02 374 (0000dd00) _no_write
|
||||
0000dd03 374 (0000dd00) _never_write
|
||||
0000dd04 374 (0000dd00) _flog
|
||||
0000dd18 374 (0000dd00) _ump_dac_ramp
|
||||
0000dd19 374 (0000dd00) _ump_dac_duration
|
||||
0000dd1a 374 (0000dd00) _ump_dac_go10
|
||||
0000dd1b 374 (0000dd00) _ump_dac_stop10
|
||||
0000dd1c 374 (0000dd00) _ump_dac_position
|
||||
0000dd22 374 (0000dd00) _Log
|
||||
0000dd2a 374 (0000dd00) _powK
|
||||
0000dd3c 374 (0000dd00) _ADDR_FOR_ALL
|
||||
0000dd3d 374 (0000dd00) _CNTRL_ADDR
|
||||
0000dd3e 374 (0000dd00) _cntr_addr_c
|
||||
0000dd3f 374 (0000dd00) _cntr_addr_c_all
|
||||
|
||||
0000dd40 375 (0000dd40) _zer_filter
|
||||
0000ddbc 376 (0000dd80) __unlock
|
||||
0000ddbe 376 (0000dd80) __lock
|
||||
|
||||
0000dd88 376 (0000dd80) _prev_ok
|
||||
0000dda4 376 (0000dd80) _ccc
|
||||
0000ddc0 377 (0000ddc0) _zer_filter
|
||||
|
||||
0000ddc0 377 (0000ddc0) _RS_Len
|
||||
0000de08 378 (0000de00) _din_count
|
||||
0000de28 378 (0000de00) _CpuTimer0
|
||||
0000de30 378 (0000de00) _CpuTimer1
|
||||
0000de38 378 (0000de00) _CpuTimer2
|
||||
|
||||
0000de06 378 (0000de00) _CpuTimer0
|
||||
0000de0e 378 (0000de00) _CpuTimer1
|
||||
0000de16 378 (0000de00) _CpuTimer2
|
||||
0000de1e 378 (0000de00) _sens_pair
|
||||
0000de36 378 (0000de00) _isNumb
|
||||
0000de37 378 (0000de00) _quaLamp
|
||||
0000de3c 378 (0000de00) _isMask
|
||||
0000de3e 378 (0000de00) _Lonely
|
||||
0000de40 379 (0000de40) _RS_Len
|
||||
|
||||
0000de40 379 (0000de40) _def_cal
|
||||
0000de86 37a (0000de80) _ADC_table
|
||||
0000dea2 37a (0000de80) _prev_ok
|
||||
|
||||
0000de80 37a (0000de80) _sens_type
|
||||
0000de98 37a (0000de80) _powK
|
||||
0000deaa 37a (0000de80) _Mode
|
||||
0000deab 37a (0000de80) _Desk
|
||||
0000deac 37a (0000de80) _TermoAD
|
||||
0000dead 37a (0000de80) _TermoRS
|
||||
0000deae 37a (0000de80) _TermoSW
|
||||
0000deaf 37a (0000de80) _Kurrent
|
||||
0000deb0 37a (0000de80) _Kalibro
|
||||
0000deb1 37a (0000de80) _Owen
|
||||
0000deb2 37a (0000de80) _INcount0
|
||||
0000deb3 37a (0000de80) _INcount1
|
||||
0000deb4 37a (0000de80) _MUX_GPIO32
|
||||
0000deb5 37a (0000de80) _MUX_GPIO48
|
||||
0000deb6 37a (0000de80) _DIR_GPIO32
|
||||
0000deb7 37a (0000de80) _DIR_GPIO48
|
||||
0000deb8 37a (0000de80) _DigErr
|
||||
0000deba 37a (0000de80) _err_count
|
||||
0000dec0 37b (0000dec0) _def_cal
|
||||
|
||||
0000dec0 37b (0000dec0) _period_dac
|
||||
0000dec1 37b (0000dec0) _time_dac
|
||||
0000dec6 37b (0000dec0) _WAKEpowse
|
||||
0000dec8 37b (0000dec0) _IMPowse
|
||||
0000dece 37b (0000dec0) _CanTimeOutErrorTR
|
||||
0000decf 37b (0000dec0) _wait
|
||||
0000ded0 37b (0000dec0) _ErrorCount
|
||||
0000ded2 37b (0000dec0) _MessageReceivedCount
|
||||
0000ded4 37b (0000dec0) _MessageTransivedCount
|
||||
0000ded6 37b (0000dec0) _TestMbox1
|
||||
0000ded8 37b (0000dec0) _TestMbox2
|
||||
0000deda 37b (0000dec0) _TestMbox3
|
||||
0000dedc 37b (0000dec0) _COUNT_ONE_CANAL
|
||||
0000dedd 37b (0000dec0) _COUNT_DISCHARGE
|
||||
0000dede 37b (0000dec0) _COUNT_TRANSICIA
|
||||
0000dedf 37b (0000dec0) _FILTER_CLIP
|
||||
0000dee4 37b (0000dec0) _WAKE
|
||||
0000dee6 37b (0000dec0) _WAKE_TIME
|
||||
0000dee8 37b (0000dec0) _lev_quadr
|
||||
0000def4 37b (0000dec0) _no_write
|
||||
0000def5 37b (0000dec0) _never_write
|
||||
0000def6 37b (0000dec0) _flog
|
||||
0000def8 37b (0000dec0) _Log
|
||||
0000df00 37c (0000df00) _ccc
|
||||
0000df1c 37c (0000df00) _sens_pair
|
||||
0000df34 37c (0000df00) _COUNT_ONE_CANAL
|
||||
0000df35 37c (0000df00) _COUNT_DISCHARGE
|
||||
0000df36 37c (0000df00) _COUNT_TRANSICIA
|
||||
0000df37 37c (0000df00) _FILTER_CLIP
|
||||
0000df3c 37c (0000df00) _WAKE
|
||||
0000df3e 37c (0000df00) _WAKE_TIME
|
||||
|
||||
0000df00 37c (0000df00) _ext_diag
|
||||
0000df08 37c (0000df00) _ext_temp
|
||||
0000df10 37c (0000df00) _zer_count
|
||||
0000df18 37c (0000df00) _lev_count
|
||||
0000df1e 37c (0000df00) _readr
|
||||
0000df23 37c (0000df00) _ADDR_FOR_ALL
|
||||
0000df24 37c (0000df00) _CNTRL_ADDR
|
||||
0000df25 37c (0000df00) _cntr_addr_c
|
||||
0000df26 37c (0000df00) _cntr_addr_c_all
|
||||
0000df27 37c (0000df00) _errno
|
||||
0000df28 37c (0000df00) __unlock
|
||||
0000df2a 37c (0000df00) __lock
|
||||
0000df2c 37c (0000df00) __cleanup_ptr
|
||||
0000df2e 37c (0000df00) __dtors_ptr
|
||||
0000df36 37c (0000df00) _low_count
|
||||
0000df40 37d (0000df40) _sens_type
|
||||
0000df58 37d (0000df40) _CanTimeOutErrorTR
|
||||
0000df59 37d (0000df40) _wait
|
||||
0000df62 37d (0000df40) _ErrorCount
|
||||
0000df64 37d (0000df40) _MessageReceivedCount
|
||||
0000df66 37d (0000df40) _MessageTransivedCount
|
||||
0000df68 37d (0000df40) _TestMbox1
|
||||
0000df6a 37d (0000df40) _TestMbox2
|
||||
0000df6c 37d (0000df40) _TestMbox3
|
||||
0000df70 37d (0000df40) _Mode
|
||||
0000df71 37d (0000df40) _Desk
|
||||
0000df72 37d (0000df40) _TermoAD
|
||||
0000df73 37d (0000df40) _TermoRS
|
||||
0000df74 37d (0000df40) _TermoSW
|
||||
0000df75 37d (0000df40) _Kurrent
|
||||
0000df76 37d (0000df40) _Kalibro
|
||||
0000df77 37d (0000df40) _Owen
|
||||
0000df78 37d (0000df40) _INcount0
|
||||
0000df79 37d (0000df40) _INcount1
|
||||
0000df7a 37d (0000df40) _MUX_GPIO32
|
||||
0000df7b 37d (0000df40) _MUX_GPIO48
|
||||
0000df7c 37d (0000df40) _DIR_GPIO32
|
||||
0000df7d 37d (0000df40) _DIR_GPIO48
|
||||
0000df7e 37d (0000df40) _DigErr
|
||||
|
||||
0000df80 37e (0000df80) _period_dac
|
||||
0000df81 37e (0000df80) _time_dac
|
||||
0000df86 37e (0000df80) _WAKEpowse
|
||||
0000df88 37e (0000df80) _IMPowse
|
||||
0000df8e 37e (0000df80) _lev_quadr
|
||||
0000df9a 37e (0000df80) _isNumb
|
||||
0000df9b 37e (0000df80) _quaLamp
|
||||
0000dfa0 37e (0000df80) _isMask
|
||||
0000dfa2 37e (0000df80) _Lonely
|
||||
0000dfa4 37e (0000df80) _ext_diag
|
||||
0000dfac 37e (0000df80) _ext_temp
|
||||
0000dfb4 37e (0000df80) _zer_count
|
||||
0000dfbc 37e (0000df80) __cleanup_ptr
|
||||
0000dfbe 37e (0000df80) __dtors_ptr
|
||||
|
||||
0000dfc0 37f (0000dfc0) _err_count
|
||||
0000dfc6 37f (0000dfc0) _lev_count
|
||||
0000dfcc 37f (0000dfc0) _readr
|
||||
0000dfdb 37f (0000dfc0) _low_count
|
||||
|
||||
00200000 8000 (00200000) _logs_block
|
||||
|
||||
@@ -740,63 +760,65 @@ GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name
|
||||
page address name
|
||||
---- ------- ----
|
||||
0 00008000 .text
|
||||
0 0000b311 C$$EXIT
|
||||
0 0000af79 FS$$DIV
|
||||
0 0000b24e L$$DIV
|
||||
0 0000b25d L$$MOD
|
||||
0 0000b26b UL$$DIV
|
||||
0 0000b272 UL$$MOD
|
||||
0 0000bb2f C$$EXIT
|
||||
0 0000b796 FS$$DIV
|
||||
0 0000ba6b L$$DIV
|
||||
0 0000ba7a L$$MOD
|
||||
0 0000bb56 U$$DIV
|
||||
0 0000bb5b U$$MOD
|
||||
0 0000ba88 UL$$DIV
|
||||
0 0000ba8f UL$$MOD
|
||||
0 00008fdc _ADCINT_ISR
|
||||
0 00380080 _ADC_cal
|
||||
1 0000dd21 _ADC_table
|
||||
0 0000c10f _ADDR_ANSWER
|
||||
1 0000df23 _ADDR_FOR_ALL
|
||||
0 0000c110 _ADDR_TERMINAL
|
||||
1 0000de86 _ADC_table
|
||||
0 0000c3ae _ADDR_ANSWER
|
||||
1 0000dd3c _ADDR_FOR_ALL
|
||||
0 0000c3af _ADDR_TERMINAL
|
||||
1 00000b00 _AdcMirror
|
||||
1 00007100 _AdcRegs
|
||||
0 0000a858 _Anal_output
|
||||
0 00009805 _Answer
|
||||
0 0000ad0d _CAN_send
|
||||
0 0000b0a1 _CANa_handler
|
||||
0 0000b076 _CANa_reset_err
|
||||
1 0000df24 _CNTRL_ADDR
|
||||
0 0000c111 _CNTRL_ADDR_UNIVERSAL
|
||||
1 0000dedd _COUNT_DISCHARGE
|
||||
1 0000dedc _COUNT_ONE_CANAL
|
||||
1 0000dede _COUNT_TRANSICIA
|
||||
0 0000b01b _Anal_output
|
||||
0 0000a1b2 _Answer
|
||||
0 0000aa38 _CAN_send
|
||||
0 0000b8be _CANa_handler
|
||||
0 0000b893 _CANa_reset_err
|
||||
1 0000dd3d _CNTRL_ADDR
|
||||
0 0000c3b0 _CNTRL_ADDR_UNIVERSAL
|
||||
1 0000df35 _COUNT_DISCHARGE
|
||||
1 0000df34 _COUNT_ONE_CANAL
|
||||
1 0000df36 _COUNT_TRANSICIA
|
||||
1 0000dc51 _Caliber_time
|
||||
1 0000dc43 _CanGO
|
||||
1 0000dc42 _CanPowse
|
||||
1 0000dece _CanTimeOutErrorTR
|
||||
0 0000b12a _ConfigCpuTimer
|
||||
1 0000de06 _CpuTimer0
|
||||
1 0000df58 _CanTimeOutErrorTR
|
||||
0 0000b947 _ConfigCpuTimer
|
||||
1 0000de28 _CpuTimer0
|
||||
1 00000c00 _CpuTimer0Regs
|
||||
1 0000de0e _CpuTimer1
|
||||
1 0000de30 _CpuTimer1
|
||||
1 00000c08 _CpuTimer1Regs
|
||||
1 0000de16 _CpuTimer2
|
||||
1 0000de38 _CpuTimer2
|
||||
1 00000c10 _CpuTimer2Regs
|
||||
1 0033fff8 _CsmPwl
|
||||
1 00000ae0 _CsmRegs
|
||||
0 0000aaa0 _CsmUnlock
|
||||
0 0000b3f6 _CsmUnlock
|
||||
1 0000dc52 _Curr_Edge
|
||||
0 00008656 _Current_count
|
||||
0 00008fcf _DATALOG_ISR
|
||||
0 0000a6af _DCLK
|
||||
0 0000b168 _DCLK
|
||||
0 00008fb4 _DINTCH1_ISR
|
||||
0 00008f99 _DINTCH2_ISR
|
||||
0 00008f7e _DINTCH3_ISR
|
||||
0 00008f63 _DINTCH4_ISR
|
||||
0 00008f48 _DINTCH5_ISR
|
||||
0 00008f2d _DINTCH6_ISR
|
||||
1 0000deb6 _DIR_GPIO32
|
||||
1 0000deb7 _DIR_GPIO48
|
||||
0 0000a6a3 _DOUT
|
||||
0 0000b35b _DSP28x_usDelay
|
||||
0 00009b4e _Default_params
|
||||
1 0000deab _Desk
|
||||
1 0000df7c _DIR_GPIO32
|
||||
1 0000df7d _DIR_GPIO48
|
||||
0 0000b15c _DOUT
|
||||
0 0000bb6f _DSP28x_usDelay
|
||||
0 00009cba _Default_params
|
||||
1 0000df71 _Desk
|
||||
1 00000880 _DevEmuRegs
|
||||
1 0000deb8 _DigErr
|
||||
0 0000a988 _DisableDog
|
||||
1 0000df7e _DigErr
|
||||
0 0000b2de _DisableDog
|
||||
1 00001000 _DmaRegs
|
||||
0 00008f12 _ECAN0INTA_ISR
|
||||
0 00008ef7 _ECAN0INTB_ISR
|
||||
@@ -847,38 +869,38 @@ page address name
|
||||
0 00008c9a _EQEP2_INT_ISR
|
||||
1 00006b00 _EQep1Regs
|
||||
1 00006b40 _EQep2Regs
|
||||
0 0000b297 _EnableInterrupts
|
||||
1 0000ded0 _ErrorCount
|
||||
1 0000dedf _FILTER_CLIP
|
||||
0 0000bab4 _EnableInterrupts
|
||||
1 0000df62 _ErrorCount
|
||||
1 0000df37 _FILTER_CLIP
|
||||
1 00000a80 _FlashRegs
|
||||
1 00006f80 _GpioCtrlRegs
|
||||
1 00006fc0 _GpioDataRegs
|
||||
1 00006fe0 _GpioIntRegs
|
||||
1 0000dc7e _HSPCLK
|
||||
0 0000accc _Handlai
|
||||
0 0000a9d9 _Handlai
|
||||
0 00008c7f _I2CINT1A_ISR
|
||||
0 00008c64 _I2CINT2A_ISR
|
||||
1 00007900 _I2caRegs
|
||||
0 00008c59 _ILLEGAL_ISR
|
||||
1 0000dec8 _IMPowse
|
||||
1 0000df88 _IMPowse
|
||||
0 00008c4c _INT13_ISR
|
||||
0 00008c3f _INT14_ISR
|
||||
0 00008c35 _INT_NOTUSED_ISR
|
||||
1 0000deb2 _INcount0
|
||||
1 0000deb3 _INcount1
|
||||
0 0000b2f8 _InitAdc
|
||||
0 0000ac20 _InitCan
|
||||
0 0000b0eb _InitCpuTimers
|
||||
0 0000aa12 _InitPeripheralClocks
|
||||
0 0000b278 _InitPieCtrl
|
||||
0 0000b33f _InitPieVectTable
|
||||
0 0000a990 _InitPll
|
||||
0 00009ee1 _InitSeeprom
|
||||
0 0000aa97 _InitSysCtrl
|
||||
0 0000af16 _InitXintf
|
||||
0 0000ae6d _InitXintf16Gpio
|
||||
0 0000aec6 _InitXintf32Gpio
|
||||
0 0000a8a1 _Init_DAC
|
||||
1 0000df78 _INcount0
|
||||
1 0000df79 _INcount1
|
||||
0 0000bb16 _InitAdc
|
||||
0 0000a920 _InitCan
|
||||
0 0000b908 _InitCpuTimers
|
||||
0 0000b368 _InitPeripheralClocks
|
||||
0 0000ba95 _InitPieCtrl
|
||||
0 0000bb48 _InitPieVectTable
|
||||
0 0000b2e6 _InitPll
|
||||
0 0000a615 _InitSeeprom
|
||||
0 0000b3ed _InitSysCtrl
|
||||
0 0000b733 _InitXintf
|
||||
0 0000b68a _InitXintf16Gpio
|
||||
0 0000b6e3 _InitXintf32Gpio
|
||||
0 0000b064 _Init_DAC
|
||||
0 000085ae _Init_packMask
|
||||
0 00008438 _Init_sensors
|
||||
0 000083d8 _Init_sensors_more
|
||||
@@ -886,43 +908,43 @@ page address name
|
||||
1 0000dc60 _K_50
|
||||
1 0000dc62 _K_T1
|
||||
1 0000dc64 _K_T2
|
||||
1 0000deb0 _Kalibro
|
||||
1 0000deaf _Kurrent
|
||||
1 0000df76 _Kalibro
|
||||
1 0000df75 _Kurrent
|
||||
1 0000dc7c _LSPCLK
|
||||
0 00008c1a _LUF_ISR
|
||||
0 00008bff _LVF_ISR
|
||||
0 00009c6a _Load_params
|
||||
0 0000a8bd _Load_runner
|
||||
1 0000def8 _Log
|
||||
1 0000de3e _Lonely
|
||||
0 00009dd6 _Load_params
|
||||
0 0000b080 _Load_runner
|
||||
1 0000dd22 _Log
|
||||
1 0000dfa2 _Lonely
|
||||
0 00008be4 _MRINTA_ISR
|
||||
0 00008bc9 _MRINTB_ISR
|
||||
1 0000deb4 _MUX_GPIO32
|
||||
1 0000deb5 _MUX_GPIO48
|
||||
1 0000df7a _MUX_GPIO32
|
||||
1 0000df7b _MUX_GPIO48
|
||||
0 00008bae _MXINTA_ISR
|
||||
0 00008b93 _MXINTB_ISR
|
||||
1 0000d8f0 _Maska
|
||||
1 00005000 _McbspaRegs
|
||||
1 00005040 _McbspbRegs
|
||||
1 0000ded2 _MessageReceivedCount
|
||||
1 0000ded4 _MessageTransivedCount
|
||||
1 0000deaa _Mode
|
||||
1 0000df64 _MessageReceivedCount
|
||||
1 0000df66 _MessageTransivedCount
|
||||
1 0000df70 _Mode
|
||||
0 00008b88 _NMI_ISR
|
||||
1 0000deb1 _Owen
|
||||
1 0000df77 _Owen
|
||||
0 00008b7e _PIE_RESERVED
|
||||
1 00380090 _PartIdRegs
|
||||
1 00000ce0 _PieCtrlRegs
|
||||
1 00000d00 _PieVectTable
|
||||
0 0000c000 _PieVectTableInit
|
||||
0 0000c28c _PieVectTableInit
|
||||
0 000082ee _Power_count
|
||||
1 0000dc44 _READY
|
||||
0 0000a6cd _RESET
|
||||
0 0000ae28 _RSA_RX_Handler
|
||||
0 0000ade3 _RSA_TX_Handler
|
||||
0 0000ad9e _RSB_RX_Handler
|
||||
0 0000ad59 _RSB_TX_Handler
|
||||
0 0000b186 _RESET
|
||||
0 0000b645 _RSA_RX_Handler
|
||||
0 0000b600 _RSA_TX_Handler
|
||||
0 0000b5bb _RSB_RX_Handler
|
||||
0 0000b576 _RSB_TX_Handler
|
||||
0 00009746 _RS_BSend
|
||||
1 0000ddc0 _RS_Len
|
||||
1 0000de40 _RS_Len
|
||||
0 000095fc _RS_RX_Handler
|
||||
0 000095a4 _RS_Send
|
||||
0 0000944f _RS_SetBitMode
|
||||
@@ -933,45 +955,46 @@ page address name
|
||||
0 0000c000 _RamfuncsLoadEnd
|
||||
0 0000c000 _RamfuncsLoadStart
|
||||
0 0000c000 _RamfuncsRunStart
|
||||
0 00009b24 _ReceiveAnswerModbus4
|
||||
0 00009aaf _ReceiveCommandModbus3
|
||||
0 00009a87 _ReceiveCommandModbus6
|
||||
0 00009c90 _ReceiveAnswerModbus4
|
||||
0 00009c05 _ReceiveCommandModbus3
|
||||
0 00009bc7 _ReceiveCommandModbus6
|
||||
0 00008b56 _SCIRXINTA_ISR
|
||||
0 00008b3b _SCIRXINTB_ISR
|
||||
0 00008b20 _SCIRXINTC_ISR
|
||||
0 00008b05 _SCITXINTA_ISR
|
||||
0 00008aea _SCITXINTB_ISR
|
||||
0 00008acf _SCITXINTC_ISR
|
||||
0 0000a6bb _SENDBIT
|
||||
0 0000b174 _SENDBIT
|
||||
0 00008ab4 _SEQ1INT_ISR
|
||||
0 00008a99 _SEQ2INT_ISR
|
||||
0 00008a7e _SPIRXINTA_ISR
|
||||
0 00009cbe _SPISE2P_DRV_csclr
|
||||
0 00009cc3 _SPISE2P_DRV_csset
|
||||
0 00009cc8 _SPISE2P_DRV_init
|
||||
0 00009cfa _SPISE2P_DRV_tick
|
||||
0 0000a3f2 _SPISE2P_DRV_csclr
|
||||
0 0000a3f7 _SPISE2P_DRV_csset
|
||||
0 0000a3fc _SPISE2P_DRV_init
|
||||
0 0000a42e _SPISE2P_DRV_tick
|
||||
0 00008a63 _SPITXINTA_ISR
|
||||
1 0000dc7a _SYSCLKOUT
|
||||
0 00009a5e _Save_params
|
||||
0 00009b1e _Save_params
|
||||
1 00007050 _SciaRegs
|
||||
1 00007750 _ScibRegs
|
||||
1 00007770 _ScicRegs
|
||||
0 00009e9e _Seeprom_read
|
||||
0 00009e5b _Seeprom_write
|
||||
0 00009a36 _SendCommandModbus4
|
||||
0 0000a972 _ServiceDog
|
||||
0 0000a84e _Setup_DAC_time
|
||||
0 0000a5d2 _Seeprom_read
|
||||
0 0000a58f _Seeprom_write
|
||||
0 00009af6 _SendCommandModbus4
|
||||
0 0000b2c8 _ServiceDog
|
||||
0 0000b011 _Setup_DAC_time
|
||||
1 00007040 _SpiaRegs
|
||||
1 00007010 _SysCtrlRegs
|
||||
0 00008a48 _TINT0_ISR
|
||||
1 0000dc45 _TPL_CANS
|
||||
0 00008111 _Temper_count
|
||||
1 0000deac _TermoAD
|
||||
1 0000dead _TermoRS
|
||||
1 0000deae _TermoSW
|
||||
1 0000ded6 _TestMbox1
|
||||
1 0000ded8 _TestMbox2
|
||||
1 0000deda _TestMbox3
|
||||
1 0000df72 _TermoAD
|
||||
1 0000df73 _TermoRS
|
||||
1 0000df74 _TermoSW
|
||||
1 0000df68 _TestMbox1
|
||||
1 0000df6a _TestMbox2
|
||||
1 0000df6c _TestMbox3
|
||||
0 0000a88b _UMP_CAN_service
|
||||
0 00008a3d _USER10_ISR
|
||||
0 00008a32 _USER11_ISR
|
||||
0 00008a27 _USER12_ISR
|
||||
@@ -984,10 +1007,10 @@ page address name
|
||||
0 000089da _USER7_ISR
|
||||
0 000089cf _USER8_ISR
|
||||
0 000089c4 _USER9_ISR
|
||||
1 0000dee4 _WAKE
|
||||
1 0000df3c _WAKE
|
||||
0 000089a9 _WAKEINT_ISR
|
||||
1 0000dee6 _WAKE_TIME
|
||||
1 0000dec6 _WAKEpowse
|
||||
1 0000df3e _WAKE_TIME
|
||||
1 0000df86 _WAKEpowse
|
||||
0 00008990 _XINT1_ISR
|
||||
0 00008977 _XINT2_ISR
|
||||
0 0000895c _XINT3_ISR
|
||||
@@ -1004,131 +1027,156 @@ abs ffffffff ___TI_prof_data_size
|
||||
abs ffffffff ___TI_prof_data_start
|
||||
abs ffffffff ___binit__
|
||||
abs ffffffff ___c_args__
|
||||
0 0000b35f ___cinit__
|
||||
0 0000b35f ___etext__
|
||||
0 0000c000 ___cinit__
|
||||
0 0000bb73 ___etext__
|
||||
abs ffffffff ___pinit__
|
||||
0 00008000 ___text__
|
||||
0 0000b2dd __args_main
|
||||
1 0000df2c __cleanup_ptr
|
||||
1 0000df2e __dtors_ptr
|
||||
1 0000df2a __lock
|
||||
0 0000b355 __nop
|
||||
0 0000b351 __register_lock
|
||||
0 0000b34d __register_unlock
|
||||
0 0000bafb __args_main
|
||||
1 0000dfbc __cleanup_ptr
|
||||
1 0000dfbe __dtors_ptr
|
||||
1 0000ddbe __lock
|
||||
0 0000bb69 __nop
|
||||
0 0000bb65 __register_lock
|
||||
0 0000bb61 __register_unlock
|
||||
1 00000400 __stack
|
||||
1 0000df28 __unlock
|
||||
0 0000b311 _abort
|
||||
1 0000ddbc __unlock
|
||||
0 0000bb2f _abort
|
||||
1 0000d740 _adc_filter
|
||||
0 0000a157 _adc_isr
|
||||
0 0000aa84 _adc_isr
|
||||
1 0000d73c _adc_table_lem
|
||||
0 0000b198 _c_int00
|
||||
0 0000b9b5 _c_int00
|
||||
1 0000dc47 _cal_addr
|
||||
0 00008053 _calc_sensor_koef
|
||||
1 0000dda4 _ccc
|
||||
1 0000df00 _ccc
|
||||
1 0000dc4b _chk
|
||||
0 0000b32a _clear_mem
|
||||
0 00009ae1 _clear_mem
|
||||
0 00009526 _clear_timer_rs_live
|
||||
1 0000df25 _cntr_addr_c
|
||||
1 0000df26 _cntr_addr_c_all
|
||||
0 0000aacf _cpu_timer1_isr_PULT
|
||||
0 0000a34a _cpu_timer1_isr_SENS
|
||||
0 0000b1de _cpu_timer2_isr
|
||||
1 0000dd3e _cntr_addr_c
|
||||
1 0000dd3f _cntr_addr_c_all
|
||||
0 0000b425 _cpu_timer1_isr_PULT
|
||||
0 0000ac77 _cpu_timer1_isr_SENS
|
||||
0 0000b9fb _cpu_timer2_isr
|
||||
1 0000dac0 _crc_16_tab
|
||||
0 0000951a _create_uart_vars
|
||||
0 0000a814 _dOUT
|
||||
0 0000a820 _dSEND
|
||||
0 0000afd7 _dOUT
|
||||
0 0000afe3 _dSEND
|
||||
1 0000dc68 _def_FILTERBAT
|
||||
1 0000de40 _def_cal
|
||||
1 0000dec0 _def_cal
|
||||
1 0000dab0 _digits
|
||||
1 0000dd01 _din_count
|
||||
1 0000de08 _din_count
|
||||
0 0000803e _er_anal
|
||||
1 0000deba _err_count
|
||||
1 0000df27 _errno
|
||||
0 0000b313 _exit
|
||||
1 0000df00 _ext_diag
|
||||
1 0000df08 _ext_temp
|
||||
0 000099c6 _extendbios
|
||||
0 0000b217 _filterbat
|
||||
1 0000dfc0 _err_count
|
||||
1 0000dd01 _errno
|
||||
0 0000bb31 _exit
|
||||
1 0000dfa4 _ext_diag
|
||||
1 0000dfac _ext_temp
|
||||
0 0000a373 _extendbios
|
||||
0 0000ba34 _filterbat
|
||||
1 0000dc41 _flag_DEBUG
|
||||
1 0000def6 _flog
|
||||
1 0000dd04 _flog
|
||||
0 0000921c _get_Buttons
|
||||
0 000090ff _get_Mode
|
||||
0 0000996e _get_command
|
||||
0 0000b03c _get_crc16
|
||||
0 0000b02b _get_crc_16
|
||||
0 0000b001 _get_crc_16b
|
||||
0 0000a31b _get_command
|
||||
0 0000b859 _get_crc16
|
||||
0 0000b848 _get_crc_16
|
||||
0 0000b81e _get_crc_16b
|
||||
0 00008022 _im_calc
|
||||
0 0000996d _init
|
||||
0 0000b15a _init_zone7
|
||||
0 0000992a _initload
|
||||
1 0000de3c _isMask
|
||||
1 0000de36 _isNumb
|
||||
0 0000a6e0 _kanal_Send
|
||||
1 0000df18 _lev_count
|
||||
1 0000dee8 _lev_quadr
|
||||
0 000098e2 _load
|
||||
0 0000a31a _init
|
||||
0 0000b977 _init_zone7
|
||||
0 0000a2d7 _initload
|
||||
1 0000dfa0 _isMask
|
||||
1 0000df9a _isNumb
|
||||
0 0000b199 _kanal_Send
|
||||
1 0000dfc6 _lev_count
|
||||
1 0000df8e _lev_quadr
|
||||
0 0000a28f _load
|
||||
1 00200000 _logs_block
|
||||
1 0000df36 _low_count
|
||||
0 00009f37 _main
|
||||
1 0000dfdb _low_count
|
||||
0 0000a66b _main
|
||||
1 0000dbc0 _modbus
|
||||
1 0000def5 _never_write
|
||||
1 0000def4 _no_write
|
||||
1 0000dd03 _never_write
|
||||
1 0000dd02 _no_write
|
||||
1 0000dc53 _okay
|
||||
1 0000d900 _out_filter
|
||||
1 0000dc80 _param
|
||||
0 0000b149 _pause_us
|
||||
0 00009869 _peek
|
||||
0 0000b966 _pause_us
|
||||
0 0000a216 _peek
|
||||
1 0000dc4a _period_blink
|
||||
1 0000dec0 _period_dac
|
||||
1 0000df80 _period_dac
|
||||
1 0000dc49 _period_ready
|
||||
0 0000982d _poke
|
||||
1 0000de98 _powK
|
||||
0 0000a1da _poke
|
||||
1 0000dd2a _powK
|
||||
1 0000dc48 _pow_addr
|
||||
1 0000dd88 _prev_ok
|
||||
1 0000de37 _quaLamp
|
||||
0 00009802 _read_memory
|
||||
1 0000df1e _readr
|
||||
1 0000dea2 _prev_ok
|
||||
1 0000df9b _quaLamp
|
||||
0 0000a1af _read_memory
|
||||
1 0000dfcc _readr
|
||||
0 00008000 _reset_errs
|
||||
1 0000d040 _rs_a
|
||||
1 0000d3c0 _rs_b
|
||||
0 000088e6 _rsvd_ISR
|
||||
0 00009801 _run
|
||||
0 0000a1ae _run
|
||||
0 000090db _select_tpl_255
|
||||
0 0000904b _select_tpl_canal
|
||||
1 0000d704 _sens_count
|
||||
1 0000de1e _sens_pair
|
||||
1 0000de80 _sens_type
|
||||
0 0000b356 _set_cntrl_addr
|
||||
0 0000a50d _setup_adc
|
||||
1 0000df1c _sens_pair
|
||||
1 0000df40 _sens_type
|
||||
0 0000bb6a _set_cntrl_addr
|
||||
0 0000ae3c _setup_adc
|
||||
0 000093e8 _setup_arr_cmd_length
|
||||
0 00009029 _setup_leds_line
|
||||
0 00009469 _setup_uart
|
||||
1 0000dc4c _sig
|
||||
0 00009cb7 _spiSe2pFree
|
||||
0 00009cb3 _spiSe2pRead
|
||||
0 00009caf _spiSe2pWrite
|
||||
0 0000b2a0 _sqrt
|
||||
0 0000a3eb _spiSe2pFree
|
||||
0 0000a3e7 _spiSe2pRead
|
||||
0 0000a3e3 _spiSe2pWrite
|
||||
0 0000babe _sqrt
|
||||
0 000093ba _test_rs_live
|
||||
0 00009800 _tflash
|
||||
0 0000a1ad _tflash
|
||||
1 0000dc4d _time_1_5sec
|
||||
1 0000dc4f _time_3sec
|
||||
1 0000dc4e _time_5msec
|
||||
1 0000dc50 _time_5sec
|
||||
1 0000dec1 _time_dac
|
||||
0 00009f0a _timer_Init
|
||||
1 0000df81 _time_dac
|
||||
0 0000a63e _timer_Init
|
||||
1 0000dc46 _tpl_cans
|
||||
0 00009ff0 _ump_can_fragment
|
||||
0 0000a110 _ump_can_id
|
||||
0 0000a0c8 _ump_can_request
|
||||
0 00009ec3 _ump_crc
|
||||
1 0000dd19 _ump_dac_duration
|
||||
1 0000dd1a _ump_dac_go10
|
||||
1 0000dd1c _ump_dac_position
|
||||
1 0000dd18 _ump_dac_ramp
|
||||
1 0000dd1b _ump_dac_stop10
|
||||
0 00009a92 _ump_log_can
|
||||
0 00009a5e _ump_log_init
|
||||
0 00009a30 _ump_log_io
|
||||
0 00009982 _ump_log_read
|
||||
0 00009944 _ump_log_rs
|
||||
0 00009920 _ump_log_tick
|
||||
0 000098a5 _ump_log_write
|
||||
0 00009e70 _ump_prepare
|
||||
0 0000a083 _ump_rtu
|
||||
0 00009ede _ump_rtu_encode
|
||||
0 00009f69 _ump_rtu_response
|
||||
0 0000a063 _ump_tms28335_capture
|
||||
0 0000a028 _ump_tms28335_fragment
|
||||
0 00009fd3 _ump_tms28335_prepare
|
||||
0 00009fb2 _ump_tms28335_rtu
|
||||
0 00009e1e _ump_validate
|
||||
0 00008ff7 _unsetup_leds_line
|
||||
0 0000977b _upload
|
||||
1 0000decf _wait
|
||||
0 0000a80f _wast
|
||||
0 0000b2c0 _what_is
|
||||
0 00009778 _write_memory
|
||||
0 00009777 _xflash
|
||||
1 0000df10 _zer_count
|
||||
1 0000dd40 _zer_filter
|
||||
0 0000a128 _upload
|
||||
1 0000df59 _wait
|
||||
0 0000afd2 _wast
|
||||
0 0000bade _what_is
|
||||
0 0000a125 _write_memory
|
||||
0 0000a124 _xflash
|
||||
1 0000dfb4 _zer_count
|
||||
1 0000ddc0 _zer_filter
|
||||
abs ffffffff binit
|
||||
0 0000b35f cinit
|
||||
0 0000b35f etext
|
||||
0 0000c000 cinit
|
||||
0 0000bb73 etext
|
||||
abs ffffffff pinit
|
||||
|
||||
|
||||
@@ -1246,115 +1294,138 @@ page address name
|
||||
0 000095a4 _RS_Send
|
||||
0 000095fc _RS_RX_Handler
|
||||
0 00009746 _RS_BSend
|
||||
0 00009777 _xflash
|
||||
0 00009778 _write_memory
|
||||
0 0000977b _upload
|
||||
0 00009800 _tflash
|
||||
0 00009801 _run
|
||||
0 00009802 _read_memory
|
||||
0 00009805 _Answer
|
||||
0 0000982d _poke
|
||||
0 00009869 _peek
|
||||
0 000098e2 _load
|
||||
0 0000992a _initload
|
||||
0 0000996d _init
|
||||
0 0000996e _get_command
|
||||
0 000099c6 _extendbios
|
||||
0 00009a36 _SendCommandModbus4
|
||||
0 00009a5e _Save_params
|
||||
0 00009a87 _ReceiveCommandModbus6
|
||||
0 00009aaf _ReceiveCommandModbus3
|
||||
0 00009b24 _ReceiveAnswerModbus4
|
||||
0 00009b4e _Default_params
|
||||
0 00009c6a _Load_params
|
||||
0 00009caf _spiSe2pWrite
|
||||
0 00009cb3 _spiSe2pRead
|
||||
0 00009cb7 _spiSe2pFree
|
||||
0 00009cbe _SPISE2P_DRV_csclr
|
||||
0 00009cc3 _SPISE2P_DRV_csset
|
||||
0 00009cc8 _SPISE2P_DRV_init
|
||||
0 00009cfa _SPISE2P_DRV_tick
|
||||
0 00009e5b _Seeprom_write
|
||||
0 00009e9e _Seeprom_read
|
||||
0 00009ee1 _InitSeeprom
|
||||
0 00009f0a _timer_Init
|
||||
0 00009f37 _main
|
||||
0 0000a157 _adc_isr
|
||||
0 0000a34a _cpu_timer1_isr_SENS
|
||||
0 0000a50d _setup_adc
|
||||
0 0000a6a3 _DOUT
|
||||
0 0000a6af _DCLK
|
||||
0 0000a6bb _SENDBIT
|
||||
0 0000a6cd _RESET
|
||||
0 0000a6e0 _kanal_Send
|
||||
0 0000a80f _wast
|
||||
0 0000a814 _dOUT
|
||||
0 0000a820 _dSEND
|
||||
0 0000a84e _Setup_DAC_time
|
||||
0 0000a858 _Anal_output
|
||||
0 0000a8a1 _Init_DAC
|
||||
0 0000a8bd _Load_runner
|
||||
0 0000a972 _ServiceDog
|
||||
0 0000a988 _DisableDog
|
||||
0 0000a990 _InitPll
|
||||
0 0000aa12 _InitPeripheralClocks
|
||||
0 0000aa97 _InitSysCtrl
|
||||
0 0000aaa0 _CsmUnlock
|
||||
0 0000aacf _cpu_timer1_isr_PULT
|
||||
0 0000ac20 _InitCan
|
||||
0 0000accc _Handlai
|
||||
0 0000ad0d _CAN_send
|
||||
0 0000ad59 _RSB_TX_Handler
|
||||
0 0000ad9e _RSB_RX_Handler
|
||||
0 0000ade3 _RSA_TX_Handler
|
||||
0 0000ae28 _RSA_RX_Handler
|
||||
0 0000ae6d _InitXintf16Gpio
|
||||
0 0000aec6 _InitXintf32Gpio
|
||||
0 0000af16 _InitXintf
|
||||
0 0000af79 FS$$DIV
|
||||
0 0000b001 _get_crc_16b
|
||||
0 0000b02b _get_crc_16
|
||||
0 0000b03c _get_crc16
|
||||
0 0000b076 _CANa_reset_err
|
||||
0 0000b0a1 _CANa_handler
|
||||
0 0000b0eb _InitCpuTimers
|
||||
0 0000b12a _ConfigCpuTimer
|
||||
0 0000b149 _pause_us
|
||||
0 0000b15a _init_zone7
|
||||
0 0000b198 _c_int00
|
||||
0 0000b1de _cpu_timer2_isr
|
||||
0 0000b217 _filterbat
|
||||
0 0000b24e L$$DIV
|
||||
0 0000b25d L$$MOD
|
||||
0 0000b26b UL$$DIV
|
||||
0 0000b272 UL$$MOD
|
||||
0 0000b278 _InitPieCtrl
|
||||
0 0000b297 _EnableInterrupts
|
||||
0 0000b2a0 _sqrt
|
||||
0 0000b2c0 _what_is
|
||||
0 0000b2dd __args_main
|
||||
0 0000b2f8 _InitAdc
|
||||
0 0000b311 C$$EXIT
|
||||
0 0000b311 _abort
|
||||
0 0000b313 _exit
|
||||
0 0000b32a _clear_mem
|
||||
0 0000b33f _InitPieVectTable
|
||||
0 0000b34d __register_unlock
|
||||
0 0000b351 __register_lock
|
||||
0 0000b355 __nop
|
||||
0 0000b356 _set_cntrl_addr
|
||||
0 0000b35b _DSP28x_usDelay
|
||||
0 0000b35f ___cinit__
|
||||
0 0000b35f ___etext__
|
||||
0 0000b35f cinit
|
||||
0 0000b35f etext
|
||||
0 0000c000 _PieVectTableInit
|
||||
0 000098a5 _ump_log_write
|
||||
0 00009920 _ump_log_tick
|
||||
0 00009944 _ump_log_rs
|
||||
0 00009982 _ump_log_read
|
||||
0 00009a30 _ump_log_io
|
||||
0 00009a5e _ump_log_init
|
||||
0 00009a92 _ump_log_can
|
||||
0 00009ae1 _clear_mem
|
||||
0 00009af6 _SendCommandModbus4
|
||||
0 00009b1e _Save_params
|
||||
0 00009bc7 _ReceiveCommandModbus6
|
||||
0 00009c05 _ReceiveCommandModbus3
|
||||
0 00009c90 _ReceiveAnswerModbus4
|
||||
0 00009cba _Default_params
|
||||
0 00009dd6 _Load_params
|
||||
0 00009e1e _ump_validate
|
||||
0 00009e70 _ump_prepare
|
||||
0 00009ec3 _ump_crc
|
||||
0 00009ede _ump_rtu_encode
|
||||
0 00009f69 _ump_rtu_response
|
||||
0 00009fb2 _ump_tms28335_rtu
|
||||
0 00009fd3 _ump_tms28335_prepare
|
||||
0 00009ff0 _ump_can_fragment
|
||||
0 0000a028 _ump_tms28335_fragment
|
||||
0 0000a063 _ump_tms28335_capture
|
||||
0 0000a083 _ump_rtu
|
||||
0 0000a0c8 _ump_can_request
|
||||
0 0000a110 _ump_can_id
|
||||
0 0000a124 _xflash
|
||||
0 0000a125 _write_memory
|
||||
0 0000a128 _upload
|
||||
0 0000a1ad _tflash
|
||||
0 0000a1ae _run
|
||||
0 0000a1af _read_memory
|
||||
0 0000a1b2 _Answer
|
||||
0 0000a1da _poke
|
||||
0 0000a216 _peek
|
||||
0 0000a28f _load
|
||||
0 0000a2d7 _initload
|
||||
0 0000a31a _init
|
||||
0 0000a31b _get_command
|
||||
0 0000a373 _extendbios
|
||||
0 0000a3e3 _spiSe2pWrite
|
||||
0 0000a3e7 _spiSe2pRead
|
||||
0 0000a3eb _spiSe2pFree
|
||||
0 0000a3f2 _SPISE2P_DRV_csclr
|
||||
0 0000a3f7 _SPISE2P_DRV_csset
|
||||
0 0000a3fc _SPISE2P_DRV_init
|
||||
0 0000a42e _SPISE2P_DRV_tick
|
||||
0 0000a58f _Seeprom_write
|
||||
0 0000a5d2 _Seeprom_read
|
||||
0 0000a615 _InitSeeprom
|
||||
0 0000a63e _timer_Init
|
||||
0 0000a66b _main
|
||||
0 0000a88b _UMP_CAN_service
|
||||
0 0000a920 _InitCan
|
||||
0 0000a9d9 _Handlai
|
||||
0 0000aa38 _CAN_send
|
||||
0 0000aa84 _adc_isr
|
||||
0 0000ac77 _cpu_timer1_isr_SENS
|
||||
0 0000ae3c _setup_adc
|
||||
0 0000afd2 _wast
|
||||
0 0000afd7 _dOUT
|
||||
0 0000afe3 _dSEND
|
||||
0 0000b011 _Setup_DAC_time
|
||||
0 0000b01b _Anal_output
|
||||
0 0000b064 _Init_DAC
|
||||
0 0000b080 _Load_runner
|
||||
0 0000b15c _DOUT
|
||||
0 0000b168 _DCLK
|
||||
0 0000b174 _SENDBIT
|
||||
0 0000b186 _RESET
|
||||
0 0000b199 _kanal_Send
|
||||
0 0000b2c8 _ServiceDog
|
||||
0 0000b2de _DisableDog
|
||||
0 0000b2e6 _InitPll
|
||||
0 0000b368 _InitPeripheralClocks
|
||||
0 0000b3ed _InitSysCtrl
|
||||
0 0000b3f6 _CsmUnlock
|
||||
0 0000b425 _cpu_timer1_isr_PULT
|
||||
0 0000b576 _RSB_TX_Handler
|
||||
0 0000b5bb _RSB_RX_Handler
|
||||
0 0000b600 _RSA_TX_Handler
|
||||
0 0000b645 _RSA_RX_Handler
|
||||
0 0000b68a _InitXintf16Gpio
|
||||
0 0000b6e3 _InitXintf32Gpio
|
||||
0 0000b733 _InitXintf
|
||||
0 0000b796 FS$$DIV
|
||||
0 0000b81e _get_crc_16b
|
||||
0 0000b848 _get_crc_16
|
||||
0 0000b859 _get_crc16
|
||||
0 0000b893 _CANa_reset_err
|
||||
0 0000b8be _CANa_handler
|
||||
0 0000b908 _InitCpuTimers
|
||||
0 0000b947 _ConfigCpuTimer
|
||||
0 0000b966 _pause_us
|
||||
0 0000b977 _init_zone7
|
||||
0 0000b9b5 _c_int00
|
||||
0 0000b9fb _cpu_timer2_isr
|
||||
0 0000ba34 _filterbat
|
||||
0 0000ba6b L$$DIV
|
||||
0 0000ba7a L$$MOD
|
||||
0 0000ba88 UL$$DIV
|
||||
0 0000ba8f UL$$MOD
|
||||
0 0000ba95 _InitPieCtrl
|
||||
0 0000bab4 _EnableInterrupts
|
||||
0 0000babe _sqrt
|
||||
0 0000bade _what_is
|
||||
0 0000bafb __args_main
|
||||
0 0000bb16 _InitAdc
|
||||
0 0000bb2f C$$EXIT
|
||||
0 0000bb2f _abort
|
||||
0 0000bb31 _exit
|
||||
0 0000bb48 _InitPieVectTable
|
||||
0 0000bb56 U$$DIV
|
||||
0 0000bb5b U$$MOD
|
||||
0 0000bb61 __register_unlock
|
||||
0 0000bb65 __register_lock
|
||||
0 0000bb69 __nop
|
||||
0 0000bb6a _set_cntrl_addr
|
||||
0 0000bb6f _DSP28x_usDelay
|
||||
0 0000bb73 ___etext__
|
||||
0 0000bb73 etext
|
||||
0 0000c000 _RamfuncsLoadEnd
|
||||
0 0000c000 _RamfuncsLoadStart
|
||||
0 0000c000 _RamfuncsRunStart
|
||||
0 0000c10f _ADDR_ANSWER
|
||||
0 0000c110 _ADDR_TERMINAL
|
||||
0 0000c111 _CNTRL_ADDR_UNIVERSAL
|
||||
0 0000c000 ___cinit__
|
||||
0 0000c000 cinit
|
||||
0 0000c28c _PieVectTableInit
|
||||
0 0000c3ae _ADDR_ANSWER
|
||||
0 0000c3af _ADDR_TERMINAL
|
||||
0 0000c3b0 _CNTRL_ADDR_UNIVERSAL
|
||||
0 00380080 _ADC_cal
|
||||
1 00000400 __stack
|
||||
1 000007f0 __STACK_END
|
||||
@@ -1444,77 +1515,82 @@ page address name
|
||||
1 0000dc7c _LSPCLK
|
||||
1 0000dc7e _HSPCLK
|
||||
1 0000dc80 _param
|
||||
1 0000dd01 _din_count
|
||||
1 0000dd21 _ADC_table
|
||||
1 0000dd40 _zer_filter
|
||||
1 0000dd88 _prev_ok
|
||||
1 0000dda4 _ccc
|
||||
1 0000ddc0 _RS_Len
|
||||
1 0000de06 _CpuTimer0
|
||||
1 0000de0e _CpuTimer1
|
||||
1 0000de16 _CpuTimer2
|
||||
1 0000de1e _sens_pair
|
||||
1 0000de36 _isNumb
|
||||
1 0000de37 _quaLamp
|
||||
1 0000de3c _isMask
|
||||
1 0000de3e _Lonely
|
||||
1 0000de40 _def_cal
|
||||
1 0000de80 _sens_type
|
||||
1 0000de98 _powK
|
||||
1 0000deaa _Mode
|
||||
1 0000deab _Desk
|
||||
1 0000deac _TermoAD
|
||||
1 0000dead _TermoRS
|
||||
1 0000deae _TermoSW
|
||||
1 0000deaf _Kurrent
|
||||
1 0000deb0 _Kalibro
|
||||
1 0000deb1 _Owen
|
||||
1 0000deb2 _INcount0
|
||||
1 0000deb3 _INcount1
|
||||
1 0000deb4 _MUX_GPIO32
|
||||
1 0000deb5 _MUX_GPIO48
|
||||
1 0000deb6 _DIR_GPIO32
|
||||
1 0000deb7 _DIR_GPIO48
|
||||
1 0000deb8 _DigErr
|
||||
1 0000deba _err_count
|
||||
1 0000dec0 _period_dac
|
||||
1 0000dec1 _time_dac
|
||||
1 0000dec6 _WAKEpowse
|
||||
1 0000dec8 _IMPowse
|
||||
1 0000dece _CanTimeOutErrorTR
|
||||
1 0000decf _wait
|
||||
1 0000ded0 _ErrorCount
|
||||
1 0000ded2 _MessageReceivedCount
|
||||
1 0000ded4 _MessageTransivedCount
|
||||
1 0000ded6 _TestMbox1
|
||||
1 0000ded8 _TestMbox2
|
||||
1 0000deda _TestMbox3
|
||||
1 0000dedc _COUNT_ONE_CANAL
|
||||
1 0000dedd _COUNT_DISCHARGE
|
||||
1 0000dede _COUNT_TRANSICIA
|
||||
1 0000dedf _FILTER_CLIP
|
||||
1 0000dee4 _WAKE
|
||||
1 0000dee6 _WAKE_TIME
|
||||
1 0000dee8 _lev_quadr
|
||||
1 0000def4 _no_write
|
||||
1 0000def5 _never_write
|
||||
1 0000def6 _flog
|
||||
1 0000def8 _Log
|
||||
1 0000df00 _ext_diag
|
||||
1 0000df08 _ext_temp
|
||||
1 0000df10 _zer_count
|
||||
1 0000df18 _lev_count
|
||||
1 0000df1e _readr
|
||||
1 0000df23 _ADDR_FOR_ALL
|
||||
1 0000df24 _CNTRL_ADDR
|
||||
1 0000df25 _cntr_addr_c
|
||||
1 0000df26 _cntr_addr_c_all
|
||||
1 0000df27 _errno
|
||||
1 0000df28 __unlock
|
||||
1 0000df2a __lock
|
||||
1 0000df2c __cleanup_ptr
|
||||
1 0000df2e __dtors_ptr
|
||||
1 0000df36 _low_count
|
||||
1 0000dd01 _errno
|
||||
1 0000dd02 _no_write
|
||||
1 0000dd03 _never_write
|
||||
1 0000dd04 _flog
|
||||
1 0000dd18 _ump_dac_ramp
|
||||
1 0000dd19 _ump_dac_duration
|
||||
1 0000dd1a _ump_dac_go10
|
||||
1 0000dd1b _ump_dac_stop10
|
||||
1 0000dd1c _ump_dac_position
|
||||
1 0000dd22 _Log
|
||||
1 0000dd2a _powK
|
||||
1 0000dd3c _ADDR_FOR_ALL
|
||||
1 0000dd3d _CNTRL_ADDR
|
||||
1 0000dd3e _cntr_addr_c
|
||||
1 0000dd3f _cntr_addr_c_all
|
||||
1 0000ddbc __unlock
|
||||
1 0000ddbe __lock
|
||||
1 0000ddc0 _zer_filter
|
||||
1 0000de08 _din_count
|
||||
1 0000de28 _CpuTimer0
|
||||
1 0000de30 _CpuTimer1
|
||||
1 0000de38 _CpuTimer2
|
||||
1 0000de40 _RS_Len
|
||||
1 0000de86 _ADC_table
|
||||
1 0000dea2 _prev_ok
|
||||
1 0000dec0 _def_cal
|
||||
1 0000df00 _ccc
|
||||
1 0000df1c _sens_pair
|
||||
1 0000df34 _COUNT_ONE_CANAL
|
||||
1 0000df35 _COUNT_DISCHARGE
|
||||
1 0000df36 _COUNT_TRANSICIA
|
||||
1 0000df37 _FILTER_CLIP
|
||||
1 0000df3c _WAKE
|
||||
1 0000df3e _WAKE_TIME
|
||||
1 0000df40 _sens_type
|
||||
1 0000df58 _CanTimeOutErrorTR
|
||||
1 0000df59 _wait
|
||||
1 0000df62 _ErrorCount
|
||||
1 0000df64 _MessageReceivedCount
|
||||
1 0000df66 _MessageTransivedCount
|
||||
1 0000df68 _TestMbox1
|
||||
1 0000df6a _TestMbox2
|
||||
1 0000df6c _TestMbox3
|
||||
1 0000df70 _Mode
|
||||
1 0000df71 _Desk
|
||||
1 0000df72 _TermoAD
|
||||
1 0000df73 _TermoRS
|
||||
1 0000df74 _TermoSW
|
||||
1 0000df75 _Kurrent
|
||||
1 0000df76 _Kalibro
|
||||
1 0000df77 _Owen
|
||||
1 0000df78 _INcount0
|
||||
1 0000df79 _INcount1
|
||||
1 0000df7a _MUX_GPIO32
|
||||
1 0000df7b _MUX_GPIO48
|
||||
1 0000df7c _DIR_GPIO32
|
||||
1 0000df7d _DIR_GPIO48
|
||||
1 0000df7e _DigErr
|
||||
1 0000df80 _period_dac
|
||||
1 0000df81 _time_dac
|
||||
1 0000df86 _WAKEpowse
|
||||
1 0000df88 _IMPowse
|
||||
1 0000df8e _lev_quadr
|
||||
1 0000df9a _isNumb
|
||||
1 0000df9b _quaLamp
|
||||
1 0000dfa0 _isMask
|
||||
1 0000dfa2 _Lonely
|
||||
1 0000dfa4 _ext_diag
|
||||
1 0000dfac _ext_temp
|
||||
1 0000dfb4 _zer_count
|
||||
1 0000dfbc __cleanup_ptr
|
||||
1 0000dfbe __dtors_ptr
|
||||
1 0000dfc0 _err_count
|
||||
1 0000dfc6 _lev_count
|
||||
1 0000dfcc _readr
|
||||
1 0000dfdb _low_count
|
||||
1 00200000 _logs_block
|
||||
1 0033fff8 _CsmPwl
|
||||
1 00380090 _PartIdRegs
|
||||
@@ -1528,4 +1604,4 @@ abs ffffffff ___pinit__
|
||||
abs ffffffff binit
|
||||
abs ffffffff pinit
|
||||
|
||||
[391 symbols]
|
||||
[419 symbols]
|
||||
|
||||
@@ -40,12 +40,13 @@ Source="Source\Internal\pulto.c"
|
||||
Source="Source\Internal\RS485.c"
|
||||
Source="Source\Internal\spise2p.c"
|
||||
Source="Source\Internal\tools.c"
|
||||
Source="Source\Internal\shared_ump.c"
|
||||
Source="F28335.cmd"
|
||||
Source="Source\External\v120\DSP2833x_headers\cmd\DSP2833x_Headers_nonBIOS.cmd"
|
||||
|
||||
["Debug" Settings]
|
||||
FinalBuildCmd=$(Proj_dir)\bin\hex2000.exe $(Proj_dir)\bin\UKSSTMS320F28335.out -boot -sci8 -map $(Proj_dir)\bin\UKSSTMS320F28335.map -o $(Proj_dir)\bin\UKSSTMS320F28335.hex -i
|
||||
FinalBuildCmd=$(Proj_dir)\bin\hex2000.exe $(Proj_dir)\bin\UKSSTMS320F28335.out -boot -sci8 -map $(Proj_dir)\bin\UKSSTMS320F28335.map -o $(Proj_dir)\bin\UKSSTMS320F28335.bin -b
|
||||
FinalBuildCmd=cmd /c ""$(Proj_dir)\build_bin.bat""
|
||||
|
||||
["Compiler" Settings: "Debug"]
|
||||
Options=-g -pdsw225 -o1 -fr"$(Proj_dir)\Debug" -fs"$(Proj_dir)\Asm" -i"$(Proj_dir)\Source\External\v120\DSP2833x_headers\include" -i"$(Proj_dir)\Source\Internal\Include" -i"$(Proj_dir)\Source\External\v120\DSP2833x_common\include" -d"_DEBUG" -d"LARGE_MODEL" -md -ml -v28 --float_support=fpu32
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<?ccsproject version="1.0"?>
|
||||
<projectOptions>
|
||||
<ccsVersion value="12.3.0"/>
|
||||
<deviceVariant value="TMS320C28XX.TMS320F28335"/>
|
||||
<deviceFamily value="C2000"/>
|
||||
<deviceEndianness value="little"/>
|
||||
<codegenToolVersion value="22.6.0.LTS"/>
|
||||
<isElfFormat value="false"/>
|
||||
<rts value=""/>
|
||||
<isTargetManual value="false"/>
|
||||
<connection value="common/targetdb/connections/SAU510USBIsoPlusV2_Connection.xml"/>
|
||||
</projectOptions>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user