1
2
3
4
5"""
6This script demonstrates reading of GPRs using readRegister() and
7SFRs with bitfields using method evaluate().
8It reads from a register specified in command line and prints its value.
9"""
10
11import isystem.connect as ic
12import sys
13
14
15
16def unsigned64(x: int) -> int:
17 """
18 This function performs a kind of cast from signed 64-bint int to unsigned one.
19 """
20 return x & 0xffffffffffffffff
21
22if __name__ == '__main__':
23 winidea_id = ''
24
25 cmgr = ic.ConnectionMgr()
26 cmgr.connect(ic.CConnectionConfig().instanceId(winidea_id))
27
28 debugCtrl = ic.CDebugFacade(cmgr)
29
30 if len(sys.argv) != 2:
31 print("Usage : ", sys.argv[0], "<general purpose register name>")
32 print("Example: ", sys.argv[0], "R0")
33 exit(-1)
34
35 registerName = sys.argv[1]
36 value = debugCtrl.readRegister(ic.IConnectDebug.fRealTime, registerName)
37 print(registerName, '=', hex(unsigned64(value.getLong())))
38
39
40 registerName = '@GPIOA\\ODR'
41 value = debugCtrl.evaluate(ic.IConnectDebug.fRealTime, registerName)
42 print(registerName, '=', hex(unsigned64(value.getLong())))
43
44
45 registerName = '@GPIOA\\LCKR\\LCKK'
46 value = debugCtrl.evaluate(ic.IConnectDebug.fRealTime, registerName)
47 print(registerName, '=', hex(unsigned64(value.getLong())))