winIDEA SDK
|
This class provides debug session function.
#include <CSessionCtrl.h>
Inherits isys::CSessionBaseCtrl.
Public Member Functions | |
void | attach () |
Attaches to the specified SoC, call is valid only within session. More... | |
void | detach () |
Detaches from to the specified SoC, call is valid only within session. More... | |
void | SMP_set_focused_core (uint32_t dwCoreIndex) |
Sets focused core in an SMP process. More... | |
uint32_t | SMP_get_focused_core (uint32_t dwCoreIndex) |
Gets focused core index in an SMP process. More... | |
void | bus_fill (uint8_t nBusIndex, uint64_t nAddress, uint64_t nNumMAUs, const std::vector< uint8_t > &rvPattern) |
Fills memory with the specified pattern. More... | |
void | bus_write (uint8_t nBusIndex, uint64_t nAddress, const std::vector< uint8_t > &rvData, std::vector< uint8_t > *pvAccess=nullptr) |
Writes memory . More... | |
std::vector< uint8_t > | bus_read (uint8_t nBusIndex, uint64_t nAddress, uint64_t nNumMAUs, std::vector< uint8_t > *pvAccess=nullptr) |
Reads memory. More... | |
NAccessBatch::EResult | bus_access_batch (uint8_t nBusIndex, CAccessBatch &rAccessBatch) |
performs a batch memory access More... | |
void isys::CSoCCtrl::attach | ( | ) |
Attaches to the specified SoC, call is valid only within session.
TException | if operation fails. |
Python example: test_soc_ctrl_attach.py
>>> conn_mgr = ic.ConnectionMgr() >>> conn_mgr.connect() >>> sess_ctrl = ic.CSessionCtrl(conn_mgr) >>> sess_ctrl.begin_reset() >>> soc = sess_ctrl.get_SoC('') >>> soc.attach()
NAccessBatch::EResult isys::CSoCCtrl::bus_access_batch | ( | uint8_t | nBusIndex, |
CAccessBatch & | rAccessBatch | ||
) |
performs a batch memory access
nBusIndex | index of the bus to be used |
rAccessBatch | access batch structure |
TException | if operation fails. |
Python example: test_soc_ctrl_bus_access_batch.py
void isys::CSoCCtrl::bus_fill | ( | uint8_t | nBusIndex, |
uint64_t | nAddress, | ||
uint64_t | nNumMAUs, | ||
const std::vector< uint8_t > & | rvPattern | ||
) |
Fills memory with the specified pattern.
nBusIndex | index of the bus to be used |
nAddress | the address to write to |
nNumMAUs | number of addresses to write |
rvPattern | the pattern to use for fill. If it is shorter than nNumMAUs , the pattern is repeated. |
TException | if operation fails. |
Python example: test_soc_ctrl_bus_fill.py
conn_mgr = ic.ConnectionMgr() conn_mgr.connect() vect = ic.VectorBYTE([1, 2, 3, 4]) sess_ctrl = ic.CSessionCtrl(conn_mgr) sess_ctrl.begin_reset() soc = sess_ctrl.get_SoC('') soc.bus_fill(0, 0x20000000, 4, vect) vect_read = soc.bus_read(0, 0x20000000, 4) [e for e in vect_read]
[1, 2, 3, 4]
std::vector< uint8_t > isys::CSoCCtrl::bus_read | ( | uint8_t | nBusIndex, |
uint64_t | nAddress, | ||
uint64_t | nNumMAUs, | ||
std::vector< uint8_t > * | pvAccess = nullptr |
||
) |
Reads memory.
nBusIndex | index of the bus to be used |
nAddress | the address to read from |
nNumMAUs | number of MAUs |
pvAccess | optional parameter - access info is returned for every accessed location |
TException | if operation fails. |
Python example: test_soc_ctrl_bus_read.py
conn_mgr = ic.ConnectionMgr() conn_mgr.connect() sess_ctrl = ic.CSessionCtrl(conn_mgr) sess_ctrl.begin_reset() soc = sess_ctrl.get_SoC('') vect = ic.VectorBYTE([8, 7, 6, 5]) soc.bus_write(0, 0x20000000, vect) vect_read = soc.bus_read(0, 0x20000000, 4) [e for e in vect_read]
[8, 7, 6, 5]
void isys::CSoCCtrl::bus_write | ( | uint8_t | nBusIndex, |
uint64_t | nAddress, | ||
const std::vector< uint8_t > & | rvData, | ||
std::vector< uint8_t > * | pvAccess = nullptr |
||
) |
Writes memory .
nBusIndex | index of the bus to be used |
nAddress | the address to write to |
rvData | the data to write |
pvAccess | optional parameter - access info is returned for every accessed location |
TException | if operation fails. |
Python example: test_soc_ctrl_bus_write.py
conn_mgr = ic.ConnectionMgr() conn_mgr.connect() sess_ctrl = ic.CSessionCtrl(conn_mgr) sess_ctrl.begin_reset() soc = sess_ctrl.get_SoC('') vect = ic.VectorBYTE([8, 7, 6, 5]) soc.bus_write(0, 0x20000000, vect) vect_read = soc.bus_read(0, 0x20000000, 4) [e for e in vect_read]
[8, 7, 6, 5]
void isys::CSoCCtrl::detach | ( | ) |
Detaches from to the specified SoC, call is valid only within session.
TException | if operation fails. |
Python example: test_soc_ctrl_detach.py
>>> conn_mgr = ic.ConnectionMgr() >>> conn_mgr.connect() >>> sess_ctrl = ic.CSessionCtrl(conn_mgr) >>> sess_ctrl.begin_reset() >>> soc = sess_ctrl.get_SoC('') >>> soc.attach() >>> soc.detach()
uint32_t isys::CSoCCtrl::SMP_get_focused_core | ( | uint32_t | dwCoreIndex | ) |
Gets focused core index in an SMP process.
dwCoreIndex | identifies the SMP binding |
TException | if operation fails |
Python example: test_soc_ctrl_smp_get_focused_core.py
conn_mgr = ic.ConnectionMgr() conn_mgr.connect() sess_ctrl = ic.CSessionCtrl(conn_mgr) sess_ctrl.begin_reset() soc = sess_ctrl.get_SoC('') soc.SMP_get_focused_core(0)
0
void isys::CSoCCtrl::SMP_set_focused_core | ( | uint32_t | dwCoreIndex | ) |
Sets focused core in an SMP process.
dwCoreIndex | index of the core to focus |
TException | if operation fails or dwCoreIndex is not in the current process's SMP binding. |
Python example: test_soc_ctrl_smp_set_focused_core.py
conn_mgr = ic.ConnectionMgr() conn_mgr.connect() sess_ctrl = ic.CSessionCtrl(conn_mgr) sess_ctrl.begin_reset() soc = sess_ctrl.get_SoC('') focused_core = soc.SMP_get_focused_core(0) focused_core
0
soc.SMP_set_focused_core(focused_core)