communicationforcenter.txt
91.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
; generated by Component: ARM Compiler 5.06 update 6 (build 750) Tool: ArmCC [4d3637]
; commandline ArmCC [--c99 --list --split_sections --debug -c --asm --interleave -o.\flash\obj\communicationforcenter.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\communicationforcenter.d --cpu=Cortex-M4.fp --apcs=interwork -O1 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Include -I..\..\Libraries\CMSIS\Device\ST\STM32F4xx\Include -I..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc -I..\..\uCOS-III\uC-CPU -I..\..\uCOS-III\uC-LIB -I..\..\uCOS-III\uCOS-III\Ports -I..\..\uCOS-III\uCOS-III\Source -I..\..\uCOS-III\uC-CPU\ARM-Cortex-M4\RealView -I..\..\uCOS-III\uC-LIB\Ports\ARM-Cortex-M4\RealView -I..\..\uCOS-III\uCOS-III\Ports\ARM-Cortex-M4\Generic\RealView -I..\..\User -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\libapp -I..\..\RL-ARM\Config -I..\..\RL-ARM\Driver -I..\..\RL-ARM\RL-RTX\inc -I..\..\User\bsp\BSP -I..\..\RL-ARM\RL-CAN -I..\..\Libraries\DSP_LIB\Include -I..\..\MODBUS\modbus\rtu -I..\..\MODBUS\BARE\port -I..\..\MODBUS\modbus\include -I..\..\User\bsp\BSP -I..\..\PLC -I..\..\Avoid -I..\..\User\parameter -I..\..\User\LaserMotionCtr -I..\..\User\W5100S -I..\..\User\bsp -I..\..\User\CHASSIS -I..\..\User\CONTROLFUNCTION -I..\..\User\DATAUPDATE -I..\..\User\HARAWARE -I..\..\User\MOTORDRIVER -I..\..\User\NAVAGATION -I..\..\User\PLATFORM -I..\..\User\SENSOR -I.\RTE\_Flash -IC:\Users\YDJ\AppData\Local\Arm\Packs\ARM\CMSIS\5.5.1\CMSIS\Core\Include -IC:\Users\YDJ\AppData\Local\Arm\Packs\Keil\STM32F4xx_DFP\2.13.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include -D__UVISION_VERSION=527 -D_RTE_ -DSTM32F407xx -DUSE_STDPERIPH_DRIVER -DSTM32F40_41xxx -D__RTX -D__FPU_USED=1 --omf_browse=.\flash\obj\communicationforcenter.crf ..\..\User\DATAUPDATE\CommunicationForCenter.c]
THUMB
AREA ||i.ActionProcess||, CODE, READONLY, ALIGN=1
ActionProcess PROC
;;;292 //动作方向处理
;;;293 short ActionProcess(char paraOne,char paraTwo)
000000 2865 CMP r0,#0x65
;;;294 {
000002 d002 BEQ |L1.10|
;;;295 if(paraOne == 'e')
;;;296 {
;;;297 return 0;
;;;298 }
;;;299 else if(paraOne == 'f' && paraTwo == 'a')
000004 2866 CMP r0,#0x66
000006 d002 BEQ |L1.14|
000008 e003 B |L1.18|
|L1.10|
00000a 2000 MOVS r0,#0 ;297
;;;300 {
;;;301 return 3;
;;;302 }
;;;303 else if(paraOne == 'f' && paraTwo == 'c')
;;;304 {
;;;305 return 4;
;;;306 }
;;;307 else if(paraOne == 'f' && paraTwo == 'm')
;;;308 {
;;;309 return 1;
;;;310 }
;;;311 else if(paraOne == 'b' && paraTwo == 'a')
;;;312 {
;;;313 return 5;
;;;314 }
;;;315 else if(paraOne == 'b' && paraTwo == 'c')
;;;316 {
;;;317 return 6;
;;;318 }
;;;319 else if(paraOne == 'b' && paraTwo == 'm')
;;;320 {
;;;321 return 2;
;;;322 }
;;;323 else if(paraOne == 'f' && paraTwo == 'l')
;;;324 {
;;;325 return 7;
;;;326 }
;;;327 else if(paraOne == 'b' && paraTwo == 'l')
;;;328 {
;;;329 return 9;
;;;330 }
;;;331 else if(paraOne == 'f' && paraTwo == 'r')
;;;332 {
;;;333 return 8;
;;;334 }
;;;335 else if(paraOne == 'b' && paraTwo == 'r')
;;;336 {
;;;337 return 10;
;;;338 }
;;;339 else
;;;340 return -1;
;;;341 }
00000c 4770 BX lr
|L1.14|
00000e 2961 CMP r1,#0x61 ;299
000010 d002 BEQ |L1.24|
|L1.18|
000012 2866 CMP r0,#0x66 ;303
000014 d002 BEQ |L1.28|
000016 e003 B |L1.32|
|L1.24|
000018 2003 MOVS r0,#3 ;301
00001a 4770 BX lr
|L1.28|
00001c 2963 CMP r1,#0x63 ;303
00001e d002 BEQ |L1.38|
|L1.32|
000020 2866 CMP r0,#0x66 ;307
000022 d002 BEQ |L1.42|
000024 e003 B |L1.46|
|L1.38|
000026 2004 MOVS r0,#4 ;305
000028 4770 BX lr
|L1.42|
00002a 296d CMP r1,#0x6d ;307
00002c d002 BEQ |L1.52|
|L1.46|
00002e 2862 CMP r0,#0x62 ;311
000030 d002 BEQ |L1.56|
000032 e003 B |L1.60|
|L1.52|
000034 2001 MOVS r0,#1 ;309
000036 4770 BX lr
|L1.56|
000038 2961 CMP r1,#0x61 ;311
00003a d002 BEQ |L1.66|
|L1.60|
00003c 2862 CMP r0,#0x62 ;315
00003e d002 BEQ |L1.70|
000040 e003 B |L1.74|
|L1.66|
000042 2005 MOVS r0,#5 ;313
000044 4770 BX lr
|L1.70|
000046 2963 CMP r1,#0x63 ;315
000048 d002 BEQ |L1.80|
|L1.74|
00004a 2862 CMP r0,#0x62 ;319
00004c d002 BEQ |L1.84|
00004e e003 B |L1.88|
|L1.80|
000050 2006 MOVS r0,#6 ;317
000052 4770 BX lr
|L1.84|
000054 296d CMP r1,#0x6d ;319
000056 d002 BEQ |L1.94|
|L1.88|
000058 2866 CMP r0,#0x66 ;323
00005a d002 BEQ |L1.98|
00005c e003 B |L1.102|
|L1.94|
00005e 2002 MOVS r0,#2 ;321
000060 4770 BX lr
|L1.98|
000062 296c CMP r1,#0x6c ;323
000064 d002 BEQ |L1.108|
|L1.102|
000066 2862 CMP r0,#0x62 ;327
000068 d002 BEQ |L1.112|
00006a e003 B |L1.116|
|L1.108|
00006c 2007 MOVS r0,#7 ;325
00006e 4770 BX lr
|L1.112|
000070 296c CMP r1,#0x6c ;327
000072 d002 BEQ |L1.122|
|L1.116|
000074 2866 CMP r0,#0x66 ;331
000076 d002 BEQ |L1.126|
000078 e003 B |L1.130|
|L1.122|
00007a 2009 MOVS r0,#9 ;329
00007c 4770 BX lr
|L1.126|
00007e 2972 CMP r1,#0x72 ;331
000080 d002 BEQ |L1.136|
|L1.130|
000082 2862 CMP r0,#0x62 ;335
000084 d002 BEQ |L1.140|
000086 e003 B |L1.144|
|L1.136|
000088 2008 MOVS r0,#8 ;333
00008a 4770 BX lr
|L1.140|
00008c 2972 CMP r1,#0x72 ;335
00008e d002 BEQ |L1.150|
|L1.144|
000090 f04f30ff MOV r0,#0xffffffff ;340
000094 4770 BX lr
|L1.150|
000096 200a MOVS r0,#0xa ;337
000098 4770 BX lr
;;;342 /********************************
ENDP
AREA ||i.AddCheckSum||, CODE, READONLY, ALIGN=1
AddCheckSum PROC
;;;188 //求数组iCmd数组所有参数和的最小两位数
;;;189 uint16_t AddCheckSum(char* cBuffer, short iBufLen)
000000 b570 PUSH {r4-r6,lr}
;;;190 {
000002 4605 MOV r5,r0
;;;191 uint16_t i = 0, j = 0;
000004 2300 MOVS r3,#0
;;;192 uint16_t wCrc = 0xffff;
000006 f64f70ff MOV r0,#0xffff
;;;193 uint16_t wPolynom = 0xA003;
00000a f24a0403 MOV r4,#0xa003
00000e e00e B |L2.46|
|L2.16|
;;;194 for (i = 0; i < iBufLen; i++)
;;;195 {
;;;196 wCrc ^= cBuffer[i];
000010 5cea LDRB r2,[r5,r3]
000012 4050 EORS r0,r0,r2
;;;197 for (j = 0; j < 8; j++)
000014 2200 MOVS r2,#0
|L2.22|
;;;198 {
;;;199 if (wCrc & 0x0001)
000016 07c6 LSLS r6,r0,#31
000018 d002 BEQ |L2.32|
;;;200 {
;;;201 wCrc = (wCrc >> 1) ^ wPolynom;
00001a ea840050 EOR r0,r4,r0,LSR #1
00001e e000 B |L2.34|
|L2.32|
;;;202 }
;;;203 else
;;;204 {
;;;205 wCrc = wCrc >> 1;
000020 0840 LSRS r0,r0,#1
|L2.34|
000022 1c52 ADDS r2,r2,#1 ;197
000024 b292 UXTH r2,r2 ;197
000026 2a08 CMP r2,#8 ;197
000028 d3f5 BCC |L2.22|
00002a 1c5b ADDS r3,r3,#1 ;194
00002c b29b UXTH r3,r3 ;194
|L2.46|
00002e 428b CMP r3,r1 ;194
000030 dbee BLT |L2.16|
;;;206 }
;;;207 }
;;;208 }
;;;209 return wCrc;
;;;210 }
000032 bd70 POP {r4-r6,pc}
;;;211
ENDP
AREA ||i.AddCheckSumCRC||, CODE, READONLY, ALIGN=1
AddCheckSumCRC PROC
;;;222 //求数组iCmd数组所有参数和的最小两位数
;;;223 uint16_t AddCheckSumCRC(char* cBuffer, short iBufLen)
000000 b570 PUSH {r4-r6,lr}
;;;224 {
000002 4605 MOV r5,r0
;;;225 uint16_t i = 0, j = 0;
;;;226 uint16_t wCrc = 0xffff;
000004 f64f70ff MOV r0,#0xffff
;;;227 uint16_t wPolynom = 0xA003;
000008 f24a0403 MOV r4,#0xa003
;;;228 for (i = 4; i < iBufLen; i++)
00000c 2304 MOVS r3,#4
00000e e00e B |L3.46|
|L3.16|
;;;229 {
;;;230 wCrc ^= cBuffer[i];
000010 5cea LDRB r2,[r5,r3]
000012 4050 EORS r0,r0,r2
;;;231 for (j = 0; j < 8; j++)
000014 2200 MOVS r2,#0
|L3.22|
;;;232 {
;;;233 if (wCrc & 0x0001)
000016 07c6 LSLS r6,r0,#31
000018 d002 BEQ |L3.32|
;;;234 {
;;;235 wCrc = (wCrc >> 1) ^ wPolynom;
00001a ea840050 EOR r0,r4,r0,LSR #1
00001e e000 B |L3.34|
|L3.32|
;;;236 }
;;;237 else
;;;238 {
;;;239 wCrc = wCrc >> 1;
000020 0840 LSRS r0,r0,#1
|L3.34|
000022 1c52 ADDS r2,r2,#1 ;231
000024 b292 UXTH r2,r2 ;231
000026 2a08 CMP r2,#8 ;231
000028 d3f5 BCC |L3.22|
00002a 1c5b ADDS r3,r3,#1 ;228
00002c b29b UXTH r3,r3 ;228
|L3.46|
00002e 428b CMP r3,r1 ;228
000030 dbee BLT |L3.16|
;;;240 }
;;;241 }
;;;242 }
;;;243 return wCrc;
;;;244 }
000032 bd70 POP {r4-r6,pc}
;;;245 /*************************
ENDP
AREA ||i.Bady_DictateTypeHandle||, CODE, READONLY, ALIGN=2
Bady_DictateTypeHandle PROC
;;;494
;;;495 void Bady_DictateTypeHandle(void)
000000 b538 PUSH {r3-r5,lr}
;;;496 {
;;;497 u8 num =0;
;;;498 static int dst = 0;
;;;499
;;;500 switch (CenterCommand.Content)
000002 4c30 LDR r4,|L4.196|
000004 f504611e ADD r1,r4,#0x9e0
000008 f8940b7e LDRB r0,[r4,#0xb7e] ; CenterCommand
00000c 2808 CMP r0,#8
00000e d043 BEQ |L4.152|
000010 dc0f BGT |L4.50|
000012 2801 CMP r0,#1
000014 d00c BEQ |L4.48|
000016 2802 CMP r0,#2
000018 d019 BEQ |L4.78|
00001a 2803 CMP r0,#3
00001c d01f BEQ |L4.94|
00001e 2804 CMP r0,#4
000020 d106 BNE |L4.48|
;;;501 {
;;;502 case ct_getac://获得RFID位置
;;;503 break;
;;;504
;;;505 case ct_getvol://获得电压值
;;;506 Create_BodyTreaty(false, et_smtagv, sort_Receive, ct_getvol, CenterCommand.CmdList.Cmd_RoadParam);
;;;507 // Create_BodyTreaty(false, et_smtagv, sort_Send, ct_rptvol, ParameterTransform("%2.2f", AGVStatus.battery_voltage*0.0001f));
;;;508 break;
;;;509
;;;510 case ct_geterr://获得报警状态
;;;511 Create_BodyTreaty(false, et_smtagv, sort_Receive, ct_geterr, CenterCommand.CmdList.Cmd_RoadParam);
;;;512 Create_BodyTreaty(true, et_smtagv, sort_Send, ct_rpterr, ParameterTransform("%04x", agv.Public.Error_Flag));
;;;513 break;
;;;514
;;;515 case ct_getspd://获得小车速度
;;;516 Create_BodyTreaty(false, et_smtagv, sort_Receive, ct_getspd, CenterCommand.CmdList.Cmd_RoadParam);
000022 9100 STR r1,[sp,#0]
000024 2100 MOVS r1,#0
000026 2304 MOVS r3,#4
000028 2201 MOVS r2,#1
00002a 4608 MOV r0,r1
00002c f7fffffe BL Create_BodyTreaty
|L4.48|
;;;517
;;;518 // Create_BodyTreaty(false, et_smtagv, sort_Send, ct_rptspd, ParameterTransform("%2.4f", AGVStatus.Speed));
;;;519 break;
;;;520
;;;521 case ct_rptvmot://获取料架上报并回复
;;;522 Create_BodyTreaty(false, et_B123, sort_Receive, ct_rptvmot, CenterCommand.CmdList.Cmd_RoadParam);
;;;523
;;;524 // Create_BodyTreaty(false, et_smtagv, sort_Send, ct_rptspd, ParameterTransform("%2.4f", AGVStatus.Speed));
;;;525 break;
;;;526
;;;527 case ct_rptmt:
;;;528 switch (CenterCommand.Param[0])//检测1号工位
;;;529 {
;;;530 case 0:
;;;531 break;
;;;532 case 1:
;;;533 break;
;;;534 }
;;;535 Create_BodyTreaty(false, et_B124, sort_Receive, ct_rptmt, CenterCommand.CmdList.Cmd_RoadParam);
;;;536 break;
;;;537
;;;538 case ct_setlrout://设置行走轴
;;;539 Create_BodyTreaty(false, et_smtagv, sort_Receive, ct_setlrout, CenterCommand.CmdList.Cmd_RoadParam);
;;;540 break;
;;;541
;;;542 case ct_setvmot: //设置小车滚筒转动状态
;;;543 Create_BodyTreaty(false, et_smtagv, sort_Receive, ct_setvmot, CenterCommand.CmdList.Cmd_RoadParam);
;;;544 commandActionAnalysis(CenterCommand.Param[0],CenterCommand.Param[1]);//悬臂轴自动对接
;;;545
;;;546 }
;;;547 }
000030 bd38 POP {r3-r5,pc}
|L4.50|
000032 280b CMP r0,#0xb ;500
000034 d028 BEQ |L4.136|
000036 2821 CMP r0,#0x21 ;500
000038 d036 BEQ |L4.168|
00003a 2827 CMP r0,#0x27 ;500
00003c d1f8 BNE |L4.48|
00003e 9100 STR r1,[sp,#0] ;539
000040 2100 MOVS r1,#0 ;539
000042 2327 MOVS r3,#0x27 ;539
000044 2201 MOVS r2,#1 ;539
000046 4608 MOV r0,r1 ;539
000048 f7fffffe BL Create_BodyTreaty
00004c bd38 POP {r3-r5,pc}
|L4.78|
00004e 9100 STR r1,[sp,#0] ;506
000050 2100 MOVS r1,#0 ;506
000052 2302 MOVS r3,#2 ;506
000054 2201 MOVS r2,#1 ;506
000056 4608 MOV r0,r1 ;506
000058 f7fffffe BL Create_BodyTreaty
00005c bd38 POP {r3-r5,pc}
|L4.94|
00005e 9100 STR r1,[sp,#0] ;511
000060 2100 MOVS r1,#0 ;511
000062 2303 MOVS r3,#3 ;511
000064 2201 MOVS r2,#1 ;511
000066 4608 MOV r0,r1 ;511
000068 f7fffffe BL Create_BodyTreaty
00006c 4816 LDR r0,|L4.200|
00006e f8d01080 LDR r1,[r0,#0x80] ;512 ; agv
000072 a016 ADR r0,|L4.204|
000074 f7fffffe BL ParameterTransform
000078 2200 MOVS r2,#0 ;512
00007a 9000 STR r0,[sp,#0] ;512
00007c 2306 MOVS r3,#6 ;512
00007e 4611 MOV r1,r2 ;512
000080 2001 MOVS r0,#1 ;512
000082 f7fffffe BL Create_BodyTreaty
000086 bd38 POP {r3-r5,pc}
|L4.136|
000088 2201 MOVS r2,#1 ;522
00008a 9100 STR r1,[sp,#0] ;522
00008c 230b MOVS r3,#0xb ;522
00008e 4611 MOV r1,r2 ;522
000090 2000 MOVS r0,#0 ;522
000092 f7fffffe BL Create_BodyTreaty
000096 bd38 POP {r3-r5,pc}
|L4.152|
000098 9100 STR r1,[sp,#0] ;535
00009a 2308 MOVS r3,#8 ;535
00009c 2201 MOVS r2,#1 ;535
00009e 2102 MOVS r1,#2 ;535
0000a0 2000 MOVS r0,#0 ;535
0000a2 f7fffffe BL Create_BodyTreaty
0000a6 bd38 POP {r3-r5,pc}
|L4.168|
0000a8 9100 STR r1,[sp,#0] ;543
0000aa 2100 MOVS r1,#0 ;543
0000ac 2321 MOVS r3,#0x21 ;543
0000ae 2201 MOVS r2,#1 ;543
0000b0 4608 MOV r0,r1 ;543
0000b2 f7fffffe BL Create_BodyTreaty
0000b6 f5046438 ADD r4,r4,#0xb80 ;544
0000ba cc03 LDM r4!,{r0,r1} ;544
0000bc e8bd4038 POP {r3-r5,lr} ;544
0000c0 f7ffbffe B.W commandActionAnalysis
;;;548
ENDP
|L4.196|
DCD ||.bss||+0xcf5c
|L4.200|
DCD agv
|L4.204|
0000cc 25303478 DCB "%04x",0
0000d0 00
0000d1 00 DCB 0
0000d2 00 DCB 0
0000d3 00 DCB 0
AREA ||i.CenterDecode||, CODE, READONLY, ALIGN=2
REQUIRE _scanf_int
CenterDecode PROC
;;;84 tsCommand CenterCommand;
;;;85 ctDecodestate CenterDecode(char Byte, tsCmdList* iList)
000000 e92d4ff8 PUSH {r3-r11,lr}
;;;86 {
000004 4604 MOV r4,r0
;;;87
;;;88 static bool sFirst = 0;
;;;89 static ctDecodestate Status;
;;;90 static u16 DataCount = 0;
;;;91 static u16 FinishDataCount = 0;
;;;92 static u16 StartDataCount = 0;
;;;93 unsigned int Check_Sum = 0x00;//存储接收到的校验码
000006 2500 MOVS r5,#0
000008 9500 STR r5,[sp,#0]
;;;94 unsigned int Add_Sum = 0x00;//存储计算校验码
;;;95 if (!sFirst)
00000a 4e46 LDR r6,|L5.292|
;;;96 {
;;;97 memset(CenterCommand.CmdList.ReceiveData, 0, sizeof(CenterCommand.CmdList.ReceiveData));
00000c f8dfa118 LDR r10,|L5.296|
;;;98 Status = teERR;
;;;99 sFirst = 1;
000010 f04f0801 MOV r8,#1
000014 7830 LDRB r0,[r6,#0] ;95 ; sFirst
000016 f44f77c8 MOV r7,#0x190 ;97
00001a 2800 CMP r0,#0 ;95
00001c d107 BNE |L5.46|
00001e 4639 MOV r1,r7 ;97
000020 4650 MOV r0,r10 ;97
000022 f7fffffe BL __aeabi_memclr4
000026 7075 STRB r5,[r6,#1] ;98
000028 f8868000 STRB r8,[r6,#0]
;;;100 DataCount = 0;
00002c 80b5 STRH r5,[r6,#4]
|L5.46|
;;;101 }
;;;102 if (Byte == '#')
00002e 2c23 CMP r4,#0x23
000030 d00c BEQ |L5.76|
;;;103 {
;;;104 Status = teDecoding;
;;;105 StartDataCount++;
;;;106 if (StartDataCount == 1)
;;;107 {
;;;108 DataCount = 0;
;;;109 }
;;;110 }
;;;111 else
;;;112 {
;;;113 StartDataCount = 0;
000032 8135 STRH r5,[r6,#8]
|L5.52|
;;;114 }
;;;115 switch (Status)
000034 7870 LDRB r0,[r6,#1] ; Status
000036 f8df90f4 LDR r9,|L5.300|
;;;116 {
;;;117 case teERR:
;;;118 break;
;;;119 case teDecodLost:
;;;120 case teDecodSuccess:
;;;121 memset(CenterCommand.CmdList.ReceiveData, 0, sizeof(CenterCommand.CmdList.ReceiveData));
;;;122 Status = teDecoding;
;;;123 DataCount = 0;
;;;124 case teDecoding:
;;;125 if (Byte != ' ')
;;;126 {
;;;127 if (DataCount < WifiBUFF_SIZE)
;;;128 CenterCommand.CmdList.ReceiveData[DataCount++] = Byte;//从#号开始存储数据到Z号结束
;;;129 }
;;;130 if (Byte == 'Z')
;;;131 {
;;;132 FinishDataCount++;
00003a f04f0b02 MOV r11,#2
00003e 2805 CMP r0,#5 ;115
000040 d26e BCS |L5.288|
000042 e8dff000 TBB [pc,r0] ;115
000046 6a14 DCB 0x6a,0x14
000048 0d280d00 DCB 0x0d,0x28,0x0d,0x00
|L5.76|
00004c f8868001 STRB r8,[r6,#1] ;104
000050 8930 LDRH r0,[r6,#8] ;105 ; StartDataCount
000052 1c40 ADDS r0,r0,#1 ;105
000054 b280 UXTH r0,r0 ;105
000056 8130 STRH r0,[r6,#8] ;105
000058 2801 CMP r0,#1 ;106
00005a d1eb BNE |L5.52|
00005c 80b5 STRH r5,[r6,#4] ;108
00005e e7e9 B |L5.52|
000060 4639 MOV r1,r7 ;121
000062 4650 MOV r0,r10 ;121
000064 f7fffffe BL __aeabi_memclr4
000068 f8868001 STRB r8,[r6,#1] ;122
00006c 80b5 STRH r5,[r6,#4] ;123
00006e 2c20 CMP r4,#0x20 ;125
000070 d009 BEQ |L5.134|
000072 88b0 LDRH r0,[r6,#4] ;127 ; DataCount
000074 42b8 CMP r0,r7 ;127
000076 d206 BCS |L5.134|
000078 1c41 ADDS r1,r0,#1 ;128
00007a 4448 ADD r0,r0,r9 ;128
00007c f5005000 ADD r0,r0,#0x2000 ;128
000080 80b1 STRH r1,[r6,#4] ;128
000082 f8804d50 STRB r4,[r0,#0xd50] ;128
|L5.134|
000086 2c5a CMP r4,#0x5a ;130
000088 d023 BEQ |L5.210|
;;;133 if (FinishDataCount == 2)
;;;134 {
;;;135 Status = teDecodCRC;
;;;136 }
;;;137 else
;;;138 {
;;;139 break;
;;;140 }
;;;141 }
;;;142 else
;;;143 {
;;;144 FinishDataCount = 0;
00008a 80f5 STRH r5,[r6,#6]
;;;145 if (DataCount >= WifiBUFF_SIZE)
00008c 88b0 LDRH r0,[r6,#4] ; DataCount
00008e 42b8 CMP r0,r7
000090 d343 BCC |L5.282|
;;;146 {
;;;147 Status = teDecodLost;
000092 f886b001 STRB r11,[r6,#1]
|L5.150|
;;;148 }
;;;149 else
;;;150 {
;;;151 break;
;;;152 }
;;;153 }
;;;154
;;;155 case teDecodCRC:
;;;156
;;;157 sscanf(&CenterCommand.CmdList.ReceiveData[DataCount - 8], "%04x", &Check_Sum);//接收中控校验码
000096 88b0 LDRH r0,[r6,#4] ; DataCount
000098 f6425148 MOV r1,#0x2d48
00009c 4448 ADD r0,r0,r9
00009e 4408 ADD r0,r0,r1
0000a0 466a MOV r2,sp
0000a2 a123 ADR r1,|L5.304|
0000a4 f7fffffe BL __0sscanf
;;;158 Add_Sum = AddCheckSum(CenterCommand.CmdList.ReceiveData, DataCount - 8);//计算接收数据的校验码
0000a8 88b0 LDRH r0,[r6,#4] ; DataCount
0000aa 3808 SUBS r0,r0,#8
0000ac b201 SXTH r1,r0
0000ae 4650 MOV r0,r10
0000b0 f7fffffe BL AddCheckSum
0000b4 4601 MOV r1,r0
;;;159 if (Add_Sum == Check_Sum || (Check_Sum == 0))
0000b6 9800 LDR r0,[sp,#0]
0000b8 4281 CMP r1,r0
0000ba d013 BEQ |L5.228|
0000bc b190 CBZ r0,|L5.228|
;;;160 {
;;;161 memset(Original_Command_String, 0, sizeof(Original_Command_String));
;;;162 strcpy(Original_Command_String, CenterCommand.CmdList.ReceiveData);//将接收的数据存到Original_Command_String数组中
;;;163
;;;164 memset(CenterCommand.CmdList.ReceiveData, 0, sizeof(CenterCommand.CmdList.ReceiveData));
;;;165 CenterCommand.CmdList.RecesiveDate = strlen(Original_Command_String);//存储本次接收字符数据量
;;;166 DataCount = 0;
;;;167 Status = teDecodSuccess;
;;;168 break;
;;;169 }
;;;170 else
;;;171 {
;;;172 memset(CenterCommand.CmdList.ReceiveData, 0, sizeof(CenterCommand.CmdList.ReceiveData));
0000be 4639 MOV r1,r7
0000c0 4650 MOV r0,r10
0000c2 f7fffffe BL __aeabi_memclr4
;;;173 DataCount = 0;
0000c6 80b5 STRH r5,[r6,#4]
;;;174 Status = teDecodLost;
0000c8 f886b001 STRB r11,[r6,#1]
;;;175 }
;;;176 if (Byte == '#')
0000cc 2c23 CMP r4,#0x23
0000ce d01f BEQ |L5.272|
0000d0 e023 B |L5.282|
|L5.210|
0000d2 88f0 LDRH r0,[r6,#6] ;132 ; FinishDataCount
0000d4 1c40 ADDS r0,r0,#1 ;132
0000d6 b280 UXTH r0,r0 ;132
0000d8 80f0 STRH r0,[r6,#6] ;132
0000da 2802 CMP r0,#2 ;133
0000dc d11d BNE |L5.282|
0000de 2003 MOVS r0,#3 ;135
0000e0 7070 STRB r0,[r6,#1] ;135
0000e2 e7d8 B |L5.150|
|L5.228|
0000e4 4639 MOV r1,r7 ;161
0000e6 4814 LDR r0,|L5.312|
0000e8 f7fffffe BL __aeabi_memclr4
0000ec 4651 MOV r1,r10 ;162
0000ee 4812 LDR r0,|L5.312|
0000f0 f7fffffe BL strcpy
0000f4 4639 MOV r1,r7 ;164
0000f6 4650 MOV r0,r10 ;164
0000f8 f7fffffe BL __aeabi_memclr4
0000fc 480e LDR r0,|L5.312|
0000fe f7fffffe BL strlen
000102 490e LDR r1,|L5.316|
000104 f8c10b78 STR r0,[r1,#0xb78] ;165 ; CenterCommand
000108 80b5 STRH r5,[r6,#4] ;166
00010a 2004 MOVS r0,#4 ;167
00010c 7070 STRB r0,[r6,#1] ;167
00010e e004 B |L5.282|
|L5.272|
;;;177 {
;;;178 memset(CenterCommand.CmdList.ReceiveData, 0, sizeof(CenterCommand.CmdList.ReceiveData));
000110 4639 MOV r1,r7
000112 4650 MOV r0,r10
000114 f7fffffe BL __aeabi_memclr4
;;;179 DataCount = 0;
000118 80b5 STRH r5,[r6,#4]
|L5.282|
;;;180 }
;;;181 break;
;;;182
;;;183 default:
;;;184 while (1);
;;;185 }
;;;186 return Status;
00011a 7870 LDRB r0,[r6,#1] ; Status
;;;187 }
00011c e8bd8ff8 POP {r3-r11,pc}
|L5.288|
000120 e7fe B |L5.288|
;;;188 //求数组iCmd数组所有参数和的最小两位数
ENDP
000122 0000 DCW 0x0000
|L5.292|
DCD ||.data||
|L5.296|
DCD ||.bss||+0x8cac
|L5.300|
DCD ||.bss||+0x5f5c
|L5.304|
000130 25303478 DCB "%04x",0
000134 00
000135 00 DCB 0
000136 00 DCB 0
000137 00 DCB 0
|L5.312|
DCD ||.bss||+0x5dcc
|L5.316|
DCD ||.bss||+0xcf5c
AREA ||i.CommandAnalysis||, CODE, READONLY, ALIGN=2
CommandAnalysis PROC
;;;423 /**关键字解码判断**/
;;;424 char CommandAnalysis(void)
000000 e92d41f0 PUSH {r4-r8,lr}
;;;425 {
;;;426 //任何一处解码失败,程序就不会继续往下执行
;;;427 uint8_t i;
;;;428 int Status = 0;
;;;429 CenterCommand.SendOrReply = sort_Default;
000004 4d2a LDR r5,|L6.176|
000006 2002 MOVS r0,#2
000008 f8850b7c STRB r0,[r5,#0xb7c]
;;;430 CenterCommand.Content = ct_Default;
00000c 2030 MOVS r0,#0x30
00000e f8850b7e STRB r0,[r5,#0xb7e]
;;;431 Status = GetKeyWords(&CenterCommand.CmdList);//初步用,号判断有几段用,号隔开的数据且返回判断结果
000012 4828 LDR r0,|L6.180|
000014 f7fffffe BL GetKeyWords
;;;432 for (i = 0; i < sort_Size; i++)
000018 2400 MOVS r4,#0
;;;433 {
;;;434 Status = strcasecmp(CenterCommand.CmdList.Cmd_List[2], SendOrReplyTypeDataCode[i]);//判断方向
00001a 4e27 LDR r6,|L6.184|
00001c 4f27 LDR r7,|L6.188|
|L6.30|
00001e eb040084 ADD r0,r4,r4,LSL #2
000022 eb060180 ADD r1,r6,r0,LSL #2
000026 4638 MOV r0,r7
000028 f7fffffe BL strcasecmp
;;;435 if (Status == 0)
00002c b380 CBZ r0,|L6.144|
;;;436 {
;;;437 CenterCommand.SendOrReply = (teSendOrReplyType)i;//存储方向
;;;438 break;
;;;439 }
;;;440 if (i == sort_Default)
00002e 2c02 CMP r4,#2
000030 d032 BEQ |L6.152|
000032 1c64 ADDS r4,r4,#1 ;432
000034 b2e4 UXTB r4,r4 ;432
000036 2c03 CMP r4,#3 ;432
000038 d3f1 BCC |L6.30|
|L6.58|
;;;441 {
;;;442 return 2;//失败返回2
;;;443 }
;;;444 }
;;;445 for (i = 0; i < et_Size; i++)
00003a 2400 MOVS r4,#0
;;;446 {
;;;447 Status = strcasecmp(CenterCommand.CmdList.Cmd_List[1], EquipmentTypeDataCode[i]);//判断动作(content)模式
00003c 4e1e LDR r6,|L6.184|
00003e 4f1f LDR r7,|L6.188|
000040 363c ADDS r6,r6,#0x3c
000042 3f28 SUBS r7,r7,#0x28 ;429
|L6.68|
000044 eb040084 ADD r0,r4,r4,LSL #2
000048 eb060180 ADD r1,r6,r0,LSL #2
00004c 4638 MOV r0,r7
00004e f7fffffe BL strcasecmp
;;;448 if (Status == 0)
000052 b318 CBZ r0,|L6.156|
;;;449 {
;;;450 CenterCommand.EquipmentType = (teEquipmentType)i;//存储动作模式
;;;451 break;
;;;452 }
;;;453 if (i == et_Default)
000054 2c03 CMP r4,#3
000056 d024 BEQ |L6.162|
000058 1c64 ADDS r4,r4,#1 ;445
00005a b2e4 UXTB r4,r4 ;445
00005c 2c04 CMP r4,#4 ;445
00005e d3f1 BCC |L6.68|
|L6.96|
;;;454 {
;;;455 return 3;//失败返回3
;;;456 }
;;;457 }
;;;458 for (i = 0; i < ct_Size; i++)
000060 2400 MOVS r4,#0
;;;459 {
;;;460 Status = strcasecmp(CenterCommand.CmdList.Cmd_List[3], ContentTypeDataCode[i]);//判断动作(content)模式
000062 4e15 LDR r6,|L6.184|
000064 4f15 LDR r7,|L6.188|
000066 368c ADDS r6,r6,#0x8c
000068 3728 ADDS r7,r7,#0x28 ;429
|L6.106|
00006a eb040044 ADD r0,r4,r4,LSL #1
00006e eb0000c4 ADD r0,r0,r4,LSL #3
000072 eb060140 ADD r1,r6,r0,LSL #1
000076 4638 MOV r0,r7
000078 f7fffffe BL strcasecmp
;;;461 if (Status == 0)
00007c b198 CBZ r0,|L6.166|
;;;462 {
;;;463 CenterCommand.Content = (teContentType)i;//存储动作模式
;;;464 break;
;;;465 }
;;;466 if (i == ct_Default)
00007e 2c30 CMP r4,#0x30
000080 d014 BEQ |L6.172|
000082 1c64 ADDS r4,r4,#1 ;458
000084 b2e4 UXTB r4,r4 ;458
000086 2c31 CMP r4,#0x31 ;458
000088 d3ef BCC |L6.106|
|L6.138|
;;;467 {
;;;468 return 7;//失败返回7
;;;469 }
;;;470 }
;;;471 return 0;
00008a 2000 MOVS r0,#0
|L6.140|
;;;472 }
00008c e8bd81f0 POP {r4-r8,pc}
|L6.144|
000090 e7ff B |L6.146|
|L6.146|
000092 f8854b7c STRB r4,[r5,#0xb7c] ;437
000096 e7d0 B |L6.58|
|L6.152|
000098 2002 MOVS r0,#2 ;442
00009a e7f7 B |L6.140|
|L6.156|
00009c f8854b7d STRB r4,[r5,#0xb7d] ;450
0000a0 e7de B |L6.96|
|L6.162|
0000a2 2003 MOVS r0,#3 ;455
0000a4 e7f2 B |L6.140|
|L6.166|
0000a6 f8854b7e STRB r4,[r5,#0xb7e] ;463
0000aa e7ee B |L6.138|
|L6.172|
0000ac 2007 MOVS r0,#7 ;468
0000ae e7ed B |L6.140|
;;;473 /**设置或者回复指令**/
ENDP
|L6.176|
DCD ||.bss||+0xcf5c
|L6.180|
DCD ||.bss||+0x8cac
|L6.184|
DCD ||.data||+0x10
|L6.188|
DCD ||.bss||+0x8e8c
AREA ||i.Create_BodyTreaty||, CODE, READONLY, ALIGN=2
REQUIRE _printf_pre_padding
REQUIRE _printf_percent
REQUIRE _printf_flags
REQUIRE _printf_widthprec
REQUIRE _printf_x
REQUIRE _printf_longlong_hex
REQUIRE _printf_s
REQUIRE _printf_str
Create_BodyTreaty PROC
;;;549 //生成通讯协议
;;;550 void Create_BodyTreaty(bool AskAgainEnable, teEquipmentType EquipmentType, teSendOrReplyType SendOrReplyType, teContentType ContentType, char *Parameter)
000000 e92d43fe PUSH {r1-r9,lr}
;;;551 {
000004 f8dd8028 LDR r8,[sp,#0x28]
000008 4607 MOV r7,r0
00000a 460e MOV r6,r1
00000c 4615 MOV r5,r2
00000e 461c MOV r4,r3
;;;552 char CheckSum[4];
;;;553 //先清零重发数据的字符数组
;;;554 memset(Uart8SendBuff, 0, sizeof(Uart8SendBuff));
000010 f44f71c8 MOV r1,#0x190
000014 482b LDR r0,|L7.196|
000016 f7fffffe BL __aeabi_memclr4
;;;555
;;;556 if (agv.Parameter.AGVID != 0)//AGG ID号不等于0时设置AGVID
00001a 482b LDR r0,|L7.200|
00001c 8e82 LDRH r2,[r0,#0x34] ; agv
00001e b11a CBZ r2,|L7.40|
;;;557 {
;;;558 sprintf(EquipmentTypeDataCode[0], "%04X", agv.Parameter.AGVID);
000020 a12a ADR r1,|L7.204|
000022 482c LDR r0,|L7.212|
000024 f7fffffe BL __2sprintf
|L7.40|
;;;559 }
;;;560 sprintf(Uart8SendBuff, "##,,%s,,%s,,%s,,%s,,", EquipmentTypeDataCode[EquipmentType], SendOrReplyTypeDataCode[SendOrReplyType],
000028 492a LDR r1,|L7.212|
00002a eb040044 ADD r0,r4,r4,LSL #1
00002e eb0000c4 ADD r0,r0,r4,LSL #3
000032 3150 ADDS r1,r1,#0x50
000034 eb010040 ADD r0,r1,r0,LSL #1
000038 e9cd0800 STRD r0,r8,[sp,#0]
00003c eb050085 ADD r0,r5,r5,LSL #2
000040 398c SUBS r1,r1,#0x8c
000042 eb010380 ADD r3,r1,r0,LSL #2
000046 eb060086 ADD r0,r6,r6,LSL #2
00004a 313c ADDS r1,r1,#0x3c
00004c eb010280 ADD r2,r1,r0,LSL #2
000050 a121 ADR r1,|L7.216|
000052 481c LDR r0,|L7.196|
000054 f7fffffe BL __2sprintf
;;;561 ContentTypeDataCode[ContentType], Parameter);
;;;562
;;;563 sprintf(CheckSum, "%04x,,ZZ", AddCheckSum(Uart8SendBuff, strlen(Uart8SendBuff)));
000058 481a LDR r0,|L7.196|
00005a f7fffffe BL strlen
00005e b201 SXTH r1,r0
000060 4818 LDR r0,|L7.196|
000062 f7fffffe BL AddCheckSum
000066 4602 MOV r2,r0
000068 a121 ADR r1,|L7.240|
00006a a802 ADD r0,sp,#8
00006c f7fffffe BL __2sprintf
;;;564
;;;565 strcat(Uart8SendBuff, CheckSum);
000070 a902 ADD r1,sp,#8
000072 4814 LDR r0,|L7.196|
000074 f7fffffe BL strcat
;;;566
;;;567 WriteUart(COM6,(unsigned char*)Uart8SendBuff,strlen(Uart8SendBuff));
000078 4812 LDR r0,|L7.196|
00007a f7fffffe BL strlen
00007e 4602 MOV r2,r0
000080 4910 LDR r1,|L7.196|
000082 2006 MOVS r0,#6
000084 f7fffffe BL WriteUart
;;;568
;;;569 memcpy(ReStructor.Matmesseg[ContentType], Uart8SendBuff, strlen(Uart8SendBuff));
000088 480e LDR r0,|L7.196|
00008a f7fffffe BL strlen
00008e 4602 MOV r2,r0
000090 eb0400c4 ADD r0,r4,r4,LSL #3
000094 4d19 LDR r5,|L7.252|
000096 eb001004 ADD r0,r0,r4,LSL #4
00009a eb051000 ADD r0,r5,r0,LSL #4
00009e f50060f5 ADD r0,r0,#0x7a8
0000a2 4908 LDR r1,|L7.196|
0000a4 f7fffffe BL __aeabi_memcpy4
;;;570 //是否重发? 由Resend决定
;;;571 ReStructor.MatmesEnable[ContentType] = AskAgainEnable;
0000a8 1928 ADDS r0,r5,r4
0000aa f50040a0 ADD r0,r0,#0x5000
0000ae f8807438 STRB r7,[r0,#0x438]
;;;572 //清零重发计时
;;;573 ReStructor.Matmestime[ContentType] = 0;
0000b2 eb050084 ADD r0,r5,r4,LSL #2
0000b6 f50040a0 ADD r0,r0,#0x5000
0000ba 2100 MOVS r1,#0
0000bc f8c0146c STR r1,[r0,#0x46c]
;;;574 }
0000c0 e8bd83fe POP {r1-r9,pc}
;;;575
ENDP
|L7.196|
DCD ||.bss||+0x5c28
|L7.200|
DCD agv
|L7.204|
0000cc 25303458 DCB "%04X",0
0000d0 00
0000d1 00 DCB 0
0000d2 00 DCB 0
0000d3 00 DCB 0
|L7.212|
DCD ||.data||+0x4c
|L7.216|
0000d8 23232c2c DCB "##,,%s,,%s,,%s,,%s,,",0
0000dc 25732c2c
0000e0 25732c2c
0000e4 25732c2c
0000e8 25732c2c
0000ec 00
0000ed 00 DCB 0
0000ee 00 DCB 0
0000ef 00 DCB 0
|L7.240|
0000f0 25303478 DCB "%04x,,ZZ",0
0000f4 2c2c5a5a
0000f8 00
0000f9 00 DCB 0
0000fa 00 DCB 0
0000fb 00 DCB 0
|L7.252|
DCD ||.bss||+0x28
AREA ||i.GetKeyWords||, CODE, READONLY, ALIGN=2
REQUIRE _printf_percent
REQUIRE _printf_s
REQUIRE _printf_str
REQUIRE _printf_str
REQUIRE _printf_str
GetKeyWords PROC
;;;247 **************************/
;;;248 int GetKeyWords(tsCmdList * iList)
000000 e92d41f0 PUSH {r4-r8,lr}
;;;249 {
000004 4604 MOV r4,r0
;;;250 char *pch;
;;;251 iList->Cmd_ListSize = 0;
000006 f5044580 ADD r5,r4,#0x4000
00000a 2000 MOVS r0,#0
00000c f8c50e20 STR r0,[r5,#0xe20]
;;;252 pch = strtok(Original_Command_String, ",,");//将第一个没有用的,号排除
000010 a124 ADR r1,|L8.164|
000012 4825 LDR r0,|L8.168|
000014 f7fffffe BL strtok
000018 4606 MOV r6,r0
;;;253 while (pch != NULL)
00001a e017 B |L8.76|
|L8.28|
;;;254 {
;;;255 if (iList->Cmd_ListSize == 4)
00001c f8d50e20 LDR r0,[r5,#0xe20]
000020 2804 CMP r0,#4
000022 d018 BEQ |L8.86|
;;;256 {
;;;257 memset(iList->Cmd_Lt, 0, sizeof(iList->Cmd_Lt));
;;;258 sprintf(iList->Cmd_Lt, "%s", pch);//单独存储指令接收到的参数
;;;259 sprintf(iList->Cmd_List[iList->Cmd_ListSize], "%s", "0");//将之前的第3号存储参数的位置存储为0字符
;;;260 memset(iList->Cmd_RoadParam, 0, sizeof(iList->Cmd_RoadParam));
;;;261 memcpy(iList->Cmd_RoadParam, iList->Cmd_Lt, WifiBUFF_SIZE);
;;;262 }
;;;263 else
;;;264 {
;;;265 sprintf(iList->Cmd_List[iList->Cmd_ListSize], "%s", pch);
000024 eb000080 ADD r0,r0,r0,LSL #2
000028 eb0400c0 ADD r0,r4,r0,LSL #3
00002c f50070c8 ADD r0,r0,#0x190
000030 4632 MOV r2,r6
000032 a11e ADR r1,|L8.172|
000034 f7fffffe BL __2sprintf
|L8.56|
;;;266 }
;;;267 iList->Cmd_ListSize++;
000038 f8d50e20 LDR r0,[r5,#0xe20]
00003c 1c40 ADDS r0,r0,#1
00003e f8c50e20 STR r0,[r5,#0xe20]
;;;268 pch = strtok(NULL, ",,");
000042 a118 ADR r1,|L8.164|
000044 2000 MOVS r0,#0
000046 f7fffffe BL strtok
00004a 4606 MOV r6,r0
|L8.76|
00004c 2e00 CMP r6,#0 ;253
00004e d1e5 BNE |L8.28|
;;;269 }
;;;270 return 0;//接收成功返回0
000050 2000 MOVS r0,#0
;;;271 }
000052 e8bd81f0 POP {r4-r8,pc}
|L8.86|
000056 f44f77c8 MOV r7,#0x190 ;257
00005a f5046048 ADD r0,r4,#0xc80 ;257
00005e 4639 MOV r1,r7 ;257
000060 4680 MOV r8,r0 ;257
000062 f7fffffe BL __aeabi_memclr4
000066 4632 MOV r2,r6 ;258
000068 a110 ADR r1,|L8.172|
00006a 4640 MOV r0,r8 ;258
00006c f7fffffe BL __2sprintf
000070 f8d50e20 LDR r0,[r5,#0xe20] ;259
000074 a20e ADR r2,|L8.176|
000076 eb000080 ADD r0,r0,r0,LSL #2 ;259
00007a eb0400c0 ADD r0,r4,r0,LSL #3 ;259
00007e f50070c8 ADD r0,r0,#0x190 ;259
000082 a10a ADR r1,|L8.172|
000084 f7fffffe BL __2sprintf
000088 f6444090 MOV r0,#0x4c90 ;260
00008c 4420 ADD r0,r0,r4 ;260
00008e 4639 MOV r1,r7 ;260
000090 4606 MOV r6,r0 ;260
000092 f7fffffe BL __aeabi_memclr4
000096 463a MOV r2,r7 ;261
000098 4641 MOV r1,r8 ;261
00009a 4630 MOV r0,r6 ;261
00009c f7fffffe BL __aeabi_memcpy4
0000a0 e7ca B |L8.56|
;;;272 /*************************
ENDP
0000a2 0000 DCW 0x0000
|L8.164|
0000a4 2c2c00 DCB ",,",0
0000a7 00 DCB 0
|L8.168|
DCD ||.bss||+0x5dcc
|L8.172|
0000ac 257300 DCB "%s",0
0000af 00 DCB 0
|L8.176|
0000b0 3000 DCB "0",0
0000b2 00 DCB 0
0000b3 00 DCB 0
AREA ||i.GetKeyWordschar||, CODE, READONLY, ALIGN=2
REQUIRE _printf_percent
REQUIRE _printf_s
REQUIRE _printf_str
GetKeyWordschar PROC
;;;274 **************************/
;;;275 int GetKeyWordschar(tsCmdListParam * iList, char *cmd, const char *str)
000000 b570 PUSH {r4-r6,lr}
;;;276 {
000002 b08e SUB sp,sp,#0x38
000004 4604 MOV r4,r0
000006 460e MOV r6,r1
000008 4615 MOV r5,r2
;;;277 char *pch;
;;;278 char node_commonds[50] = { 0 };
00000a 2134 MOVS r1,#0x34
00000c a801 ADD r0,sp,#4
00000e f7fffffe BL __aeabi_memclr4
;;;279 int length = strlen(cmd);
000012 4630 MOV r0,r6
000014 f7fffffe BL strlen
000018 4602 MOV r2,r0
;;;280 memcpy(node_commonds, cmd, length);
00001a 4631 MOV r1,r6
00001c a801 ADD r0,sp,#4
00001e f7fffffe BL __aeabi_memcpy
;;;281 iList->Cmd_ListSize = 0;
000022 2000 MOVS r0,#0
000024 7020 STRB r0,[r4,#0]
;;;282 pch = strtok(node_commonds, str);//将第一个没有用的,号排除
000026 4629 MOV r1,r5
000028 a801 ADD r0,sp,#4
00002a f7fffffe BL strtok
00002e 4602 MOV r2,r0
;;;283 while (pch != NULL)
000030 e010 B |L9.84|
|L9.50|
;;;284 {
;;;285 sprintf(iList->Cmd_List[iList->Cmd_ListSize], "%s", pch);
000032 7820 LDRB r0,[r4,#0]
000034 a10a ADR r1,|L9.96|
000036 ebc01000 RSB r0,r0,r0,LSL #4
00003a eb040040 ADD r0,r4,r0,LSL #1
00003e 1c40 ADDS r0,r0,#1
000040 f7fffffe BL __2sprintf
;;;286 iList->Cmd_ListSize++;
000044 7820 LDRB r0,[r4,#0]
000046 1c40 ADDS r0,r0,#1
000048 7020 STRB r0,[r4,#0]
;;;287 pch = strtok(NULL, str);
00004a 4629 MOV r1,r5
00004c 2000 MOVS r0,#0
00004e f7fffffe BL strtok
000052 4602 MOV r2,r0
|L9.84|
000054 2a00 CMP r2,#0 ;283
000056 d1ec BNE |L9.50|
;;;288 }
;;;289 return 0;//接收成功返回0
;;;290 }
000058 b00e ADD sp,sp,#0x38
00005a 2000 MOVS r0,#0 ;289
00005c bd70 POP {r4-r6,pc}
;;;291
ENDP
00005e 0000 DCW 0x0000
|L9.96|
000060 257300 DCB "%s",0
000063 00 DCB 0
AREA ||i.Getparameters||, CODE, READONLY, ALIGN=2
REQUIRE _printf_percent
REQUIRE _printf_s
REQUIRE _printf_str
Getparameters PROC
;;;344 ********************************/
;;;345 int Getparameters(tsCmdList * iList)
000000 e92d4ff8 PUSH {r3-r11,lr}
;;;346 {
000004 4681 MOV r9,r0
;;;347 uint16_t i = 0, ii = 0, j;
000006 2400 MOVS r4,#0
000008 2600 MOVS r6,#0
;;;348 char *pch;
;;;349 iList->Cmd_ParametersSize = 0;
00000a f6446124 MOV r1,#0x4e24
00000e 2000 MOVS r0,#0
000010 f8410009 STR r0,[r1,r9]
;;;350
;;;351 for (i = 0; i < ParamSize; i++)
000014 f44f75c8 MOV r5,#0x190
|L10.24|
;;;352 {
;;;353 memset(iList->Cmd_parameters[i], 0, NameSize);//清除参数
000018 eb040084 ADD r0,r4,r4,LSL #2
00001c eb0900c0 ADD r0,r9,r0,LSL #3
000020 f5006061 ADD r0,r0,#0xe10
000024 2128 MOVS r1,#0x28
000026 f7fffffe BL __aeabi_memclr4
00002a 1c64 ADDS r4,r4,#1 ;351
00002c b2a4 UXTH r4,r4 ;351
00002e 42ac CMP r4,r5 ;351
000030 d3f2 BCC |L10.24|
;;;354 }
;;;355
;;;356 pch = strtok(iList->Cmd_Lt, "::");//分解参数
000032 a17d ADR r1,|L10.552|
000034 f5096048 ADD r0,r9,#0xc80
000038 f7fffffe BL strtok
00003c 4602 MOV r2,r0
;;;357 while (pch != NULL)
00003e e00f B |L10.96|
|L10.64|
;;;358 {
;;;359 sprintf(iList->Cmd_parameters[ii], "%s", pch);
000040 eb060086 ADD r0,r6,r6,LSL #2
000044 eb0900c0 ADD r0,r9,r0,LSL #3
000048 f5006061 ADD r0,r0,#0xe10
00004c a177 ADR r1,|L10.556|
00004e f7fffffe BL __2sprintf
;;;360 pch = strtok(NULL, "::");
000052 a175 ADR r1,|L10.552|
000054 2000 MOVS r0,#0
000056 f7fffffe BL strtok
00005a 4602 MOV r2,r0
;;;361 ii++;//记录参数个数
00005c 1c76 ADDS r6,r6,#1
00005e b2b6 UXTH r6,r6
|L10.96|
000060 2a00 CMP r2,#0 ;357
000062 d1ed BNE |L10.64|
;;;362 }
;;;363 if (strcasecmp(CenterCommand.CmdList.Cmd_List[3], "setlrout") == 0 )//&& !AGVStatus.TurnSelect )//当发送是路径指令时
000064 4875 LDR r0,|L10.572|
000066 a172 ADR r1,|L10.560|
000068 4605 MOV r5,r0
00006a f7fffffe BL strcasecmp
00006e f8dfa1d0 LDR r10,|L10.576|
000072 b970 CBNZ r0,|L10.146|
;;;364 {
;;;365 for (i = 0; i < ii; i++)
000074 2400 MOVS r4,#0
000076 e00a B |L10.142|
|L10.120|
;;;366 {
;;;367 memset(&CenterCommand.CmdListParam[i], 0, sizeof(CenterCommand.CmdListParam[i]));
000078 eb040044 ADD r0,r4,r4,LSL #1
00007c ebc01044 RSB r0,r0,r4,LSL #5
000080 eb0a00c0 ADD r0,r10,r0,LSL #3
000084 21e8 MOVS r1,#0xe8
000086 f7fffffe BL __aeabi_memclr4
00008a 1c64 ADDS r4,r4,#1 ;365
00008c b2a4 UXTH r4,r4 ;365
|L10.142|
00008e 42b4 CMP r4,r6 ;365
000090 d3f2 BCC |L10.120|
|L10.146|
;;;368
;;;369 }
;;;370 }
;;;371
;;;372 CenterCommand.Paramcount = ii;//存储参数个数
000092 486c LDR r0,|L10.580|
000094 9000 STR r0,[sp,#0]
000096 f8c061c0 STR r6,[r0,#0x1c0] ; CenterCommand
;;;373
;;;374 if (strcasecmp(CenterCommand.CmdList.Cmd_List[3], "setlrout") == 0)//当发送是路径指令时
00009a a165 ADR r1,|L10.560|
00009c 4628 MOV r0,r5
00009e f7fffffe BL strcasecmp
0000a2 b108 CBZ r0,|L10.168|
;;;375 {
;;;376 if(agv.Public.i_UpdatePathSig == 1)
;;;377 {
;;;378 clearPathInfomation();
;;;379 traffic_land_marks.size = ii;
;;;380 for (i = 0; i < ii; i++)
;;;381 {
;;;382 CenterCommand.RoadParamcount = ii;//存储参数个数
;;;383
;;;384 GetKeyWordschar(&CenterCommand.CmdListParam[i], iList->Cmd_parameters[i], "_");
;;;385 for (j = 0; j < 2; j++)
;;;386 {
;;;387 CenterCommand.CmdListParam[i].Cmd_parameters[j] = strtoul(CenterCommand.CmdListParam[i].Cmd_List[j], NULL, 10);
;;;388
;;;389 traffic_land_marks.land_marks[i].pose[j] = CenterCommand.CmdListParam[i].Cmd_parameters[j];
;;;390 }
;;;391 traffic_land_marks.land_marks[i].LaserArea = atoi(CenterCommand.CmdListParam[i].Cmd_List[CenterCommand.CmdListParam[i].Cmd_ListSize-1]);
;;;392 traffic_land_marks.land_marks[i].DispatchSpeed = atoi(CenterCommand.CmdListParam[i].Cmd_List[CenterCommand.CmdListParam[i].Cmd_ListSize-2]);
;;;393 memcpy(&CenterCommand.CmdListParam[i].Cmd_Dir[0], &CenterCommand.CmdListParam[i].Cmd_List[CenterCommand.CmdListParam[i].Cmd_ListSize - 4], 2); //size
;;;394 memcpy(&CenterCommand.CmdListParam[i].Cmd_RotateDir[0], &CenterCommand.CmdListParam[i].Cmd_List[CenterCommand.CmdListParam[i].Cmd_ListSize - 3], 2); //size
;;;395 if(CenterCommand.CmdListParam[i].Cmd_RotateDir[0] == 'p')
;;;396 traffic_land_marks.land_marks[i].LightStopSig = 1;
;;;397 else if(CenterCommand.CmdListParam[i].Cmd_RotateDir[0] == 'q')
;;;398 traffic_land_marks.land_marks[i].LightStopSig = 2;
;;;399 else
;;;400 traffic_land_marks.land_marks[i].LightStopSig = 0;
;;;401 traffic_land_marks.land_marks[i].Direction = ActionProcess(CenterCommand.CmdListParam[i].Cmd_Dir[0],CenterCommand.CmdListParam[i].Cmd_RotateDir[0]);
;;;402 }
;;;403 agv.Public.i_UpdatePathSig = 0;
;;;404 Reset_Alarm(0x0248);//清除脱线,停稳,系统停车
;;;405 }
;;;406 }
;;;407 else
;;;408 {
;;;409 for (i = 0; i < ii; i++)
0000a4 2400 MOVS r4,#0
0000a6 e0a8 B |L10.506|
|L10.168|
0000a8 4867 LDR r0,|L10.584|
0000aa f8900093 LDRB r0,[r0,#0x93] ;376 ; agv
0000ae 2801 CMP r0,#1 ;376
0000b0 d17e BNE |L10.432|
0000b2 f7fffffe BL clearPathInfomation
0000b6 4865 LDR r0,|L10.588|
0000b8 6046 STR r6,[r0,#4] ;379 ; traffic_land_marks
0000ba f04f0800 MOV r8,#0 ;380
0000be e070 B |L10.418|
|L10.192|
0000c0 9800 LDR r0,[sp,#0] ;382
0000c2 f8c061c4 STR r6,[r0,#0x1c4] ;382 ; CenterCommand
0000c6 eb080088 ADD r0,r8,r8,LSL #2 ;384
0000ca eb0901c0 ADD r1,r9,r0,LSL #3 ;384
0000ce eb080048 ADD r0,r8,r8,LSL #1 ;384
0000d2 ebc01b48 RSB r11,r0,r8,LSL #5 ;384
0000d6 eb0a04cb ADD r4,r10,r11,LSL #3 ;384
0000da f5016161 ADD r1,r1,#0xe10 ;384
0000de a25c ADR r2,|L10.592|
0000e0 4620 MOV r0,r4 ;384
0000e2 f7fffffe BL GetKeyWordschar
0000e6 2500 MOVS r5,#0 ;385
0000e8 4858 LDR r0,|L10.588|
0000ea eb080148 ADD r1,r8,r8,LSL #1 ;389
0000ee eb0007c1 ADD r7,r0,r1,LSL #3 ;389
|L10.242|
0000f2 ebc51005 RSB r0,r5,r5,LSL #4 ;387
0000f6 eb040040 ADD r0,r4,r0,LSL #1 ;387
0000fa 1c40 ADDS r0,r0,#1 ;387
0000fc 220a MOVS r2,#0xa ;387
0000fe 2100 MOVS r1,#0 ;387
000100 f7fffffe BL strtoul
000104 eb040185 ADD r1,r4,r5,LSL #2 ;387
000108 f8c100d8 STR r0,[r1,#0xd8] ;387
00010c ee000a10 VMOV s0,r0 ;389
000110 eb070085 ADD r0,r7,r5,LSL #2 ;389
000114 eeb80ac0 VCVT.F32.S32 s0,s0 ;389
000118 ed800a03 VSTR s0,[r0,#0xc] ;389
00011c 1c6d ADDS r5,r5,#1 ;385
00011e b2ad UXTH r5,r5 ;385
000120 2d02 CMP r5,#2 ;385
000122 d3e6 BCC |L10.242|
000124 f81a003b LDRB r0,[r10,r11,LSL #3] ;391
000128 1e40 SUBS r0,r0,#1 ;391
00012a ebc01000 RSB r0,r0,r0,LSL #4 ;391
00012e eb040040 ADD r0,r4,r0,LSL #1 ;391
000132 1c40 ADDS r0,r0,#1 ;391
000134 f7fffffe BL atoi
000138 7638 STRB r0,[r7,#0x18] ;391
00013a f81a003b LDRB r0,[r10,r11,LSL #3] ;392
00013e 1e80 SUBS r0,r0,#2 ;392
000140 ebc01000 RSB r0,r0,r0,LSL #4 ;392
000144 eb040040 ADD r0,r4,r0,LSL #1 ;392
000148 1c40 ADDS r0,r0,#1 ;392
00014a f7fffffe BL atoi
00014e 61f8 STR r0,[r7,#0x1c] ;392
000150 f81a003b LDRB r0,[r10,r11,LSL #3] ;393
000154 f1040180 ADD r1,r4,#0x80 ;393
000158 4602 MOV r2,r0 ;393
00015a 1f00 SUBS r0,r0,#4 ;393
00015c ebc01000 RSB r0,r0,r0,LSL #4 ;393
000160 eb040040 ADD r0,r4,r0,LSL #1 ;393
000164 f8b00001 LDRH r0,[r0,#1] ;393
000168 f8a400d3 STRH r0,[r4,#0xd3] ;393
00016c 1ed0 SUBS r0,r2,#3 ;394
00016e ebc01000 RSB r0,r0,r0,LSL #4 ;394
000172 eb040040 ADD r0,r4,r0,LSL #1 ;394
000176 f8b00001 LDRH r0,[r0,#1] ;394
00017a f8a10055 STRH r0,[r1,#0x55] ;394
00017e f89410d5 LDRB r1,[r4,#0xd5] ;395
000182 2970 CMP r1,#0x70 ;395
000184 d01a BEQ |L10.444|
000186 2971 CMP r1,#0x71 ;397
000188 d01c BEQ |L10.452|
00018a 2000 MOVS r0,#0 ;400
00018c f8870020 STRB r0,[r7,#0x20] ;400
|L10.400|
000190 f89400d3 LDRB r0,[r4,#0xd3] ;401
000194 f7fffffe BL ActionProcess
000198 8378 STRH r0,[r7,#0x1a] ;401
00019a f1080801 ADD r8,r8,#1 ;380
00019e fa1ff888 UXTH r8,r8 ;380
|L10.418|
0001a2 45b0 CMP r8,r6 ;380
0001a4 d38c BCC |L10.192|
0001a6 4928 LDR r1,|L10.584|
0001a8 2000 MOVS r0,#0 ;403
0001aa f8810093 STRB r0,[r1,#0x93] ;403
0001ae e000 B |L10.434|
|L10.432|
0001b0 e025 B |L10.510|
|L10.434|
0001b2 f44f7012 MOV r0,#0x248 ;404
0001b6 f7fffffe BL Reset_Alarm
0001ba e020 B |L10.510|
|L10.444|
0001bc 2001 MOVS r0,#1 ;396
0001be f8870020 STRB r0,[r7,#0x20] ;396
0001c2 e7e5 B |L10.400|
|L10.452|
0001c4 2002 MOVS r0,#2 ;398
0001c6 f8870020 STRB r0,[r7,#0x20] ;398
0001ca e7e1 B |L10.400|
|L10.460|
;;;410 {
;;;411 if(strcasecmp(CenterCommand.CmdList.Cmd_List[3], "settips") == 0)
0001cc a121 ADR r1,|L10.596|
0001ce 4628 MOV r0,r5
0001d0 f7fffffe BL strcasecmp
0001d4 b1b0 CBZ r0,|L10.516|
;;;412 {
;;;413 CenterCommand.Param[i] = strtoul(iList->Cmd_parameters[i], NULL, 16);
;;;414 }
;;;415 else
;;;416 {
;;;417 CenterCommand.Param[i] = strtoul(iList->Cmd_parameters[i], NULL, 10);//把接收的字符按10进制存储数据
0001d6 eb040084 ADD r0,r4,r4,LSL #2
0001da eb0900c0 ADD r0,r9,r0,LSL #3
0001de f5006061 ADD r0,r0,#0xe10
0001e2 220a MOVS r2,#0xa
0001e4 2100 MOVS r1,#0
0001e6 f7fffffe BL strtoul
0001ea eb0a0184 ADD r1,r10,r4,LSL #2
0001ee f50141e0 ADD r1,r1,#0x7000
0001f2 f8c10b80 STR r0,[r1,#0xb80]
|L10.502|
0001f6 1c64 ADDS r4,r4,#1 ;409
0001f8 b2a4 UXTH r4,r4 ;409
|L10.506|
0001fa 42b4 CMP r4,r6 ;409
0001fc d3e6 BCC |L10.460|
|L10.510|
;;;418 }
;;;419 }
;;;420 }
;;;421 return 0;//解码成功
0001fe 2000 MOVS r0,#0
;;;422 }
000200 e8bd8ff8 POP {r3-r11,pc}
|L10.516|
000204 eb040084 ADD r0,r4,r4,LSL #2 ;413
000208 eb0900c0 ADD r0,r9,r0,LSL #3 ;413
00020c f5006061 ADD r0,r0,#0xe10 ;413
000210 2210 MOVS r2,#0x10 ;413
000212 2100 MOVS r1,#0 ;413
000214 f7fffffe BL strtoul
000218 eb0a0184 ADD r1,r10,r4,LSL #2 ;413
00021c f50141e0 ADD r1,r1,#0x7000 ;413
000220 f8c10b80 STR r0,[r1,#0xb80] ;413
000224 e7e7 B |L10.502|
;;;423 /**关键字解码判断**/
ENDP
000226 0000 DCW 0x0000
|L10.552|
000228 3a3a00 DCB "::",0
00022b 00 DCB 0
|L10.556|
00022c 257300 DCB "%s",0
00022f 00 DCB 0
|L10.560|
000230 7365746c DCB "setlrout",0
000234 726f7574
000238 00
000239 00 DCB 0
00023a 00 DCB 0
00023b 00 DCB 0
|L10.572|
DCD ||.bss||+0x8eb4
|L10.576|
DCD ||.bss||+0x5f5c
|L10.580|
DCD ||.bss||+0xdf5c
|L10.584|
DCD agv
|L10.588|
DCD ||.bss||+0x558c
|L10.592|
000250 5f00 DCB "_",0
000252 00 DCB 0
000253 00 DCB 0
|L10.596|
000254 73657474 DCB "settips",0
000258 69707300
AREA ||i.ParameterTransform||, CODE, READONLY, ALIGN=2
ParameterTransform PROC
;;;576 //将HEX 安装一定的格式转换成字符串
;;;577 char* ParameterTransform(char *fmt, ...)
000000 b40f PUSH {r0-r3}
;;;578 {
000002 b510 PUSH {r4,lr}
;;;579 int cnt = 0;
;;;580 va_list argptr;
;;;581 cnt = cnt;
;;;582 va_start(argptr, fmt); //开始使用可变参数
000004 aa03 ADD r2,sp,#0xc
;;;583 cnt = vsprintf(ParamBuff, fmt, argptr);//格式化输出
000006 4804 LDR r0,|L11.24|
000008 9902 LDR r1,[sp,#8]
00000a f7fffffe BL vsprintf
;;;584 va_end(argptr);//结束使用可变参数
;;;585 return(ParamBuff);
;;;586 }
00000e bc10 POP {r4}
000010 4801 LDR r0,|L11.24|
000012 f85dfb14 LDR pc,[sp],#0x14
;;;587
ENDP
000016 0000 DCW 0x0000
|L11.24|
DCD ||.bss||
AREA ||i.Recive_check||, CODE, READONLY, ALIGN=2
Recive_check PROC
;;;593 */
;;;594 void Recive_check(void)
000000 b570 PUSH {r4-r6,lr}
;;;595 {
;;;596 uint8_t ii;
;;;597 for (ii = 0; ii < ct_Size; ii++)
000002 2400 MOVS r4,#0
;;;598 {
;;;599 if (strcasecmp(GeCmddate, ReStructor.Matmes[ii]) == 0)
000004 4d09 LDR r5,|L12.44|
000006 2600 MOVS r6,#0 ;597
|L12.8|
000008 eb040084 ADD r0,r4,r4,LSL #2
00000c eb0501c0 ADD r1,r5,r0,LSL #3
000010 4807 LDR r0,|L12.48|
000012 f7fffffe BL strcasecmp
000016 b920 CBNZ r0,|L12.34|
;;;600 ReStructor.MatmesEnable[ii] = 0;
000018 1928 ADDS r0,r5,r4
00001a f50040a0 ADD r0,r0,#0x5000
00001e f8806438 STRB r6,[r0,#0x438]
|L12.34|
000022 1c64 ADDS r4,r4,#1 ;597
000024 b2e4 UXTB r4,r4 ;597
000026 2c31 CMP r4,#0x31 ;597
000028 d3ee BCC |L12.8|
;;;601 }
;;;602 }
00002a bd70 POP {r4-r6,pc}
;;;603 /*
ENDP
|L12.44|
DCD ||.bss||+0x28
|L12.48|
DCD ||.bss||+0x5db8
AREA ||i.SendOrReplyTypeHandle||, CODE, READONLY, ALIGN=2
REQUIRE _printf_percent
REQUIRE _printf_s
REQUIRE _printf_str
SendOrReplyTypeHandle PROC
;;;473 /**设置或者回复指令**/
;;;474 void SendOrReplyTypeHandle(void)
000000 b510 PUSH {r4,lr}
;;;475 {
;;;476 switch (CenterCommand.SendOrReply)
000002 4812 LDR r0,|L13.76|
000004 f8901b7c LDRB r1,[r0,#0xb7c] ; CenterCommand
000008 4811 LDR r0,|L13.80|
00000a 2900 CMP r1,#0
00000c d010 BEQ |L13.48|
00000e 2901 CMP r1,#1
000010 d11a BNE |L13.72|
;;;477 {
;;;478 case sort_Receive:
;;;479 if (Getparameters(&CenterCommand.CmdList) != 0)return;
000012 f7fffffe BL Getparameters
000016 2800 CMP r0,#0
000018 d116 BNE |L13.72|
;;;480 memset(GeCmddate, 0, sizeof(GeCmddate));
00001a 2114 MOVS r1,#0x14
00001c 480d LDR r0,|L13.84|
00001e f7fffffe BL __aeabi_memclr4
;;;481 sprintf(GeCmddate, "%s", CenterCommand.CmdList.Cmd_List[3]);//获得中控回复指令
000022 e8bd4010 POP {r4,lr}
000026 4a0c LDR r2,|L13.88|
000028 a10c ADR r1,|L13.92|
00002a 480a LDR r0,|L13.84|
00002c f7ffbffe B.W __2sprintf
|L13.48|
;;;482 break;
;;;483
;;;484 case sort_Send:
;;;485 if (Getparameters(&CenterCommand.CmdList) != 0)
000030 f7fffffe BL Getparameters
000034 2800 CMP r0,#0
000036 d107 BNE |L13.72|
;;;486 return;
;;;487 if (agv.Command.Au_Hand)//自动模式
000038 4809 LDR r0,|L13.96|
00003a 7900 LDRB r0,[r0,#4] ; agv
00003c 2800 CMP r0,#0
00003e d003 BEQ |L13.72|
;;;488 Bady_DictateTypeHandle();//获得中控发送指令
000040 e8bd4010 POP {r4,lr}
000044 f7ffbffe B.W Bady_DictateTypeHandle
|L13.72|
;;;489 break;
;;;490
;;;491 default:break;
;;;492 }
;;;493 }
000048 bd10 POP {r4,pc}
;;;494
ENDP
00004a 0000 DCW 0x0000
|L13.76|
DCD ||.bss||+0xcf5c
|L13.80|
DCD ||.bss||+0x8cac
|L13.84|
DCD ||.bss||+0x5db8
|L13.88|
DCD ||.bss||+0x8eb4
|L13.92|
00005c 257300 DCB "%s",0
00005f 00 DCB 0
|L13.96|
DCD agv
AREA ||i.SysACKcheck||, CODE, READONLY, ALIGN=2
SysACKcheck PROC
;;;608 */
;;;609 void SysACKcheck(void)
000000 e92d47f0 PUSH {r4-r10,lr}
;;;610 {
;;;611 uint8_t ii;
;;;612 static bool iFirst = true;
;;;613 static u32 LastTime = 0;
;;;614 if (iFirst)
000004 4f29 LDR r7,|L14.172|
000006 2600 MOVS r6,#0
;;;615 {
;;;616 iFirst = false;
;;;617 for (ii = 0; ii < ct_Size; ii++)
;;;618 {
;;;619 memset(ReStructor.Matmes[ii], 0, STRING_SIZE);
000008 4d29 LDR r5,|L14.176|
00000a 78b8 LDRB r0,[r7,#2] ;614 ; iFirst
00000c 2800 CMP r0,#0 ;614
00000e d019 BEQ |L14.68|
000010 70be STRB r6,[r7,#2] ;616
000012 2400 MOVS r4,#0 ;617
|L14.20|
000014 eb040084 ADD r0,r4,r4,LSL #2
000018 eb0500c0 ADD r0,r5,r0,LSL #3
00001c 2128 MOVS r1,#0x28
00001e f7fffffe BL __aeabi_memclr4
;;;620 ReStructor.MatmesEnable[ii] = 0;
000022 1928 ADDS r0,r5,r4
000024 f50040a0 ADD r0,r0,#0x5000
000028 f8806438 STRB r6,[r0,#0x438]
;;;621 ReStructor.Matmestime[ii] = 0;
00002c eb050084 ADD r0,r5,r4,LSL #2
000030 f50040a0 ADD r0,r0,#0x5000
000034 f8c0646c STR r6,[r0,#0x46c]
000038 1c64 ADDS r4,r4,#1 ;617
00003a b2e4 UXTB r4,r4 ;617
00003c 2c31 CMP r4,#0x31 ;617
00003e d3e9 BCC |L14.20|
|L14.64|
;;;622 }
;;;623 }
;;;624 else
;;;625 {
;;;626 for (ii = 0; ii < ct_Size; ii++)
;;;627 {
;;;628 //如果相应标志位为1/true ,切时间>1.5S,重发
;;;629 if (ReStructor.MatmesEnable[ii] && (agv.Public.SystemTime - LastTime >= 1500))//重发间隔时间
;;;630 {
;;;631 LastTime = agv.Public.SystemTime;
;;;632
;;;633 memset(Uart8SendBuff, 0, sizeof(Uart8SendBuff));
;;;634 //将要重发的数据复制回来
;;;635 memcpy(Uart8SendBuff, ReStructor.Matmesseg[ii], WifiBUFF_SIZE);
;;;636
;;;637 WriteUart(COM6,(unsigned char*)Uart8SendBuff,sizeof(Uart8SendBuff));
;;;638 //重发时间清零
;;;639 ReStructor.Matmestime[ii] = 0;
;;;640 //ReStructor.Matmes_Num[ii]++;
;;;641 //if (ReStructor.Matmes_Num[ii] >= 5)//决定发送个数
;;;642 //{
;;;643 // ReStructor.Matmes_Num[ii] = 0;
;;;644 // ReStructor.MatmesEnable[ii] = 0;
;;;645 //}
;;;646 }
;;;647 }
;;;648 }
;;;649 }
000040 e8bd87f0 POP {r4-r10,pc}
|L14.68|
000044 2400 MOVS r4,#0 ;626
000046 f8df806c LDR r8,|L14.180|
|L14.74|
00004a 1928 ADDS r0,r5,r4 ;629
00004c f50040a0 ADD r0,r0,#0x5000 ;629
000050 f8900438 LDRB r0,[r0,#0x438] ;629
000054 b328 CBZ r0,|L14.162|
000056 f8d800bc LDR r0,[r8,#0xbc] ;629 ; agv
00005a 68f9 LDR r1,[r7,#0xc] ;629 ; LastTime
00005c f24052dc MOV r2,#0x5dc ;629
000060 1a41 SUBS r1,r0,r1 ;629
000062 4291 CMP r1,r2 ;629
000064 d31d BCC |L14.162|
000066 60f8 STR r0,[r7,#0xc] ;631 ; LastTime
000068 f44f79c8 MOV r9,#0x190 ;633
00006c 4649 MOV r1,r9 ;633
00006e 4812 LDR r0,|L14.184|
000070 f7fffffe BL __aeabi_memclr4
000074 eb0400c4 ADD r0,r4,r4,LSL #3 ;635
000078 eb001004 ADD r0,r0,r4,LSL #4 ;635
00007c eb051100 ADD r1,r5,r0,LSL #4 ;635
000080 f50161f5 ADD r1,r1,#0x7a8 ;635
000084 464a MOV r2,r9 ;635
000086 480c LDR r0,|L14.184|
000088 f7fffffe BL __aeabi_memcpy4
00008c 464a MOV r2,r9 ;637
00008e 490a LDR r1,|L14.184|
000090 2006 MOVS r0,#6 ;637
000092 f7fffffe BL WriteUart
000096 eb050084 ADD r0,r5,r4,LSL #2 ;639
00009a f50040a0 ADD r0,r0,#0x5000 ;639
00009e f8c0646c STR r6,[r0,#0x46c] ;639
|L14.162|
0000a2 1c64 ADDS r4,r4,#1 ;626
0000a4 b2e4 UXTB r4,r4 ;626
0000a6 2c31 CMP r4,#0x31 ;626
0000a8 d3cf BCC |L14.74|
0000aa e7c9 B |L14.64|
;;;650
ENDP
|L14.172|
DCD ||.data||
|L14.176|
DCD ||.bss||+0x28
|L14.180|
DCD agv
|L14.184|
DCD ||.bss||+0x5c28
AREA ||i.UartReceiveDataFromSystem||, CODE, READONLY, ALIGN=2
UartReceiveDataFromSystem PROC
;;;650
;;;651 void UartReceiveDataFromSystem()
000000 b570 PUSH {r4-r6,lr}
;;;652 {
000002 b0e4 SUB sp,sp,#0x190
;;;653 unsigned char buff[400];
;;;654 unsigned int len;
;;;655 unsigned i;
;;;656 len = ReadUart(COM6,buff,400);
000004 f44f72c8 MOV r2,#0x190
000008 4669 MOV r1,sp
00000a 2006 MOVS r0,#6
00000c f7fffffe BL ReadUart
000010 4606 MOV r6,r0
;;;657 if( len > 0)
000012 0030 MOVS r0,r6
000014 d024 BEQ |L15.96|
;;;658 {
;;;659 // WriteUart(COM1,buff,len);
;;;660 for(i = 0; i < len; i++)
000016 2500 MOVS r5,#0
;;;661 {
;;;662 /**解碼接收的數據**/
;;;663 if (CenterCommand.NewReceive == false)
000018 4c13 LDR r4,|L15.104|
00001a e01f B |L15.92|
|L15.28|
00001c f89401d0 LDRB r0,[r4,#0x1d0] ; CenterCommand
000020 b948 CBNZ r0,|L15.54|
;;;664 {
;;;665 if (CenterDecode(buff[i], &CenterCommand.CmdList) == teDecodSuccess)
000022 f81d0005 LDRB r0,[sp,r5]
000026 4911 LDR r1,|L15.108|
000028 f7fffffe BL CenterDecode
00002c 2804 CMP r0,#4
00002e d102 BNE |L15.54|
;;;666 {
;;;667 CenterCommand.NewReceive = true;
000030 2001 MOVS r0,#1
000032 f88401d0 STRB r0,[r4,#0x1d0]
|L15.54|
;;;668 }
;;;669 }
;;;670 /**處理接收的數據**/
;;;671 if (CenterCommand.NewReceive)
000036 f89401d0 LDRB r0,[r4,#0x1d0] ; CenterCommand
00003a b170 CBZ r0,|L15.90|
;;;672 {
;;;673 if (CommandAnalysis() == 0) //解码命令字
00003c f7fffffe BL CommandAnalysis
000040 b908 CBNZ r0,|L15.70|
;;;674 {
;;;675 SendOrReplyTypeHandle(); // 命令字码处理
000042 f7fffffe BL SendOrReplyTypeHandle
|L15.70|
;;;676 }
;;;677 CenterCommand.NewReceive = false;
000046 2000 MOVS r0,#0
000048 f88401d0 STRB r0,[r4,#0x1d0]
;;;678 //如果接收回来的数据是中控应答的,不再做处理
;;;679 if (CenterCommand.SendOrReply == sort_Receive)//判断是否是接受中控协议
00004c 4808 LDR r0,|L15.112|
00004e f8900b7c LDRB r0,[r0,#0xb7c] ; CenterCommand
000052 2801 CMP r0,#1
000054 d101 BNE |L15.90|
;;;680 {
;;;681 Recive_check(); //取消重新发送
000056 f7fffffe BL Recive_check
|L15.90|
00005a 1c6d ADDS r5,r5,#1 ;660
|L15.92|
00005c 42b5 CMP r5,r6 ;660
00005e d3dd BCC |L15.28|
|L15.96|
;;;682 }
;;;683 }
;;;684 }
;;;685 }
;;;686 SysACKcheck();
000060 f7fffffe BL SysACKcheck
;;;687 }
000064 b064 ADD sp,sp,#0x190
000066 bd70 POP {r4-r6,pc}
;;;688
ENDP
|L15.104|
DCD ||.bss||+0xdf5c
|L15.108|
DCD ||.bss||+0x8cac
|L15.112|
DCD ||.bss||+0xcf5c
AREA ||.bss||, DATA, NOINIT, ALIGN=2
ParamBuff
% 40
ReStructor
% 21860
traffic_land_marks
% 1692
Uart8SendBuff
% 400
GeCmddate
% 20
Original_Command_String
% 400
CenterCommand
% 33244
AREA ||.data||, DATA, ALIGN=2
sFirst
000000 00 DCB 0x00
Status
000001 00 DCB 0x00
iFirst
000002 0100 DCB 0x01,0x00
DataCount
000004 0000 DCW 0x0000
FinishDataCount
000006 0000 DCW 0x0000
StartDataCount
000008 0000 DCW 0x0000
00000a 0000 DCB 0x00,0x00
LastTime
DCD 0x00000000
SendOrReplyTypeDataCode
000010 73000000 DCB 0x73,0x00,0x00,0x00
% 16
000024 72000000 DCB 0x72,0x00,0x00,0x00
% 16
000038 44656661 DCB 0x44,0x65,0x66,0x61
00003c 756c7400 DCB 0x75,0x6c,0x74,0x00
% 12
EquipmentTypeDataCode
00004c 41303032 DCB 0x41,0x30,0x30,0x32
000050 00000000 DCB 0x00,0x00,0x00,0x00
% 12
000060 42313233 DCB 0x42,0x31,0x32,0x33
000064 00000000 DCB 0x00,0x00,0x00,0x00
% 12
000074 42313234 DCB 0x42,0x31,0x32,0x34
000078 00000000 DCB 0x00,0x00,0x00,0x00
% 12
000088 44656661 DCB 0x44,0x65,0x66,0x61
00008c 756c7400 DCB 0x75,0x6c,0x74,0x00
% 12
ContentTypeDataCode
00009c 72707461 DCB 0x72,0x70,0x74,0x61
0000a0 63000000 DCB 0x63,0x00,0x00,0x00
% 12
0000b0 00006765 DCB 0x00,0x00,0x67,0x65
0000b4 74616300 DCB 0x74,0x61,0x63,0x00
% 16
0000c8 67657476 DCB 0x67,0x65,0x74,0x76
0000cc 6f6c0000 DCB 0x6f,0x6c,0x00,0x00
% 12
0000dc 00006765 DCB 0x00,0x00,0x67,0x65
0000e0 74657272 DCB 0x74,0x65,0x72,0x72
0000e4 00000000 DCB 0x00,0x00,0x00,0x00
% 12
0000f4 67657473 DCB 0x67,0x65,0x74,0x73
0000f8 70640000 DCB 0x70,0x64,0x00,0x00
% 12
000108 00006765 DCB 0x00,0x00,0x67,0x65
00010c 746d7400 DCB 0x74,0x6d,0x74,0x00
% 16
000120 72707465 DCB 0x72,0x70,0x74,0x65
000124 72720000 DCB 0x72,0x72,0x00,0x00
% 12
000134 00007270 DCB 0x00,0x00,0x72,0x70
000138 74736361 DCB 0x74,0x73,0x63,0x61
00013c 6e000000 DCB 0x6e,0x00,0x00,0x00
% 12
00014c 7270746d DCB 0x72,0x70,0x74,0x6d
000150 74000000 DCB 0x74,0x00,0x00,0x00
% 12
000160 00007270 DCB 0x00,0x00,0x72,0x70
000164 74727470 DCB 0x74,0x72,0x74,0x70
000168 00000000 DCB 0x00,0x00,0x00,0x00
% 12
000178 72707476 DCB 0x72,0x70,0x74,0x76
00017c 6f6c0000 DCB 0x6f,0x6c,0x00,0x00
% 12
00018c 00007270 DCB 0x00,0x00,0x72,0x70
000190 74766d6f DCB 0x74,0x76,0x6d,0x6f
000194 74000000 DCB 0x74,0x00,0x00,0x00
% 12
0001a4 72707469 DCB 0x72,0x70,0x74,0x69
0001a8 6e000000 DCB 0x6e,0x00,0x00,0x00
% 12
0001b8 00007270 DCB 0x00,0x00,0x72,0x70
0001bc 746c6163 DCB 0x74,0x6c,0x61,0x63
0001c0 00000000 DCB 0x00,0x00,0x00,0x00
% 12
0001d0 72707473 DCB 0x72,0x70,0x74,0x73
0001d4 74617274 DCB 0x74,0x61,0x72,0x74
0001d8 00000000 DCB 0x00,0x00,0x00,0x00
% 8
0001e4 00007270 DCB 0x00,0x00,0x72,0x70
0001e8 74747261 DCB 0x74,0x74,0x72,0x61
0001ec 76656c00 DCB 0x76,0x65,0x6c,0x00
% 12
0001fc 7270746d DCB 0x72,0x70,0x74,0x6d
000200 745f7468 DCB 0x74,0x5f,0x74,0x68
000204 00000000 DCB 0x00,0x00,0x00,0x00
% 8
000210 00007270 DCB 0x00,0x00,0x72,0x70
000214 74737064 DCB 0x74,0x73,0x70,0x64
000218 00000000 DCB 0x00,0x00,0x00,0x00
% 12
000228 7270746d DCB 0x72,0x70,0x74,0x6d
00022c 6f646500 DCB 0x6f,0x64,0x65,0x00
% 12
00023c 00007270 DCB 0x00,0x00,0x72,0x70
000240 74676f00 DCB 0x74,0x67,0x6f,0x00
% 16
000254 72707470 DCB 0x72,0x70,0x74,0x70
000258 6f730000 DCB 0x6f,0x73,0x00,0x00
% 12
000268 00007270 DCB 0x00,0x00,0x72,0x70
00026c 74626163 DCB 0x74,0x62,0x61,0x63
000270 6b000000 DCB 0x6b,0x00,0x00,0x00
% 12
000280 7274706c DCB 0x72,0x74,0x70,0x6c
000284 61796572 DCB 0x61,0x79,0x65,0x72
000288 00000000 DCB 0x00,0x00,0x00,0x00
% 8
000294 00007270 DCB 0x00,0x00,0x72,0x70
000298 74616e67 DCB 0x74,0x61,0x6e,0x67
00029c 6c650000 DCB 0x6c,0x65,0x00,0x00
% 12
0002ac 72656c65 DCB 0x72,0x65,0x6c,0x65
0002b0 61677600 DCB 0x61,0x67,0x76,0x00
% 12
0002c0 00006361 DCB 0x00,0x00,0x63,0x61
0002c4 6c6c6167 DCB 0x6c,0x6c,0x61,0x67
0002c8 76000000 DCB 0x76,0x00,0x00,0x00
% 12
0002d8 73657474 DCB 0x73,0x65,0x74,0x74
0002dc 61736b00 DCB 0x61,0x73,0x6b,0x00
% 12
0002ec 00007365 DCB 0x00,0x00,0x73,0x65
0002f0 74726f75 DCB 0x74,0x72,0x6f,0x75
0002f4 74000000 DCB 0x74,0x00,0x00,0x00
% 12
000304 73657473 DCB 0x73,0x65,0x74,0x73
000308 74700000 DCB 0x74,0x70,0x00,0x00
% 12
000318 00007365 DCB 0x00,0x00,0x73,0x65
00031c 74737064 DCB 0x74,0x73,0x70,0x64
000320 00000000 DCB 0x00,0x00,0x00,0x00
% 12
000330 73657472 DCB 0x73,0x65,0x74,0x72
000334 74700000 DCB 0x74,0x70,0x00,0x00
% 12
000344 00007365 DCB 0x00,0x00,0x73,0x65
000348 74747261 DCB 0x74,0x74,0x72,0x61
00034c 00000000 DCB 0x00,0x00,0x00,0x00
% 12
00035c 7365746d DCB 0x73,0x65,0x74,0x6d
000360 6f760000 DCB 0x6f,0x76,0x00,0x00
% 12
000370 00007365 DCB 0x00,0x00,0x73,0x65
000374 74766d6f DCB 0x74,0x76,0x6d,0x6f
000378 74000000 DCB 0x74,0x00,0x00,0x00
% 12
000388 7365746c DCB 0x73,0x65,0x74,0x6c
00038c 6f636b00 DCB 0x6f,0x63,0x6b,0x00
% 12
00039c 00007365 DCB 0x00,0x00,0x73,0x65
0003a0 7461766f DCB 0x74,0x61,0x76,0x6f
0003a4 69640000 DCB 0x69,0x64,0x00,0x00
% 12
0003b4 7365746d DCB 0x73,0x65,0x74,0x6d
0003b8 75736963 DCB 0x75,0x73,0x69,0x63
0003bc 00000000 DCB 0x00,0x00,0x00,0x00
% 8
0003c8 00007365 DCB 0x00,0x00,0x73,0x65
0003cc 746c6173 DCB 0x74,0x6c,0x61,0x73
0003d0 65720000 DCB 0x65,0x72,0x00,0x00
% 12
0003e0 7365746f DCB 0x73,0x65,0x74,0x6f
0003e4 75740000 DCB 0x75,0x74,0x00,0x00
% 12
0003f4 00007365 DCB 0x00,0x00,0x73,0x65
0003f8 746c726f DCB 0x74,0x6c,0x72,0x6f
0003fc 75740000 DCB 0x75,0x74,0x00,0x00
% 12
00040c 7365746c DCB 0x73,0x65,0x74,0x6c
000410 61796572 DCB 0x61,0x79,0x65,0x72
000414 00000000 DCB 0x00,0x00,0x00,0x00
% 8
000420 00007365 DCB 0x00,0x00,0x73,0x65
000424 74616e67 DCB 0x74,0x61,0x6e,0x67
000428 6c650000 DCB 0x6c,0x65,0x00,0x00
% 12
000438 64656c72 DCB 0x64,0x65,0x6c,0x72
00043c 74700000 DCB 0x74,0x70,0x00,0x00
% 12
00044c 00007365 DCB 0x00,0x00,0x73,0x65
000450 74746376 DCB 0x74,0x74,0x63,0x76
000454 6f696365 DCB 0x6f,0x69,0x63,0x65
000458 00000000 DCB 0x00,0x00,0x00,0x00
% 8
000464 7270746e DCB 0x72,0x70,0x74,0x6e
000468 6f646500 DCB 0x6f,0x64,0x65,0x00
% 12
000478 00007270 DCB 0x00,0x00,0x72,0x70
00047c 746c696e DCB 0x74,0x6c,0x69,0x6e
000480 65000000 DCB 0x65,0x00,0x00,0x00
% 12
000490 73657474 DCB 0x73,0x65,0x74,0x74
000494 69707300 DCB 0x69,0x70,0x73,0x00
% 12
0004a4 00007072 DCB 0x00,0x00,0x70,0x72
0004a8 696e7400 DCB 0x69,0x6e,0x74,0x00
% 16
0004bc 44656661 DCB 0x44,0x65,0x66,0x61
0004c0 756c7400 DCB 0x75,0x6c,0x74,0x00
% 12
0004d0 0000 DCB 0x00,0x00
AREA ||area_number.20||, DATA, ALIGN=0
EXPORTAS ||area_number.20||, ||.data||
SlaveStationIdCode
000000 42303031 DCB 0x42,0x30,0x30,0x31
000004 00000000 DCB 0x00,0x00,0x00,0x00
% 12
000014 42303032 DCB 0x42,0x30,0x30,0x32
000018 00000000 DCB 0x00,0x00,0x00,0x00
% 12
000028 42303033 DCB 0x42,0x30,0x30,0x33
00002c 00000000 DCB 0x00,0x00,0x00,0x00
% 12
00003c 43303031 DCB 0x43,0x30,0x30,0x31
000040 00000000 DCB 0x00,0x00,0x00,0x00
% 12
000050 44656661 DCB 0x44,0x65,0x66,0x61
000054 756c7400 DCB 0x75,0x6c,0x74,0x00
% 12
;*** Start embedded assembler ***
#line 1 "..\\..\\User\\DATAUPDATE\\CommunicationForCenter.c"
AREA ||.rev16_text||, CODE
THUMB
EXPORT |__asm___24_CommunicationForCenter_c_429c268a____REV16|
#line 129 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|__asm___24_CommunicationForCenter_c_429c268a____REV16| PROC
#line 130
rev16 r0, r0
bx lr
ENDP
AREA ||.revsh_text||, CODE
THUMB
EXPORT |__asm___24_CommunicationForCenter_c_429c268a____REVSH|
#line 144
|__asm___24_CommunicationForCenter_c_429c268a____REVSH| PROC
#line 145
revsh r0, r0
bx lr
ENDP
AREA ||.rrx_text||, CODE
THUMB
EXPORT |__asm___24_CommunicationForCenter_c_429c268a____RRX|
#line 300
|__asm___24_CommunicationForCenter_c_429c268a____RRX| PROC
#line 301
rrx r0, r0
bx lr
ENDP
;*** End embedded assembler ***