- Important information
- New features
- Known problems
- Program corrections
- User guide corrections
- Miscellaneous
- Release history
Important information
- Driver Specific ReleaseNotes
-
The trace decoder has been re-designed in version 9.60.1, which in some cases might lead to unexpected behavior. As a workaround, consider using EWARM version 9.50.2 if unexpected trace behavior occurs.
-
Linux drivers for SEGGER J-Link debug probes
The drivers and documentation for SEGGER J-Link debug probes are not automatically installed during the product installation in Linux. Download and install the J-Link Software and Documentation Pack for Linux from https://www.segger.com/downloads/jlink/ -
The available plugin files in arm\bin for use with the cspybat --plugin option have changed: armbat.dll, armLibSupport.dll, and armLibSupportEclipse.dll are replaced by armLibsupportUniversal.dll.
This will break any existing cspybat scripts. The error message from an existing cspybat script will be: Could not find the specified libsupport file: arm\bin\armbat.dll. Solutions:- Let the 9.50.1 IDE generate new cspybat files
- Manually replace --plugin="arm\bin\armbat.dll" with --plugin="arm\bin\libarmLibsupportUniversal.so" in existing scripts.
-
When connecting to Arm Virtual Hardware (AVH) with GDB, flashloading is not supported. Use Attach to Running target to debug an already uploaded firmware binary, or place the application in RAM.
-
On v8A, directly assigning values to 128-bit vector registers via a C-SPY macro expression (for example #V0=0x1234) is not possible.
The components can be written smaller overlaid registers, for example, like this:
#V0.D.D1=0x0
#V0.D.D0=0x0
#V0.B.B0=0x34
#V0.B.B1=0x12
For v8.1-M, the same applies to the 128-bit Q-registers. Writing 0x1234 to vector register Q0 can be done like this:
#Q0.D.D1=0x0
#Q0.D.D0=0x0
#Q0.B.B0=0x34
#Q0.B.B1=0x12
-
Trace is not available for 64-bit cores. 64-bit trace support will be added in a future release.
-
The multicore support requires an I-jet or J-Link debug probe, or the CMSIS-DAP interface.
-
The ARMv8-M Simulator does not fully support Secure and Non-secure mode.
-
New behavior in
assert()
(new in 7.10.1)
Theassert()
function will now launch a dialog box, letting the user choose Abort, Debug, or Ignore.
If the old behavior is wanted, add the following to your application source code:void __aeabi_assert(char const * msg, char const *file, int line) { printf( "%s:%d %s -- assertion failed\n", file, line, msg ); abort(); }
-
The C-SPY macro
__loadModule(filename, suppress)
has been renamed to__loadImage(path, offset, debugInfoOnly)
. -
The C-SPY macro
__sleep(microseconds)
has been replaced with__delay(milliseconds)
. Note the different time resolution. -
C-SPY in IAR Embedded Workbench for ARM comes with an improved mechanism and configuration scheme for the flash loader function. An existing project that employs a flash loader with a legacy configuration, will be automatically migrated to the new scheme with default settings. The default settings will in most cases be sufficient. Old settings are converted to a new configuration file (with the extension
.board
) and may be used if the default settings are not appropriate. Read more about the new mechanism and configuration scheme for flash loaders in the Flash Loader Guide.
New features
J-Link: command line debug capability for CI/CD activities and debugging using VS Code on Linux and Windows
The Segger J-Link debug probe has been added to support the C-SPY command line utility (cspybat) and the Runtime Analysis tool (C-RUN) on booth Linux and Windows.Cortex-M55 and Cortex-M85 ETM trace
The debugger trace decoder now supports full instruction trace on the latest Cortex-M Arm cores.SDM Debug Authentication
The C-SPY debugger now supports the Arm SDM (Secure Debug Manager) debug authentication method on I-jet and ST-LINK.
Known problems
-
[EWARM-12875] Connecting to an MSPM0 device in Standby mode using a TI XDS debug probe might fail with the message Execution failure in flash loader.
-
[EWARM-12797] In Symmetric multicore debugging (SMP), setting a Data Watchpoint and Trace (DWT) breakpoint (data breakpoint) only sets the breakpoint on Core 0, regardless of which core that is selected.
-
[EWARM-12610] ETB trace is not supported on cores that use the ETM v4.5 packet format.
-
[EWARM-12590] The debugger’s interpretation of DWARF call frame information version 1 is not consistent with the debug information produced by GCC. This makes the debugger miscalculate the address of stack variables.
Workaround: Build with another compiler which does not produce dwarf call frame information version 1, e.g., with IAR or llvm/clang.
-
[EWARM-12322] In the Function Profiler window, the Trace (calls) source is disabled—only the sources Trace (flat) and Sampling are available.
-
The compiler can generate incorrect debug information for a variable that is changed locally in an isolated part of the user application, if that part ends with an early return and if the variable is put in a different register in this part than in the rest of the application. The code snippet below can trigger the problem, so that the debug information will contain the wrong location for broken from line 14 and onward.
float g(void); void barrier(void); int f(int v2) { float broken = 0.0f; switch (v2) { case 0: broken = g(); barrier(); return 5; case 1: broken = g(); } if (broken > 0.0f) return 1; return 0; }
-
[EWARM-11795] When using Cortex-A with the C-SPY ST-LINK driver, None and IAR Breakpoint are the only valid settings for the Library low-level interface implementation option.
-
[EWARM-11794] Only hardware breakpoints are supported when using the C-SPY ST-LINK driver with a Cortex-A device. Overriding the default breakpoint type by setting it to Software in the Edit Breakpoint dialog box disables the breakpoint.
-
[EWARM-11701] When using the C-SPY ST-LINK driver with a Cortex-A device, it is not possible to single-step an instruction in the Disassembly window that branches to itself. Execution does not stop, but must be stopped manually.
-
[EWARM-10915] C-SPY expressions do not consider or set the Thumb status bit (T) when evaluating or assigning to function pointers.
-
Using the Attach to Running Target command with Graphical stack display enabled, causes a hard fault.
Use this workaround:
- Before using the Attach to Running Target command, uncheck Tools>Options>Stack>Enable graphical stack display and stack usage tracking.
-
[EWARM-10866] Some C++ expressions that use template name syntax do not work in the C-SPY Watch window, because the C-SPY macro language parser treats > < angle bracket characters as operators in expressions.
Workaround: In some cases, a templated type can be specified by enclosing the name in backquotes, approximately like this:
`Container<int>`::var
The backquote syntax exists mainly to support registers or labels with names that do not conform to C standards for identifiers. -
[EWARM-9247] Data breakpoints with Match data set are not available for Cortex-M33 on the J-Link debug driver.
-
[EWARM-7276] Semihosting (Terminal I/O) does not work correctly after flash download with the XDS100 C-SPY debugger driver. As a workaround, stop the debugger and choose Project>Debug without Downloading.
-
[EWARM-7275] Debugging ARM9, Cortex-A or Cortex-R cores using the C-SPY XDS100 debugger driver, the USR mode registers R8_USR to R14_USR do not always contain correct values. This makes the stack usage checking generate false warnings. To disable stack usage checking, choose Tools>Options and deselect all options in the Stack category.
-
Current limitations in the MTB (Micro Trace Buffer) implementation for I-jet
- The Trace Start/Stop/Filter breakpoints are not supported in MTB.
- The timestamps for MTB trace records come from a simple counter and have no relation to CPU/clock cycles. Any conversion between cycles and time for MTB trace data will be misleading. The Call Stack graph in the Timeline window, for example, should not be used to measure time intervals.
- The MTB trace data sequence might not present discontinuities correctly. Lines in the ETM Trace window (also used for MTB trace) might be marked as discontinuous (colored red), even though the trace sequence is contiguous. Conversely, trace data from a buffer that has overflowed will not always be marked as discontinuous. This is mostly a cosmetic problem, except for the Call Stack graph in the Timeline window, which only displays the latest continuous sequence of trace data.
- The ETM Trace window and related windows are used for all variants of full instruction trace, ETM, ETB, and MTB.
-
[EWARM-5724, EW26591] Source level debugging for functions (or assembly routines) placed at address zero is not supported. Instruction level stepping and breakpoints work, but source level stepping and breakpoints do not.
-
[EWARM-5694, EW26535] A file named JLinkARM.dll in C:\Windows\SysWOW64 or C:\Windows\system will give the error message armjlink2.dll The specified procedure could not be found. Remove this file and the problem will disappear.
-
[EWARM-5320, EW25847] Performing a hardware reset when debugging with an Atmel JTAGICE3 probe may cause the probe to become unresponsive. Disconnect and reconnect the probe and avoid using hardware reset.
-
[EWARM-5148, EW25468] Setting breakpoints may fail when debugging some multicore systems with one or more disabled cores.
-
[EWARM-5017, EW25172] Trace clock calibration may fail (due to silicon errata in some EFM32 devices) when using I-jet Trace, resulting in incorrect trace data.
-
[EWARM-4877, EW24834] After stepping over a statement that changes the value of the current stack pointer (for example by way of changing which SP that is the current SP) the execution might not stop as expected.
-
[EWARM-4796, EW24661] In some rare cases, code is shown as data in the Disassembly window.
-
[EWARM-4774, EW24591] If the embOS plugin is enabled, the contents of Locals window might fail to refresh when the execution stops.
-
[EWARM-4555, EW24061] I-jet has problems to debug applications that spends long periods in sleep mode on some devices, for instance Fujitsu MB9BF506R and Toshiba TMPM369.
-
[EWARM-4552, EW24054] The dissasembly window might under certain circumstances reappear inadvertently.
-
[EWARM-4504, EW23914] C-SPY accesses Freescale Vybrid flexbus address range before the flexbus clock is enabled. This causes a bus error which makes the cpu unresponsive. A workaround is provided in EWARM 6.60.2: Excluding the address range for J-Link with a C-SPY macro and with a memory configuration change for I-jet will prevent reads from the flexbus address range.
-
[EWARM-4208, EW23161] Every debug session in the simulator "costs" about 500 kb RAM.
-
[EWARM-4122, EW22933] The "Task List" window, column "Max" (and "Max %") display a value that is 4x the correct value in the uC/OS-II RTOS awareness plug-in.
-
[EWARM-4006, EW22550] Sometimes when starting a new debug session using J-Trace CM3 with the STM32F207ZG-SK board, you can get the error "No trace frequency measured" depending on if debugging with trace was recently performed. Just click on OK to continue.
-
[EWARM-4000, EW22529] Sometimes the value of a float type placed in a packed struct is displayed incorrectly.
-
[EWARM-3989, EW22487] A static variable, defined in more than one source file, will become ambiguous if a pre-include file is used by the compiler.
Program corrections
-
In EWARM 9.60.3
[EWARM-12821] Writing to flash memory on MSPM0 devices, with the watchdog timer enabled, might cause the flash loader to fail. -
In EWARM 9.60.3
[EWARM-12807] Erasing pages for addresses above 0x800FFFF fails for STM32U0xx devices. -
In EWARM 9.60.3
[EWARM-12721] Using the ST-LINK C-SPY driver and an MP1 Cortex-A7 device, the stack pointer will be outside the defined stack range during normal execution. -
In EWARM 9.60.3
[EWARM-12707] Using the ST-LINK C-SPY driver and an MP1 Cortex-A7 device, when the user application changes variables in DDR memory they are not updated correctly in the Memory and Watch windows. -
[EWARM-12529] SWO trace cannot be enabled using the J-Link C-SPY driver and a Cortex-M85 device.
-
[EWARM-12519] Downloading an application image into RAM memory on an NXP RT1180 device, using a J-Link probe, might fail with a HardFault exception.
-
In EWARM 9.60.3
[EWARM-12493] The Exception Return (EXC_RETURN) code can sometimes get an invalid value when the C-SPY Simulator is used with ArmV8-M targets in SP_Proc mode. -
[EWARM-12442] Downloading some ELF/DWARF files to target can take minutes. The time varies with the application, but especially applications where large enum types are used in many places as members of complex struct types are affected.
-
[EWARM-12339] Nothing happens when clicking on the Ctrl codes button in the Terminal I/O window. Clicking it should open a menu for input of special characters.
-
[EWARM-12223] For ARMv8 devices, the Match data options in the Data breakpoints dialog box are incorrectly available for the I-jet and the CMSIS-DAP C-SPY drivers.
-
[EWARM-12219] Editing data breakpoints in the Edit Breakpoint dialog box can fail when manually setting the size to greater than 4 bytes.
-
[EWARM-12101] Connecting to an MSPM0 device in Standby mode using a TI XDS debug probe fails with the message Fatal error: Failed to stop execution.
-
[EWARM-12030] Using the ST-Link server does not work when the ST-Link option Enable multicore debugging/shared mode is selected.
-
[EWARM-11951] In the XML report file for code coverage information, a function definition in a header might end up in the wrong module. To handle this issue, each <Function> tag now contains a subtag <SourceFile> with the path to the source file that contains this function. If function definitions appear in header files, this can be different from the source file listed under the <Module> tag.
-
[EWARM-11904] For STM32WL devices, the flash loader encounters a HardFault exception when a software reset is used.
-
[EWARM-11896] The C-SPY Simulator does not restore the FPCA control register bit correctly on returning from an interrupt.
-
[EWARM-11834] Using ETB trace on a Renesas RA8 CPU might generate the error ERROR: Invalid ETB capture.
-
In EWARM 9.60.3
[EWARM-11705] When using the C-SPY ST-LINK driver with a Cortex-A device, the banked registers R8-{{R14 }}cannot be viewed properly in the CPU Registers group in the Registers window. For a specific register, the value from the currently selected bank is shown for all versions of that register. -
[EWARM-11559] The IDE can become unresponsive in some situations when interacting with the Get Alternative File dialog box.
-
[EWARM-11382] Symmetric multicore debugging does not work with the C-SPY CMSIS-DAP driver on a dual-core Arm CM7 device.
-
[DBUG-189, EWARM-10606] Bitfield members of a struct can be displayed with the wrong address in the Location column of, for example, the Watch and Locals windows. Instead of the address of the expected integer element that contains the bitfield, the start address of the whole struct is shown.
User guide corrections
- Code Coverage should be run on non-optimized code, because optimizations will affect Code Coverage negatively.
- The C-SPY macro __setDataBreak can now be used with these C-SPY drivers: GDB Server, J-Link, ST-LINK, TI FET, TI Stellaris, and TI XDS.
- The Cores window in the IDE: The two icons that represent sleep mode (dark green) are never used. Sleep mode is considered a sub-state of executing/running and therefore the light green icons are used, but the text in the Status column is changed from "Running" to "Sleeping".
Miscellaneous
-
On v8A, directly assigning values to 128-bit vector registers via a C-SPY macro expression (for example #V0=0x1234) is not possible.
The components can be written using smaller overlayed registers, for example, like this:
#V0.D.D1=0x0 // First write 0x0 to D1 and D0 to set V0 to zero
#V0.D.D0=0x0
#V0.B.B0=0x34
#V0.B.B1=0x12
Note that #Q0.D.D0=0x0000000000001234 will not give the expected result as C-SPY will cast #0x1234 to a floating point number.For v8.1-M the same applies to the 128-bit Q-registers. So writing 0x1234 to vector register Q0 can be done like this:
#Q0.D.D1=0x0
#Q0.D.D0=0x0
#Q0.B.B0=0x34
#Q0.B.B1=0x12
-
Two new debugger command line options are available for the I-jet debug probe. They can be used
with the cspybat utility, or on the Project>Options>Debugger>Extra Options page in the IDE.
--jet_disable_pmu_dap
Use this option to disable the PMU DAP channel and revert to using CP15 instructions for PMU event counting.
This disables live updating of counter values when the debugger is running.--jet_disable_pmu
Use this option to disable the PMU event counting completely. -
APB/AHB access ports available as memory zones
APB/AHB access ports that implement the MEM-AP architecture are now accessible as memory zones, and can be accessed through the Memory window, the Debugger Macros window, and the Registers window, using custom DDF files.
The zone names are:AP_Memory: The currently selected port.
AP0_Memory - AP5_Memory: Shows ports 0 through 5.
At the moment, these zones are only accessible when using the C-SPY I-jet driver, or the C-SPY CMSIS-DAP driver. -
Disable C-SPY warning for missing source files
C-SPY will complain if it cannot find the source file(s) for files that are compiled with debug information. This warning can be disabled by prepending the file name of these source files with __dbg_.
This situation occurs frequently with RTOS vendors that need to export debug information without supplying the source code for these files. -
Semihosting on AARCH64 devices running in AARCH32 mode
The regular Arm semihosting interface does not work on a 64-bit device that has changed from the AArch64 into the AArch32 execution state. However, IAR breakpoint, the IAR-specific extension of the semihosting standard, works on 64-bit devices in the AArch32 execution state, with the limitation that semihosting cannot then be used in the AArch64 execution state as well. This is because there can only be one __iar_semihosting label.
As a consequence, if you load both a 64-bit debug image and a 32-bit debug image, semihosting functions like printf can only be included in one of them. (Note also that code generated for AArch32 and AArch64 cannot be linked together.)
Release history
V9.50 2023-11-28
Program corrections-
In EWARM 9.50.2
[EWARM-12036] The flash loader for MSPM0 devices disables the CPU cache without re-enabling it. This can have negative consequences for application performance, visible with for example certain LED blink example projects. -
[EWARM-11744] The default .ddf file for the ADuCM4050 device does not support all SRAM modes.
-
[EWARM-11686] Performing a flash loading operation on an STM32F205RB device fails with the message Failed to write __argc.
-
[EWARM-11664] Running several cspybat instances in parallel can in some cases trigger: Fatal error: Unknown exception in driver (#E1).
Use cspybat with the option --sockets to avoid the problem.
-
[EWARM-11598] The --code_coverage_file option cannot be used in the Project>Options>Debugger>Extra Options dialog box in the IDE.
-
[EWARM-11465] For Cortex-M33 devices, the C-SPY TI XDS driver does not show the Secure/Non-secure status for registers in the Registers window.
-
[EWARM-11390] Data log breakpoints do not work when using a Cortex-M33 device with an ST-Link debug probe.
See also EWARM-11358, EWARM-8146 -
[EWARM-11358] Data log breakpoints do not work when using a Cortex-M33 device with a J-Link debug probe.
See also EWARM-11390 -
[EWARM-10875] A progress window does not close when the simulator startup is aborted because of a user error.
-
[EWARM-8146] Data log breakpoints do not work when using a Cortex-M33 device with an I-jet debug probe.
See also EWARM-11390
Command line debug capability for CI/CD activities and debugging using VS Code on Linux
The C-SPY command line utility (cspybat) and the Runtime Analysis tool (C-RUN) are now available on Linux for running applications in the Simulator, or on hardware using the I-jet and I-jet Trace debug probes. Debugging is also available on Linux when using the Visual Studio Code IAR C-SPY Debug Extension. Debugging on Linux is only available when using IAR Build Tools for Arm (BXARM).C-SPY AVH connectivity
Enables virtual prototyping using the Arm Virtual Hardware cloud service. Improvements in the GDB Server debugger driver makes it possible to connect to Arm Virtual Hardware devices. It is recommended to use this in combination with the Arm AVH Debug Accelerator software.Cortex A support in ST-LINK
Enables debugging ST STM32MP13x devices based on Cortex-A7 when using the ST-LINK debug probe.AMP multicore debugging with J-Link
The advanced AMP (Asymmetric Multi-Processing) multicore debugging available for I-jet and CMSIS-DAP, is now also supported also by the C-SPY J-Link driver.Generalplus G+LINK debug probe support
The Generalplus G+LINK debug probe is now natively supported by the C-SPY Debugger.
V9.40 2023-05-24
Program corrections-
In EWARM 9.40.2
[EWARM-11552] After performing a debug authentication operation that implies full regression of the device state on an STM32H5 device, C-SPY can fail to connect to the device. -
In EWARM 9.40.2
[EWARM-11528] When using the I-jet debugger driver, automatic detection of components fails sometimes on targets with DAPv3. -
In EWARM 9.40.2
[EWARM-11488] The C-SPY Debugger sometimes crashes when ETM trace is enabled and the target application is executing. -
In EWARM 9.40.2
[EWARM-11466] The wrong NVIC_IPRx priority bits are displayed in the C-SPY Registers window for Armv8-M devices. -
In EWARM 9.40.2
[EWARM-11456] ETM Trace v4.2 does not work correctly for the I-jet debug probe when the target core is not located at access port 0. -
In EWARM 9.40.2
[EWARM-11378] When setting registers larger than four bytes from the Registers window using an E2 debug probe, the wrong value might be set. -
In EWARM 9.40.2
[EWARM-11319] Using a combination of the E2 debug probe and an ARMv8-M device that supports Arm TrustZone, reading and writing registers might result in the non-secure version being accessed instead of the secure version, or vice-versa. -
In EWARM 9.40.2
[EWARM-11100] Software breakpoints do not work correctly on NXP i.MX 8M Nano devices with the cache enabled. -
[EWARM-11010] Using a J-Link debug probe, C-SPY cannot read the registers MVFR0 }}/ {{MVFR1 on Cortex-R52 devices.
-
[EWARM-11008] When accessing a hypervisor register ( SPSR_hyp or ELR_hyp ) at exception level EL1 using a J-Link debug probe with a Cortex-R52 core, the register value is displayed as 0x0.
-
[EWARM-11006] Memory read and write is not working properly in C-SPY for Cortex-R cores, when the data cache or MMU/MPU is enabled when debugging using an I-jet probe.
-
[EWARM-10994] J-Link cannot read or write registers D16-D31 on Cortex-R52 devices.
-
[EWARM-10931] The C-SPY Debugger's simulation of the cpsie and cpsid instructions for Cortex M33 does not update the correct PRIMASK and FAULTMASK flags. As a result, the Registers window does not update the PRIMASK and FAULTMASK values when the cpsie and cpsid instructions are executed in the C-SPY Simulator.
-
[EWARM-10918] MTB trace cannot be enabled on Cortex-M23.
-
[EWARM-10749] Arguments that contain space characters (for example many file paths) are not handled correctly by the __system1, __system2, and __system3 C-SPY macros.
-
In EWARM 9.40.2
[EWARM-9310] SMP multicore debugging using CMSIS-DAP can cause the IDE to crash when the debug session is terminated. -
In EWARM 9.40.2
[EWARM-9209] When performing a core reset on an ARMv8-A/R device, the cores stop at the reset vector also when Reset has not been selected under Catch exceptions on the I-jet Breakpoints settings page.
None
V9.32 2022-12-13
Program corrections-
In EWARM 9.32.2
[EWARM-10897] Debugging a Cortex-R device fails with this error message:Failed to load function calls from CPU Core driver.
-
In EWARM 9.32.2
[EWARM-10388] Graphical stack display, stack usage tracking, and warnings for the stack pointer being out of bounds are always enabled, regardless of the options set on the Tools>Options>Stack page in the IDE. -
[EWARM-10722] The simulator mistakenly includes the address 0x2400'0000 in the bit band alias area, making that address unavailable as ordinary memory.
-
[EWARM-10621] Data breakpoints are not available for Cortex-M0/M0+ when using the ST-LINK or TI XDS C-SPY Debugger driver.
-
[EWARM-10537] STLINKv3MINIE does not show Serial number in probe selection
-
[EWARM-6910] C-SPY PE Micro C-Spy debugger running from command line could not store the previous settings and needed to be configured again for each run.
None
V9.30 2022-06-02
Program corrections-
[EWARM-10087] Using the Erase Memory functionality with an Infineon Traveo II device might cause the most restricting access permissions to be applied, resulting in a permanent loss of debug access.
-
Changed behaviors
- The shortcut to aborting a flash loader is now pressing Ctrl+Shift+. (period) for a short while, not pressing Ctrl+Shift+- (minus).
- The Tab key can no longer be used with the editor's code completion feature to insert the best match.
- The context menu in windows related to variables and expressions has an added command: Right Align ‘Value’ Column
- The Performance Monitoring window now also supports some Cortex-M devices based on the Armv8.1M architecture.
- The Performance Monitoring window now also displays number of detected overflows.
- The command "Toggle Cycle Counter Divider" on the Performance Monitoring window context menu has been renamed to "Count Every 64 Cycles", and now automatically multiplies the number of counts by 64.
- The editor Colors and Fonts setting has added two modes: High contrast and Dark mode.
V9.20 2021-11-02
Program corrections-
In EWARM 9.20.4
[EWARM-9248] The C-SPY debugger can be disabled because of an internal error related to the file p01.cpp. The problem is due to external factors and cannot be corrected, but a better and more precise error message is provided. -
In EWARM 9.20.4
[EWARM-9116] The program counter gets stuck at address 0 after starting a debug session using the CADI C-SPY debugger driver and a Cortex-M33 Arm Fast Model virtual platform. -
In EWARM 9.20.2
[EWARM-8964] The flash loader for Renesas RE01 does not work with the J-Link probe. -
[EWARM-9303] For 64-bits Arm, the disassembly can be faulty after an ADRP instruction, where up to three instructions after the ADRP instruction might be shown as garbage (uninitialized data is decoded).
See also EWARM-9082, EWARM-9302 -
[EWARM-9075] The simulator can return incorrect values when executing the VRINTP instruction.
See also EWARM-9069 -
[EWARM-9074] If the APSR register has been modified, the simulator can return an incorrect value when executing the VSELGT instruction.
See also EWARM-9069 -
[EWARM-9073] When executing the VSQRT instruction with a negative input argument, the simulator returns 0xffffffff instead of the expected 0x7cf00000 (NaN).
See also EWARM-9069 -
[EWARM-9072] If the APSR register has been modified, the simulator can return an incorrect value when executing the VSELGE instruction.
See also EWARM-9069 -
[EWARM-9071] The simulator saturates negative (half-word) values from the USAT16 instruction to a positive maximum of 0x7fff, instead of the expected value of 0x0000.
See also EWARM-9069 -
[EWARM-9070] The simulator incorrectly returns success after executing the STREX instruction, when failure is expected. This also happens when executing any of the STREXB, STREXH or STREXD instructions.
See also EWARM-9069 -
[EWARM-9069] The simulator fails to recognize the VRINTR instruction.
See also EWARM-9070, EWARM-9071, EWARM-9072, EWARM-9073, EWARM-9074, EWARM-9075 -
[EWARM-7940] Specifying an Offset for the option Project>Options>Debugger>Images>Download extra image has no effect.
None
V9.10 2021-02-19
Program corrections-
In EWARM 9.10.2
[EWARM-8702] When using the Simulator driver, the Function Profiler could, in certain circumstances, produce incorrect call counts and time calculations. The accuracy of the Profiler results has been improved. -
[EWARM-8553] The content of the Live Watch window updates erratically.
-
[EWARM-8443] When using the J-Link/J-Trace driver, the Call Stack graph in the Timeline window does not work correctly.
- None.
V8.50 2020-02-17
Program corrections-
In EWARM 8.50.9
[EWARM-8005] When using the Function profiler, Source: Trace (flat) (ETM), the Debug Log window, on Messages filter level, is filled up with non-understandable numbers. -
In EWARM 8.50.6
[EWARM-7794] Using the C-SPY ST-LINK driver, after choosing Project>Attach to Running Target setting breakpoints causes a HardFault exception. -
In EWARM 8.50.4
[EWARM-7643] The C-SPY Simulator does not simulate the EXC_RETURN values correctly for the v8-M devices. -
In EWARM 8.50.4
[EWARM-7521] The Match data options in the Data breakpoints dialog box are not working correctly for Cortex-M7 devices. -
In EWARM 8.50.4
[EWARM-7452] The register mapping is incorrect for the ST STM32L4P5ZGT device. The RTC register is incorrect and the TAMP register is missing from the register group. -
In EWARM 8.50.4
[EWARM-7432] The DBGMCU component cannot be accessed by the C-SPY ST-LINK driver. -
In EWARM 8.50.2
[EWARM-7507] The debugger can terminate with an internal error when reading an executable file with debug information in some cases involving C++ code with pure virtual member functions and inline overrides. -
[EWARM-7415] The execUserSetup() macro is called too early, before the extra images are loaded, when one of these C-SPY debugger drivers is used: J-Link, ST-LINK, TI FET, TI XDS.
- None.
V8.42 2020-01-17
Program corrections-
[EWARM-7128] C-Spy could crash when accessing variables outside their memory range.
-
[EWARM-7014] When bitfields are modified in the Registers windows, the displayed value is not automatically refreshed if the parent register is not visible in the window.
-
[EWARM-6928] Flash download to a STM32F777BI device does not work.
-
[EWARM-6839] In some cases, disabling a CADI breakpoint has no effect. The application still stops at that breakpoint.
-
[EWARM-6797] Time intervals in the Timeline window are calculated with an incorrect CPU clock speed when ETM trace is used.
-
[EWARM-6734, TPB-3114] The debugger can terminate with an internal error in some cases when displaying rvalue reference types in watch windows.
- None.
V8.40 2019-05-24
Program corrections-
In EWARM 8.40.2:
[EWARM-7046] Some configurations of a workspace can cause C-SPY to crash when the target application is downloaded. -
In EWARM 8.40.2:
[EWARM-6891] For ST-Link driver the SP register showed wrong value in certain cases. All debug windows that depend on the SP showed incorrect information. -
In EWARM 8.40.2:
[EWARM-6867] Using IAR Embedded Workbench for Arm, Cortex-M0 edition, it is not possible to debug applications built for Cortex-M23 devices because of a licensing problem. -
In EWARM 8.40.2:
[EWARM-6832] SWO trace does not work on STM32H743 and STM32H753. -
In EWARM 8.40.2:
[EWARM-6795] There is an error in the file STM32G0xx.dmac that manifests itself when using the C-SPY ST-LINK debugger driver. -
In EWARM 8.40.2:
[EWARM-6659] When using J-Trace PRO, a 'Trace overflow detected' warning might be displayed, requiring user interaction. -
[EWARM-6830] The implementation of asynchronous multicore debugging (AMP) can create performance problems for the Embedded Workbench IDE for projects exceeding a certain size and complexity. If you are using AMP and experience very long debug load times, open the Tools>Options>Project page and try deselecting the option Generate browse information, or try reducing the number of parallel build processes.
-
[EWARM-6639] Searches for registers in Registers windows fail when the search is for only a part of a register name.
-
[EWARM-6571] The DFSDM peripheral special function registers are not defined in the right order in the file STM32H7x3.svd.
- None.
V8.32 2018-10-12
Program corrections-
In EWARM 8.32.4
[EWARM-6758] The bits of a partially shown SFR are not updated in the C-SPY Registers window when a breakpoint is hit. -
In EWARM 8.32.4
[EWARM-6735] Using a J-Link debug probe with an LPC51U68 device, flash loading fails with the error message: "Could not find core in Coresight setup". -
In EWARM 8.32.4
[EWARM-6723] The NEON SIMD instructions cannot be enabled when building with the IAR Command Line Build Utility (iarbuild.exe). -
In EWARM 8.32.4
[EWARM-6699] ThreadX plugin crashes when adding a timer -
In EWARM 8.32.4
[EWARM-6659] When using J-Trace PRO warnings about "Trace overflow detected" etc. was shown as a pop up dialog. -
In EWARM 8.32.4
[EWARM-6437] The PC (Port C) register group name is incorrectly interpreted as the name of PC (Program Counter) which results in the PC group missing from the context menu group list. -
In EWARM 8.32.3
[EWARM-6690] ETM/MTB trace does not work when using the J-Link C-SPY driver and a Cortex-M0+ device. -
In EWARM 8.32.3
[EWARM-6673] J-Link does not recognize LPC804M101.
Streaming trace for improved code coverage and profiling features
The code coverage and profiling windows in C-SPY can now be feed with streaming trace data when using the IAR I-jet Trace probes. This means that both code coverage and profiling data can be collected during infinite test runs. See IAR Embedded Workbench C-SPY Debugging Guide for more information.Extended multicore support
The multicore support has been extended to support any number of asymmetrical cores. For example, it is now possible to debug and control a device with one A9, one M7, and two M4 cores, all synchronized by the Arm Coresight CTI mechanism under debugger control.Performance Monitoring window
The Performance Monitoring window is a viewer for counting events or CPU clock cycles through the Performance Monitoring Unit (PMU) available on Cortex A and Cortex R processors. This feature is only available when using an IAR I-jet probe. Live update is available on all recent Cortex-A cores. See IAR Embedded Workbench C-SPY Debugging Guide for more information.Indicator for sleep mode
A new window in the C-SPY debugger shows if the processor is sleeping or not. See IAR Embedded Workbench C-SPY Debugging Guide for more information.Remedy RTOS Viewer
The Remedy RTOS from Rowebots now has an C-SPY RTOS awareness plugin included in the debugger.
V8.30 2018-06-15
Program corrections-
In EWARM 8.30.2
[EWARM-6466] Unable to download and debug when using the NuTiny-M2351 processor.
When the CPU is reset, the C-SPY I-jet/JTAGjet driver reports that the CPU is unpowered and the download is reported to fail. The solution to this timing problem is to add a delay and try again. -
In EWARM 8.30.2
[EWARM-6465] The trace window showed incorrect trace data when using J-Trace.
Segger J-Link driver V6.34f solves the problem. -
In EWARM 8.30.2
[EWARM-6355] Selecting the *Enable Terminal I/O log file* option before opening a *Terminal I/O* window results in an error. -
In EWARM 8.30.2
[EWARM-6292] Using I-jet, it is not possible to download to flash memory on the STM32F4 series when the device has both read protection and hardware watchdog enabled. -
[EWARM-6351] When using one of the J-Link, ST-LINK, TI XDS, or TI MSP-FET debug probes, a project using a customized cstartup file might get a false error message "Unknown or ambiguous symbol. __vector" during the debug session.
-
[EWARM-6319] mbed RTOS version 5 is not supported.
-
[EWARM-6301] The Renesas S7G2 flash loader fails with the message "Error while calling macro execUserFlashExit" when trying to flash using the Segger J-Link debug connection.
-
[EWARM-5364, EW25944] Editing in the Memory Window with slow connection to the debug probe may write inconsistent data
- A new RTOS awareness plugin has been added to support Mbed OS 5.5 and newer.
V8.22 2018-01-22
Program corrections-
In EWARM 8.22.2
[EWARM-6216] When a debug session is exited, the IAR Embedded Workbench IDE might become unresponsive or crash. The J-Link, ST-LINK, TI-XDS, and TI-MSPFET C-SPY drivers are affected. -
[EWARM-6157] The J-Link reset strategies "Hardware NXP LPC" and "Atmel AT91SAM7" are not available, despite being described in the documentation.
Debugging can now be done by using the ST-LINK server.
To use the ST-LINK server, do the following steps:
1. Ensure that the server has been installed.
The ST-LINK server is provided in thearm\drivers\ST-Link
directory.
To install the server, runst-stlink-server.1.0.6-1.msi
in administrator mode.
2. In your project, enable the Shared mode option, which is done in Project>Options>Debugger>ST-LINK>Setup
V8.20 2017-10-16
Program corrections-
In EWARM 8.20.2
[EWARM-5968] The semihosting call SYS_ELAPSED writes an incorrect value if the value is larger than 0xFFFF. -
[EWARM-5903] Attach to running target fails for devices with ECC RAM, for instance STM32F051R8.
-
[EWARM-5880] Under certain circumstances, spurious extra calls to host emulated C runtime library functions could occur in conjunction with regular such calls, causing unexpected and misleading error messages.
-
[EWARM-5853] Support for the
nPRIV
bit is missing for Cortex-M0+ in the Armv6 architecture.
None
V8.11 2017-04-11
Program corrections-
The simulator now throws a HardFault error when doing Unaligned accesses on a Cortex-M0/M0+
[EW26209] I-jet: SigFlashCmd.exe is missing.
[EW26507]In EWARM 8.11.3:
I-Jet is not able to reset RM4X devices.
[EW26650]-
In EWARM 8.11.3
[EWARM-4171, EW23060] Environment variables are not expanded the same way in cspybat as in the IDE.
TI MSP-FET: CPU state information
When debugging with devices that contain EnergyTrace+ support, like TI MSP432, the debugger now can display information about the CPU state, whether the device is in active mode or one of the low power modes (LPM). This information can be displayed as a State Log graph in the Timeline window, or as a textual log in the State Log window.
V8.10 2017-03-10
Program corrections-
When downloading an executable where some modules are produced by gcc, the debugger can terminate with an internal error.
[EW26384]
[EWARM-5113, EW25403] There could be a deadlock in the disassembly window when a breakpoint invokes a conditon macro, where the macro tries to manipulate breakpoints.
- None.
V7.80 2016-10-17
Program correctionsIn EWARM 7.80.1:
A threadx task name could be corrupted when viewed in the threadx plugin if the string containing the name is stored near the end of memory.
[EW26211]-
In EWARM 7.80.3:
I-Jet could not connect to Infineon TLE9867.
[EW26321] In EWARM 7.80.4:
It is not possible to debug on some Cortex-M0+ and Cortex-M7 based STM32 devices with I-jet, ST-Link, or J-Link. This error is issued:
Driver: Fatal Error: The selected device does not match the target device. Session aborted!
[EW26369]
- None.
V7.70 2016-06-17
Program corrections-
[EWARM-4945, EW24984] In some situations, stepping out from an interrupt handler might cause the debugger to loose the connection to target.
-
I-jet and I-jet Trace now have trace support for single core tracing of Vybrid devices.
[EW24813] -
SWO/ITM is now supported on Toshiba TMPR454 with I-jet and I-jet Trace.
[EW24828]
- None.
V7.60 2015-03-31
Program corrections-
The Simulator crashes when using forced interrupt to generate SVC interrupt.
[EW25877] -
J-Link: Setting the JTAG speed for J-Link (Ultra+) was limited to 25 MHz, now up to 50 MHz is possible.
[EW25960] -
J-Link does not recognize STM32L151VD-X.
[EW25972] -
The flash loader for STM32L151VD-X does not work.
[EW25974] -
With I-jet Trace, Flat time is sometimes longer than Accumulated time.
[EW26010] -
In EWARM 7.60.2
The CPU races when C-stepping out of an interrupt handler on Cortex-M.
[EW22343] -
In EWARM 7.60.2
The Function Profiler and the Call Stack graph in the Timeline window both depend on identifying function calls and function returns in a traced instruction sequence. Problems can appear as an unbalanced graph, or as incorrectly attributed call counts in the profiler. This identification has been improved for certain sequences.
[EW26040]
Flash breakpoints
Flash breakpoints adds unlimited number of breakpoints for selected Cortex-M devices when using the I-jet debug probe. A flash breakpoint must be set explicitly from the context menu. To find out if flash breakpoints are supported for your device, see the semiconductor vendor specific device lists below.cJTAG support
The IAR C-SPY Debugger now supports the cJTAG interface on the TI connectivity devices CC13xx/2538/26xx when using the I-jet debug probe.TI MSP-FET support
The IAR C-SPY Debugger now supports the TI MSP-FET debug probe.In EWARM 7.60.2
ST-Link: Added possibility to specify access port for dual core debugging.
V7.50 2015-11-10
Program corrections-
ST-Link: Fixed problem when setting breakpoints during execution.
[EW25724] -
In EWARM 7.50.2
CMSIS-DAP: Fixed the handling of theCSW
register for Cortex-M7.
[EW25781] -
Corrected problem where I-jet would sometimes fail to connect to STM32 cores
that were in sleep mode and never woke up.
[EW25783] -
In EWARM 7.50.2
J-Link, ST-Link, TI XDS: The SWO auto speed select did not work properly.
[EW25801] -
In EWARM 7.50.3:
ST EEPROM flash loaders would fail to write correctly when the starting offset of the data was not 0.
[EW25899] -
In EWARM 7.50.3:
Some Freescale Kinetis K devices could not be connected to using CMSIS-DAP.
[EW25910] -
In EWARM 7.50.3:
CorrectedACTLR
bit defintions for Cortex-A9.
[EW25912]
- None.
V7.40 2015-02-19
Program corrections-
Variables in the Live Watch window might be marked red even though their values remain unchanged through several updates of the window.
[EW23114] -
Function trace is now processed correctly when using I-jet Trace. Note, this requires update of I-jet Trace firmware to at least version 3.2. Read more in Information about I-jet, JTAGjet-Trace, and JTAGjet firmware versions.
[EW25140, EW25141] -
J-Link V9 now works with TMS570 devices.
[EW25147] -
It is not possible to run the C-SPY simulator from Eclipse.
[EW25160] -
ST-Link: It is now possible to set breakpoints during execution.
[EW25177] -
Corrected missing interrupt names in the interrupt log for devices using SVD device description files.
[EW25190] -
In EWARM 7.40.2:
The PC could sometimes be set to an incorrect value when using Download and Debug in certain situations.
[EW24825] -
In EWARM 7.40.2:
ETM/ETB trace support for I-jet/JTAGJet-trace added for Toshiba TMPR454.
[EW24829] -
In EWARM 7.40.2:
I-jet: When debugging devices with a faulty ROM table, a connection error was reported instead of trying to connect.
[EW25261] -
In EWARM 7.40.3:
The private peripheral bus memory range and its registers are shown with incorrect byte order for Cortex-M devices with BE32 byte order when using I-jet (for example TMS470M06607).
[EW24604] -
In EWARM 7.40.3:
The CMSIS-DAP support on Vybrid is improved.
[EW24616] -
In EWARM 7.40.3:
The CMSIS-DAP driver is now correctly identified in C-SPY.
[EW24949] -
In EWARM 7.40.3:
I-jet Trace revisions A and B do not have external pull-up on thenRESET
line. When connecting to a device where thenRESET
line is not connected, a 100K pull-up resistor should be used on the probe pin, connected to Vref. This external pull-up is present in I-jet Trace revision C.
[EW25203, EW25420] -
In EWARM 7.40.3:
Connecting to a Kinetis L may sometimes fail when using I-jet.
[EW25293] -
In EWARM 7.40.3:
The ES1.21 CC3200 device is now a separate device, different from the generic CC3200 device. This is to correct inconsistencies in the linker configuration file.
[EW25307] -
In EWARM 7.40.3:
When simulating pairwise SIMD operations, for exampleVPADD
andVPMAX
, the result is now correctly distributed in the D registers.
[EW25341] -
In EWARM 7.40.3:
The SWO initialization macro for TI CC2538 is now correct.
[EW25352] -
In EWARM 7.40.3:
The simulator now continues correctly when it returns from an interrupt inside the IT state.
[EW25353] -
In EWARM 7.40.3:
CMSIS DSP libraries with support for FPU are now built with the correct parameters.
[EW25372] -
In EWARM 7.40.3:
The I-scope detection and initialization mechanism is now working correctly.
[EW25376] -
In EWARM 7.40.3:
J-Link: C-SPY no longer terminates unexpectedly when stopping on a breakpoint that executes a macro that removes breakpoints.
[EW25419] -
In EWARM 7.40.3:
For I-jet, MPU_CTRL is now handled correctly.
[EW25436] -
In EWARM 7.40.3:
For I-jet, DAP read commands did not return a value, leading to type mismatch if used.
[EW25469] -
In EWARM 7.40.3:
The memory configuration for EFM32GG is corrected.
[EW25400] -
In EWARM 7.40.3:
The default reset strategy for online reset was not set to software in some cases for I-jet and CMSIS-DAP.
[EW25404] -
In EWARM 7.40.3:
The C-SPY macros for ETM initialization on Kinetis W2x series devices are now working correctly.
[EW25435] -
In EWARM 7.40.3:
Bit Banding is now working correctly in the simulator.
[EW25444] -
In EWARM 7.40.5:
Attach to program is now working when debugging on ARM7 and ARM9.
[EW22435] -
In EWARM 7.40.5:
Instability has been observed in some cases when using the RTOS awareness plugin for FreeRTOS.
[EW24317, EW25433] -
In EWARM 7.40.5:
Setting/editing a data log breakpoint now works correctly.
[EW25386] -
In EWARM 7.40.5:
Fixed a problem with debugging projects with only an externally built executable and debug info from an extra image.
[EW25479] -
In EWARM 7.40.5:
CMSIS-DAP: C-SPY would sometimes crash when trying to attach to the same probe using multiple instances of IAR Embedded Workbench.
[EW25515] -
In EWARM 7.40.5:
Too long texts in a tooltip could cause a crash. Now a text that does not fit is truncated.
[EW25525] -
In EWARM 7.40.5:
If a program contains several different unnamed structure types with equally named and typed fields, but with different offsets, the debugger can display some of the structure types incorrectly.
[EW25545] -
In EWARM 7.40.5:
Using more than 50 register groups would in some cases make C-SPY not to start correctly.
[EW25569] -
In EWARM 7.40.5:
J-Link: The performance of Terminal I/O output via SWO has been improved.
[EW25612] -
In EWARM 7.40.5:
The Disassembly window now displays the labels of byte-long variables on odd addresses.
[EW25633] -
In EWARM 7.40.5:
Saving the contents of the Interrupt Log window to a file now includes the Execution Time field.
[EW25649] -
In EWARM 7.40.5:
ETM trace now works with JTAGjet-Trace.
[EW24267] -
In EWARM 7.40.5:
I-jet could fail to set up stimulus port permissions properly on some Cortex-M7 devices causing ITM to fail. This affectedstdio/stderr
over SWO.
[EW25364] -
In EWARM 7.40.5:
I-jet: An encoding error causedMVFR0
andMVFR1
to be swapped during a register access.
[EW25522] -
In EWARM 7.40.5:
The C-Spy I-jet/JTAGjet driver can now find the address of the__vector_table
symbol when it is astruct
.
[EW25561] -
In EWARM 7.40.5:
I-jet: Entering wait mode and backup mode on a SAM4S device (and models with the same sleep modes) will no longer yield fatal errors, and I-scope measurements will not stop while in these deep sleep modes.
[EW25581] -
In EWARM 7.40.5:
I-jet: Software breakpoints are verified and a message is now given when memory contents are damaged while trying to set a software breakpoint. To avoid this you should use hardware breakpoints instead.
[EW25586] -
In EWARM 7.40.7:
An error in retrieving the current locale could load the wrong code page, thus misinterpreting non-ASCII characters.
[EW25720] -
In EWARM 7.40.7:
When the ThreadX plugin was enabled C-SPY might crash unexpectedly when stopping at, for example, a breakpoint, even if the plugin was not being used.
[EW25737] -
In EWARM 7.40.7:
J-Link: When a new debug session started right after a debug session that used the C-SPY J-Link/J-Trace driver, C-SPY could crash.
[EW25744, EW25725]
- None.
V7.30 2014-09-24
Program corrections-
I-jet: Unlocking of Kinetis L and E devices has been added, as a C-SPY macro.
[EW24397] -
Fixed in new firmware. Use firmware in arm\drivers\pemicro\OpenSDA\DEBUG-FRDM-K64F_Pemicro_v108a_for_OpenSDA_v2.0.bin.
Use system reset and disable watchdog manually if needed.
[EW24841] -
The simulator now simulates the
SMMLS(R)
instruction correctly.
[EW24912] -
ST-Link: For Cortex-M0, a pending interrupt might get the CPU stuck on the breakpoint where it starts the execution.
[EW24966] -
In EWARM 7.30.3:
If you use the same name for a variable as for a type, the Watch and Quick Watch windows will fail to evaluate such a variable or an expression containing it.
[EW19334, EW21566, EW25058] -
In EWARM 7.30.3:
Additionally selectable memory zones do not work properly in some C-SPY drivers.
[EW24914] -
In EWARM 7.30.3:
Data Log graph settings in the Timeline window are not preserved.
[EW24953] -
In EWARM 7.30.3:
Power samples are no longer dropped on devices without SWO/TPIU when debugging with I-jet/I-scope.
[EW24959] -
In EWARM 7.30.3:
Expanding a pointer to function in the Watch/Quickwatch window might cause the debugger to crash.
[EW24989, EW25014, EW25016] -
In EWARM 7.30.3:
Sometimes the automatic update of the Code Coverage window fails to mark executed statements as executed.
[EW25010] -
In EWARM 7.30.3:
TheFPCA
bit in theCONTROL
register is incorrectly masked away on access in some C-SPY drivers.
[EW25047] -
In EWARM 7.30.3:
The message box caused by an assertion is not modal. This means that it is possible to execute other commands, which could lead to a crash.
[EW25070] -
In EWARM 7.30.4:
The simulator now handles theCONTROL.FPCA
bit correctly.
[EW25048] -
In EWARM 7.30.4:
The ThreadX plugin now lets conditional breakpoints stop when a specific task is active.
[EW25127]
- None.
V7.20 2014-05-19
Program corrections-
It is not possible to view a variable in the Watch window as a 64-bit signed or unsigned integer, because the Watch window does not have the Show As>64-bit Signed and Show As>64-bit Unsigned commands.
[EW24420] -
J-Link: Connection to J-Link Remote Server could in some cases terminate with the message "IP communication timeout".
[EW24493] -
I-jet: Power logging now survives a reset.
[EW24554] -
Some objects of a
class/struct/union
type might be impossible to expand as there is no '+' sign in front of them.
[EW24598] -
The menu command View>Cores was disabled even though the project was configured for asymmetrical multicore debugging.
[EW24606] -
I-jet: SWD mode could not be selected for Cortex A/R.
[EW24630] -
Selecting certain memory zones in the zone display drop-down list of various C-SPY windows, causes an unexpected termination of C-SPY with the error message "A fatal error has occurred. The debugger will terminate".
[EW24636] -
The C-SPY simulator does not simulate Cortex M4F lazy stacking correctly.
[EW24675] -
I-jet: Multicore slave probe configuration is not inherited from the master configuration.
[EW24684] -
The instructions
VFMA
,VFMS
,VFNMA
, andVFNMS
are now correctly simulated when using Cortex M4F.
[EW24692] -
Simulation of the
BFI
instruction now produces correct results when LSB is 0 and the width is 32.
[EW24695] -
In EWARM 7.20.2:
The instructionUXTAB
now produces correct results when simulated in the C-SPY simulator.
[EW24693] -
In EWARM 7.20.2:
Simulation of theVCVT
instruction is now correct.
[EW24696] -
In EWARM 7.20.2:
Adding a C-RUN rule or changing the default C-RUN action caused the IDE to crash when the C-RUN windows were grouped together.
[EW24708] -
In EWARM 7.20.2:
The SymList plugin should be loaded by default but is not.
[EW24718] -
In EWARM 7.20.2:
The simulator now only checks for denormal exceptions when theFZ
bit in theFPSCR
register is set.
[EW24726] -
In EWARM 7.20.2:
Simulation of theBFC
andBFI
instructions now works as expected also when all bits are selected (lsb = 0 and width = 32).
[EW24727] -
In EWARM 7.20.2:
The simulator now reports the correct number of cycles for theSMLAL
instruction.
[EW24735] -
In EWARM 7.20.2:
I-jet: A problem that made it impossible to debug an AMP multicore application has been corrected.
[EW24743] -
In EWARM 7.20.2:
EWARM no longer crashes if using multiple ThreadX Mutexes and displaying the ThreadX plugin Mutex window.
[EW24752] -
In EWARM 7.20.2:
Read-only SFRs placed in read-only-mapped memory no longer yield a warning message.
[EW24753] -
In EWARM 7.20.2:
I-jet: The debugger no longer terminates unexpectedly when trying to initialize ETM trace with a 1 bit port width. (The only port width supported in JTAGjet Trace is 4 bits.)
[EW24779] -
In EWARM 7.20.5:
I-jet: The number of HW breakpoints is no longer limited to six for Cortex-R4.
[EW24638] -
In EWARM 7.20.5:
An intermittent problem when debugging with JTAGjet, related to a newer version of Windows USB drivers, has been fixed.
[EW24750] -
In EWARM 7.20.5:
Long function names are truncated in the Call Stack window.
[EW24826] -
In EWARM 7.20.5:
The Call Stack window leaks resources.
[EW24867] -
In EWARM 7.20.5:
I-jet: The SWO interrupt log is now correctly handled on devices with slow SWO clock.
[EW24840] -
In EWARM 7.20.5:
I-jet: Debugger reads of memory on Cortex-A when cache is enabled now shows the correct values.
[EW24857, EW24780, EW24796] -
In EWARM 7.20.5:
I-jet: Software breakpoints are restored atmain()
in CM408F example project Button_LED_GPIO.
[EW24866]
- None.
V7.10 2014-02-21
Program corrections-
Architecturally defined core registers, CP14 registers, and CP15 registers are now available in the Register window.
[EW23046,EW23780,EW23919,EW24276,EW24504] -
If a problem arises in the download phase the state is now properly reset.
[EW24105, EW24520] -
I-jet: A data breakpoint with Match Data on Cortex-M0 might cause the debugger to terminate unexpectedly, and might also make the EWARM project file corrupt.
[EW24307] -
I-jet: When debugging an ARMv7-R/A core, and stepping on a branch to self instruction, the C-SPY driver reports
Unknown stop condition or CPU is running
.
[EW24419] -
I-jet: C-SPY is now able to read the
FPSCR
register on Cortex-M with FPU extension.
[EW24496] -
In EWARM 7.10.2:
CMSIS-DAP is now available in 7.10.
[EW24515] -
In EWARM 7.10.3:
Very rarely, adding a variable to the Watch window might cause the debugger to exit abnormally.
[EW24398] -
In EWARM 7.10.3:
I-jet: The option Restore software breakpoints at did not work as expected after reset. It has now been corrected.
[EW24498] -
In EWARM 7.10.3:
J-Link: When starting the STR9 commander tool, JLinkSTR91x.exe, it incorrectly claimes that "Reset pin is high but should be low".
[EW24535] -
In EWARM 7.10.3:
In some cases, using a macro to save target memory to a file might cause the debugger to crash.
[EW24551, EW24553] -
In EWARM 7.10.3:
I-jet correctly disables cache on Vybrid on a software reset.
[EW24562] -
In EWARM 7.10.3:
Simulator now gives correctUDIV
result when dividend is 0x80000000 and divisor is 0xFFFFFFFF.
[EW24563] -
In EWARM 7.10.3:
In the simulator it is not possible to read registers using a # prefix (for instance#PC
) in theexecUserExecutionStopped()
macro.
[EW24569] -
In EWARM 7.10.3:
The Simulator does no longer terminate unexpectedly when the target application change to Monitor mode.
[EW24576] -
In EWARM 7.10.3:
When debugging with the P&E Micro JTAG probe, verify download sometimes reported "Target inconsistency detected" when code was correcly downloaded.
[EW24579] -
In some rare cases data is shown as code in the Disassembly window.
[EW24580] -
Sometimes SFR groups might not be shown in the Register window even though they are defined in the device description file (
.ddf
).
[EW24592]
Reset alternatives
For devices that support multiple reset alternatives, these can now easily be selected from a dropdown list in the tool bar.Architecturally defined core registers, CP14 registers and CP15 registers are now available in the register window.
V6.70 2013-10-29
Program corrections-
The I-jet in-circuit debugging probe now operates more smoothly when the host system is a one-core Windows XP computer.
Note, make sure to update I-jet firmware to 4.2 or later. Read more in Information about I-jet, JTAGjet-Trace, and JTAGjet firmware versions
[EW23848, EW24016] -
When C-SPY stops at a breakpoint, the Go to function button and the insertion point position on the status bar are not visible until you click in the editor window.
[EW24182] -
An
.svd
file that contains extremely long lines might cause the IAR Embedded Workbench IDE to stop responding.
[EW24189] -
J-Link fails to connect to the target over Ethernet.
[EW24194] -
The I-jet C-SPY driver now reports the correct CPUID in the Debug Log window.
[EW24199] -
J-Link: When enabling or disabling SWO or ETM trace while target was running, an annoying warning message popped up. This has been corrected.
[EW24204] -
The I-jet C-SPY driver now access CP15 registers correctly when debugging a Faraday FA606TE.
[EW24213] -
For devices that support JTAG only or SWD only, the setting is now forced set to the supported mode.
[EW24234] -
In EWARM 6.70.2:
I-jet: Setting a breakpoint directly on a vector in the interrupt vector table no longer disables the interrupt.
[EW24230] -
In EWARM 6.70.2:
I-jet: Custom reset strategies are now available for NXP LCP23xx and LPC24xx devices.
[EW24253] -
In EWARM 6.70.2:
When displaying the interrupt log in the Timeline window, the interrupt duration was always displayed in time units, even if Time Axis Unit was set to cycles.
[EW24291] -
In EWARM 6.70.2:
If an externally built ELF/DWARF object file contained a struct declared in a function scope prototype, the debugger could exit unexpectedly while downloading the file.
[EW24312] -
In EWARM 6.70.2:
Removing a breakpoint while the debugger is executing might make the debugger unstable.
[EW24374] -
In EWARM 6.70.3:
Windows drivers for ST-Link, for support in Windows8, are now found inarm\drivers\ST-Link
, together with ST-Link firmware upgrade package.
[EW23655] -
In EWARM 6.70.3:
J-Link: A misleading warning was shown in debug log window about using reset strategy #1 and Cortex-M1.
[EW24386]
- None.
V6.60 2013-06-27
Program corrections-
Expanding a huge array in a debugger watch window could cause an out-of-memory crash. Now array expansion is halted after 5000 elements, but can be continued manually.
[EW23262] -
I-jet: ETM trace is now working when debugging a TMDXRM48HDK with JTAGjet-Trace.
[EW23843] -
I-jet: Terminating a debug session while the Terminal I/O window still prints, no longer causes the debugger to crash.
[EW23893] -
J-Link: Attaching to a running Cortex-M target is now performed without executing the
execConfigureTraceSWO()
orexecConfigureTraceETM()
macros.
[EW23910] -
I-Jet can now download to flash on an ADuC7026. If this problem persists, open the I-jet/JTAGjet>Memory Configuration dialog box, in the Used Ranges pane, define the Cache Type of memory in range 0-0xF7FF as ROM/Flash.
[EW23932] -
I-jet: MTB trace now works also when power logging is active.
[EW23951] -
I-jet: The unlock scripts now run without doing a license check.
[EW23955] -
I-jet: Debug mechanisms are now kept enabled in sleep mode on STM32 devices. This is done through STM32-specific C-SPY macros.
[EW23998, EW24011, EW24021] -
In EWARM 6.60.2:
J-Link: Shutting down a debug session while running SWO or ETM trace could lead to a crash.
[EW23196] -
In EWARM 6.60.2:
I-jet now supports ETB trace when debugging on Cortex-M4.
[EW23748] -
In EWARM 6.60.2:
J-Link: ETB trace is now working on LPC185x.
[EW23946] -
In EWARM 6.60.2:
End of file,EOF
, condition onstdin
is now handled correctly, causing_read()
,fread()
, and similar to return the proper status.
[EW24039] -
In EWARM 6.60.2:
If you started and stopped the debugger several times during one IAR Embedded Workbench session, a serious memory leak could lead to abnormal termination.
[EW24052,EW24058,EW24081] -
In EWARM 6.60.2:
I-jet: Improved wording and nature of a warning message.
[EW24063] -
In EWARM 6.60.2:
I-jet: Stability when receiving ETM trace data from a Kinetis K60 is improved.
[EW24073] -
In EWARM 6.60.2:
I-jet: EmuDiag can now update the firmware in JTAGjet-Trace.
[EW24082] -
In EWARM 6.60.2:
I-jet: Using BE8 big-endian mode and I-jet no longer gets the application to malfunction when hitting a software breakpoint.
[EW24092] -
In EWARM 6.60.2:
I-jet: The unlock scripts,Kinetis_unlock_jtag.bat
andKinetis_unlock_swd.bat
now work on Freescale Kinetis devices.
[EW24125] -
In EWARM 6.60.2:
J-Link: The debugger no longer terminates with a crash when the power to the board is turned off.
[EW24142] -
In EWARM 6.60.2:
The SVD reader can now handle<cluster>
elements that do not contain anydimElementGroup
.
[EW24163]
CMSIS SVD cluster elements
The debugger now supports cluster elements in CMSIS System View Description files.New behaviour in
assert()
(new in 6.60.2)
Theassert()
function will now launch a dialog box, letting the user choose Abort, Debug, or Ignore.
If the old behaviour is wanted, then add the following function to your application source code:int __iar_ReportAssert(char const *file, char const *line, char const *func, char const * msg) { printf( "%s:%s %s -- assertion failed\n", file, line, msg ); return 0; }
Support for Texas Instruments XDS200
Support has been added for the Texas Instruments XDS200 debug probe.ST-Link: More registers available in the Register window
The FPU, Control, and primask registers are now available in the Register window. To get access to the FPU registers, you need to update the ST-Link probe firmware to the latest version. This firmware is found in your IAR Embedded Workbench for ARM installation inarm\drivers\ST-Link\ST-LinkUpgrade.exe
.
V6.50 2012-11-10
Program corrections-
J-Link: A more obvious warning is now displayed when multiple symbols are found in the debug images.
[EW22957] -
I-jet: The C-SPY driver for I-jet is now enhanced to serve JTAGjet as well.
[EW23152] -
I-jet: Debugging on Freescale i.MX25 is now possible without workaround.
[EW23364] -
The enter/leave indication in the Interrupt log is now correct when there are several simultaneous interrupts.
[EW23457] -
32-bit multiplication no longer fails when simulating an A9 processor with Neon and VFP.
[EW23516] -
The ETM Trace Window now shows data output when debugging on STM32F4xx.
[EW23560] -
J-Link: The C-SPY driver for J-Link now works with CSpyBat when using command line option
--drv_communication
.
[EW23574] -
In EWARM 6.50.2:
Expressions in the Live Watch window which did not evaluate to a C/C++ lvalue did not update during execution. This has been corrected.
[EW23205] -
In EWARM 6.50.2:
The simulator now simulatesMOV.W
correctly when the register isSP
.
[EW23575] -
In EWARM 6.50.2:
The simulator now simulates the instructionsFSTMIAX
andFLDMIAX
correctly.
[EW23577] -
In EWARM 6.50.2:
TheIT/ICI
bits in theEPSR
register are now cleared when the simulator enters an interrupt.
[EW23600] -
In EWARM 6.50.2:
The instructionQDADD
now saturates correctly.
[EW23604] -
In EWARM 6.50.2:
Some problems that could cause the IDE to freeze terminating a debug session have been corrected.
[EW23618] -
In EWARM 6.50.2:
TI Stellaris: Detection of hardware connection failure is improved.
[EW23646] -
In EWARM 6.50.3:
I-jet: It is now possible to use CSpyBat with the I-jet/JTAGjet debugger driver.
[EW23504] -
In EWARM 6.50.3:
Sometimes, setting a breakpoint in highly optimized code could cause IAR Embedded Workbench to exit unexpectedly. This has been corrected.
[EW23521] -
In EWARM 6.50.3:
I-jet: The intrinsic function__WFI
is now handled correctly in I-jet.
[EW23533] -
In EWARM 6.50.3:
I-jet: If you set up I-jet not to supply the target board with power, power delivery to the target board will now stop when the debug session starts.
[EW23633] -
In EWARM 6.50.3:
Setting a breakpoint in a uC/OS-III project could make C-SPY unresponsive. This has been corrected.
[EW23672] -
In EWARM 6.50.3:
I-jet: When SWO interrupt information packets have to be dropped because of excessive amounts of data, this is now handled gracefully.
[EW23675] -
In EWARM 6.50.3:
I-jet: Pressing Reset just when the CPU has started autonomously no longer causes a deadlock.
[EW23693] -
In EWARM 6.50.3:
I-jet: Interrupts are now logged and presented correctly in C-SPY windows. (However, the interrupt specifications in the Freescale SVD files are not correct, so the naming of such interrupts might be misleading. See EW23788 for more information.)
[EW23694] -
In EWARM 6.50.3:
I-jet: Running EmuDiag.exe no longer requires administrator privileges.
[EW23695] -
In EWARM 6.50.3:
TI Stellaris: It is now possible to use CSpyBat with the TI Stellaris debugger driver.
[EW23697] -
In EWARM 6.50.3:
The uC/OS plugins keep responding even when the event flag group is corrupt.
[EW23723] -
In EWARM 6.50.3:
In some cases incorrect project settings caused the debugger to issue an error upon starting, only to exit unexpectedly after the error was corrected. This no longer occurs.
[EW23725] -
In EWARM 6.50.3:
Interrupt definitions are now correctly added in C-SPY when the SFR definitions are provided in an SVD file.
[EW23774] -
In EWARM 6.50.5:
I-jet: It is now possible to download and verify with I-jet on LPC2103. Note however that it might be necessary to add an execUserPreload macro to set MEMMAP to the proper value, 1 for a flash configuration and 2 for a RAM configuration.
[EW23652] -
In EWARM 6.50.5:
I-jet: It is now possible to set a breakpoint when running on a Freescale Kinetis K60.
[EW23692] -
In EWARM 6.50.5:
I-jet: The example projects for Spear3xx are now adapted to I-jet/JTAGjet.
[EW23794] -
In EWARM 6.50.5:
J-Link: FPU registers in Cortex-A are now supported by the J-Link driver.
[EW23805] -
In EWARM 6.50.5:
I-jet: It is now possible to debug AM335x with I-jet and JTAGjet.
[EW23806] -
In EWARM 6.50.5:
I-jet: JTAGjet-trace now handles trace data (ETM) correctly when debugging on STM32F407ZG-SK.
[EW23899] -
In EWARM 6.50.6:
I-jet: Match data for data breakpoints is no longer ignored by I-jet.
[EW23505] -
In EWARM 6.50.6:
I-jet: The C-SPY driver for I-jet now handles SWO on MB9AFB44N correctly.
[EW23595] -
In EWARM 6.50.6:
I-jet: Data log is now working when debugging on MB9BF506R.
[EW23708] -
In EWARM 6.50.6:
J-Link: C-SPY no longer crashes when trying to read FPU registers before the FPU is enabled.
[EW23777] -
In EWARM 6.50.6:
I-jet: The C-SPY driver for I-jet now handles FPU registers correctly.
[EW23778] -
In EWARM 6.50.6:
I-jet: C-SPY now behaves robustly when the ETM signal from the device is unstable.
[EW23786] -
In EWARM 6.50.6:
The driver-specific menu for CMSIS-DAP now has the correct name and content.
[EW23807] -
In EWARM 6.50.6:
Executing a Reset command while debugging could lead to a crash if the Stack window was open.
[EW23916] -
In EWARM 6.50.6:
I-jet: The last ITM event log before execution is stopped at a breakpoint, is no longer missing.
[EW23832] -
In EWARM 6.50.6:
I-jet: Power sampling now works for devices without SWO.
[EW23876] -
In EWARM 6.50.6:
I-jet: ITM logging is now intact, also when Power sampling is not active.
[EW23879] -
In EWARM 6.50.6:
I-jet: C-SPY can now download an image to a K60 device.
[EW23931] -
In EWARM 6.50.6:
Sometimes, when performing the internal integrity check, the flash loader caused a false alarm. This resulted in a long list of incorrect warnings in theflash0.trace
file.
[EW23933]
JTAGjet-Trace support
Full support, including ETB and ETM, for the JTAGjet-Trace debug probe from IAR Systems.Source browser call graph display
The source browser can now display a call graph for easy navigation of the function hierarchy.Multi-core SWD support
Two instances of IAR Embedded Workbench can now access one core each in a multi-core device via SWD.New Macro Quicklaunch window for executing macros (and evaluating expressions) on demand.
The debugger drivers for I-jet and TI XDS100 can now handle multiple probes connected to the PC.
-
Support for MTB (Micro Trace Buffer) in I-jet
The MTB trace mechanism gives access to instruction trace on devices based on the Cortex-M0+ core. In EWARM 6.50.5:
I-jet: Unlock utilities for EFM32, Kinetis and LM3S devices are inluded in$EW_DIR$\arm\bin\jet\bin
as Windows batch files. They are run without parameters. Please make certain that the correct utility is used, according to the available debugger interface (JTAG or SWD).
V6.40 2012-06-05
Program corrections-
J-Link: In previous versions, when enabling ETM on an LPC1788/LPC1778 device, the debugger was writing
0x08
into theIOCON_P0_10
register. This is no longer done.
[EW23133] -
Opening the Symbolic Memory window when debugging an RVDS-built application that contains union data members without a location attribute, caused C-SPY to exit unexpectedly. This has been corrected.
[EW23143] -
I-jet: THUMB breakpoints that end up in the same 32-bit word are now handled correctly by C-SPY.
[EW23243] -
In EWARM 6.40.2:
The default value in Project>Options...>TI XDS100>Setup>TI emulation package installation path is now handled correctly.
[EW23158] -
In EWARM 6.40.2:
The IDE could crash when a leaf was double clicked in the Code Coverage window, because of a missing path in the editor view. This has been corrected.
[EW23282] -
In EWARM 6.40.2:
The IDE no longer becomes unresponsive when a device description file (.ddf
) containing empty sections is opened.
[EW23286] -
I-jet: When debugging on an AM1808 device with I-jet you no longer get warnings about misplaced SFRs.
[EW23289] -
In EWARM 6.40.2:
The J-Link driver is now always able to get the CPU status when SWO is enabled.
[EW23290] -
In EWARM 6.40.2:
J-Link: When Project>Options...>General Options>Library Configuration>stdout/stderr is set to Via SWO, the J-Link/J-Trace Connection Interface setting now reflects that correctly.
[EW23301] -
In EWARM 6.40.2:
XDS: Problems with the debugger driver for TI XDS100 has been corrected. -
In EWARM 6.40.3:
The Timeline window was not updated correctly when data log breakpoints were enabled/disabled during a debug session. This has been corrected.
[EW22807] -
In EWARM 6.40.3:
Setting/clearing breakpoints on the lowest line in the Disassembly window by clicking on the leftmost column now works correctly in all cases.
[EW23040] -
In EWARM 6.40.3:
Sometimes the localized (Japanese) strings were garbled in the Watch window. This has been corrected.
[EW23335] -
In EWARM 6.40.3:
The Memory window lost focus when editing memory content after entering one unit. This has been corrected.
[EW23340] -
In EWARM 6.40.4:
The Symbolic Memory window know behaves correctly after resizing the tabs.
[EW21509] -
In EWARM 6.40.4:
C-SPY could misinterpret certain flags in an ELF file such that some read-only segments were considered writable. This could interfere with memory integrity checks when launching a debug session. This has been corrected.
[EW23327] -
In EWARM 6.40.4:
When the downloaded application does not contain any C variables (with static storage duration), the I-jet driver will no longer issue a warning about finding no variables in memory designated as RAM.
[EW23440] -
In EWARM 6.40.4:
It is no longer possible in the Memory Configuration window to enter an end address that is lower than the start address.
[EW23450] -
In EWARM 6.40.4:
Executing the context menu command Force on a vacant area in the Forced Interrupt window caused the debugger to exit unexpectedly. This has been corrected.
[EW23470] -
In EWARM 6.40.5:
I-jet now works with TMS470R1B1M.
[EW23310] -
In EWARM 6.40.5:
I-jet: C-SPY no longer terminates unexpectedly when closing a debug session.
[EW23370, EW23531] -
In EWARM 6.40.5:
I-jet now works with LPC2138. Note, reset strategy must be set to "Hardware" or "Software".
[EW23427, EW23442, EW23443] -
In EWARM 6.40.5:
I-jet: Turning on "Power Sampling" in the Function Profiler window could sometimes cause a crash, e.g. if Profiling was turned on already when launching a debug session, but Power Sampling was turned on later. This has been fixed.
[EW23509] -
In EWARM 6.40.5:
I-jet: Creating or editing configurations in the Memory Configuration dialog box when running a session in Japanese could cause IAR Embedded Workbench to exit unexpectedly. This has been corrected.
[EW23513] -
In EWARM 6.40.5:
I-jet now works with LPC2378. Note, reset strategy must be set to "Hardware" or "Software" and JTAG/SWD speed must be set to "Adaptive".
[EW23515]
ITM event log
The ITM events can now be plotted as a line graph.C-SPY macros
Two new C-SPY macros have been added,execUserExecutionStarted()
,execUserExecutionStopped()
. They can be used for executing C-SPY macro code immediately before starting and immediately after halting program execution.I-jet memory configuration
The memory access map can be configured in detail to setup caching of regions and block accesses to restricted areas. The default memory configuration can be modified using the Memory Configuration dialog box.
V6.30 2011-10-22
Program corrections-
Evaluating a cast expression that contains a plain char, such as
(char *)42
, when the application does not use the plain char type anywhere, could result in a crash. This has been corrected.
[EW20519] -
ST-Link: It is no longer any problem with step or go, when the register window contains a large number of registers.
[EW22020] -
C-SPY no longer terminates unexpectedly when right-clicking in a ThreadX RTOS plugin view.
[EW22508] -
A warning message no longer pops up when debugging an AM1808 device.
[EW22557] -
In the Watch window, pointers to Thumb functions are now displayed with the correct function name.
[EW22664] -
Single stepping or running to breakpoints when the Call Stack window is open no longer causes the IDE to become unresponsive.
[EW22765] -
If you used two or more monitors, ending a debug session with the main IDE window open on one monitor but the Disassembly window on another monitor, IAR Embedded Workbench could terminate unexpectedly when you restarted the debug session. This has been corrected.
[EW22762] -
In EWARM 6.30.3:
The debugger no longer terminates unexpectedly during long trace acquisition (several hours) in the Timeline window.
[EW22452] -
In EWARM 6.30.3:
J-Link: The ETM port is now initialized correctly when an STM32 device is debugged using J-Trace.
[EW22796,EW22822] -
In EWARM 6.30.3:
The simulator now simulates theSPSR
instruction correctly in System mode.
[EW22801] -
In EWARM 6.30.3:
A problem in the breakpoint handling in the P&E Micro debugger driver could lead to unexpected behavior when stepping in the source code. This has been corrected.
[EW22838] -
In EWARM 6.30.4:
J-Link: PINSEL10 is no longer set by debugger when using SWO with LPC17xx.
[EW22698] -
In EWARM 6.30.4:
J-Link: Trace port is now enabled when enabling ETM trace on STM32F4xx.
[EW22903] -
In EWARM 6.30.4:
TI Stellaris: A problem with interrupts not being executed due to improper reset has been corrected.
[EW22915] -
In EWARM 6.30.6:
J-Link: CPU reset is now performed properly for Stellaris devices that need special reset handling.
[EW22935] -
In EWARM 6.30.6:
Trying to load a file containing modules produced withgcc
no longer causes the IDE to crash.
[EW22866] -
In EWARM 6.30.6:
J-Link: Hardware breakpoints now works correctly after hardware reset of LPC11U14 (Cortex-M0).
[EW22872] -
In EWARM 6.30.6:
Support for the new CMSIS SVD keywordRESERVED
is now implemented.
[EW22895] -
In EWARM 6.30.6:
The contents of the Statics window were not filtered when it was opened after the start of a debugging session. The correct contents were not displayed until after a window update (for example after executing a step command). This has been corrected.
[EW22900] -
In EWARM 6.30.6:
In some cases, executing multiple Page Up commands in the Disassembly window could cause the code to be disassembled incorrectly. This has been corrected.
[EW22922] -
In EWARM 6.30.6:
TI Stellaris: CPU reset is now performed properly for Stellaris devices that need special reset handling.
[EW22936] -
In EWARM 6.30.6:
TI Stellaris: Interrupts were not disabled during single-stepping. The application did not continue from the breakpoint when you continued to step, because the single step was executed in the interrupt function instead. This has been corrected.
[EW22950] -
In EWARM 6.30.6:
ST-Link: The watch window now shows correct values in functions whereSP_process
is used as current stack pointer.
[EW22962] -
In EWARM 6.30.6:
J-Link: Exceptions in the Interrupt log and Timeline window are now named correctly when ETM trace is enabled.
[EW22995] -
In EWARM 6.30.6:
The Interrupt Log Summary window could show uninitialized content directly after a debugging session started. This has been corrected.
[EW23007] -
In EWARM 6.30.7:
It is now possible to set the offset on the Project>Options...>Debugger>Images page to a value greater than 0x7FFFFFFF.
[EW23030] -
In EWARM 6.30.7:
It is now possible to use the RDI driver with CSpyBat.
[EW23068] -
In EWARM 6.30.8:
J-Link: TheJLinkSTM32.exe
utility now identifies the device correctly when erasing an STM32F4 device.
[EW23184] -
FreeRTOS 7.1.1 is compatible with the C-SPY FreeRTOS plugin. Read more in FreeRTOS 7.1.1 readme.
(This is not limited to any explicit EWARM version.)
[EW23130]
ETM/ETB selection
It is now possible to chose between ETM and ETB for devices with support for both.
V6.21 2011-07-05
Program corrections-
Executing Add to Watch on a selection in the editor window not only opens the Watch window but now also adds an entry to it.
[EW22408] -
Disassembly of an unknown address no longer causes the debugger to crash.
[EW22458] -
ST-Link: Programming flash using ST-LINK now works correctly with the C-SPY macro
execUserFlashInit()
.
[EW22457, EW22473] -
The Stack window no longer crashes upon opening when, under certain circumstances, C-Spy has insufficient information about target system stacks to display stack information as intended.
[EW22486] -
In EWARM 6.21.2:
J-Link: Only relevant bits in theRCC_AHB1ENR
/RCC_AHBENR
andGPIOE
registers are enabled when enabling ETM trace on STM32F2xx/STM32L15x.
[EW22552] -
In EWARM 6.21.2:
The C-SPY driver for P&E Micro no longer causes the debugger to crash.
[EW22554] -
In EWARM 6.21.2:
The J-Link flash loader mechanism now works for STM32L15x devices.
[EW22639] -
In EWARM 6.21.3:
The checkmark in front of the Mixed-Mode entry on the disassembly window context menu is now displayed correctly.
[EW22604]
Support for Texas Instruments XDS100v2
The Texas Instruments debug probe XDS100v2 is now supported for TI TMS570 devices. To use XDS100v2, select TI XDS100 in the Driver drop-down list on the Debugger>Setup options page. The XDS100v2 debug driver requires the Texas Instruments emulator package to be installed. To install the emulator package, start...\arm\drivers\ti-xds\ti_emupack_setup.exe
and follow the installation procedure. Make sure to install the emulator package in the suggested default location. This will allow the debugger to find the emulator package automatically. If for some reason the package is installed in a custom location, the option--xds_rootdir=path
must be specified on the options page Debugger>Extra Options.Support for ST ST-LINK version 2 with SWO (new in 6.20.4)
The ST debug probe ST-LINK version 2 is now supported. The Serial Wire Output (SWO) functionallity is also implemented, enabling features such as function profiling and interrupt tracing for all STM32 devices.
V6.20 2011-04-29
Program corrections-
Variables of array, struct, union or class type placed at an absolute address are now displayed properly in the Watch window family.
[EW19987] -
The J-Link driver instruction set simulation for 32-bit Thumb instructions on Cortex-A/R targets now works correctly.
[EW22179] -
The J-Link flash breakpoints now work properly on LPC ARM7 devices also when the mapping is changed via the
MEMMAP
register in the target application.
[EW22187] -
Correct values are now displayed for the
LR
andPSP
registers in the Register window.
[EW22279] -
The simulator now resets the pending bit of the
PendSV
exception when that exception is executed. It also simulates exception priorities in a better way. Changing exception priorities dynamically and using priority grouping is now supported.
[EW22301] -
The 32-bit thumb instruction
LDR(literal)
is now decoded and simulated correctly for all combinations of operands.
[EW22360] -
LSRS R0,R0,#32
is now simulated correctly.
[EW22371] -
In EWARM 6.20.2:
J-Link: The C-SPY macro__setCodeBreak
now works as expected.
[EW22410] -
In EWARM 6.20.4:
Now programming flash works correctly with macroexecUserFlashInit()
.
[EW22473]
None.
V6.10 2010-11-04
Program corrections-
J-Link: The debugger no longer tries to obtain data from ETM when ETM isn't available.
[EW21816] -
There was a redundant warning when the flash loader checked for the presence of arguments. This warning is no longer issued.
[EW21861] -
Namespaces could not be used when the IAR C-SPY Debugger resolved names. This has been corrected.
[EW21868] -
A variable declared in an assembly file could be given an incorrect address when displayed in a Watch window. This has been corrected.
[EW21873] -
The embOS and PowerPac RTOS awareness plugins did not display the Settings and About dialog boxes correctly on Windows7.
[EW21901] -
J-Link: It is now possible to debug on LPC 2378 using a J-Link Ultra.
[EW21921] -
Setting up a Trace/SWO port now leaves other bits in the SFR (e.g.
DBGMCU_CR
) untouched.
[EW21970] -
ST-Link: The
__hwReset
macro has been implemented in the ST-LINK driver.
[EW21995] -
The last index in a trace is now included when saved to file.
[EW22012] -
C-SPY macro
__setLogBreak()
is now recognized by all relevant debugger drivers.
[EW22030] -
Stepping and setting breakpoints now take
#line
directives into account.
[EW22044] -
In EWARM 6.10.2:
ST-Link: It is now possible to open the Breakpoints window when using the ST-LINK driver.
[EW22087] -
In EWARM 6.10.2:
J-Link: For some JTAG or target errors the debugger could hang forever waiting on execution to stop. It is now possible to choose to abort the debug session or reset and try again to get the control back.
[EW22096] -
In EWARM 6.10.2:
The uCOS-II plugin now save settings in the registry subtreeHKEY_CURRENT_USER
instead ofHKEY_LOCAL_MACHINE
.
[EW22109] -
In EWARM 6.10.2:
J-Link: In some cases, when using trace-based features, executing an application in the debugger over a long time no longer results in a Runtime Error! message and an abrupt IAR Embedded Workbench termination.
[EW22122] -
In EWARM 6.10.2:
When displaying theCP15
registerCPACR
in the Register window, the values for the individual bits are now correctly displayed.
[EW22128] -
In EWARM 6.10.2:
The IDE no longer crashes if the Message Queues window of the ThreadX plugin contains a lot of messages in a single queue.
[EW22142] -
In EWARM 6.10.3:
Type definitions containing pointers to functions no longer produces incorrect debug information that led to unexpected IAR Embedded Workbench termination when the debugger was started.
[EW22176] -
In EWARM 6.10.5:
J-Link: The semihosting for ARM7 and ARM9 no longer fails if the __vector symbol is located to an address different from 0.
[EW22242]
Memory region blacklist (new in 6.10.2)
The device description file can optionally specify valid memory regions for a device. User access outside valid regions will be blocked.New context menu entry in editor while debugging with trace
If Trace is available in a driver, a new context menu item Find in Trace will appear in the editor context menu (when the debugger is running). If you click in source code that corresponds to code in the target, and the trace window is not empty, the menu item will be enabled. If you select it, it will directly search the trace window for occurrences of the given trace data and report the result in the standard Find in Trace window.Navigating to code from Timeline window and related windows
Existing functionality: Double-clicking in the Timeline window (when it has something to show, of course) will open an editor window with the insertion point at the corresponding source code location, if any. This also happens when double-clicking in some other related windows, such as the Data Log or Interrupt Log windows.
New functionality for the same situation: If the disassembly window is already open, its insertion point will also be positioned at the proper location. If the desired code location has no corresponding source code (and the code thus cannot be shown in an editor window) the code will only be shown in the disassembly window, and this window will then be opened if necessary.The power log system will show if a log has been produced during processor 'idle' mode
The Power Log window, the PowerStripe tooltip, and the system saving power logs to a file will all be displaying the word 'idle' as the PC value if the target has signalled that the log is generated during idle mode.
V5.50 2010-04-21
Program corrections-
JTAG: The Macraigor Wiggler debugger now works with Sharp LH79524.
[EW19382] -
J-Link: There was an inconsistency between the J-Link control panel and the C-SPY debugger when showing information about the actual breakpoint type used on target.
[EW21604] -
J-Link: The error message when setting a breakpoint fails was not informative enough.
[EW21605] -
In EWARM 5.50.5:
J-Link: Problems related to the proper execution and mapping of the on-chip bootloader on NXP LPC11xx and LPC13xx devices have been corrected.
[EW21769] -
In EWARM 5.50.5:
J-Link: Access to specific memory areas no longer results in the fatal error message "Failed to prepare indirect memory access, no RAM area configured!".
[EW21801] -
In EWARM 5.50.5:
The CMX plugin module now updates the task window when used with J-Link and Cortex-M.
[EW21819] -
In EWARM 5.50.5:
J-Link: In some cases where a fatal error appear, the debugger no longer ends with a crash.
[EW21827] -
In EWARM 5.50.5:
TI Stellaris: Starting execution from a breakpoint no longer failes when there is a breakpoint also on the next instruction. This earlier resulted with the error message "Unable to start execution 0x00000004"
[EW21835] -
In EWARM 5.50.6:
When returning from an exception routine executing in ARM to Thumb state, the returnpc
value was sometimes incorrect in the simulator.
[EW21908] -
In EWARM 5.50.6:
The simulation of the instructionsQADD
,QDADD
andQDSUB
no longer produces incorrect result for some input values.
[EW21971] -
In EWARM 5.50.6:
The debugger no longer terminates with a crasch when the trace-based profiling is activated while the Trace window is closed.
[EW21919] -
In EWARM 5.50.6:
TheUNPRIV
bit in theCONTROL
register is now reset correctly in the simulator. This means that the simulator no longer starts in unprivileged mode for Cortex-M3 and Cortex-M4 devices.
[EW21982] -
In EWARM 5.50.6:
TI Stellaris: Implemented the special reset sequence needed by TI Stellaris Tempest/Firestorm devices.
[EWARM-973] -
In EWARM 5.50.6:
ST-Link: Fixed problem with ST-LINK reset behaviour.
[EWARM-980]
- The Function Profiler window can now optionally use a flat sampling method when the input is ETM trace. This will give accurate profiling even in situations where the debugger fails to build a correct call chain, for example when the application uses a RTOS.
V5.41 2009-12-14
Program corrections-
The
LDREX
andSTREX
instructions are no longer missing in the simulator for Cortex-M3.
[EW19814] -
Dragging an expression containing a dereferenced function pointer onto the Memory window no longer causes the debugger to crash.
[EW21390] -
Editing a Trace Starting, Stopping or Filter point, set on a source line, no longer results in an error message.
[EW21393] -
The CMX RTOS plugin no longer fails if some symbols, for example "queue", are missing in the target project.
[EW21437] -
In EWARM 5.41.2:
When simulating theRFE
instructon, bits are no longer copied incorrectly from memory to theCPSR
register.
[EW21580] -
In EWARM 5.41.2:
Code size limitation control in C-SPY no longer includes constant data or data initializers.
[EW21591]
-
New C-SPY macro function
__targetDebuggerVersion()
returns the version of the debugger. This makes it possible to write debugger macro scripts that adapt to different versions of the debugger.
V5.40 2009-07-10
New features-
Interrupt definitions in
ddf
files is available in the interrupt simulation setup dialogs for Cortex-M devices. -
These new features have been added to cspybat:
- code coverage
- download only mode
- timeout option
-
A new C-SPY macro
__delay(milliseconds)
. -
J-Trace for Cortex-M3 with triggering and filtering conditions.
-
J-Link: Data breakpoints with value match condition for ARM7, ARM9 and Cortex-M
-
J-Link: 64-bits memory accesses.
-
GDB Server: New C-SPY macro for sending commands directly to the GDB server:
__gdbserver_exec_command("command string")
-
TI Stellaris: Supports both SWD and JTAG.
-
The debugger could end up in infinite loops while unwinding call stack.
[EW20280] -
J-Link: Slow download on ARM11 when using J-Link. This has been fixed but requires a J-Link v8 or later to get the higher speed.
[EW20318] -
Debug information for stepping was off by one line when an include file was completely empty.
[EW20541] -
The C-SPY macro
__gdbserver_exec_command
was missing.
[EW20857] -
It is now possible to simulate exceptions with exception numbers below 16 for Cortex-M cores.
[EW20866,EW20867,EW20931] -
The possibility to edit interrupt descriptions has been disabled for cores that has only
IRQ
andFIQ
interrupts. This will prevent confusing error messages from appearing.
[EW20868] -
A rare problem with downloading files in the Motorola S37 format into the wrong memory location has been corrected.
[EW20964] -
J-Link: Hardware reset during execution could lead C-SPY to believe execution had stopped.
[EW21106] -
In EWARM 5.40.4:
Using the--drv_vector_table_base
option no longer causes the flash loader to fail.
[EW21171] -
In EWARM 5.40.4:
The Function Profiler now shows correct values.
The disassembly in the trace window is now correct for Cortex-M.
[EW21187] -
In EWARM 5.40.4:
ST-Link: The disassembly window now display disassembler when running the ST-LINK driver.
[EW21198] -
In EWARM 5.40.4:
The source file paths retrieved from the externally built ELF/DWARF object file are now correctly interpreted by the debugger.
[EW21223] -
In EWARM 5.40.4:
Line number information in the debugger is now accurate. Highlighting and breakpoint setting now works correctly.
[EW21268] -
In EWARM 5.40.4:
Downloading to flash memory no longer causes the IDE to become unresponsive.
[EW21297] -
In EWARM 5.40.4:
Stepping in a complex C++ program no longer causes the displayed source code location not to reflect the current program counter.
[EW21300] -
In EWARM 5.40.4:
The CMX plugin no longer fails to detect the CMX RTOS when the RTOS is compiled in thumb mode.
[EW21311] -
In EWARM 5.40.4:
J-Link: SWO trace data is now collected during single step.
[EW21339] -
In EWARM 5.40.4:
J-Link: Running C-SPY J-Link driver in batch mode now works when connected to an older revision of the STM32F10x device.
[EWARM-685]
5.30 2009-01-23
Program corrections-
The Auto window is available in this release.
-
The CMX plugin module uses one breakpoint instead of two during its initialization. This reduces the risk of plugin failure due to lack of hardware breakpoints.
[EW19139] -
The C-SPY macro
__openFile ( input_file, "r+b" )
could earlier fail if the input file had the read-only attribute set. This has been corrected.
[EW20268] -
The result of some floating-point expressions was incorrectly displayed in the Watch window.
[EW20303] -
With the Luminary FTDI driver, data breakpoints could only be used right after first download. For any subsequent download, data breakpoints were disabled and could not be enabled.
[EW20360] -
J-Link: Vector catch functionallity did not work properly and in some cases this could lead to the fact that two breakpoints were set at same address.
[EW20480] -
CPSID
andCPSIE
were incorrectly exchanged when disassembling in ARM mode. This has been corrected.
[EW20521] -
The
MCR
instruction was incorrectly disassembled asMCR2.
This has been corrected.
[EW20523] -
The flash loader based on a previous flash loader framework could not properly be invoked from
cspybat.exe
. This has been corrected.
[EW20529] -
J-Link: The diagnostic message "Debugger problem discovered: The debugger has set two breakpoints at the same address 0x00000008." was incorrectly displayed when using vector catch on SWI and having semihosting enabled. This has been corrected.
[EW20604] -
The debugger did not support the semihosting command
SYS_FLEN
which caused the C library functionsfseek()
andftell()
to fail. This has been corrected.
[EW20680] -
When the Simulator attempted to execute a VFP instruction with VFP disabled (EN in FPSCR), it correctly took the UNDEF interrupt (offset 0x4) but the LR was off by 2 bytes - not 4 bytes as it should. This has been corrected.
[EWARM-169]
5.20 2008-07-11
Program correctionsIf an external editor was used in the IDE, it was also used in the debugger. This could make it impossible to set breakpoints in the source code. Now the debugger always uses the built-in editor.
[EW19591]If the simulator executed a tight loop containing illegal instructions, it would flood the debug log window with error messages and the IDE would hang. This has been corrected.
[EW19815]The debugger can now read all RealView 3.1 generated ELF/DWARF files.
[EW19868]-
J-Link: For Cortex-M3 the PRIMASK register was always displayed as "0" in the register window.
[EW19974] Examining a function pointer that is a class member, either with a tooltip or by adding it to the watch window, no longer makes the debugger crasch.
[EW20034]A multiple failure to open a file using the
fopen()
library function could use up all available file handles. This no longer occurs.
[EW20102]-
J-Link, RDI, JTAG: The disassembly window made accesses to the VICAddress register etc. (0xFFFFFF00 - 0xFFFFFFFF ) when displaying the interrupt vectors at 0x00-0x20. This led to that no IRQs were triggered any more.
[EW20160] For Cortex-M cores, the 16 bit MOV(register) instruction is now simulated correctly when PC is the destination register.
[EW20200]-
J-Link: When using the restore breakpoints feature and ARM11, the debugger could set two breakpoints at the same address.
[EW20221] J-Link, JTAG, TI Stellaris: For Cortex-M, the hardware breakpoint was not removed when it was cleared. This happened when there was only one breakpoint set.
[EW20251]GDB Server: Improvements to support the GDB server protocol more generically.
- Debugger startup
You can now start the debugger with or without downloading code, using two new buttons on the toolbar, or two new Project menu commands. There are also two new corresponding ways to restart the debugger during the debug session. - Loading multiple ELF images
The debugger can load multiple ELF images using the C-SPY macro__loadModule()
. - Symbols window
The Symbols window displays the complete list of symbols used within the project. In contrast to the Source Browser, the list of symbols is not based on project source files but is retrieved from the debug information. This means, that it also lists symbols from libraries that you do not have the source for. It also lists assembler labels, which are not conveniently visible in any other window. - New flash loader mechanism
A new flash loader mechanism is available that adds increased speed and flexibility. -
J-Link: For Cortex-M, support for Trace and Terminal I/O (output) via SWO.
-
J-Link: For ARM7 and ARM9, support for Terminal I/O (output) via DCC.
-
J-Link: Support for the flash download and flash breakpoints features offered by J-Link (optional features). For more information see the J-Link / J-Trace User Guide
-
J-Link: New reset methods added.
5.11 2007-11-28
Program correctionsThe macro function
__openFile()
now takes all kind of parameters, not only"r"
or"w"
. In particular, it is possible to use the"b"
parameter, to open the file in binary mode.
[EW17017, EW19034]CPSID
andCPSIE
were exchanged in disassembly for Cortex-M.
[EW18739]-
TI Stellaris: For Cortex-M3, sometimes the debugger incorrectly left hardware breakpoints enabled during step which made the target seem to be halted on the current address.
[EW18848] -
J-Link: Single stepping over a breakpoint on Cortex-M3 failed and the target was halted on the breakpoint address.
[EW18892] -
J-Link, JTAG: When using the Attach to program option and having the stack plugin enabled, the debugger crashed when ending a debug session.
[EW19229] When simulating a core with no system coprocessor (CP15) support, a CP15 instruction could crash the simulator.
[EW19244]When several compilation units used the same type, a problem with debug information could earlier cause some of the instances of that type to be incorrectly handled by C-SPY. This could cause syntax errors in C-SPY expressions containing the type and also make it impossible to expand its members.
[EW19338, EW19340]The simulator did not simulate the
SVC
instruction correctly for Cortex-M cores.
[EW19484]Corrupted semihosting data structures could cause the debugger to crash.
[EW19507]In some cases, references were incorrectly shown in the QuickWatch, Watch and Locals windows. This has been corrected.
[EW19542]Setting a breakpoint in a large switch statement could earlier fail.
[EW19553,19611]When debugging nested switch statement in ARM mode, the current source code location displayed could be incorrect. This made it look like the wrong case statement was executed.
[EW19681]Angel, JTAG, RDI: Downloading very small applications could earlier lead to a crash.
JTAG scan chain with multiple target option did not work properly.
GDB Server: Improved support for software breakpoints.
Support for the Cortex-M1 core.
RDI: Added support for Cortex-M3.
JTAG: Added support for ARM11 and Cortex-M3.
-
J-Link: Support for ARM11.
-
J-Link: New reset methods added.
GDB Server, TI Stellaris: Data breakpoints. For more information refer to Part 6. C-SPY hardware debugger systems in the EWARM Debugging Guide
5.10 2007-07-02
Program correctionsCortex-M3 devices were earlier started in unprivileged mode in the simulator.
[EW18742]-
J-Link: When using the CPU ARM7TDMI-S, some features that are only working on ARM9 were incorrectly available in the menus.
-
J-Link: Diagnostic messages sent from the J-Link driver during download were incorrectly treated as warnings.
-
J-Link: For Cortex-M3, the debugger sometimes left hardware breakpoints enabled when stepping which made the target seem to be halted on the current address.
[EW18848] The debugger used to crash for code where the base class is a template class.
[EW18999]C-SPY no longer crashes if a C-SPY macro invoked by a breakpoint deletes the very same breakpoint.
[EW19001]JTAG: Using the CPU ARM7TDMI-S resulted in an error message "Invalid Register Code" when starting execution.
[EW19160]C-SPY is now able to download a large image to the target.
[EW19855]TI Stellaris: Cortex-M3 was not supported in 5.10.
J-Link, JTAG, RDI: Data breakpoints are supported. For more information, refer to Part 6. C-SPY hardware debugger systems in the EWARM Debugging Guide
J-Link: The debugger can now display trace data from the ETB (Embedded Trace Buffer) available on some ARM devices. This is supported by both the J-Link and the J-Trace probe.
J-Link: Attach/detach to a running system without interrupting execution (nonintrusive debugging) is now supported.
J-Link: Breakpoints and memory can now be modified during execution. Global/static variables can be displayed by the Live watch window during execution. To enable these features on ARM7/ARM9, a DCC handler must repeatedly be called by the application. The DCC handler code can be found in
src\debugger\DCC
.J-Link: Macros for accessing the co-processor CP15 have been added.
J-Link: Macro for JTAG TRST
__jtagResetTRST()
has been added.GDB Server: First release.
V4.41A 2006-12-08
Program correctionsRDI: The IAR Embedded Workbench IDE does not report a non-existing RDI driver before a debug session has been started.
[EW17236]-
J-Link: Some CPUs do not emit any trace information for certain instructions during single step due to a bug in the silicon. The debugger did not handle this and an error occured when reading a trace buffer.
[EW18388] -
J-Link: Trace buffer size setting were incorrectly not saved.
-
J-Link: Information about program corrections in the low-level J-Link C-SPY driver can be found in the release notes for J-Link ARM DLL.
Interrupt simulation was always incorrectly enabled after reload of a project.
[EW18578]TI Stellaris: Derivatives based on Rev C silicon are supported.
TI Stellaris: There is USB driver support for both old and new evaluation boards.
Exporting command line for cspybat
The file is generated as
C-SPY now generates a file with helpful information that can be used for running the debugger from the command line using the cspybat utility. Every time the debugger is initialized (technically, it happens when a project is loaded and when terminating a debug session) abat
file is generated that can be used almost without modifications to start cspybat from the command line with the same settings as in the IDE.$PROJ_DIR$\settings\projectname.cspy.bat
J-Link: Live watch window for variables and live access of memory.
J-Link: Setting breakpoints during execution.
J-Link: Possible to show trace timestamps. (J-Trace)
J-Link: Code coverage (J-Trace)
J-Link: Command line option that performs
__jlinkExecCommand
macro calls at startup.J-Link: Macros for direct JTAG access.
J-Link: Information about new features in the low-level J-Link C-SPY driver can be found in the release notes for J-Link ARM DLL.
ROM-monitor: Serial ports COM1-COM32 are now supported.
ROM-monitor: Breakpoint usage information is available from the ROM-monitor menu.
Angel: Serial ports COM1-COM32 are now supported.
Angel: Breakpoint usage information is available from the Angel menu.
V4.40A 2006-05-18
Program correctionsThe CMX plugin could crash the debugger if debug information generation was disabled in project options.
[EW17832]Debugger testing for read/write memory when setting breakpoints interfered with the ST STR910 flash controller.
[EW17930]The C-SPY macro
__emulatorStatusCheckOnRead()
did not work correctly, causing problems when debugging TI TMS470R1B1M.
[EW17992,EW18012]Some ThreadX views could crash the debugger when running in big endian mode.
[EW18010]A row with a single newline in the debugger Extra Options dialog crashed the debugger.
[EW18011]A syntax error message and a macro definition error message appeared erroneously in the debug window under certain circumstances.
[EW18069]
Support for the Cortex-M series has been added
TI Stellaris: First release.
Symbolic Memory window
A symbolic memory window has been added. It displays raw memory contents annotated with any global symbols present.
V4.31A 2006-02-03
Program corrections
The Live watch window is currently only supported by the simulator, and should not be active for other debugger drivers, like JTAG.
[EW15698]MSR
with an immediate operand was disassembled and simulated incorrectly for some immediate values.
[EW17465]The simulator could errorneously set the processor mode to system mode when running
SWI
,LDM
,STM
orBKPT
instructions.
[EW17454]Selecting hardware reset when using a flash loader should give one reset before flashing and a second reset just before starting the application. The second hardware reset was not performed.
[EW17777]J-Link: The cspybat.exe command line debug tool crashed when configured to use the J-Link driver.
[EW17782]
Stack window
To monitor the memory consumption and the integrity of the stack, a new Stack window has been added. It shows the stack contents as raw data, C/C++ variables, and function frames. It also shows current and maximum stack consumption graphically. Warnings can be issued when the stack exceeds a certain level or if the stack pointer points outside the stack memory.- New breakpoint category - Log breakpoint
Log breakpoints make it easy to log messages whenever execution passes a certain code location without having to add any code to the target application. When a log breakpoint is triggered, it writes to the Debug Log window and then the application continues execution. - New way to toggle breakpoints
You can now set or clear a breakpoint by double-clicking in the left margin of the editor window; the breakpoint location is marked by a red X. If there is more than one possible breakpoint location in the source line, the breakpoint is placed on the first location. J-Link: Added support for J-Trace with ETM trace.
V4.30A 2005-06-23
Program corrections
The Memory window now displays "--" for each individual memory unit that cannot be read accessed; as opposed to the whole row.
[EW16446]J-Link: In some cases, the debugger could fail to clear temporary breakpoints set to control the execution of the flash loader.
[EW16610, EW16699]J-Link: The J-Link firmware did not work correctly with ARM946E-S and ARM926EJ-S. The new J-Link driver will automatically update the firmware.
[EW16638]Setting data breakpoints in explicitly sized (8/16/32) memory crashed the debugger.
[EW16756]The CMX RTOS plugin could fail to be activated because it did not properly detect the CMX operating system.
[EW16890]The simulation of the
SMLAL
instruction was incorrect. Upon entry to the instruction the content of the upper wordRdHi
was lost (RdHi
was set equal toRdLo
).
[EW16902]When disassembling in Thumb mode, labels were shown on a separate line, with a preceeding blank line. When single-stepping, the blank line was highlighted instead of the line with the current instruction.
V4.20A 2005-01-10
Program corrections
The simulation of the VFP coprocessor could not be disabled by clearing the
EN
bit in theVFPEXC
.
[EW14654]At certain conditions when debugging for big endian processors C-SPY could crash or stop responding.
[EW15126]The debugger disassembly wrongly switched to thumb mode 64 bytes after an arm label if the code was followed further down by a thumb label.
[EW15571]The Analog Devices (ADUC702X) flash programming algorithm failed if the binary image contained gaps.
[EW15780]Setting breakpoints in C was not possible if the
PC
did not line up with a statement boundary.
[EW15590]The simulator incorrectly set the
Q
-flag when executingSMLAxy
orSMLAWy
instructions even when no overflow occured in the execution.
[EW15603]The file
CMXTinyArmPlugin.ewplugin
contained an incorrect path.
[EW15702]Under certain circumstances, IAR Embedded Workbench could crash when starting C-SPY and the CmxArmPlugin or the CMXTinyArmPlugin was used.
[EW15703]Annoying 'data coverage not supported' log message removed.
[EW15704]If the flash loader operation failed and gave an error dialog box the progress bar could be left open.
[EW16050]If, during a simulation, execution reached unallocated memory, a new memory block would be allocated and filled with zeros. Then the execution would continue in this block, since 0x0 is a valid instruction in both ARM and Thumb mode. The execution would continue, potentially until the memory runs out on the host machine. This has been fixed. Now the simulation stops and an error message is displayed whenever the program reaches memory that has not been allocated. The simulator allocates memory in 16 Kbyte blocks. If the error message "Tried to execute instruction in unallocated memory space, address
0xXXXXX000
" is displayed, the execution did go wrong in the 16 Kbyte block before0xXXXXX000
. Then it continued until it reached the 16 Kbyte border, at0xXXXXX000
, where it stopped.
[EW16085]-
J-Link: Changing the Philips LPC212x EXTPOLAR register caused JTAG
disconnection.
[EW16365]
-
By using different memory zones, you can control the access width used
for reading and writing in, for example, the Memory window. For normal
memory, the default zone
Memory
can be used, but certain I/O registers may require to be accessed as 8, 16, or 32 bits to give correct results. - The debugger displays I/O register bit names for most supported devices.
V4.11A 2004-06-10
-
J-Link: Debugging with big endian byte order did not work.
[EW15030] J-Link: Combining the options Suppress download and Verify download did not work. The combination of the options Suppress download and Verify download should verify the target content without downloading.
At certain conditions when debugging for big endian processors, C-SPY could crash or stop responding.
[EW15126]Incorrect simulation of the
SMULL
instruction.
[EW15191]Wrong simulation of the instructions
SMLAW
[EW15463](SMLAWB, SMLAWT)
SMLA(SMLABB, SMLABT, SMLATB, SMLATT)
SMLAL(SMLALBB, SMLALBT, SMLALTB, SMLALTT)
SMULW(SMULWB, SMULWT)
A debug information construct was wrongly handled by the debugger and caused it to crash.
[EW15712]The simulator always started at address zero regardless of the start address specified by the program start label. The simulator now starts at the program start label if it exists, if not it will start at address zero.
ROM-monitor: Memory window display of address areas generating a data abort crashed the ROM monitor. The memory window now displays dashes for data abort locations.
ROM-monitor: The RS232 RTS and DTS signals are now held low to make it possible to debug the IAR Philips kickstart card when the ISP and RST signals are activated on the board (jumpers JP7 and JP8).
Angel: Debugging with big endian byte order did not work when using the EPI Jeeni JTAG interface.
V4.10B 2004-03-09
J-Link: Flashing code larger than 8 Kbytes was erratic.
RDI: The
__setCodeBreak
C-SPY macro did not work on RDI devices.
[EW14295]
V4.10A 2004-02-21
Packed structs (
#pragma pack
) are not correctly displayed in C-SPY.
[EW14151]Executing a "Memory Fill" command for very large chunks of memory could take a long time and occasionally lead to debugger crashes.
[EW14252]The simulator responded with an illegal instruction error when executing coprocessor instructions. The new behavior is to silently ignore them unless it is recognized by the simulator, for example the VFP.
[EW14489]Long pathnames to projects could trigger a bug that forced the driver to use big endian mode.
[EW14860]Wrong simulation of
QDADD
andQDSUB
.
[EW14884]
V4.09 2003-12-15
- J-Link: First release.
V3.40B-P1 2003-10-06
Error in simulation of the VFP instructions
FMSC
,FNMAC
andFNMSC
.
[EW14464]VFP conversion of doubles to float could trash other VFP registers.
[EW14473]
V3.40A 2003-07-03
-
Program corrections
-
Pressing the End key anywhere on the last line in the Memory window will
put the cursor to the end of the previous line. This also happens when
selecting memory.
[EW12542, EW12645, EW12649] -
A problem where .ddf files containing lines longer than 1024 characters could not be
loaded has been fixed. The maximum line length is still fixed, but is now 16384 characters.
[EW13875] - Support for the Vector Floating-point Architecture (VFP).
- The simulator gives a warning in the log window if it detects an unaligned access. This is because ARM processors do not support unaligned accesses to memory.
New features
V3.30A 2003-02-18
RDI: When the CPU ran in SYSTEM mode, C-SPY failed to access
SPSR
and a fatal error (134) occurred.
[EW13054]Fixed problem: When executing in pipeline simulation mode the fatal error "Unknown exception 9 in driver" occurred.
[EW13064, EW13065]Angel: First release.
V3.21A 2002-09-30
RDI: Big-endian could not be enabled when initializing the RDI driver for BDI1000/2000.
[EW12345]The
R0-R14
,SPSR
registers were not properly synchronized with theR0, R14, SPSR_<mode>
registers when modifying one of these registers.
[EW12432]The
MSR
instruction was incorrectly simulated.
[EW12434]RDI: Entering a register name in the breakpoint dialog location field caused an internal error.
[EW12596]RDI: Improved download speed.
RDI: Recognition of
MCRR
,MRRC
,BKPT
instructions at single step done by the debugger.The
LDM
instruction restoring thePC
and theCPSR
masked bit 1 of thePC
when switching to Thumb mode.When enabling pipeline mode, breakpoints are triggered when OP-fetch is done which can cause the debugger to stop at an instruction that will not reach the execution stage later on. You must have this in mind when setting breakpoints when running in pipeline mode. In this release, the library function
exit()
has been modified, and will not interfere with the application anymore.
[EW12347]ROM-Monitor first release.
V3.20A 2002-06-19
- RDI: First release.
- ARM instruction set version 5TE is now supported.
-
Additional disassembly comments to instructions with the
[#xx,PC]
operand is now supported. -
The registers
SPSR
,R8_usr
toR14_usr
are now accessible through the Register window. -
C-SPY could could give an error message about an illegal instruction for valid
code.
[EW12247] -
Reading
SPSR
does not take the current processor mode into account, causing the wrong value to be read.
[EW12040] -
When expanding a structure with bitfields, C-SPY crashed.
[EW11379] -
Terminal I/O input did only accept ASCII characters (0-127), now characters
0-255 are supported.
[EW11969]
V3.11A 2001-12-03
-
The Call Stack window could sometimes fail to show parameter values.
[EW10086] - Code coverage in Thumb mode did not work.
- Interrupt simulation did not work properly.
V3.10A 2001-10-02
-
Data breakpoints on character variables located on even addresses could
fail.
[EW10081] -
The C-SPY SFR window flagged some values as lost and no change of SFR value
was possible.
[EW10085] -
Entering pointers to structure members or array elements in the location
field of the edit breakpoint dialog caused a fatal C-SPY error.
[EW10293] -
The C-SPY simulator could mix up
ASR
andLSR
in some cases. For example:ldr r4, [r1, r2, LSR #24]
[EW10296] -
The C-SPY simulator did not handle the
UMLAL
instruction correctly.
[EW10298] -
The simulator did not handle the simulation of
LDMIA SP!,{...,PC}^
correctly when returning from IRQ to SVC mode. Instead of incrementingSP_irq
,SP_svc
was modified.
[ARMDTW0020] -
The first message printed in a program using
printf()
could be lost in the terminal I/O window.
[ARMDTW0023] -
Doing a reset after program termination failed.
[ARMDTW0024] -
Enable pipeline mode. Select Low level - Memory Access Configuration from
the menu bar. In the dialog box, click Add. If the OK or Cancel button was clicked,
C-SPY crashed.
[ARMDTW0025] -
Single-step in assembler mode when debugging C code crashed C-SPY if
the Trace option on the Control menu was enabled.
[ARMDTW0026]
V2.10D 2001-06-29
-
The simulator does not consider the mode used when doing this instruction:
MRS R3,SPSR
. It always read fromSPSR_SVR
. This is now corrected.
[ARMDTW0010]
V2.10A 2001-02-21
-
Support for big-endian mode is implemented in this release. Big-endian
mode is selected with the command line option
-e
. The default mode is little-endian. -
Support for ARM9TDMI simulation is implemented. This affects the pipeline
simulation and the cycle counter. The ARM9 simulation mode is selected
with the command line option
-v1
. The default mode is ARM7 (-v0
).
V1.30A 2000-09-08
- Device definition file handling has been implemented in this release. Select the appropriate ddf file in the C-SPY options dialog box in the Embedded Workbench. It will then be possible to open the sfr window and access the sfrs defined for the current chip. The currently available ddf files are installed in the config directory. Corresponding include files (io*.h) are installed in the inc directory.
V1.20A 2000-05-28
- The name of this component has been changed from CWARM to CSARM.
-
Selection of disassembly mode is implemented in this release. Select one
of the entries in the Low Level menu.
Disassemble in Thumb mode
Disassemble in ARM mode
Disassemble in Current processor mode
Disassemble in Auto mode
To refresh the display of the disassembled code after the mode is changed, you need to scroll the window up and down far enough to get a refresh. - The cycle-accurate simulation mode is implemented. To enter this mode from start, select "Enable pipeline simulation" on the Simulator tab on the C-SPY options page to start the simulation in cycle accurate mode.
- Clock Speed Register is implemented. Fill in the clock speed in Hz. C-SPY will calculate the execution time in microseconds, and display it in the Register window.
V1.10A 1999-12-30
- First release.