5import isystem.connect
as ic
10def dump_topology_CoreIndexes(strIndent,CoreIndexes):
11 print(strIndent,
'CoreIndexes:', end=
'')
12 for coreIndex
in CoreIndexes:
13 print(strIndent, coreIndex, end=
',')
17def dump_topology_CoreBinding(strIndent, sessionTopology_CoreBindings):
18 for sessionTopology_CoreBinding
in sessionTopology_CoreBindings:
19 print(strIndent,
'Name:', sessionTopology_CoreBinding.name())
20 dump_topology_CoreIndexes(strIndent +
' ', sessionTopology_CoreBinding.core_indexes())
22def dump_topology(sessionTopology):
25 for sessionTopology_SoC
in sessionTopology.SoCs():
26 print(strIndent1 +
'Name:' + sessionTopology_SoC.name())
27 print(strIndent1 +
'Cores')
28 strIndent2 = strIndent1 +
' '
29 for sessionTopology_Core
in sessionTopology_SoC.cores():
30 print(strIndent2,
'Name:', sessionTopology_Core.name(),
' Type:', sessionTopology_Core.core_type())
31 print(strIndent1 +
'SMPs')
32 dump_topology_CoreBinding(strIndent2, sessionTopology_SoC.SMPs())
35 for sessionTopology_Process
in sessionTopology.processes():
36 print(strIndent1 +
'URL:' + sessionTopology_Process.URL())
39def dump_status(sessionStatus):
42 for sSoC
in sessionStatus.SoCs():
43 print(strIndent1 +
'Status:', sSoC.status_string())
44 print(strIndent1 +
'Cores')
45 strIndent2 = strIndent1 +
' '
46 for sCore
in sSoC.cores():
47 print(strIndent2 +
'Status:', sCore.status_string(),
' PC:', hex(sCore.PC()))
50def test_debug(sessionCtrl, SoCCtrl, Binding):
52 cmgr = sessionCtrl.instance_attach(Binding.name())
53 dbg = ic.CDebugFacade(cmgr)
54 strStatus = dbg.getCPUStatus().toString()
55 for dwCoreIndex
in Binding.core_indexes():
56 dwFocusedCore = SoCCtrl.SMP_get_focused_core(dwCoreIndex)
57 SoCCtrl.SMP_set_focused_core(dwCoreIndex)
58 dwFocusedCore = SoCCtrl.SMP_get_focused_core(Binding.core_indexes()[0])
62cmgr0 = ic.ConnectionMgr()
63cmgr0.connect(ic.CConnectionConfig().instanceId(winidea_id))
67sessionCtrl = ic.CSessionCtrl(cmgr0)
69sessionTopology = sessionCtrl.get_topology()
70dump_topology(sessionTopology)
74sessionTopology_SoC_core_SMP = sessionCtrl.get_core_SMP_bindings(dwSoCIndex)
75print(
'core and SMP for SoC[0]')
76dump_topology_CoreBinding(
' ', sessionTopology_SoC_core_SMP)
79SoCCtrl = sessionCtrl.get_SoC(
'')
81for Binding
in sessionTopology_SoC_core_SMP:
82 test_debug(sessionCtrl, SoCCtrl, Binding)
85sessionStatus = sessionCtrl.get_status()
86dump_status(sessionStatus)