From 777760fc60d48ec36ed37f47ae08edfe3432598a Mon Sep 17 00:00:00 2001 From: bacon Date: Wed, 6 Aug 2025 16:52:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B5=8B=E8=AF=95=E7=94=A8?= =?UTF-8?q?=E4=BE=8B,=E6=B5=8B=E8=AF=95=E8=B6=85=E5=87=BASM=E4=B8=8A?= =?UTF-8?q?=E9=99=90=E5=90=8E=E7=9A=84=E8=AF=BB=E5=86=99=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tb/shinTest/gen_pkt.py | 7 ++ tb/shinTest/testcase/base.py | 187 +++++++++++++++++++++++++++++------ 2 files changed, 162 insertions(+), 32 deletions(-) diff --git a/tb/shinTest/gen_pkt.py b/tb/shinTest/gen_pkt.py index 9b5e989..2bcc905 100755 --- a/tb/shinTest/gen_pkt.py +++ b/tb/shinTest/gen_pkt.py @@ -27,6 +27,13 @@ if __name__ == '__main__': #add_tc_2_runlist(base.tc13()) #add_tc_2_runlist(base.tc14()) add_tc_2_runlist(base.tc15()) + add_tc_2_runlist(base.tc16()) + add_tc_2_runlist(base.tc17()) + add_tc_2_runlist(base.tc18()) + add_tc_2_runlist(base.tc19()) + add_tc_2_runlist(base.tc20()) + add_tc_2_runlist(base.tc21()) + add_tc_2_runlist(base.tc22()) diff --git a/tb/shinTest/testcase/base.py b/tb/shinTest/testcase/base.py index bd5a07e..5c541e2 100644 --- a/tb/shinTest/testcase/base.py +++ b/tb/shinTest/testcase/base.py @@ -1129,12 +1129,12 @@ def tc14(): return gen_file_def -def tc15(): +def tc_wr_sm(tc_id, wr_sm_idx): genPkt = GenPkt() - gen_file_def = "base_tc15" + gen_file_def = f"base_tc{tc_id}_wr_sm{wr_sm_idx}" sm_idx = 0 - tc_des = "读写SM缓冲区超过缓冲区的元素上限,期望结果,超出缓冲区的数据不被接收,工作计数不加。\\n" \ + tc_des = f"读写SM{wr_sm_idx}缓冲区超过缓冲区的元素上限,期望结果,超出缓冲区的数据不被接收,工作计数不加。\\n" \ + "检查是否真的写入,子报文的状态。" #------------------------------------------------------------------------- @@ -1143,15 +1143,15 @@ def tc15(): genPkt.setPktType(0) #subPkt参数:索引、索引类型、地址、命令、长度、数据 - genPkt.addSubPkt(0, 0, 0x0302, 0xe, 2, [32, 0]) - genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(0, 32))) - genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(32, 64))) - genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(64, 96))) - genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(96, 128))) - genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(128, 160))) - genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(160, 192))) - genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(192, 224))) - genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(224, 256))) + genPkt.addSubPkt(0, 0, 0x0302 + wr_sm_idx * 0x4, 0xe, 2, [32, 0]) + genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(0, 32))) + genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(32, 64))) + genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(64, 96))) + genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(96, 128))) + genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(128, 160))) + genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(160, 192))) + genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(192, 224))) + genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(224, 256))) sm_idx = 0 @@ -1183,33 +1183,156 @@ def tc15(): +genIFRwDataCode(3, 0x74, False, 4) +genIFRwDataCode(4, 0x74, False, 4) - +genSlvSMReadData(1, 0, 32) - +genSlvSMReadData(2, 0, 32) - +genSlvSMReadData(3, 0, 32) - +genSlvSMReadData(4, 0, 32) + +genSlvSMReadData(1, wr_sm_idx, 32) + +genSlvSMReadData(2, wr_sm_idx, 32) + +genSlvSMReadData(3, wr_sm_idx, 32) + +genSlvSMReadData(4, wr_sm_idx, 32) - +genSlvSMReadData(1, 0, 32) - +genSlvSMReadData(2, 0, 32) - +genSlvSMReadData(3, 0, 32) - +genSlvSMReadData(4, 0, 32) + +genSlvSMReadData(1, wr_sm_idx, 32) + +genSlvSMReadData(2, wr_sm_idx, 32) + +genSlvSMReadData(3, wr_sm_idx, 32) + +genSlvSMReadData(4, wr_sm_idx, 32) - +genSlvSMReadData(1, 0, 32) - +genSlvSMReadData(2, 0, 32) - +genSlvSMReadData(3, 0, 32) - +genSlvSMReadData(4, 0, 32) + +genSlvSMReadData(1, wr_sm_idx, 32) + +genSlvSMReadData(2, wr_sm_idx, 32) + +genSlvSMReadData(3, wr_sm_idx, 32) + +genSlvSMReadData(4, wr_sm_idx, 32) - +genSlvSMReadData(1, 0, 32) - +genSlvSMReadData(2, 0, 32) - +genSlvSMReadData(3, 0, 32) - +genSlvSMReadData(4, 0, 32) + +genSlvSMReadData(1, wr_sm_idx, 32) + +genSlvSMReadData(2, wr_sm_idx, 32) + +genSlvSMReadData(3, wr_sm_idx, 32) + +genSlvSMReadData(4, wr_sm_idx, 32) - +genSlvSMReadData(1, 0, 32) - +genSlvSMReadData(2, 0, 32) - +genSlvSMReadData(3, 0, 32) - +genSlvSMReadData(4, 0, 32) + +genSlvSMReadData(1, wr_sm_idx, 32) + +genSlvSMReadData(2, wr_sm_idx, 32) + +genSlvSMReadData(3, wr_sm_idx, 32) + +genSlvSMReadData(4, wr_sm_idx, 32) +genTcEndFrameCode(gen_file_def)) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) return gen_file_def + + +def tc_rd_sm(tc_id, rd_sm_idx): + genPkt = GenPkt() + + gen_file_def = f"base_tc{tc_id}_rd_sm{rd_sm_idx}" + sm_idx = 0 + tc_des = f"读写SM{rd_sm_idx}缓冲区超过缓冲区的元素上限,期望结果,超出缓冲区的数据不被接收,工作计数不加。\\n" \ + + "检查是否真的写入,子报文的状态。" + + #------------------------------------------------------------------------- + #>>>>>>普通数据包3 + genPkt.clean() + genPkt.setPktType(0) + + #subPkt参数:索引、索引类型、地址、命令、长度、数据 + #genPkt.addSubPkt(0, 0, 0x0302, 0xd, 2, [32, 0]) + genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32) + genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32) + genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32) + genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32) + genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32) + genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32) + genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32) + genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32) + sm_idx = 0 + + genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des) + +genSlvSMWriteData(1, rd_sm_idx, 32, list(range(0, 32))) + +genSlvSMWriteData(1, rd_sm_idx, 32, list(range(32, 64))) + +genSlvSMWriteData(1, rd_sm_idx, 32, list(range(64, 96))) + +genSlvSMWriteData(1, rd_sm_idx, 32, list(range(96, 128))) + +genSlvSMWriteData(1, rd_sm_idx, 32, list(range(128, 160))) + +genSlvSMWriteData(1, rd_sm_idx, 32, list(range(160, 192))) + +genSlvSMWriteData(1, rd_sm_idx, 32, list(range(192, 224))) + +genSlvSMWriteData(1, rd_sm_idx, 32, list(range(224, 256))) + + +genSlvSMWriteData(2, rd_sm_idx, 32, list(range(0, 32))) + +genSlvSMWriteData(2, rd_sm_idx, 32, list(range(32, 64))) + +genSlvSMWriteData(2, rd_sm_idx, 32, list(range(64, 96))) + +genSlvSMWriteData(2, rd_sm_idx, 32, list(range(96, 128))) + +genSlvSMWriteData(2, rd_sm_idx, 32, list(range(128, 160))) + +genSlvSMWriteData(2, rd_sm_idx, 32, list(range(160, 192))) + +genSlvSMWriteData(2, rd_sm_idx, 32, list(range(192, 224))) + +genSlvSMWriteData(2, rd_sm_idx, 32, list(range(224, 256))) + + +genSlvSMWriteData(3, rd_sm_idx, 32, list(range(0, 32))) + +genSlvSMWriteData(3, rd_sm_idx, 32, list(range(32, 64))) + +genSlvSMWriteData(3, rd_sm_idx, 32, list(range(64, 96))) + +genSlvSMWriteData(3, rd_sm_idx, 32, list(range(96, 128))) + +genSlvSMWriteData(3, rd_sm_idx, 32, list(range(128, 160))) + +genSlvSMWriteData(3, rd_sm_idx, 32, list(range(160, 192))) + +genSlvSMWriteData(3, rd_sm_idx, 32, list(range(192, 224))) + +genSlvSMWriteData(3, rd_sm_idx, 32, list(range(224, 256))) + + + +genSlvSMWriteData(4, rd_sm_idx, 32, list(range(0, 32))) + +genSlvSMWriteData(4, rd_sm_idx, 32, list(range(32, 64))) + +genSlvSMWriteData(4, rd_sm_idx, 32, list(range(64, 96))) + +genSlvSMWriteData(4, rd_sm_idx, 32, list(range(96, 128))) + +genSlvSMWriteData(4, rd_sm_idx, 32, list(range(128, 160))) + +genSlvSMWriteData(4, rd_sm_idx, 32, list(range(160, 192))) + +genSlvSMWriteData(4, rd_sm_idx, 32, list(range(192, 224))) + +genSlvSMWriteData(4, rd_sm_idx, 32, list(range(224, 256))) + ) + + 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) + + +genTcEndFrameCode(gen_file_def)) + + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) + + return gen_file_def + + +def tc15(): + return tc_wr_sm(15, 0) + +def tc16(): + return tc_rd_sm(16, 1) + +def tc17(): + return tc_wr_sm(17, 2) + +def tc18(): + return tc_rd_sm(18, 3) + +def tc19(): + return tc_wr_sm(19, 4) + +def tc20(): + return tc_rd_sm(20, 5) + +def tc21(): + return tc_wr_sm(21, 6) + +def tc22(): + return tc_rd_sm(22, 7) +