ZDS II - Crimzon/GP Emulator 4.11.0 (Build 08012902) ============================================================================== Thank you for purchasing ZiLOG's Crimzon/GP Emulator kit for the Crimzon(TM) and Z8 GP(TM) product lines. The following features are provided in this release: - ZDS II Integrated Development Environment (ZDS IDE) - Crimzon(TM)/Z8 language tools including compiler, assembler, linker/locator, and librarian - Crimzon(TM)/Z8 GP(TM) In-Circuit Emulation supporting instruction history and complex breakpoints - Crimzon(TM)/Z8 GP(TM) OTP Device Programmer - Instruction Set Simulator and disassembler - Technical Documentation provided on the CD-ROM Note: The technical documentation supplied on this CD-ROM is available in PDF format. This format requires that Acrobat Reader be installed on the host machine. Acrobat Reader is available on this CD-ROM and is available free on the Adobe website at www.adobe.com. In the event of a component problem, please complete the Problem Report Form and submit it with your request. The form is located on the CD and in the installation directory of your hard drive. Our staff will use the information to diagnose or log the problem. Please note the driver name for the emulator has changed and all old projects must be open up and the emulator driver must be reselected even though the correct name is shown. (CR#3476) Contact Information -------------------------------------------------------------------------- ZiLOG Inc. Web Site: http://www.zilog.com Technical Support Channel: http://support.zilog.com Table of Contents -------------------------------------------------------------------------- - Changes from Previous Release - Compatibility - System Requirements - Applications and Other OS issues - Precautions and Limitations - Closed Change Requests - Open Change Requests CHANGES FROM PREVIOUS RELEASE ============================================================================== Refer to the 'Migrating from a Previous Release' section of the FAQ for information and pointers related to migrating/converting existing ZDS projects and targets. (to 4.11.0) - Combined support for Crimzon(TM) and Z8 GP(TM) product lines - Support for new Crimzon ZLF645 product line; support includes new processor instructions, an optional 16-bit stack pointer, a large memory model in the compiler, and flash programming via tools menu =>flash loader. Note: The flashloader is only used with USB smartcable. - Support for structures and unions in assembly programming - Run-time library extensions to support pointers to different memory spaces in otherwise standard functions - Because of customer requests, the default now is that unused bytes in the hex file are filled with FF. This allows ZDS to calculate the checksum consistently with other tools. This option can be turned off in the GUI if you prefer not to use it. - A more compact bit-field packing algorithm that saves data space. - Added the MAYINIT clause for segment definition to allow data in RAM segments to be directly initialized. See the ZDS User Manual for details. - To address a bug in previous releases, the names that are automatically generated for C function parameters when using static frames have been changed. This sould cause problems if your application calls C functions from assembly code. See the FAQ "Why is my application that calls C functions from assembly code not working as it did before the 4.9.3 release?" - Added support for new Linker warnings: Treat All Warnings as Fatal, Treat Undefined Symbols as Fatal, and Warn on Segment Overlap. - The project settings option set and user interface have been streamlined for more efficient project development. See the 'Migrating from a Previous Release' section of the FAQ for details. - The forced rebuild after changing from one build configuration to another can now be disabled. See Tools > Options > General > Always rebuild after configuration activated. - The Project Settings dialog has been redesigned for easier navigation. The set of available project options was not modified. - A brace matching feature was added to the editor. Use the Ctrl+] or Crtl+E key combinations while the cursor is next to the brace ('{' or '}') for which you'd like to locate the match. - The resizing of docked windows now works correctly. Additionally, docking windows re-appear at their previous size and location when re-opened. - The disassembler debug window is now a dockable window. - The ability to toggle the display of indicators for spaces and tabs in editor windows is now available via the Edit > Show Whitespaces menu item. - Toolbars positions are now restored properly for new ZDS session. - Communication settings have been divorced from the target configuration files. This information is now managed in debug tool configuration files. - The debugger will now program flash memory during the program download phase. It is no longer necessary to use the Flash Loader prior to a debug session. - ZDS now supports target files in the project directory as well as the default targets location. - Added an option for the number of bytes per line for Code Memory > Right mouse click > Save to File utility. - Added support for the F4 locate error feature that exists in Visual Studio 6 - ZConvert of ZDS I is now integrated with ZDSII. The utility can be accessed under Tools menu=>ZConvert Utility. - Function added to remove intermediate build files (Build menu > Clean). - ZDS User manual and online help have been significantly improved - Numerous Change Requests have been addressed. Refer to the Closed Change Requests section. COMPATIBILITY ============================================================================== Devices -------------------------------------------------------------------------- ZLF645 Series: ZLF645E0X2032G, ZLF645E0X2064G, ZLF645E0X2832G ZLF645E0X2864G, ZLF645E0X4832G, ZLF645E0X4864G ZLF645S0X2032G, ZLF645S0X2064G, ZLF645S0X2832G ZLF645S0X2864G, ZLF645S0X4832G, ZLF645S0X4864G ZLP12840 Series: ZLP12840XXX32, ZLP12840XXX64, ZLP12840XXX96, ZLP12840XXX28* ZLP32300 Series: ZLP32300XXX04, ZLP32300XXX08, ZLP32300XXX16, ZLP32300XXX32 ZLR64400 Series: ZLR64400XXX32, ZLR64400XXX64 ZLR32300 Series: ZLR32300X4804, ZLR32300X4808, ZLR32300X4816, ZLR32300XXX24, ZLR32300XXX32 ZLR16300 Series: ZLR16300XXX01, ZLR16300XXX02, ZLR16300XXX04, ZLR16300XXX08, ZLR16300XXX16 ZGP32300 Series: ZGP323XXXXX04, ZGP323XXXXX08, ZGP323XXXXX16, ZGP323XXXXX32 ZGR32300 Series: ZGR323XXXXX04, ZGR323XXXXX08, ZGR323XXXXX16, ZGR323XXXXX32 ZGR16300 Series: ZGR163XXXXX01, ZGR163XXXXX02, ZGR163XXX2004, ZGR163XXXXX08, ZGR163XXXXX16 *128K device Please refer to the Project>Settings>General>CPU selection for the latest supported devices. In-Circuit Debuggers/Programmers -------------------------------------------------------------------------- ZCRMZNICE01ZEMG ZLP128ICE01ZEMG ZGP323ICE02ZEMG Simulator Support for is no longer provided for the following: - ZLP323ICE01ZEM In-Circuit Emulator - ZGP323ICE01ZEM In-Circuit Emulator (Please refer to the Project>Settings>Debugger Tab for the latest updates.) SYSTEM REQUIREMENTS ============================================================================== Supported Operating Systems -------------------------------------------------------------------------- Windows XP Professional, Windows 2000 SP4, Windows 98 SE Recommended Host System Configuration -------------------------------------------------------------------------- Windows XP Professional Pentium III 500MHz processor or higher 128 MB RAM or more 100 MB hard disk space (includes Application and Documentation) Super VGA Video Adapter CD-ROM for installation USB High-Speed port (when using USB Smart Cable) RS232 communication port with hardware flow control Internet browser (Internet Explorer or Netscape) Minimum Host System Configuration -------------------------------------------------------------------------- Windows 98 SE Pentium II 233MHz processor 96 MB RAM 25 MB hard disk space (only includes Application) Super VGA Video Adapter CD-ROM for installation RS232 communication port with hardware flow control Internet browser (Internet Explorer or Netscape) Crimzon(TM)/Z8 GP(TM) Emulator -------------------------------------------------------------------------- Emulation Image 51.51 Communication Firmware 2.20 for ZCRMZNICE01ZEMG Communication Firmware 2.11 for ZLP128ICE01ZEMG/ZGP323ICE02ZEMG. (Notes: Changes are for ZLP12840 BA support) Communication Firmware 2.10 for ZLP128ICE01ZEMG/ZGP323ICE02ZEMG RS232 Communication port (for configuration and firmware upgrade) Hi-Speed USB (fully compatible with original USB) Ethernet 10Base-T compatible connection USB SmartCable (For ZLF645 programming support only) -------------------------------------------------------------------------- Firmware 1.7 or later Hi-Speed USB (Fully compatible with Original USB) Root (direct) or self-powered hub connection. *The USB SmartCable is a high power USB device. Non self-power hubs work unreliably. APPLICATION AND OTHER OS ISSUES ============================================================================== 1. Apply the latest Windows updates to the host system when appropriate. 2. ZDS II will terminate an active target connection when the host goes into Stand by or Hibernate. 3. Some systems with one or more other USB devices connected may not boot properly after connecting the USB Smart Cable. Workaround: Connect the ZiLOG USB Device after the system has started. PRECAUTIONS AND LIMITATIONS ============================================================================== Debugger & Programmer -------------------------------------------------------------------------- 1. The USB connection overrides the Ethernet connection on the Emulator. To use Ethernet, ensure that the USB cable is not connected. 2. The OTP programmer is not accessible while the emulator is running in debug mode. 3. Editing and building code while in Debug mode requires that the current debug session end. Restart the debugger, after completing the build, to debug the new code. 4. If the external target clock is removed while it is selected, the external clock must be reapplied or the emulator must be reset before communication can be established. 5. The timers are stopped while the emulator is not running. 6. The simulator is an instruction set simulator without special function register support for performing input/output operations. Therefore the SFR and their related debug windows may not contain accurate or any register information. 7. When plugged into a target, the internal clock is only reliable at 3.3 volts. In addition the target crystal must also be removed. 8. The target processor is not accessible while in STOP or HALT mode, so extra care must be taken when debugging a program that uses STOP or HALT instructions. Please review the "Debugging User Notices and Tips" section in the FAQ for more information. 9. When breaking on an event system trigger, the cycle that causes the trigger is not executed and does not appear in trace. In other words the execution will stop one cycle prior to the trigger cycle. 10. While a STOP or HALT is being stepped, the emulator will run in STOP or HALT mode until the proper recovery method is applied. The ZDS II debugger will indicate that the target is not running if the debug session is continued after the "Target in STOP or HALT mode..." notification. Please review the "Debugging User Notices and Tips" section in the FAQ for more information. 11. The emulator does not drive the RESET* pin low out to the target during an stop-mode recovery or power-on reset. This is different than the actual chip specification. 12. The behavior of the comparators on the ICE differ from the actual Crimzon(TM) devices. The reason for this is that the ICE uses a discrete LM339 comparator to emulate the Crimzon(TM) device's analog comparator function. The LM339 has a different frequency response characteristic from the Crimzon(TM) device. 13. The emulator is ready for communication after the two front panel LEDs have turned off. This may take 15 seconds. 14. The interrupt controller will not capture requests while the emulator is not running. This may cause the interrupt controller to miss GPIO and UART interrupts while stepping through a program. 15. This ZDS version requires Crimzon(TM) Emulator firmware version 2.1 or later for ZLx32300 and ZLR16300 device emulation. ZDS will not connect to the emulator if firmware version 2.1 or later is not correctly installed. 16. When upgrading, create a new target file or modify a distributed target file from the project settings debugger tab instead of copying and pasting a target file from an earlier version. 17. Attempting to program a ROM part with OTP Programming feature of the Crimzon(TM) Emulator (ZLP128ICE01ZEM) will damage the OTP Programmer hardware. 18. Low and High voltage selections (Device Type > Programming Voltage) in the OTP dialog (Tools > OTP Programmer) support programming parts of different voltage ranges. Select either Low Voltage to program the low voltage parts (ZGP323Lxxxxxxx) or High Voltage for the high voltage parts (ZGP323Hxxxxxxx). 19. When single stepping through setting option bits the option bits are being setup properly but the display window does not reflect true settings. The workaround is to use a break-point setup after operation where bits are being set, and to use “RUN” command of the ZDSII GUI. After the execution the display window will display correct information. 20.Intermittent performance of the Event system when the break point set at the single byte command, such as EI, or DI. The trigger might occur on or after the event. The workaround is to setup an event at the next multi-byte instruction, and to use “RUN” command of the ZDSII GUI. The break will occur where it expected. 21. Undefined status of the bit 0 and 1 of the Port 3 when port is used in the digital mode and the pull-up are enabled. The workaround is not to do use pull-up option for lower nibble of the Port 3. 22. When using trace feature of the ICE and the processor is coming out of reset the very first frame is repeated twice in the raw, and disassembly format. The workaround is to disregard the very first frame in both raw and disassembly format. 23. When using RAW or UNFILTERED trace feature of the ICE there is an extra frame with wrong information when processor is executing CALL and RET instruction. The workaround is to disregard extra frame in the RAW and UNFILTERED trace. 24. Timer control register(s) cannot be modified while single stepping instructions that are modifying/initializing them. When the emulator is in background mode (not running user’s code) the timer(s) are stopped because the clock that runs them is stopped. This clock is also needed to modify the value of the timer control register(s). The workaround is not to single step the initialization of the timer control register(s). Instead, set a breakpoint before or after initialization, and run the actual instructions that modify the registers in foreground mode. 25. By default, the Crimzon emulator stops the timers when the Break command, Step Into command, Step Over command, or Step Out command is selected (or the respective buttons are pressed). The timers do not start again until you select the Go command or press the Go button. The following functions are affected when the timer clocks are stopped: - Interrupts are not latched on the port pins - Interrupts are not latched or processed in the interrupt controller - Logic to switch between RC-osc and system clock is disabled - Loading of the TIMER CONTROL REGISTER tcon 0,1,2 26. For ZLF645 emulation only: When recovering from stop mode when SMR bit 5 (Stop Delay) is ON (1), you may encounter different recovery time. This is not an issue when this bit is OFF (bit5=0, no reset delay after decovery). Please set SMR bit 5 to OFF(0) when debugging your code. If needed you can set it to ON(1) on your final code prior to flashing. This is not a problem on actual silicon. 27. For ZLP323, ZLR163, ZLR323, ZGP323, ZGR323 and ZGP163 emulation only: Reading CTR3 T8/T16 Control Register, the emulator will return a value of "0" on Bits D4 and D3 instead of a "1" as specified in the Product Specs. This is not a problem on actual silicon. Compiler, Assembler, Linker/Locator, & Librarian -------------------------------------------------------------------------- 1. There was a silicon erratum in the initial version of the ZLP12840 silicon (see the ZiLOG document, "Product Update: Errata for ZLP12840", document UP0073, issue #1: Changing the register pointer causes corruption in locations FC, FD, FE, and FF of banks 1, 2, and 3). This erratum affected the usage of the compiler. When using silicon affected by this erratum, if you have a project that uses both assembly and C code you must never change the value of the RP register; the value set up in the startup module must never be modified for the duration of your application. Failure to adhere to this restriction will result in data corruption. This means that all accesses to RAM outside of RDATA, such as to access the peripheral control registers located in Banks D and F, must be made by using the LDX instruction, rather than by changing the RP to point to those banks and then using the shorter LD instruction. This silicon erratum has been fixed in the more recent silicon releases. If you are using silicon with the fix, you do not need to adhere to the compiler restriction described here. Refer to the latest version of UP0073 for information on how to make sure that your silicon does not have this problem. 2. There was another silicon erratum in the initial version of the ZLP12840 silicon (see the ZiLOG document, "Product Update: Errata for ZLP12840", document UP0073, issue #2: Location 04 in bank 0 of the RAM is not accessible using the LDX or LDXI instructions). This erratum affected the usage of the assembler. When using silicon affected by this erratum, the 12-bit address $004 must never be accessed using the LDX or LDXI instructions. Doing so will result in data corruption. Usage of the compiler is not affected by this erratum. This silicon erratum has been fixed in the more recent silicon releases. If you are using silicon with the fix, you do not need to adhere to the assembler restriction described here. Refer to the latest version of UP0073 for information on how to make sure that your silicon does not have this problem. IDE -------------------------------------------------------------------------- 1. Options available via Project > Settings... have been reworked for more efficient and correct use. Note that some options that existed in the multiple settings tabs have been moved to the General page, most notably Generate Debug Information. Refer to the ZDS User Manual, Online Help and FAQ for assistance. 2. The Simulator is now a Debug Tool option, where previously it was a target. This allows the Simulator to better operate more correctly by using target configuraton settings. 3. The Motorola S-record format is not supported. Utilities exist to convert files to the S-Record format from one or more of the formats supported by ZDS II. These may be acquired via the Internet using an Internet search site such as Yahoo or Google. CLOSED CHANGE REQUESTS ============================================================================== IDE -------------------------------------------------------------------------- (Fixed in 4.11.0) CR 531 Docking debug windows are not redrawed properly for every debugger session. CR 709 The source file window is activated but not retored if minimized. CR 1177 Debug windows is hard to resize. CR 1435 The .txt. files can not be added to the project. CR 1766 Source window disappear when electing Dock or float by right-mouse clicking on the title bar. This feature is no longer supported. CR 3218 "File Browser" in the "Find in file" dialog shows the same directory for mulitple-opened instances of ZDS. CR 3219 Double clicking the folding in the project view doesn't expand the folder to show the files contained therein. CR 3260 Timestamp of the trace window is shown in hexadecimal instead of seconds. CR 3651 Breakpoints added over the limited amount not shown as disabled in breakpoint window. CR 3939 If Target VCC is selected as a standalone, clock source is not defaulted to internal clock in Debugger page > Target > Setup. CR 5516 No Short-cut key for "Find in Files". CR 5588 ZDS is sometimes extreemly slow after opening a project. CR 7087 Opening another project during a build causes ZDS to crash. This opertion is prohibited in 4.11.0. CR 7635 Find in Files shows different results for two instances of ZDS. CR 7636 Find in Files shows occurences on a single line. CR 8455 'Set Next Instruction' does nothing when inititiated while NOT in debug session CR 8658 Find In Files with an invalid path in the In folde casues an IDE application error. CR 8711 Variables of structured array can not be expanded in the watch window. CR 8797 Breakpoints can not be enabled or disabled in run state. CR 9350 Deleting config script command results in the active config being changed to Debug even if the active config was not deleted. CR 9458 Closing all documents using "close all" of the window menu does not prompt to save modified files. CR 9501 Build error occurs with short path. CR 9564 When the project is from a previous version of ZDS and is prompted to create a backup but provides no option to cancel the conversion/opening process. CR 9625 Mis-spelled in "target power monintor" message. -------------------------------------------------------------------------- (Fixed in 4.11.0) CR 10526 Wrong debug information, confusing the debugger, if an assembly file that contains no code is included in the project. CR 9606 Tokens are taken as labels despite neither starting in column 1 nor being followed by a colon. CR 8161 Assembler should provide a macro .DATE which gives the date when the program was assembled. CR 8058 Assembler crashes if length of include path is over 1024 characters. CR 4258 Mapfile and debug line information are corrupted when both absolute and relocatable segments are in use. Compiler -------------------------------------------------------------------------- (Fixed in 4.11.0) CR 10664 Long integers don't work correctly as case labels. CR 9997 Compiler hangs when compiling a switch-case for which the default case is an empty while(1) loop. CR 9919 Struct members with same name but different scope not being accessed correctly. CR 9390 Case labels sometimes being incorrectly treated as signed values. CR 8966 Internal error in a particular case where a preprocessor constant is passed as a function argument. CR 8775 Overly aggressive optimizing away of loops when global variable is used as the loop index. CR 8754 Bad code generated for some switch-case constructs when the cases are not separated by break statements. CR 8630 Internal error when using the ^= operator on bitfield members. CR 8560 Internal error on some expressions involving bitwise operations on bitfield members, depending on their declared type. CR 8555 Internal error on for loop whose body is unreachable due to the test condition in the for(;;) expression. CR 8466 Internal error when 2 structure definitions refer to each other recursively. CR 8393 Read of a volatile peripheral control register optimized out when the value read is not used later in the function. CR 8229 Function called twice if used with a boolean expression in an initializer, as in enum EnumVal x = SetInitValue(); CR 8041 Over-aggressive optimization in some cases for nested if statements. CR 7081 Compiler does not handle mixed bit-field types in a single structure. CR 6556 When using deprecated const in ROM feature, problem with selective declaration of some structure members to be const. CR 6449 In code for ZLP12840, clearing of the PMP register can be optimized out, which should not be allowed. CR 5962 Internal error caused by conflicting interpretations of "const" when "const in RAM" option is in effect. CR 3899 Compiler should issue a warning when it sees an extern with no storage class to define the expected type. CR 2276 Sizeof a local struct type definition is calculated incorrectly. CR 2117 Code generated for the large model was not interrupt safe. CR 1805 Enum initializer value which uses sizeof gives garbage initialization. Librarian -------------------------------------------------------------------------- (Fixed in 4.11.0) CR 8235 Librarian may crash on rebuilds, especially for debug builds. CR 4690 The librarian fails when given a command line longer than 16K characters, due to many modules with long path names. Linker -------------------------------------------------------------------------- (Fixed in 4.11.0) CR 9110 Linker improperly reports out of range error when RDATA lower limit is 0. Run-Time Library -------------------------------------------------------------------------- (Fixed in 4.11.0) CR 9270 Sprintf formatted output is sometimes not printing the correct number of digits after the decimal point. CR 8624 Return value from sscanf() is wrong if a string consisting of one character plus null termination is read. CR 8456 The assert macro calls the function fprintf, which is not included in the library. CR 3377 The assert example given in the User Manual gives a compiler error.