Running EVE scripts
In this topic:
•Shortcut for running EVE scripts
Embedded Virtual Engine (EVE) is our approach to customization of debug actions in winIDEA.
EVE scripts use cases differ from Python scripts which are used for the high-level control of winIDEA and configuration setup. EVE is a small execution engine that was designed to be placed at any level of winIDEA software and execute short programs of calls to available (i.e. registered) callbacks at a certain level.
Refer to EVE Script User's Guide for more information on how to build and run EVE Scripts. |
EVE scripts are written in C (C++). Following is a Hello World example:
#define SCRIPT_FOR_CALL_PT_DEFAULT |
There are several points in time when a custom EVE script is (or can be) called. These are referred to as call points. Most of them are predefined e.g. start of debug session, start of trace etc. This note focuses on the dry EVE script execution (CALL_PT_DEFAULT). It is achieved through isystem.connect service call.
Available callbacks in EVE script depend on which execution host the EVE script is run. Currently an EVE script can only be run in the SoC object context (EXT_PT_SoCWI) where SoC related callbacks can be made, e.g. debug signal control, JTAG scan, memory access, core debug register access etc. Execution host is determined by isystem.connect service call URL and is meant for future extensions.
Dedicated winIDEA SDK service also handles the EVE script compilation and can be limited to it. For details on various calls of said service see the following Python script from winIDEA installation dir subfolder EVE/Tools named runEveScript.py.
Python script can be called with an EVE script path as an only parameter to run an EVE script example on SoC execution host:
python runEveScript.py EVEHelloWorld.cpp |
Running the script produces the following output in the Progress window:
Custom winIDEA tool can be configured to run an EVE script active in the Editor:
Add a script via Tools | Customize | Tools | Add | Browse. |
Browse to winIDEA installation directory subfolder eve/tools and select runEveScript.py. Optionally you can enter $(EXEDIR)eve\tools\runEveScript.py to the Command field.
Open an EVE script (.cpp file) in the Editor. |
Select Tools | runEveScript. |
The command will run the file that was focused last in the Editor.
Look for the script output in the Progress window.