Merge branch 'feature/clk3_shift_allow' into mp_eb_dev
# Conflicts: # src/main/scala/backBoard/ebus/CDRIn.scala # tb/shinTest/ShinTopSpiTb.v # tb/shinTest/gen_pkt.py # tb/shinTest/testcase/base.py # tb/shinTest/testcase/environment.py
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -29,7 +29,10 @@ def tc1():
|
||||
#gen_file_def = "bc_r_pkt"
|
||||
sm_idx = 0
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -88,7 +91,10 @@ def tc2():
|
||||
|
||||
sm_idx = 0
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -152,7 +158,10 @@ def tc3():
|
||||
|
||||
sm_idx = 0
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
|
||||
@@ -14,6 +14,7 @@ def tc1():
|
||||
genPkt.clean()
|
||||
genPkt.setPktType(0)
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [0,] * 30
|
||||
setting_ebmmu_regs(data, 0, 0x10000000, 0x0200, 0x0a, 0x3, 0x1)
|
||||
@@ -33,7 +34,12 @@ def tc1():
|
||||
setting_ebmmu_regs(data, 0, 0x1000001e, 0x0200, 0x0a, 0x3, 0x1)
|
||||
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 10, data)
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]))
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -166,7 +172,7 @@ def tc2():
|
||||
#>>>>>>设置EB-MMU 2
|
||||
genPkt.clean()
|
||||
genPkt.setPktType(0)
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [0,] * 30
|
||||
setting_ebmmu_regs(data, 0, 0x20000000, 0x0000, 0x10, 0x1, 0x1)
|
||||
@@ -185,8 +191,12 @@ def tc2():
|
||||
data = [0,] * 30
|
||||
setting_ebmmu_regs(data, 0, 0x20000030, 0x0000, 0x10, 0x1, 0x1)
|
||||
genPkt.addSubPkt(0x4, 0, 0x020a, 0x1, 10, data)
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -318,7 +328,7 @@ def tc3():
|
||||
#>>>>>>设置EB-MMU 3
|
||||
genPkt.clean()
|
||||
genPkt.setPktType(0)
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [0,] * 30
|
||||
setting_ebmmu_regs(data, 0, 0x10000000, 0x0200, 0x0a, 0x3, 0x1)
|
||||
@@ -356,8 +366,12 @@ def tc3():
|
||||
setting_ebmmu_regs(data, 0, 0x1000001e+0xa+0xc+0xc+0xc, 0x0000, 0x0c, 0x1, 0x1)
|
||||
genPkt.addSubPkt(0x4, 0, 0x0214, 0x1, 10, data)
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -446,10 +460,14 @@ def tc4():
|
||||
genPkt.setPktType(0)
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+ genSlvSMWriteData(1, 1, 0x80)
|
||||
+ genSlvSMWriteData(2, 3, 0x98)
|
||||
+ genSlvSMWriteData(3, 5, 0x81)
|
||||
+ genSlvSMWriteData(4, 7, 0x8c))
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [0,] * 30
|
||||
@@ -473,6 +491,8 @@ def tc4():
|
||||
addr = 0x58 + 0x80 + 0x98 + 0x81
|
||||
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x4000, 0x8c, 0x1, 0x1)
|
||||
genPkt.addSubPkt(0x4, 0, 0x021e, 0x1, 10, data)
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
|
||||
|
||||
|
||||
sm_idx = 0
|
||||
@@ -563,8 +583,11 @@ def tc5():
|
||||
genPkt.clean()
|
||||
genPkt.setPktType(0)
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]))
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [0,] * 30
|
||||
setting_ebmmu_regs(data, 0, 0x10000058, 0x1000, 0x80, 0x1, 0x1)
|
||||
@@ -588,7 +611,7 @@ def tc5():
|
||||
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x4000, 0x8c, 0x1, 0x1)
|
||||
genPkt.addSubPkt(0x4, 0, 0x021e, 0x1, 10, data)
|
||||
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
sm_idx = 0
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
@@ -676,6 +699,7 @@ def tc6():
|
||||
genPkt.clean()
|
||||
genPkt.setPktType(0)
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
addr_off = 0x58 + 0x80 + 0x98 + 0x81 + 0x8c
|
||||
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
@@ -706,11 +730,15 @@ def tc6():
|
||||
data[0] = 0x80
|
||||
data[1] = 0x00
|
||||
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
|
||||
#gen_file_def = "ebmmu_tc6_settings"
|
||||
sm_idx = 0
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -811,6 +839,7 @@ def tc7():
|
||||
genPkt.clean()
|
||||
genPkt.setPktType(0)
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
addr_off = 0x58 + 0x80 + 0x98 + 0x81 + 0x8c
|
||||
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
@@ -849,7 +878,12 @@ def tc7():
|
||||
#gen_file_def = "ebmmu_tc7_settings"
|
||||
sm_idx = 0
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -950,6 +984,7 @@ def tc8():
|
||||
genPkt.clean()
|
||||
genPkt.setPktType(0)
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
addr_off = 0x0
|
||||
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
@@ -963,10 +998,14 @@ def tc8():
|
||||
data[0] = 0x80
|
||||
data[1] = 0x00
|
||||
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
|
||||
sm_idx = 0
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -1061,6 +1100,7 @@ def tc9():
|
||||
genPkt.clean()
|
||||
genPkt.setPktType(0)
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
addr_off = 0x0
|
||||
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
@@ -1074,10 +1114,14 @@ def tc9():
|
||||
data[0] = 0x00
|
||||
data[1] = 0x01
|
||||
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
|
||||
sm_idx = 0
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -1175,7 +1219,7 @@ def tc10():
|
||||
genPkt.setPktType(0)
|
||||
|
||||
addr_off = 0x0
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [0,] * 256
|
||||
|
||||
@@ -1187,10 +1231,14 @@ def tc10():
|
||||
data[0] = 0x00
|
||||
data[1] = 0x01
|
||||
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
|
||||
sm_idx = 0
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -1336,6 +1384,7 @@ def tc11():
|
||||
addr = 0x10000000
|
||||
addr_off = 0x0
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [0,] * 256
|
||||
|
||||
@@ -1378,10 +1427,14 @@ def tc11():
|
||||
data[0] = 0x00
|
||||
data[1] = 0x01
|
||||
genPkt.addSubPkt(0x0, 0, 0x306, 0xe, 2, data)
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
|
||||
sm_idx = 0
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -1562,6 +1615,7 @@ def tc12():
|
||||
addr_off = 0x0
|
||||
sm_size = 0x8
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [0,] * 256
|
||||
|
||||
@@ -1661,6 +1715,8 @@ def tc12():
|
||||
#print(hex(taddr), hex(addr_off))
|
||||
setting_ebmmu_regs(data, 3, taddr, 0x4000, sm_size, 0x1, 0x1)
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
|
||||
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 160, data)
|
||||
|
||||
data = [0,] * 2
|
||||
@@ -1686,7 +1742,10 @@ def tc12():
|
||||
|
||||
sm_idx = 0
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -1833,6 +1892,7 @@ def tc13():
|
||||
addr_off = 0x0
|
||||
sm_size = 0x8
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [0,] * 256
|
||||
|
||||
@@ -1936,7 +1996,11 @@ def tc13():
|
||||
setting_ebmmu_regs(data, 6, taddr, 0x4000, sm_size / 2, 0x1, 0x1)
|
||||
setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x4000 + sm_size / 2, sm_size / 2, 0x1, 0x1)
|
||||
|
||||
|
||||
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 160, data)
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
|
||||
|
||||
data = [0,] * 2
|
||||
data[0] = (sm_size >> 0) & 0xff
|
||||
@@ -1960,7 +2024,10 @@ def tc13():
|
||||
genPkt.addSubPkt(0x0, 0, 0x31e, 0xe, 2, data)
|
||||
|
||||
sm_idx = 0
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -2088,6 +2155,7 @@ def tc14():
|
||||
addr_off = 0x0
|
||||
sm_size = 0x8
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [0,] * 256
|
||||
|
||||
@@ -2171,8 +2239,11 @@ def tc14():
|
||||
taddr = addr + addr_off
|
||||
setting_ebmmu_regs(data, 3, taddr, 0x3800, sm_size, 0x2, 0x1)
|
||||
|
||||
|
||||
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 160, data)
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
|
||||
data = [0,] * 2
|
||||
data[0] = (sm_size >> 0) & 0xff
|
||||
data[1] = (sm_size >> 8) & 0xff
|
||||
@@ -2196,7 +2267,10 @@ def tc14():
|
||||
|
||||
sm_idx = 0
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -2311,6 +2385,7 @@ def tc15():
|
||||
addr_off = 0x0
|
||||
sm_size = 16
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [0,] * 256
|
||||
|
||||
@@ -2558,7 +2633,9 @@ def tc15():
|
||||
#print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x0800 + i * int(sm_size / 4)))
|
||||
ebmmu_offset = ebmmu_offset + 1
|
||||
|
||||
|
||||
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 160, data)
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
|
||||
data = [0,] * 2
|
||||
data[0] = (sm_size >> 0) & 0xff
|
||||
@@ -2581,7 +2658,10 @@ def tc15():
|
||||
data[1] = (sm_size >> 8) & 0xff
|
||||
genPkt.addSubPkt(0x0, 0, 0x31a, 0xe, 2, data)
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -2696,6 +2776,7 @@ def tc16():
|
||||
addr_off = 0x0
|
||||
sm_size = 16
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [0,] * 256
|
||||
|
||||
@@ -2951,7 +3032,10 @@ def tc16():
|
||||
#print(ebmmu_offset, hex(taddr + i * int(sm_size / 4)), hex(0x3800 + i * int(sm_size / 4)))
|
||||
ebmmu_offset = ebmmu_offset + 1
|
||||
|
||||
|
||||
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 160, data)
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
|
||||
data = [0,] * 2
|
||||
data[0] = (sm_size >> 0) & 0xff
|
||||
@@ -2975,7 +3059,10 @@ def tc16():
|
||||
genPkt.addSubPkt(0x0, 0, 0x31a, 0xe, 2, data)
|
||||
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc( genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -3115,6 +3202,7 @@ def tc17():
|
||||
addr_off = 0x0
|
||||
sm_size = 16
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [0,] * 256
|
||||
|
||||
@@ -3363,6 +3451,7 @@ def tc17():
|
||||
ebmmu_offset = ebmmu_offset + 1
|
||||
|
||||
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 160, data)
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
|
||||
data = [0,] * 2
|
||||
data[0] = (sm_size >> 0) & 0xff
|
||||
@@ -3385,7 +3474,10 @@ def tc17():
|
||||
data[1] = (sm_size >> 8) & 0xff
|
||||
genPkt.addSubPkt(0x0, 0, 0x31e, 0xe, 2, data)
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -3496,6 +3588,7 @@ def tc18():
|
||||
addr_off = 0x0
|
||||
sm_size = 16
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [0,] * 256
|
||||
|
||||
@@ -3744,6 +3837,7 @@ def tc18():
|
||||
ebmmu_offset = ebmmu_offset + 1
|
||||
|
||||
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 160, data)
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
|
||||
data = [0,] * 2
|
||||
data[0] = (sm_size >> 0) & 0xff
|
||||
@@ -3766,7 +3860,10 @@ def tc18():
|
||||
data[1] = (sm_size >> 8) & 0xff
|
||||
genPkt.addSubPkt(0x0, 0, 0x31a, 0xe, 2, data)
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -3884,6 +3981,7 @@ def tc19():
|
||||
addr_off = 0x0
|
||||
sm_size = 8
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x1, 0x58])
|
||||
|
||||
sm_vaddr = 0x10000000
|
||||
sm_addr_off = 0x0
|
||||
@@ -4038,6 +4136,7 @@ def tc19():
|
||||
sm_addr_off = sm_addr_off + 4 * sm_size
|
||||
|
||||
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 160, data)
|
||||
genPkt.addSubPkt(0x0, 0, 0x0018, 0xe, 2, [0x0, 0x58])
|
||||
|
||||
data = [0,] * 2
|
||||
data[0] = (sm_size >> 0) & 0xff
|
||||
@@ -4088,7 +4187,10 @@ def tc19():
|
||||
genPkt.addSubPkt(0x0, 0, 0x31e, 0xe, 2, data)
|
||||
'''
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -4125,47 +4227,97 @@ def tc19():
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [(i & 0xff) for i in range(sm_size * 16)]
|
||||
|
||||
gen_file_def_ap = gen_file_def + "_rw"
|
||||
gen_file_def_ap = gen_file_def + "_rw01"
|
||||
sm_idx = 0
|
||||
|
||||
genPkt.addSubPkt(0x1000, 2, 0, 0x2, sm_size * 8 * 4, list(range(sm_size * 8 * 4)))
|
||||
genPkt.addSubPkt(0x2000, 2, 0, 0x0, 8 * 4, [0, ] * 32)
|
||||
|
||||
genPkt.addBeforeExc(genSlvSMWriteData(1, 1, sm_size, list(range(0, sm_size)))
|
||||
genPkt.addBeforeExc(genMessageCode("\\n--写设备1数据")
|
||||
+genSlvSMWriteData(1, 1, sm_size, list(range(0, sm_size)))
|
||||
+genSlvSMWriteData(1, 3, sm_size, list(range(0, sm_size * 2, 2)))
|
||||
+genSlvSMWriteData(1, 5, sm_size, list(range(0, sm_size * 3, 3)))
|
||||
+genSlvSMWriteData(1, 7, sm_size, list(range(0, sm_size * 4, 4)))
|
||||
|
||||
+genMessageCode("\\n--写设备2数据")
|
||||
+genSlvSMWriteData(2, 1, sm_size, list(range(0, sm_size * 5, 5)))
|
||||
+genSlvSMWriteData(2, 3, sm_size, list(range(0, sm_size * 6, 6)))
|
||||
+genSlvSMWriteData(2, 5, sm_size, list(range(0, sm_size * 7, 7)))
|
||||
+genSlvSMWriteData(2, 7, sm_size, list(range(0, sm_size * 8, 8)))
|
||||
|
||||
+genMessageCode("\\n--写设备3数据")
|
||||
+genSlvSMWriteData(3, 1, sm_size, list(range(0, sm_size * 9, 9)))
|
||||
+genSlvSMWriteData(3, 3, sm_size, list(range(0, sm_size * 8, 8)))
|
||||
+genSlvSMWriteData(3, 5, sm_size, list(range(0, sm_size * 7, 7)))
|
||||
+genSlvSMWriteData(3, 7, sm_size, list(range(0, sm_size * 6, 6)))
|
||||
|
||||
+genMessageCode("\\n--写设备4数据")
|
||||
+genSlvSMWriteData(4, 1, sm_size, list(range(0, sm_size * 5, 5)))
|
||||
+genSlvSMWriteData(4, 3, sm_size, list(range(0, sm_size * 4, 4)))
|
||||
+genSlvSMWriteData(4, 5, sm_size, list(range(0, sm_size * 3, 3)))
|
||||
+genSlvSMWriteData(4, 7, sm_size, list(range(0, sm_size * 2, 2)))
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
|
||||
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
|
||||
+genReadAckPktCode(gen_file_def_ap, sm_idx)
|
||||
|
||||
+genMessageCode("--读取中断")
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
+genIFRwDataCode(1, 0x74, False, 4)
|
||||
+genIFRwDataCode(2, 0x74, False, 4)
|
||||
+genIFRwDataCode(3, 0x74, False, 4)
|
||||
+genIFRwDataCode(4, 0x74, False, 4)
|
||||
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
|
||||
+genMessageCode("--读取中断")
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
+genIFRwDataCode(1, 0x74, False, 4)
|
||||
+genIFRwDataCode(2, 0x74, False, 4)
|
||||
+genIFRwDataCode(3, 0x74, False, 4)
|
||||
+genIFRwDataCode(4, 0x74, False, 4)
|
||||
)
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
||||
|
||||
|
||||
genPkt.clean()
|
||||
genPkt.setPktType(0)
|
||||
|
||||
gen_file_def_ap = gen_file_def + "_rw02"
|
||||
sm_idx = 0
|
||||
|
||||
genPkt.addSubPkt(0x2000, 2, 0, 0x0, 8 * 4, [0, ] * 32)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
|
||||
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
|
||||
+genReadAckPktCode(gen_file_def_ap, sm_idx)
|
||||
|
||||
+genMessageCode("\\n--读设备1数据")
|
||||
+genSlvSMReadData(1, 0, sm_size)
|
||||
+genSlvSMReadData(1, 2, sm_size)
|
||||
+genSlvSMReadData(1, 4, sm_size)
|
||||
+genSlvSMReadData(1, 6, sm_size)
|
||||
|
||||
+genMessageCode("\\n--读设备2数据")
|
||||
+genSlvSMReadData(2, 0, sm_size)
|
||||
+genSlvSMReadData(2, 2, sm_size)
|
||||
+genSlvSMReadData(2, 4, sm_size)
|
||||
+genSlvSMReadData(2, 6, sm_size)
|
||||
|
||||
+genMessageCode("\\n--读设备3数据")
|
||||
+genSlvSMReadData(3, 0, sm_size)
|
||||
+genSlvSMReadData(3, 2, sm_size)
|
||||
+genSlvSMReadData(3, 4, sm_size)
|
||||
+genSlvSMReadData(3, 6, sm_size)
|
||||
|
||||
+genMessageCode("\\n--读设备4数据")
|
||||
+genSlvSMReadData(4, 0, sm_size)
|
||||
+genSlvSMReadData(4, 2, sm_size)
|
||||
+genSlvSMReadData(4, 4, sm_size)
|
||||
|
||||
@@ -45,6 +45,20 @@ def bringup():
|
||||
+genIFRwDataCode(2, 0x0, False, 1)
|
||||
+genIFRwDataCode(3, 0x0, False, 1)
|
||||
+genIFRwDataCode(4, 0x0, False, 1)
|
||||
|
||||
+genMessageCode("--使能中断")
|
||||
+genIFRwDataCode(0, 0x70, True, 4, [0x03, 0x00, 0x00, 0xf0])
|
||||
+genIFRwDataCode(1, 0x70, True, 4, [0x00, 0x00, 0x00, 0xf0])
|
||||
+genIFRwDataCode(2, 0x70, True, 4, [0x00, 0x00, 0x00, 0xf0])
|
||||
+genIFRwDataCode(3, 0x70, True, 4, [0x00, 0x00, 0x00, 0xf0])
|
||||
+genIFRwDataCode(4, 0x70, True, 4, [0x00, 0x00, 0x00, 0xf0])
|
||||
|
||||
+genMessageCode("--设置中断为脉冲模式")
|
||||
+genIFRwDataCode(0, 0x7c, True, 2, [0x10, 0x80])
|
||||
+genIFRwDataCode(1, 0x7c, True, 2, [0x10, 0x80])
|
||||
+genIFRwDataCode(2, 0x7c, True, 2, [0x10, 0x80])
|
||||
+genIFRwDataCode(3, 0x7c, True, 2, [0x10, 0x80])
|
||||
+genIFRwDataCode(4, 0x7c, True, 2, [0x10, 0x80])
|
||||
)
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
@@ -66,6 +80,9 @@ def bringup():
|
||||
+genIFRwDataCode(2, 0xc0, False, 4)
|
||||
+genIFRwDataCode(3, 0xc0, False, 4)
|
||||
+genIFRwDataCode(4, 0xc0, False, 4)
|
||||
|
||||
+genMessageCode("--清除主中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
||||
|
||||
@@ -89,6 +106,9 @@ def bringup():
|
||||
+genIFRwDataCode(2, 0xc0, False, 4)
|
||||
+genIFRwDataCode(3, 0xc0, False, 4)
|
||||
+genIFRwDataCode(4, 0xc0, False, 4)
|
||||
|
||||
+genMessageCode("--清除主中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
||||
@@ -111,20 +131,6 @@ def bringup():
|
||||
+genIFRwDataCode(2, 0xc0, False, 4)
|
||||
+genIFRwDataCode(3, 0xc0, False, 4)
|
||||
+genIFRwDataCode(4, 0xc0, False, 4)
|
||||
|
||||
+genMessageCode("--使能中断")
|
||||
+genIFRwDataCode(0, 0x70, True, 4, [0x03, 0x00, 0x00, 0xf0])
|
||||
+genIFRwDataCode(1, 0x70, True, 4, [0x00, 0x00, 0x00, 0xf0])
|
||||
+genIFRwDataCode(2, 0x70, True, 4, [0x00, 0x00, 0x00, 0xf0])
|
||||
+genIFRwDataCode(3, 0x70, True, 4, [0x00, 0x00, 0x00, 0xf0])
|
||||
+genIFRwDataCode(4, 0x70, True, 4, [0x00, 0x00, 0x00, 0xf0])
|
||||
|
||||
+genMessageCode("--设置中断为脉冲模式")
|
||||
+genIFRwDataCode(0, 0x7c, True, 2, [0x00, 0x81])
|
||||
+genIFRwDataCode(1, 0x7c, True, 2, [0x00, 0x81])
|
||||
+genIFRwDataCode(2, 0x7c, True, 2, [0x00, 0x81])
|
||||
+genIFRwDataCode(3, 0x7c, True, 2, [0x00, 0x81])
|
||||
+genIFRwDataCode(4, 0x7c, True, 2, [0x00, 0x81])
|
||||
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
@@ -161,6 +167,9 @@ def bringup():
|
||||
+genIFRwDataCode(3, 0x400, False, 8)
|
||||
+genIFRwDataCode(4, 0x400, False, 8)
|
||||
|
||||
#+genIFRwDataCode(1, 0x0044, True, 4, [0x12, 0x34, 0x56, 0x78])
|
||||
#+genIFRwDataCode(1, 0x0044, False, 4)
|
||||
|
||||
+genTcEndFrameCode(gen_file_def)
|
||||
)
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
||||
@@ -185,8 +194,13 @@ def __GenDevice(id, TerminateNode = False, diffclk = False):
|
||||
multiclk = "multiCLK2"
|
||||
|
||||
code_device = ("\tShinTop s_ShinTop_slv%d(\n"%(id, )
|
||||
<<<<<<< HEAD
|
||||
+"\t.clock(%s),\n"%(clk, )
|
||||
+"\t.reset(reset | isSoftReset[%d]),\n\n"%(id + 1,)
|
||||
=======
|
||||
+"\t.clock(clock),\n"
|
||||
+"\t.reset(reset | isSoftReset_reg[%d]),\n\n"%(id + 1,)
|
||||
>>>>>>> mp_eb_dev
|
||||
|
||||
+"\t.io_multiCLK_0(%s[0]),\n"%(multiclk, )
|
||||
+"\t.io_multiCLK_1(%s[1]),\n"%(multiclk, )
|
||||
@@ -242,7 +256,7 @@ def __gen_slv_dev_predef(num):
|
||||
+"`define ALL_DEV_NUM (`DEV_NUM + 1) // slave + master\n"
|
||||
+"`define SPI_CSN_NUM (`ALL_DEV_NUM * 3)\n"
|
||||
|
||||
+"`define HW_SERIAL 0 //48'h31303050584c //(48'h4c5850303031)\n"
|
||||
+"`define HW_SERIAL 48'h31303050584c //(48'h4c5850303031)\n"
|
||||
+"`define IQSPI_PINS(N) (`N*4+3):(`N*4)\n"
|
||||
+"`define EQSPI_PINS(N) ((`N + `ALL_DEV_NUM)*4+3):((`N + `ALL_DEV_NUM)*4)\n"
|
||||
+"`define IQSPI_MISO(N) qspi_miso[`IQSPI_PINS(`N)]\n"
|
||||
|
||||
@@ -647,3 +647,330 @@ def tc6():
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
||||
|
||||
return gen_file_def
|
||||
|
||||
|
||||
|
||||
def mk_subpkt(dev, type, addr, cmd, len, dat):
|
||||
ret_dat = list()
|
||||
|
||||
temp = ((dev & 0x3fff) << 2) | (type & 0x3)
|
||||
ret_dat = ret_dat + [(temp >> 8) & 0xff, temp & 0xff, (addr >> 8) & 0xff, addr & 0xff]
|
||||
|
||||
temp = ((cmd & 0xf) << 12) | (len & 0xfff)
|
||||
ret_dat = ret_dat + [(temp >>8) & 0xff, temp & 0xff]
|
||||
|
||||
ret_dat = ret_dat + dat + [0, 0]
|
||||
|
||||
return ret_dat
|
||||
|
||||
def sm_wr_err_test(tc_id, sm_id, pre_g_pkt = 1, good_pkt_in_bad = 1, after_g_pkt = 1, data_size = 0x10, dev = 1, cmd = 0x1):
|
||||
random.seed(int(time.time() * 1000))
|
||||
genPkt = GenPkt()
|
||||
|
||||
gen_file_def = "error_pkt_tc%02d"%(tc_id, )
|
||||
sm_idx = 0
|
||||
tc_des = (f"测试SM{sm_id},先写入正确的数据包,包含{pre_g_pkt}个操作SM{sm_id}的子包,然后写入错误的数据包,其中包含正确的操作SM{sm_id}的数据子包有{good_pkt_in_bad}个,\\n"
|
||||
f"然后再发送正确的数据包,其中包含{after_g_pkt}个操作SM{sm_id}的子包。然后检查SM{sm_id}的状态以及数据。\\n"
|
||||
f"所有数据包的长度都是{data_size}字节,设备{dev}, 命令{cmd}。没有比对数据,需要手动检查。"
|
||||
)
|
||||
|
||||
|
||||
genPkt.clean()
|
||||
genPkt.addSubPkt(0x0, 0x0, 0x302 + 4 * sm_id, 0xe, 2, [(data_size & 0xff), ((data_size >> 8)&0xff)])
|
||||
for pkt_num in range(pre_g_pkt):
|
||||
genPkt.addSubPkt(dev, 0x0, 0x800 + 0x800 * sm_id, cmd, data_size, [((i * (pkt_num + 1)) & 0xff) for i in range(data_size)])
|
||||
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||
+genMessageCode("--清除主中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
)
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
+genTrgTransPktCode(gen_file_def, sm_idx)
|
||||
+genReadAckPktCode(gen_file_def, sm_idx)
|
||||
|
||||
|
||||
+genMessageCode("--读取中断")
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
+genIFRwDataCode(1, 0x74, False, 4)
|
||||
+genIFRwDataCode(2, 0x74, False, 4)
|
||||
+genIFRwDataCode(3, 0x74, False, 4)
|
||||
+genIFRwDataCode(4, 0x74, False, 4)
|
||||
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
|
||||
+genMessageCode("--读取中断")
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
+genIFRwDataCode(1, 0x74, False, 4)
|
||||
+genIFRwDataCode(2, 0x74, False, 4)
|
||||
+genIFRwDataCode(3, 0x74, False, 4)
|
||||
+genIFRwDataCode(4, 0x74, False, 4)
|
||||
|
||||
+genMessageCode("--MB状态寄存器")
|
||||
+genIFRwDataCode(1, 0x301 + sm_id * 0x4, False, 1)
|
||||
+genIFRwDataCode(2, 0x301 + sm_id * 0x4, False, 1)
|
||||
+genIFRwDataCode(3, 0x301 + sm_id * 0x4, False, 1)
|
||||
+genIFRwDataCode(4, 0x301 + sm_id * 0x4, False, 1)
|
||||
)
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
|
||||
genPkt.clean()
|
||||
|
||||
temp = ((data_size * 6) & 0xfff) << 4
|
||||
data = [(temp >> 8)&0xff, temp & 0xff, 0, 0]
|
||||
|
||||
for i in range(good_pkt_in_bad):
|
||||
data = data + mk_subpkt(dev, 0, 0x800 + 0x800 * sm_id, cmd, data_size, [((j * (i + 1) + 1) & 0xff) for j in range(data_size)])
|
||||
|
||||
for i in range(128):
|
||||
data.append(random.randint(0, 255))
|
||||
data = data + [0, 0]
|
||||
|
||||
genPkt.setPkt(2, data)
|
||||
|
||||
sm_idx = 0
|
||||
genPkt.addBeforeExc(genMessageCode("--读取统计寄存器")
|
||||
+genIFRwDataCode(0, 0x80, False, 24)
|
||||
+genIFRwDataCode(0, 0xa0, False, 24)
|
||||
+genIFRwDataCode(1, 0x80, False, 24)
|
||||
+genIFRwDataCode(1, 0xa0, False, 24)
|
||||
)
|
||||
|
||||
gen_file_def_ap = gen_file_def + "_rw01"
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
|
||||
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
|
||||
+genReadAckPktCode(gen_file_def_ap, sm_idx)
|
||||
|
||||
+genMessageCode("--数据包状态寄存器")
|
||||
+genIFRwDataCode(0, 0x22, False, 2)
|
||||
+genIFRwDataCode(0, 0x22, True, 2, [0xff, 0xff])
|
||||
+genIFRwDataCode(0, 0x22, False, 2)
|
||||
|
||||
+genMessageCode("--读取统计寄存器")
|
||||
+genIFRwDataCode(0, 0x80, False, 24)
|
||||
+genIFRwDataCode(0, 0xa0, False, 24)
|
||||
+genIFRwDataCode(1, 0x80, False, 24)
|
||||
+genIFRwDataCode(1, 0xa0, False, 24)
|
||||
|
||||
+genMessageCode("--读取中断")
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
+genIFRwDataCode(1, 0x74, False, 4)
|
||||
+genIFRwDataCode(2, 0x74, False, 4)
|
||||
+genIFRwDataCode(3, 0x74, False, 4)
|
||||
+genIFRwDataCode(4, 0x74, False, 4)
|
||||
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
|
||||
+genMessageCode("--读取中断")
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
+genIFRwDataCode(1, 0x74, False, 4)
|
||||
+genIFRwDataCode(2, 0x74, False, 4)
|
||||
+genIFRwDataCode(3, 0x74, False, 4)
|
||||
+genIFRwDataCode(4, 0x74, False, 4)
|
||||
|
||||
+genMessageCode("--MB状态寄存器")
|
||||
+genIFRwDataCode(1, 0x301 + sm_id * 0x4, False, 1)
|
||||
+genIFRwDataCode(2, 0x301 + sm_id * 0x4, False, 1)
|
||||
+genIFRwDataCode(3, 0x301 + sm_id * 0x4, False, 1)
|
||||
+genIFRwDataCode(4, 0x301 + sm_id * 0x4, False, 1)
|
||||
)
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
||||
|
||||
genPkt.clean()
|
||||
|
||||
gen_file_def_ap = gen_file_def + "_rw02"
|
||||
sm_idx = 0
|
||||
|
||||
genPkt.addSubPkt(0, 0, 0, 0, 8, [0, ] * 8)
|
||||
|
||||
for pkt_num in range(after_g_pkt):
|
||||
genPkt.addSubPkt(dev, 0x0, 0x800 + 0x800 * sm_id, cmd, data_size, [((i * (pkt_num + 1) - 1) & 0xff) for i in range(data_size)])
|
||||
|
||||
if sm_id < 4:
|
||||
code_str = (genIFRwDataCode(dev, 0x800 + sm_id * 0x800, False, data_size)
|
||||
+genIFRwDataCode(dev, 0x800 + sm_id * 0x800, False, data_size)
|
||||
+genIFRwDataCode(dev, 0x800 + sm_id * 0x800, False, data_size)
|
||||
+genIFRwDataCode(dev, 0x800 + sm_id * 0x800, False, data_size))
|
||||
else:
|
||||
code_str = (genIFRwDataCode(dev, 0x800 + sm_id * 0x800, False, data_size)
|
||||
+genIFRwDataCode(dev, 0x800 + sm_id * 0x800, False, data_size))
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
|
||||
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
|
||||
+genReadAckPktCode(gen_file_def_ap, sm_idx)
|
||||
|
||||
+genMessageCode("--数据包状态寄存器")
|
||||
+genIFRwDataCode(0, 0x22, False, 2)
|
||||
+genIFRwDataCode(0, 0x22, True, 2, [0xff, 0xff])
|
||||
+genIFRwDataCode(0, 0x22, False, 2)
|
||||
|
||||
#+genMessageCode("--读取统计寄存器")
|
||||
#+genIFRwDataCode(0, 0x80, False, 24)
|
||||
#+genIFRwDataCode(0, 0xa0, False, 24)
|
||||
|
||||
+genMessageCode("--读取中断")
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
+genIFRwDataCode(1, 0x74, False, 4)
|
||||
+genIFRwDataCode(2, 0x74, False, 4)
|
||||
+genIFRwDataCode(3, 0x74, False, 4)
|
||||
+genIFRwDataCode(4, 0x74, False, 4)
|
||||
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
|
||||
+genMessageCode("--读取中断")
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
+genIFRwDataCode(1, 0x74, False, 4)
|
||||
+genIFRwDataCode(2, 0x74, False, 4)
|
||||
+genIFRwDataCode(3, 0x74, False, 4)
|
||||
+genIFRwDataCode(4, 0x74, False, 4)
|
||||
|
||||
+genMessageCode("--MB状态寄存器")
|
||||
+genIFRwDataCode(1, 0x301 + sm_id * 0x4, False, 1)
|
||||
+genIFRwDataCode(2, 0x301 + sm_id * 0x4, False, 1)
|
||||
+genIFRwDataCode(3, 0x301 + sm_id * 0x4, False, 1)
|
||||
+genIFRwDataCode(4, 0x301 + sm_id * 0x4, False, 1)
|
||||
|
||||
+genMessageCode("--读取MB数据")
|
||||
+code_str
|
||||
|
||||
#+genMessageCode("--复位MB状态")
|
||||
#+genIFRwDataCode(1, 0x300 + sm_id * 0x4, True, 1, [0, ])
|
||||
#+genIFRwDataCode(2, 0x300 + sm_id * 0x4, True, 1, [0, ])
|
||||
#+genIFRwDataCode(3, 0x300 + sm_id * 0x4, True, 1, [0, ])
|
||||
#+genIFRwDataCode(4, 0x300 + sm_id * 0x4, True, 1, [0, ])
|
||||
|
||||
+genTcEndFrameCode(gen_file_def))
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
||||
|
||||
return gen_file_def
|
||||
|
||||
'''
|
||||
测试SM0
|
||||
'''
|
||||
def tc7():
|
||||
return sm_wr_err_test(7, 0, 1, 2, 1, 32)
|
||||
|
||||
def tc8():
|
||||
return sm_wr_err_test(8, 0, 2, 2, 1, 32)
|
||||
|
||||
def tc9():
|
||||
return sm_wr_err_test(9, 0, 4, 2, 1, 16)
|
||||
|
||||
def tc10():
|
||||
return sm_wr_err_test(10, 0, 0, 5, 1, 16)
|
||||
|
||||
def tc11():
|
||||
return sm_wr_err_test(11, 0, 0, 5, 3, 64)
|
||||
|
||||
def tc12():
|
||||
return sm_wr_err_test(12, 0, 1, 1, 4, 64)
|
||||
|
||||
def tc13():
|
||||
return sm_wr_err_test(13, 0, 0, 5, 0, 128)
|
||||
|
||||
def tc14():
|
||||
return sm_wr_err_test(14, 0, 4, 5, 4, 128)
|
||||
|
||||
|
||||
'''
|
||||
测试SM2
|
||||
'''
|
||||
def tc15():
|
||||
return sm_wr_err_test(15, 2, 1, 2, 1, 32)
|
||||
|
||||
def tc16():
|
||||
return sm_wr_err_test(16, 2, 2, 2, 1, 32)
|
||||
|
||||
def tc17():
|
||||
return sm_wr_err_test(17, 2, 4, 2, 1, 16)
|
||||
|
||||
def tc18():
|
||||
return sm_wr_err_test(18, 2, 0, 5, 1, 16)
|
||||
|
||||
def tc19():
|
||||
return sm_wr_err_test(19, 2, 0, 5, 3, 64)
|
||||
|
||||
def tc20():
|
||||
return sm_wr_err_test(20, 2, 1, 1, 4, 64)
|
||||
|
||||
def tc21():
|
||||
return sm_wr_err_test(21, 2, 0, 5, 0, 128)
|
||||
|
||||
def tc22():
|
||||
return sm_wr_err_test(22, 2, 4, 5, 4, 128)
|
||||
|
||||
|
||||
|
||||
'''
|
||||
测试SM4
|
||||
'''
|
||||
def tc23():
|
||||
return sm_wr_err_test(23, 4, 1, 2, 1, 32)
|
||||
|
||||
def tc24():
|
||||
return sm_wr_err_test(24, 4, 2, 2, 1, 32)
|
||||
|
||||
def tc25():
|
||||
return sm_wr_err_test(25, 4, 4, 2, 1, 16)
|
||||
|
||||
def tc26():
|
||||
return sm_wr_err_test(26, 4, 0, 5, 1, 16)
|
||||
|
||||
def tc27():
|
||||
return sm_wr_err_test(27, 4, 0, 5, 3, 64)
|
||||
|
||||
def tc28():
|
||||
return sm_wr_err_test(28, 4, 1, 1, 4, 64)
|
||||
|
||||
def tc29():
|
||||
return sm_wr_err_test(29, 4, 0, 5, 0, 128)
|
||||
|
||||
def tc30():
|
||||
return sm_wr_err_test(30, 4, 4, 5, 4, 128)
|
||||
|
||||
|
||||
'''
|
||||
测试SM6
|
||||
'''
|
||||
def tc31():
|
||||
return sm_wr_err_test(31, 6, 1, 2, 1, 32)
|
||||
|
||||
def tc32():
|
||||
return sm_wr_err_test(32, 6, 2, 2, 1, 32)
|
||||
|
||||
def tc33():
|
||||
return sm_wr_err_test(33, 6, 4, 2, 1, 16)
|
||||
|
||||
def tc34():
|
||||
return sm_wr_err_test(34, 6, 0, 5, 1, 16)
|
||||
|
||||
def tc35():
|
||||
return sm_wr_err_test(35, 6, 0, 5, 3, 64)
|
||||
|
||||
def tc36():
|
||||
return sm_wr_err_test(36, 6, 1, 1, 4, 64)
|
||||
|
||||
def tc37():
|
||||
return sm_wr_err_test(37, 6, 0, 5, 0, 128)
|
||||
|
||||
def tc38():
|
||||
return sm_wr_err_test(38, 6, 4, 5, 4, 128)
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ def tc1():
|
||||
#>>>>>>嗅探数据包1,正常的嗅探数据包
|
||||
genPkt.clean()
|
||||
genPkt.setPktType(1)
|
||||
gen_file_def = "test_pkt"
|
||||
gen_file_def = "regtest_tc01"
|
||||
sm_idx = 0
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
|
||||
@@ -1311,10 +1311,11 @@ def tc7():
|
||||
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
||||
|
||||
|
||||
|
||||
genPkt.clean()
|
||||
genPkt.setPktType(0)
|
||||
sm_idx = 3
|
||||
sm_idx = 1
|
||||
|
||||
genPkt.addBeforeExc("\n#5000\n"
|
||||
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
|
||||
@@ -1322,18 +1323,98 @@ def tc7():
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
+genIFRwDataCode(0, 0x40, False, 4)
|
||||
+genIFRwDataCode(0, 0x00, True, 1, [0x1, ])
|
||||
+genEnableInsertTimeCode(0xa)
|
||||
)
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x180, 0xd, 10, b'\0'*10)
|
||||
|
||||
gen_file_def_ap = gen_file_def + "_rw03"
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
|
||||
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
|
||||
+genReadAckPktCode(gen_file_def_ap, sm_idx)
|
||||
|
||||
+genMessageCode("--读取中断")
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
+genIFRwDataCode(1, 0x74, False, 4)
|
||||
+genIFRwDataCode(2, 0x74, False, 4)
|
||||
+genIFRwDataCode(3, 0x74, False, 4)
|
||||
+genIFRwDataCode(4, 0x74, False, 4)
|
||||
|
||||
+genMessageCode("--清除中断")
|
||||
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
|
||||
+genMessageCode("--读取中断")
|
||||
+genIFRwDataCode(0, 0x74, False, 4)
|
||||
+genIFRwDataCode(1, 0x74, False, 4)
|
||||
+genIFRwDataCode(2, 0x74, False, 4)
|
||||
+genIFRwDataCode(3, 0x74, False, 4)
|
||||
+genIFRwDataCode(4, 0x74, False, 4)
|
||||
)
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def,), 1, True, gen_file_def_ap)
|
||||
|
||||
|
||||
genPkt.clean()
|
||||
genPkt.setPktType(0)
|
||||
sm_idx = 1
|
||||
|
||||
|
||||
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa)
|
||||
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
||||
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
||||
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
|
||||
+ '''_temp_time = _temp_time + 32'h3000;\n\n'''
|
||||
+ '''txBuf[3] = 8'h0f;\n'''
|
||||
+ '''txBuf[4] = 8'h00;\n'''
|
||||
+ '''txBuf[5] = 8'h0a;\n'''
|
||||
+ '''txBuf[6] = 8'h00;\n'''
|
||||
+ '''txBuf[7] = 8'h0a;\n'''
|
||||
+ '''txBuf[8] = 8'h00;\n'''
|
||||
+ '''txBuf[9] = 8'h0a;\n'''
|
||||
+ '''txBuf[10] = 8'h00;\n'''
|
||||
+ '''txBuf[11] = 8'h01;\n'''
|
||||
+ '''txBuf[12] = 8'h00;\n'''
|
||||
+ '''txBuf[19] = (_temp_time & 8'hff);\n'''
|
||||
+ '''txBuf[20] = ( (_temp_time >> 8) & 8'hff);\n'''
|
||||
+ '''txBuf[21] = ((_temp_time >> 16) & 8'hff);\n'''
|
||||
+ '''txBuf[22] = ((_temp_time >> 24) & 8'hff);\n'''
|
||||
+ '''txBuf[23] = ((_temp_time >> 32) & 8'hff);\n'''
|
||||
+ '''txBuf[24] = 0;\n'''
|
||||
+ '''txBuf[25] = 0;\n'''
|
||||
+ '''txBuf[26] = 0;\n'''
|
||||
+ '''txBuf[27] = 8'h80;\n'''
|
||||
+ '''txBuf[28] = 8'h00;\n'''
|
||||
+ '''txBuf[29] = 8'h00;\n'''
|
||||
+ '''txBuf[30] = 8'h00;\n'''
|
||||
+ '''txBuf[31] = 8'h00;\n'''
|
||||
+ '''txBuf[32] = 8'h00;\n'''
|
||||
+ '''txBuf[33] = 8'h00;\n'''
|
||||
+ '''txBuf[34] = 8'h00;\n'''
|
||||
+ '''txBuf[35] = 8'h00;\n'''
|
||||
+ '''txBuf[36] = 8'h00;\n'''
|
||||
+ '''txBuf[37] = 8'h00;\n'''
|
||||
+ '''txBuf[38] = 8'h00;\n'''
|
||||
+ '''txBuf[39] = 8'h00;\n'''
|
||||
+ '''txBuf[40] = 8'h00;\n'''
|
||||
+ '''txBuf[41] = 8'h00;\n'''
|
||||
+ '''txBuf[42] = 8'h00;\n'''
|
||||
+ '''txBuf[43] = 8'h00;\n'''
|
||||
+ '''spi_trans( (16'h0120), (`SPI_WRITE), (40), (`IF_IDX(0)));\n'''
|
||||
)
|
||||
|
||||
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
|
||||
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [0,] * 100 #bytearray(b"\0" * 100)
|
||||
data[0] = 0x0f #地址0x120
|
||||
data[1] = 0x0
|
||||
data[2] = 0xa
|
||||
data[3] = 0x0
|
||||
data[4] = 0xa
|
||||
data[5] = 0x0
|
||||
data[6] = 0xa
|
||||
data[8] = 0xa
|
||||
|
||||
@@ -1422,7 +1503,7 @@ def tc7():
|
||||
|
||||
genPkt.addSubPkt(2, 0, 0x120, 0x1, 0x28, data)
|
||||
|
||||
gen_file_def_ap = gen_file_def + "_rw03"
|
||||
gen_file_def_ap = gen_file_def + "_rw04"
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
|
||||
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
|
||||
|
||||
@@ -1,5 +1,31 @@
|
||||
from pyutils import *
|
||||
|
||||
|
||||
|
||||
'''
|
||||
看门狗0超时逻辑:
|
||||
1. 看门狗0从系统发送下行包时,触发工作;
|
||||
2. 系统上行时,停止看门狗工作并复位看门狗计数器;若发生超时,报超时状态,复位继续工作,此时有上行包,不予响应;
|
||||
3. 看门狗不使能,则对应的看门狗停止工作,也不会报相关的状态位与中断;
|
||||
4. 写对应的看门狗状态寄存器,对应看门狗被复位;需要重新触发才能工作。
|
||||
|
||||
|
||||
SM0/2/4/6与SM1/3/5/7超时逻辑:
|
||||
1. 看门狗从读写第一个字节被触发计时工作;第二次读写第一个字节,不影响看门狗工作;
|
||||
2. 读写最后一个字节,停止看门狗工作并复位看门狗计数器;若发生超时,报超时状态,复位继续工作,此时系统读到最后一个字节,不予响应。
|
||||
3. 看门狗不使能,则对应的看门狗停止工作,也不会报相关的状态位与中断;
|
||||
4. 写对应的看门狗状态寄存器,对应看门狗被复位;需要重新触发才能工作。
|
||||
|
||||
看门狗17超时逻辑:
|
||||
1. 看门狗17从系统发送第一个下行包时,触发工作;
|
||||
2. 系统发送第二个下行包时,停止看门狗工作并复位看门狗计数器;若发生超时,报超时状态,复位继续工作;
|
||||
3. 看门狗不使能,则对应的看门狗停止工作,也不会报相关的状态位与中断;
|
||||
4. 写对应的看门狗状态寄存器,对应看门狗被复位;需要重新触发才能工作。
|
||||
|
||||
|
||||
复位继续工作,指看门狗需要重新被触发开始计数直至超时或者复位。写看门狗状态,无论超时没超时,对应bit为1,则对应看门狗被复位。
|
||||
'''
|
||||
|
||||
def watchdog_test_sm_wr_timeout(tc_id, wd_id):
|
||||
genPkt = GenPkt()
|
||||
|
||||
@@ -64,12 +90,15 @@ def watchdog_test_sm_wr_timeout(tc_id, wd_id):
|
||||
+genIFRwDataCode(2, 0x074, False, 0x04)
|
||||
+genIFRwDataCode(3, 0x074, False, 0x04)
|
||||
+genIFRwDataCode(4, 0x074, False, 0x04)
|
||||
+genMessageCode("--延时后检查看门狗寄存器")
|
||||
+"#700000\n"
|
||||
+genIFRwDataCode(1, 0x400, False, 0x04)
|
||||
+genIFRwDataCode(1, 0x400, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(1, 0x400, False, 0x04)
|
||||
+genMessageCode("--复位数据缓冲区")
|
||||
+genIFRwDataCode(1, 0x300 + slave_sm_id * 4, True, 1, [0, ])
|
||||
+"#800000\n"
|
||||
+genMessageCode("--延时后检查看门狗寄存器")
|
||||
+"#1200000\n"
|
||||
+genIFRwDataCode(1, 0x400, False, 0x04)
|
||||
+genTcEndFrameCode(gen_file_def))
|
||||
|
||||
@@ -121,7 +150,7 @@ def watchdog_test_sm_rd_timeout(tc_id, wd_id):
|
||||
data[1] = 0x00
|
||||
genPkt.addSubPkt(0x0, 0, 0x302 + slave_sm_id * 4, 0xe, 2, data)
|
||||
|
||||
data = [0,] * 0x10
|
||||
data = list(range(0x10))
|
||||
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
sm_addr = slave_sm_id * 0x1000 + 0x800
|
||||
@@ -139,12 +168,19 @@ def watchdog_test_sm_rd_timeout(tc_id, wd_id):
|
||||
+genIFRwDataCode(2, 0x074, False, 0x04)
|
||||
+genIFRwDataCode(3, 0x074, False, 0x04)
|
||||
+genIFRwDataCode(4, 0x074, False, 0x04)
|
||||
+genIFRwDataCode(1, slave_sm_id * 0x1000 + 0x800, False, 4)
|
||||
+"#500000\n"
|
||||
+genMessageCode("--读缓冲区")
|
||||
+genIFRwDataCode(1, 0x800 + slave_sm_id * 0x1000, False, 8)
|
||||
|
||||
+genMessageCode("--延时后检查看门狗寄存器")
|
||||
+"#1000000\n"
|
||||
+genIFRwDataCode(1, 0x400, False, 0x04)
|
||||
+genIFRwDataCode(1, 0x400, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||
+genIFRwDataCode(1, 0x400, False, 0x04)
|
||||
+genMessageCode("--复位数据缓冲区")
|
||||
+genIFRwDataCode(1, 0x300 + slave_sm_id * 4, True, 1, [0, ])
|
||||
+genMessageCode("--延时后检查看门狗寄存器")
|
||||
+"#500000\n"
|
||||
+genIFRwDataCode(1, 0x400, False, 0x04)
|
||||
+genTcEndFrameCode(gen_file_def))
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
|
||||
Reference in New Issue
Block a user