- Important information
- New features
- Known problems
- Program corrections
- User guide corrections
- Miscellaneous
- Release history
Important information
- The IAR C-SPY ROM-monitor for 8051 is a modular monitor designed to work with a number of on-board/chip monitors. Refer to the manual for details on how to build the monitor.
- SFR paging (when supported by a specific device) is only applicable to the Register window and the Memory window in the debugger. Other C-Spy windows might display incorrect SFR values because they have no knowledge of the current SFR page. For example, in the Disassembly window, the incorrect SFR name might appear. The simulator driver does not support SFR paging at all.
-
Segger J-Link debugger driver
To be able to use this C-SPY debugger driver, you must install the appropriate J-Link hardware drivers. Run 8051\drivers\JLink\InstDrivers.exe.
If Live update is enabled in the Memory window or if the Live Watch window is open, the responsiveness of the graphical user interface might be affected in a negative way if too small update intervals are configured in the IDE options.
The real-time behavior of the application being debugged might be affected if Live update is enabled in the Memory window or if the Live Watch window is open. This is because the CPU is paused when performing memory accesses during execution. -
Texas Instruments debugger driver
In a debug scenario where the device is put into low power (sleep) mode, be aware that the debugger will then loose the communication with hardware thus making the debugging error-prone. To avoid this, make sure to deactivate code which puts the device into sleep mode before you debug it. -
Silicon Labs debugger driver
This driver is for the Silicon Labs USB Debug Adapter (UDA). When debugging C8051F3xx/F4xx/F5xx/F7xx/F8xx/F9xx devices the Silicon Labs 2-wire interface must be used. Enable this option on the Silicon Labs Download page.
The watchdog timer (WDT) is by default on, which could cause unexpected behavior, such as that the disassembly window displays data space instead of code space, due to the periodically triggered interrupt. If the WDT is not used we recommend you to disable it. This can be done in main, but in some cases this might be too late. So if needed, place the code for disabling the WDT in the low_level_init() function which is called from the cstartup code:__near_func __root char __low_level_init() { /* code to disable WDT */ return 1; // non zero will initialize data segment }
-
Analog Devices debugger driver
In case you are using 1 pin Emulation POD USB with ISO you can speed up the communication by doing the following: Select Device Manager and expand the Ports(COM & LPT)setting. Open properties for 1-pin Emulation POD USB with ISO and select the Port Settings property page. Click the Advanced... button and set Latency Timer to 1 msec.
The following devices are not supported:- ADUC812
- ADUC814
- ADUC816
- ADUC824
-
Infineon debugger driver
To be able to use this driver, you will need to have the Debug Access Server (DAS) from Infineon either installed and running on your PC, or available on your network. The DAS installation package is available in your IAR Embedded Workbench for 8051 installation in the directory 8051\drivers\Infineon. -
FS2 System Navigator debugger driver
The System Navigator software bundle must be installed and activated on your PC before you can use this driver. Please refer to the documentation provided with the System Navigator software for information on how to install this software.
The PATH environment variable of your system must be updated to contain the bin directory of your System Navigator installation (typically c:\program files\fs2\sysnav\bin). Please note that changing your system path might require a reboot of your computer before the change takes effect.
In order to be able to download application code to the target device the flash.cfg file included in the System Navigator software package must contain an entry that describes how to flash the device you are working with. Please refer to the System Navigator documentation for information on how to update this file.
The following options can be set for the driver in the options dialog:-
Has program flash
Check this box if the device you are working with has flash memory that can contain executable code. -
Entry in flash.cfg
The label in the flash.cfg file that describes how to program the flash of the device you are working with. -
Flash areas
A list of the programmable addresses in the devices flash memory. This value is specified as a comma separated list of hexadecimal ranges, for instance: 0x0000-0x1FFF, 0x3000-0x3FFF. -
Has program RAM
Check this box if the device you are working with has ram memory that can contain executable code. -
RAM areas
A list of the executable addresses in the devices ram memory. This value is specified as a comma separated list of hexadecimal ranges, for instance: 0x8000-0x87FF, 0xC000-0xC7FF.
-
Has program flash
-
Nu-Link debugger driver
To be able to use this C-SPY debugger driver, you must install the appropriate Nu-Link hardware drivers. Run 8051\drivers\Nu-Link\Nu-Link_USB_Driver 1.2.exe.
The Set Next Statement feature does not work together with the Nuvoton Nu-Link debug probe. Do not use the command Debug>Set Next Statement if you are using that debug probe.
New features
- None.
Known Problems
- [EW8051-957] The J-Link Software and Documentation Pack V6.40 and later from Segger Microcontroller GmbH does not work with IAR Embedded Workbench for 8051.
- [EW8051-951] If a Nuvoton device has been selected, the C-SPY Simulator can crash under a Chinese version of Windows when you step having the Watch window open.
- [EW8051-767, EW20694] The interrupt simulation system currently does not take interrupt priorities into account.
-
[EW8051-680, EW18593]
There are some issues when using preprocessed C source code with #line statements.
If the file referenced by the #line statement is not included in the project, the full path to the file must be specified. It is sometimes not possible to set breakpoints in code referenced by a #line statement.
Program Corrections
- None
User guide corrections
- None.
Miscellaneous
- When using the ROM-Monitor debugger driver, downloading a non-UBROF file will not set PC to program start. You can work around this limitation by unchecking Run to main in the debugger options menu, download the application, and then set PC manually before execution is started.
Release history
10.20.1, April 2018
New features
- The Nu-Link C-SPY debugger driver for Nuvoton N76E is now available.
10.10.3, October 2017
Program corrections
- [EW8051-932] When you use the Silicon Labs debugger driver, an executable image cannot be downloaded to hardware if there are multibyte characters in the file path or file name.
10.10.1, April 2017
Program corrections
-
[EW26160]
Peripheral simulation does not work correctly.
9.30.1, December 2015
9.20.3, October 2015
New features
- Improved support for banked XDATA memory. For devices with a 16-bit data pointer which support banking of the XDATA memory space, the option --proc_xdata_banking can be specified in Project>Options>Debugger>Extra Options. This enables C-SPY to manage the DPTR register and the PDATA/XDATA stack pointers properly.
9.20.2, August 2015
New features
- The Update Now and Live Update features of the Memory window are now available when using the Segger J-Link debugger driver.
- The Live Watch window is now available when using the Segger J-Link debugger driver.
Program corrections
-
[EW25449]
When using the Silicon Labs debugger driver, the editor window shows an incorrect location when you break or pause the debugger.
9.20.1, May 2015
New features
- The Segger J-Link debugger driver for Silicon Labs EFM8 is now available.
Program corrections
-
[EW25377]
It is not possible to use the 'Download extra image' options because the 'Offset' input field does not accept input.
9.10.1, December 2014
New features
- Support for the Silicon Labs C8051F336-9 devices has been added.
Program corrections
-
[EW22133]
The Stack plug-in is not compatible with the extended stack present in the Analog Devices ADE devices. -
[EW24414]
The Silicon Labs debugger driver is unacceptably slow when downloading the binary code to the hardware. -
[EW24619]
PDATA stack incorrectly reported as out of range.
8.30.3, April 2014
New features
- Support for the Silicon Labs Si106x/108x devices has been added.
8.30.1, December 2013
New features
- Support for the Silicon Labs C8051F85x/F86x devices has been added.
Program corrections
-
[EW23834]
The Register window displays fewer virtual registers than defined if the number of defined virtual registers is greater than eight. -
[EW23870]
Disassembling other zones than CODE could lead to a debugger crash. -
[EW24167]
When using the Silicon Labs debugger driver, the SFR paging for some devices (C8051F04x and C8051F06x) does not work correctly.
8.20.1, October 2012
New features
-
Support for SFR paging and banked xdata has been added to the C-SPY Debugger driver for Silicon Labs.
Note: This is not supported in the C-SPY Simulator. - When using the Infineon debugger driver, you can now set software breakpoints in the program memory XRAM area.
Program corrections
-
[EW22392]
When using the Silicon Labs debugger driver, changing the value of the SFRPAGE register in the Register or Memory window now works for all devices. -
[EW23069]
If stopped at a breakpoint, the Texas Instruments debugger driver will now always execute a step instruction before continuing execution to ensure that the driver does not immediately gets stuck at the same breakpoint again. -
[EW23101]
The FS2 debugger driver now performs a hardware reset before it attemts to download an application to the target.
8.11.1, February 2012
8.10.4, Dec 2011
Program corrections
-
[EW22877]
The disassembled address of a short jump instruction displayed the address wrong if the size of the instruction was 3 bytes.
8.10.3, September 2011
Program corrections
-
[EW22582]
You could not specify ranges of pages for the Debugger>Texas Instruments>Download>Retain flash pages option. This is now possible. -
[EW22645]
When using the Texas Instruments debugger driver, the watch window displays incorrect values for variables in PDATA/XDATA memory. -
[EW22649]
When using the Texas Instruments debugger driver, the memory window displays incorrect values for memory cells in PDATA/XDATA memory.
8.10.1, May 2011
New features
-
More breakpoints available
The number of hardware breakpoints used by the runtime library can now be configured, making it possible to free up more breakpoints for use in the application code. -
Debug without downloading
You can now start the debugger with or without downloading code, using two new buttons on the toolbar and two new Project menu commands. There are also two new corresponding ways to restart the debugger during the debug session. -
Timeline Window
A new Timeline window in the simulator allows for graphically correlated visualization of the call stack and the interrupt log, plotted against time. - When using the Analog Devices debugger driver, the cache used by the Memory window will now update itself at runtime to also reflect changes to code memory.
- When an Analog Devices device is programmed, the contents of the data flash area is now retained by default. A new option, Debugger>Analog Devices>Download>Erase data flash, has also been added. When selected, this option will clear the contents of the data flash area when the device is programmed.
- Support has been added for the Texas Instruments CC2540 device family.
- Support for the Infineon device XC864, including the XC864 Easy kit, has been added.
Program corrections
-
[EW20295]
Auto variables placed in registers were not displayed correctly in the Watch window. This has been corrected. -
[EW20975]
Using a custom runtime library together with a custom linker configuration file will no longer cause C-SPY to terminate. -
[EW21942]
When using the Silicon Labs debugger driver, it was not possible to write to SFR memory from the Register window or the memory window. -
[EW22031]
The Stack window displayed structures with too many padding bytes. This has been corrected. -
[EW22102]
Accessing an uninitialized generic pointer variable in the simulator could cause the IDE to terminate. This has been corrected. -
[EW22134]
When using the Texas Instruments debugger driver, attempting to view memory-mapped SFR registers in C-SPY for certain devices would result in lost communication with the hardware. -
[EW22157]
The default code-bank register mask value was not correct for certain Texas Instruments devices. -
[EW22278]
It is now possible to specify a flash page number greater than 64 for the Debugger>Texas Instruments>Download>Retain flash pages option.
7.60.4, August 2010
Program corrections
-
[EW21926]
Support for handling --ks_version reenabled.
7.60.1, June 2010
New features
- This file was introduced in version 7.60 of IAR Embedded Workbench for 8051. It covers changes and modifications made to C-SPY core functionality since that release.
- Support has been added for the Texas Instruments CC25xx device family. The options dialog for this driver has also been modified to accomodate for the different mechanisms used for protecting flash memory for these devices. Flash pages that are to be protected should be specified as a string of decimal characters, according to the example provided in the options dialog.
- Support for the Silicon Labs device families Si10xx, C8051F8xx and C8051F9xx have been added.
Program corrections
-
[EW20634]
Simulation of interrupts with a higher priority rank than 3 no longer causes C-SPY to issue an error message. -
[EW21056]
The Silicon Labs debugger driver is now correctly handling the scratchpad memory area that exists in certain Silicon Labs devices. -
[EW21355, EW21361, EW21362]
The user can now control access to memory address ranges in the following zones by using the [Memory] tag in the .ddf file:- Code
- XData
- IData
- SFR
-
[EW21368]
The interrupt definitions for the Silicon Labs C8051F060 device has been corrected. -
[EW21539]
Symbolic names for special function registers in ddf files were not able to override some internal hard coded names. This has been corrected. -
[EW21540]
C-SPY no longer issue superfluous warnings for symbolic SFR names defined more than once. -
[EW21802]
The bitfield information for the Silicon Labs C8051F34x family has been corrected.
7.51E, June 2009
New features
- The Nordic Semiconductor debugger driver is now available.
7.51B, May 2009
New features
- The FS2 System Navigator debugger driver is now available.
7.51A, March 2009
Program corrections
-
[EW20502]
Variables declared with the __sfr attribute was mistakenly considered as IDATA variables by C-SPY. This has been corrected. -
[EW20970]
An issue in the ROM-monitor implementation, making the compiler emit a w45 warning when linking a ROM-monitor against the pre-built communication library, has been fixed.
7.50D, November 2008
Program corrections
-
[EW20641, EW20642]
When using the Silicon Labs debugger driver the download process could fail to program some code memory segments.
7.50A, June 2008
New features
- Support for the Infineon device XC878 as well as the XC878 Easy kit has been added.
- Support for the Silicon Labs C8051F9xx, C8051F52xA, and C8051F53xA devices was added.
Program corrections
-
The stack plugin is now able to initialize the extended stack correctly when using the
Analog Devices debugger driver.
- The Cache code memory option was removed from the Silicon Labs debugger driver menu since dynamic updates of code memory is now enabled for all debugger drivers.
7.40A, February 2008
Program corrections
-
[EW17567]
Variables with memory attributes specified cannot be viewed in debug windows like the Watch and Memory windows. -
[EW18420]
The Live Watch window is no longer available when debugging on hardware that does not support this feature. -
[EW19050]
The #CYCLECOUNTER symbol is now displayed in C-SPY as an unsigned 64-bit value. -
[EW19310, EW19358]
Bit variables are now correctly displayed in the debugger watch window. -
[EW19350]
The simulator has been rewritten for the Banked code model, fixing several issues. Notably the following:
- Setting a breakpoint in the root bank will now be visible if another bank is active.
- A breakpoint in the root bank will now trigger even if another bank is active.
- Labels in the root bank will now be displayed even if another bank is selected.
-
[EW19907]
A number of issues related to how the Infineon debugger driver handled the SYSCON0 register has been fixed. - Sometimes breakpoints were not removed at the end of a debug session due to a problem with the CODE memory cache in the Analog Devices debugger driver. This has been corrected.
- The Chipcon debugger driver has been renamed to Texas Instruments in the IDE.
- The Silicon Labs debugger API was updated to the latest version.
7.30C, October 2007
Program corrections
-
[EW19779]
A problem with executing the Silicon Labs debugger driver from the command line via cspybat.exe has been fixed.
7.30B, September 2007
Program corrections
-
[EW18763]
Sometimes image verification errors were incorrectly reported when loading code to the target using the option General Options>Target>Location for constants and strings>ROM mapped as data. - When downloading an application using the Chipcon debugger driver, a page being written to flash could partially overwrite a previously written page with garbage data.
7.30A, August 2007
Program corrections
-
[EW18917]
The stack plugin would sometimes erroneously report that the stack pointer was outside the stack segment. -
[EW19044]
Incorrect SP out of bounds reported when using non UBROF output format.
7.21A, May 2007
New features
- Flash protection (boot block, debug inteface and page) added to the Chipcon debugger driver options.
- Retain memory pages added to the Chipcon debugger driver options. Pages to be retained should be entered on the form 1,2,3,4....62,63. To retain the IEEE address, "IEEE" can be entered.
- The Infineon debugger driver is now available.
- The Silicon Labs debugger driver now supports banked code.
- The Silicon Labs debugger driver now downloads the code to the target faster than before.
Program corrections
-
[EW18279]
The context menu in the Messages window contained Breakpoint Usage instead of Copy, Select all and Clear all. -
[EW18287]
Reading the PSW.P as a bit in instructions is now working correct. - When using the Analog Devices debugger driver and single stepping through C code, stepping over a return statement could sometimes cause the debugger to loose track of its current position.
-
[EW18476]
When using the Silicon Labs debugger driver, the application hung when the power supply was removed. - When using the the Chipcon debugger driver and unified memory access, mapping SFRs and XDATA to CODE memory could sometimes cause unintentional reads of registers cleared by hardware.
- Smaller update of the debuggers has been done for this release. Most updates have been done to improve the stability and speed of the various debuggers.
7.20H, November 2006
New features
- The Analog Devices debugger driver now supports both ADu and ADe devices.
- The Analog Devices debugger driver has been updated to improve stability and download speed.
- Better support for the latest revision of the Chipcon CC2430 device.
- The Chipcon debugger driver has been updated in order to improve overall stability.
- The Chipcon debugger driver options dialog has been updated with improved logic to handle checkbox options.
- Added support for the Silicon Labs C8051F34x devices.
- Added configuration files for the Silicon Labs Si8250UM device.
7.20D, May 2006
New features
- The default Stack guard behaviour has changed in the GUI.
-
There is a new option, Debugger>Analog Devices>Serial Port>Override default CPU clock frequency.
The following frequencies are used for some of the evaluation boards:
- ADUC831 11059200 (if the 11.0592MHz crystal is used)
- ADUC832 16777216
- ADUC834 12582912
- ADUC836 12582912
- ADUC841 11059200 (if the 11.0592MHz crystal is used)
- ADUC842 16777216
- ADUC843 16777216
- ADUC845 12582912
- ADUC846 12582912
- ADUC847 12582912
- ADUC848 12582912
- The communication between the host and the device has been improved in the Analog Devices debugger driver. This improvement will make all the debug commands execute faster.
- A new menu option, Leave Target Running, has been added in the Chipcon debugger driver menu. Selecting this option will leave the target system running when the debug session is closed.
Program corrections
- Smaller update of the debuggers has been done for this release. Most updates have been done to improve the stability and speed of the various debuggers.
- When using the Chipcon debugger driver, the FMAP register was erroneously overwritten when execution was stopped. This could cause problems if execution was stopped while executing an interrupt or a library routine.
7.20C, January 2006
Program corrections
-
[EW16227]
The dissassembler generates the wrong relative address for the DJNZ instruction. The generated code is correct but not the displayed address in the dissassembler window. - Smaller update of the debuggers has been done for this release. Most updates have been done to improve the stability and speed of the various debuggers.
7.20B, November 2005
New features
- The simulator does not count the code bytes in the kickstart version any more. This makes it possile to use the kickstart version as a unlimied assembler development tool.
- It is now possible to select among more than just 4 different COM ports when using the Analog Devices debugger driver.
7.20A, October 2005
New features
- The Chipcon debugger driver is now available.
- The ROM-Monitor framework and debugger driver is now available.
Program corrections
-
[EW15837]
When a breakpoint is reached, using the Silicon Labs debugger driver, IAR C-SPY will not update its window. However, it is updated immediately when the mouse pointer is moved to the window. -
[EW15903]
When using the Silicon Labs debugger driver, the code memory window is now updated correctly when modifying flash memory. -
[EW15980]
When using the Silicon Labs debugger driver, register bank 0 values are now displayed correctly. -
[EW15985]
When using too much code in the Baseline and Kickstart edition, the error message stated that the limits were 8192 and 4096 'Kbytes' respectively, when it should instead state 'bytes'. -
[EW16225]
The simulated data brekpoints now work for all memory types, not just for IDATA. -
[EW17047]
When using the Silicon Labs debugger driver, there was a momentary hangup after download using the JTAG interface (does not apply to the 2-wire interface). -
[EW17229]
The file custom_formats.dat was missing in the previous release and thus the STL containers were not displayed at all levels.
7.10A, July 2005
New features
-
Breakpoints window
A new non-modal Breakpoints window has been added. -
STL containers display
Smart display of STL containers during debugging. - Auto-display debugger window added.
- Data coverage added.
- The Analog Devices debugger driver is now available.
6.11A, October 2004
New features
- The Silicon Labs debugger driver now supports both the serial port and USB adapters.
Program corrections
-
[EW15008]
When producing output in the AOMF8051 format and linking files from the IAR 8051 C/EC++ Compiler version 6, XLINK could produce incorrect code if any of the input files contained debug information for a block local variable. See issue 15288 in the XLINK release notes. -
[EW15290]
The debugger now manages to display the memory content for Silicon Labs C8051F3xx devices.
6.10A, February 2004
New features
- The Silicon Labs debugger driver is now available.