From bb28a005ed7fc93596ce6ca6e03d1e5b2b6f8642 Mon Sep 17 00:00:00 2001 From: bacon Date: Wed, 6 Aug 2025 17:46:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BB=A3=E7=A0=81=E6=B5=8B?= =?UTF-8?q?=E8=AF=95workcnt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tb/shinTest/gen_pkt.py | 19 ++++++------ tb/shinTest/testcase/base.py | 57 ++++++++++++++++++++++++++++++++++-- 2 files changed, 65 insertions(+), 11 deletions(-) diff --git a/tb/shinTest/gen_pkt.py b/tb/shinTest/gen_pkt.py index 2bcc905..6352af6 100755 --- a/tb/shinTest/gen_pkt.py +++ b/tb/shinTest/gen_pkt.py @@ -18,7 +18,7 @@ if __name__ == '__main__': #add_tc_2_runlist(base.tc4()) #add_tc_2_runlist(base.tc5()) #add_tc_2_runlist(base.tc6()) - #add_tc_2_runlist(base.tc7()) + add_tc_2_runlist(base.tc7()) #add_tc_2_runlist(base.tc8()) #add_tc_2_runlist(base.tc9()) #add_tc_2_runlist(base.tc10()) @@ -26,14 +26,15 @@ if __name__ == '__main__': #add_tc_2_runlist(base.tc12()) #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()) + #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()) + add_tc_2_runlist(base.tc23()) diff --git a/tb/shinTest/testcase/base.py b/tb/shinTest/testcase/base.py index 5c541e2..8c55515 100644 --- a/tb/shinTest/testcase/base.py +++ b/tb/shinTest/testcase/base.py @@ -1135,7 +1135,8 @@ def tc_wr_sm(tc_id, wr_sm_idx): gen_file_def = f"base_tc{tc_id}_wr_sm{wr_sm_idx}" sm_idx = 0 tc_des = f"读写SM{wr_sm_idx}缓冲区超过缓冲区的元素上限,期望结果,超出缓冲区的数据不被接收,工作计数不加。\\n" \ - + "检查是否真的写入,子报文的状态。" + + "检查是否真的写入,子报文的状态。目前即使SM0、2、4、6满了,处于溢出状态,硬件难以判断是否能提交数据。\\n"\ + + "目前只要地址、长度正确,即使无法写入,工作计数也会加1。工作计数不能反应报文与SMx的互动关系。" #------------------------------------------------------------------------- #>>>>>>普通数据包3 @@ -1221,7 +1222,8 @@ def tc_rd_sm(tc_id, rd_sm_idx): gen_file_def = f"base_tc{tc_id}_rd_sm{rd_sm_idx}" sm_idx = 0 tc_des = f"读写SM{rd_sm_idx}缓冲区超过缓冲区的元素上限,期望结果,超出缓冲区的数据不被接收,工作计数不加。\\n" \ - + "检查是否真的写入,子报文的状态。" + + "检查是否真的写入,子报文的状态。目前即使SM1、3、5、7空了,没有数据,硬件难以判断是否存在数据。\\n"\ + + "目前只要地址、长度正确,即使无法读取,工作计数也会加1。工作计数不能反应报文与SMx的互动关系。" #------------------------------------------------------------------------- #>>>>>>普通数据包3 @@ -1336,3 +1338,54 @@ def tc21(): def tc22(): return tc_rd_sm(22, 7) +def tc23(): + genPkt = GenPkt() + + gen_file_def = "base_tc23" + sm_idx = 0 + tc_des = "使用广播读写命令,读取SM0的长度寄存器;测试工作计数。\\n" + + #------------------------------------------------------------------------- + #>>>>>>普通数据包2 + genPkt.clean() + genPkt.setPktType(0) + + genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des) + ) + + #subPkt参数:索引、索引类型、地址、命令、长度、数据 + genPkt.addSubPkt(0, 0, 0x0302, 0xf, 2, [32, 0]) + + sm_idx = 0 + + 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 \ No newline at end of file