Memory Access on-the-fly
During software application development and debug process, it sometimes becomes necessary to view, examine and modify variables and memory values inside the target system memory without stopping the execution of the application code. In most cases, the host application or the software debugger has to stop the target processor to access the target memory using the JTAG interface. This changes the performance measurement from the "real world" numbers since the target processor has to be stopped and no longer executes the target application in real time. Also in some mission-critical applications where the target processor should not or can not be stopped due to controlling time sensitive operations, such as controlling moving objects, the user can not view these data during the test process or has to go to a great length to simulate such activities.
DebugJet offers multiple solutions for such situations. If the target CPU supports JTAG port memory access without stopping code execution, the user can instruct DebugJet to use it in a specific memory location or memory region. Since accessing memory contents using the JTAG port and the processor memory-bus uses some of the memory-bus bandwidth and reduces processor performance, the user can restrict such accesses to a specific memory region. If there is no penalty for such operation, DebugJet will always use this feature when needed without user instructions unless blocked by the user.
If the target CPU does not support memory access from the JTAG interface while it is executing code, a PROMJet with dual ported memory can be used with DebugJet to allow this function. Since PROMJet Flash emulator is fully integrated into DebugJet JTAG debug interface, this allows accessing target processor memory without stopping the CPU since the JTAG port will not be used for such accesses. DebugJet will automatically redirect memory access operations through PROMJet connection and facilitate these operations without stopping the target CPU.
If a flash memory chip is used on the target board where the user does not have the programming algorithm available to program it, DebugJet can use PROMJet to emulate the Flash chip on the target board. This is done for all Flash types such as SPI, LPC and parallel Flash devices. The user has to simply identify the flash size and address location in DebugJet setup script. DebugJet will use PROMJet download connection to write the Flash memory and setup PROMJet Flash interface without the use of processor JTAG port and without any modification to the target software code. This can be helpful when the user is using a non-parallel Flash memory, such as SPI, that is addressed via an auxiliary chip.
Also in situation where PROMJet download speed is higher then JTAG download speeds, DebugJet can be easily setup to use PROMJet for application downloads instead of JTAG. The user can set specific memory regions, such as Flash memory space, within processor address space where this feature would be used.
The diagram above describes the basic setup for such operation. If the target CPU does not allow memory access without stopping the code execution (on-the-fly), DebugJet will use the PROMJet link to access target memory. The user has to locate the data to be viewed live inside PROMJet memory space using a linker script file. If the target CPU supports this functionality, DebugJet uses the JTAG port to view on-the-fly memory contents.
Memory on-the-fly access feature is fully integrated within the Xpresso debugger to allow variable and memory live view without any target code modification or processor involvement.
Fully supports PROMJet on-the-fly accessibility to view live data.
Host libraries are available to directly integrate with customer applications to allow this functionality.
Supports target processor abilities to access memory on-the-fly if permitted.
DebugJet On-the-Fly Memory Access software is available for free download from the support section.