winIDEA SDK
test_get_cpustatus.py
1# This script is licensed under BSD License, see file LICENSE.txt.
2# (c) TASKING Germany GmbH, 2023
3#
4# This Python example demonstrates how to get the current CPU status of a
5# connected device. It runs and stops the device, and uses the
6# getCPUStatus() method to get the current CPU status and prints
7# out the status information. It also prints out the current target status.
8
9import isystem.connect as ic
10
11
12winidea_id = ''
13
14
15def test_getCPUStatus():
16 connMgr = ic.ConnectionMgr()
17 connMgr.connect(ic.CConnectionConfig().instanceId(winidea_id))
18
19 execCtrl = ic.CExecutionController(connMgr)
20
21 execCtrl.run()
22 execCtrl.stop()
23 cpuStatus = execCtrl.getCPUStatus(True)
24 print("Current CPU status:")
25 print(f"\tIs in 'STOP' state:", cpuStatus.isStopped())
26
27 print(f"\tStop reason:")
28 print(f"\t\tBy explicit action:", cpuStatus.isStopReasonExplicit())
29 print(f"\t\tBy BP:", cpuStatus.isStopReasonBP())
30 print(f"\t\tBy HW BP:", cpuStatus.isStopReasonHW())
31 print(f"\t\tBy `step` action:", cpuStatus.isStopReasonStep())
32
33 print(f"\tIn `ATTACH` state:", cpuStatus.isAttach())
34 print(f"\tIn `HALTED` state:", cpuStatus.isHalted())
35 print(f"\tIn `IDLE` state:", cpuStatus.isIdle())
36 print(f"\tIn `MUST_INIT` state:", cpuStatus.isMustInit())
37 print(f"\tIn `RESET` state:", cpuStatus.isReset())
38 print(f"\tIn `RUNNING` state:", cpuStatus.isRunning())
39 print(f"\tIn `WAITING` state:", cpuStatus.isWaiting())
40 print(f"\tExecution area:", cpuStatus.getExecutionArea())
41 print(f"\tExecution point address:", hex(cpuStatus.getExecutionPoint()))
42
43 smid = ic.SMSID()
44 cpuStatus.getMSID(smid)
45 print("\tCurrent application status:")
46 print("\t\tIs valid info:", smid.m_bValid)
47 print("\t\tIs in secure memory space:", smid.m_bSecure)
48 print("\t\tConsider VMID in identifying the app:", smid.m_bVMID)
49 print("\t\tConsider AppID in identifying the app:", smid.m_bAppID)
50
51 # alternatively, print status with `toString()` method
52
53
54if __name__ == "__main__":
55 test_getCPUStatus()