2025-08-02 15:59:42 +08:00
|
|
|
|
from pyutils import *
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def bringup():
|
|
|
|
|
|
gen_file_def = "sys_bringup"
|
|
|
|
|
|
sm_idx = 0
|
2025-08-04 00:42:41 +08:00
|
|
|
|
tc_des = "系统环境建立,包括:1.配置主从栈的角色;2.网络建立,嗅探、设置顺序地址、嗅探;3.配置中断。\\n" \
|
|
|
|
|
|
+ "\\n注意:网络建立第一次嗅探包发送主要是为了建立拓扑,每个从站都知道了自己的邻居状况;发送顺序地址,\\n"\
|
|
|
|
|
|
+ "则是让每个从站拥有合适的地址。第二次发送嗅探包非必要,主要是用于更新从站的邻居信息。"
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
|
|
|
|
|
genPkt = GenPkt()
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
|
2025-08-07 15:41:16 +08:00
|
|
|
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
|
|
|
|
|
+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])
|
|
|
|
|
|
)
|
2025-08-02 15:59:42 +08:00
|
|
|
|
|
|
|
|
|
|
main_dev = [0x01, ]
|
|
|
|
|
|
slave_dev =[0x02, ]
|
2025-08-03 00:26:46 +08:00
|
|
|
|
genPkt.addAfterExc(genMessageCode("--设置主站,协议栈工作在主站模式")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x0, True, 1, main_dev)
|
2025-08-02 15:59:42 +08:00
|
|
|
|
+"#5000\n"
|
2025-08-03 00:26:46 +08:00
|
|
|
|
+genMessageCode("--设置从站,协议栈工作在从站模式")
|
2025-08-02 15:59:42 +08:00
|
|
|
|
+genIFRwDataCode(1, 0x0, True, 1, slave_dev)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x0, True, 1, slave_dev)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x0, True, 1, slave_dev)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x0, True, 1, slave_dev)
|
2025-08-03 00:26:46 +08:00
|
|
|
|
+genMessageCode("--读取寄存器,检查相关的配置")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x0, False, 1)
|
2025-08-02 15:59:42 +08:00
|
|
|
|
+genIFRwDataCode(1, 0x0, False, 1)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x0, False, 1)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x0, False, 1)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x0, False, 1)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
2025-08-03 00:26:46 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(1)
|
|
|
|
|
|
gen_file_def_ap = gen_file_def+"_step01"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addBeforeExc(genMessageCode("--设置环境,进行第一次嗅探"))
|
|
|
|
|
|
|
|
|
|
|
|
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(1, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(2, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(3, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(4, 0xc0, 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 + "_step02"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
data = [0x3f, 0xff]
|
|
|
|
|
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xb, 2, data)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addAfterExc(genMessageCode("--设置顺序地址")
|
|
|
|
|
|
+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)
|
|
|
|
|
|
#+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
+genIFRwDataCode(1, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(2, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(3, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(4, 0xc0, False, 4)
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.clean()
|
|
|
|
|
|
genPkt.setPktType(1)
|
|
|
|
|
|
gen_file_def_ap = gen_file_def+"_step03"
|
|
|
|
|
|
sm_idx = 0
|
|
|
|
|
|
|
|
|
|
|
|
genPkt.addBeforeExc(genMessageCode("--设置环境,进行第二次嗅探"))
|
|
|
|
|
|
|
2025-08-04 10:49:48 +08:00
|
|
|
|
int_data=[0x00, 0x81]
|
2025-08-03 18:10:55 +08:00
|
|
|
|
clear_int = [0xff, 0xff, 0xff, 0xff]
|
2025-08-04 11:38:40 +08:00
|
|
|
|
main_int_en = [0x03, 0x00, 0x00, 0xf0]
|
|
|
|
|
|
slave_int_en= [0x00, 0x00, 0x00, 0xf0]
|
|
|
|
|
|
|
2025-08-03 00:26:46 +08:00
|
|
|
|
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)
|
2025-08-03 18:10:55 +08:00
|
|
|
|
|
2025-08-03 00:26:46 +08:00
|
|
|
|
+genMessageCode("--嗅探后检查链路状态寄存器")
|
|
|
|
|
|
+genIFRwDataCode(1, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(2, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(3, 0xc0, False, 4)
|
|
|
|
|
|
+genIFRwDataCode(4, 0xc0, False, 4)
|
2025-08-04 11:38:40 +08:00
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--使能中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x70, True, 4, main_int_en)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x70, True, 4, slave_int_en)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x70, True, 4, slave_int_en)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x70, True, 4, slave_int_en)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x70, True, 4, slave_int_en)
|
2025-08-03 18:10:55 +08:00
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--设置中断为脉冲模式")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x7c, True, 2, int_data)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x7c, True, 2, int_data)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x7c, True, 2, int_data)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x7c, True, 2, int_data)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x7c, True, 2, int_data)
|
|
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--清除中断")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x78, True, 4, clear_int)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x78, True, 4, clear_int)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x78, True, 4, clear_int)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x78, True, 4, clear_int)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x78, True, 4, clear_int)
|
|
|
|
|
|
|
|
|
|
|
|
+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, clear_int)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x78, True, 4, clear_int)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x78, True, 4, clear_int)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x78, True, 4, clear_int)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x78, True, 4, clear_int)
|
|
|
|
|
|
|
|
|
|
|
|
+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)
|
2025-08-05 17:28:16 +08:00
|
|
|
|
|
|
|
|
|
|
+genMessageCode("--读取看门狗")
|
|
|
|
|
|
+genIFRwDataCode(0, 0x400, False, 8)
|
|
|
|
|
|
+genIFRwDataCode(1, 0x400, False, 8)
|
|
|
|
|
|
+genIFRwDataCode(2, 0x400, False, 8)
|
|
|
|
|
|
+genIFRwDataCode(3, 0x400, False, 8)
|
|
|
|
|
|
+genIFRwDataCode(4, 0x400, False, 8)
|
2025-08-03 18:10:55 +08:00
|
|
|
|
|
2025-08-03 00:26:46 +08:00
|
|
|
|
+genTcEndFrameCode(gen_file_def)
|
|
|
|
|
|
)
|
|
|
|
|
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-08-02 15:59:42 +08:00
|
|
|
|
add_tc_2_runlist(gen_file_def)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def teardown():
|
|
|
|
|
|
#add_tc_2_runlist("")
|
|
|
|
|
|
pass
|