ZiLOG Developer Studio II - eZ80Acclaim! 4.10.1 (Build 06092501) ============================================================================== Thank you for purchasing a ZiLOG eZ80Acclaim! development kit! The following features are provided in this release: - eZ80Acclaim! language tools including C compiler, assembler, linker/locator, and librarian - Instruction Set Simulator and Disassembler - ZiLOG Standard Library (ZSL) - In-Circuit Debugger and Flash programmer - USB Smart Cable, Ethernet Smart Cable, ZPAK II, and eZ80Acclaim! Serial Smart Cable support The technical documentation supplied on this CD-ROM is available in PDF format. This format requires that Acrobat Reader or equivalent 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. Contact Information -------------------------------------------------------------------------- ZiLOG Inc. Web Site: http://www.zilog.com Technical Support Channel: http://support.zilog.com Table of Contents -------------------------------------------------------------------------- - Introduction - Changes from Previous Release - Compatibility - System Requirements - Application 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.10.1) - Updated StarterProject sample to support eZ80F91 rev BB (see header comment in main.c for details) - Change Requests have been addressed. Refer to the Closed Change Requests section for details. (to 4.10.0) - Updated to support eZ80F91 rev BB silicon. - 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. - 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. - Added support for new Linker warnings: Treat All Warnings as Fatal, Treat Undefined Symbols as Fatal, and Warn on Segment Overlap. - Support for the new Ethernet Smart Cable has been added. - Additional flash devices are supported by the Flash Loader feature. See the Compatibility section for details. - The forced rebuild after changing from one build configuration to another can now be disabled. See Tools > Options > General > Force rebuild after configuration activated. - ZDS User manual and online help have been significantly improved. - The eZ80F91.h, eZ80F92.h, eZ80F93.h, eZ80L92.h, and eZ80190.h have been updated. The _set_vector() and _init_default_vectors() prototype has been placed in each of the listed header files. A portion of the eZ80L92.h and eZ80190.h is deprecated but may be uncommented if needed by an application. - The obsolete, "alternative" header files eZ80190A.h and eZ80190B.h have been removed. - ZDS now supports target files in the project directory as well as the default targets location. - Function added to remove intermediate build files (Build menu > Clean). - Numerous Change Requests have been addressed. Refer to the Closed Change Requests section. COMPATIBILITY ============================================================================== Devices -------------------------------------------------------------------------- eZ80Acclaim!(TM) MCU: eZ80F91, eZ80F92, eZ80F93 eZ80 MPU: eZ80L92, eZ80190 External Flash Devices -------------------------------------------------------------------------- Micron: MT28F008B3xx-xxB, MT28F008B3xx-xxT AMD: AM29LV160BB, AM29LV160BT, AM29LV008BB, AM29LV008BT, AM29LV081B ST Micro: M29W008AB, M29W008AT, M29W008EB, M29W008ET Atmel: AT49BV162A, AT49BV162AT Intel: TE28F800B3BA, TE28F800B3TA SST: SST39XX080 Processor Modules -------------------------------------------------------------------------- eZ80F91 Mini, eZ80F91, eZ80F92, eZ80F93, eZ80L92, eZ80190 Hardware Platform -------------------------------------------------------------------------- eZ80 Family Evaluation Platform eZ80Acclaim! Platform (eZ80F91 MDK Kit) In-Circuit Debuggers/Programmers -------------------------------------------------------------------------- USB Smart Cable, version 1.2 or later: ~ Supports target frequencies from 5MHz to 50MHz ~ Supports target voltages from 3.0V to 3.6V ~ Requires 2mA from the target Note: USB Smart Cables distributed with ZDS 4.8.1 Beta are not compatible with the drivers in this release. Ethernet Smart Cable, version 1.0 or later: ~ Supports target frequencies from 5MHz to 50MHz ~ Supports target voltages from 3.0V to 3.6V ~ Requires 2mA from the target ZPAK II (Ethernet), version 1.6 or later: (bootloader, v1.30 or later) ~ Supports target frequencies from 5MHz to 50MHz ~ Supports target voltages from 3.0V to 3.6V Serial Smart Cable for eZ80Acclaim!, version 1.0 or later: (bootloader, v1.0 or later) ~ Supports target frequencies from 5MHz to 50MHz ~ Supports target voltages from 3.0V to 3.6V ~ target current consumption is about 170mA (should not exceed 300mA) USB device drivers and installation instructions can be found in the following locations: \Driver Drivers\USB\ The firmware and upgrade instructions can be found in the following directory: \bin\firmware\ Please visit ZiLOG's website for latest versions. http://www.zilog.com/tools/software.asp SYSTEM REQUIREMENTS ============================================================================== Supported Operating Systems -------------------------------------------------------------------------- Windows XP Professional, Windows 2000 SP4, Windows 98 SE, Windows NT 4.0 SP6 Recommended Host System Configuration -------------------------------------------------------------------------- Windows XP Professional Pentium III 500MHz processor or higher 128 MB RAM or more 135 MB hard disk space (includes Application and Documentation) Super VGA Video Adapter CD-ROM for installation Ethernet 10Base-T compatible connection USB High-Speed port (when using USB Smart Cable) One or more RS232 communication ports Internet browser (Internet Explorer or Netscape) Minimum Host System Configuration -------------------------------------------------------------------------- Windows 98 SE or Windows NT 4.0 SP6 Pentium II 233MHz processor 96 MB RAM 25 MB hard disk space (only includes Application) Super VGA Video Adapter CD-ROM for installation Ethernet 10Base-T compatible connection USB Full-Speed port (when using USB Smart Cable; Windows 98 SE only) One or more RS232 communication ports Internet browser (Internet Explorer or Netscape) USB Smart Cable -------------------------------------------------------------------------- Hi-Speed USB (Fully compatible with Original USB) Root (direct) or self-powered hub connection *The USB Smart Cable is a high power USB device *Windows NT is not supported Ethernet Smart Cable -------------------------------------------------------------------------- Ethernet 10Base-T compatible connection Serial Smart Cable for eZ80Acclaim! -------------------------------------------------------------------------- RS232 Communication port with hardware flow and modem control signals *Some USB to RS232 devices are not compatible because they lack the necessary hardware signals and/or they use proprietary auto-sensing mechanisms which prevent the Smart Cable from connecting. ZPAK II -------------------------------------------------------------------------- Ethernet 10Base-T compatible connection RS232 Communication port 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. If a wireless Ethernet connection is used with the ZPAK, ZDS may not be able to reconnect to the ZPAK. Reset the ZPAK if this is encountered. 3. Some systems with one or more other USB devices connected may not boot properly after connecting the USB Smart Cable. Workaround: Connect the USB Smart Cable after the system has started. PRECAUTIONS AND LIMITATIONS ============================================================================== Debugger & Programmer -------------------------------------------------------------------------- 1. If Flash memory is programmed to use the Watch-Dog Timer, or HALT/SLP instructions within the first few instructions after reset, the debugger may not be able to gain control of the target. Refer to FAQ 'How is the new Hardware Reset Implemented?' for information on how to apply a fix for this problem. 2. The ZDS debugger may not be able to maintain a reliable connection with a target that uses the Watch-Dog Timer (WDT) to generate a reset so disabling the WDT during a debug session is recommended. If the WDT generates an NMI, the debugger will not lose the target connection and the default boot module's NMI handler may be replaced by an application specific NMI handler. 3. The eZ80 and eZ80Acclaim! working registers may become corrupt during a debug session if code is executed from zero wait state memory. This applies to internal and external memory. Workaround: Debug the code in one or more wait state memory. You may do this by adding wait states to the internal Flash or the external Chip Select control register. 4. Program execution may not break or will break after breakpoints that are set inside internal SRAM. 5. The maximum amount of breakpoints supported by the hardware is three. 6. The ZiLOG development tools may not reset all internal registers to their hardware reset state after a connection is established and/or a debug reset is performed. This may allow a previously loaded program to interact with the operation of the current program's debug session. For example, if Flash was previously loaded with a program that uses timer 3 interrupts, a program that is running in debug mode and does NOT reset the timer 3 registers to disable its interrupts will still encounter a timer 3 interrupt request. Workaround: Erase the internal flash with the integrated Flash Loader to prevent any unused registers from being changed from its hardware reset state. 7. Some Port Authority USB to Serial DB9 adapters provided by Cables to Go are not compatible with the Serial Smart Cable for eZ80Acclaim!. 8. ZDS may have difficulty establishing a connection if a Flash resident program has enabled and selected the PLL as the system clock. In this event, select the Oscillator Clock option and set the System Clock Frequency equal to the frequency of the system clock that was used with the PLL enabled and selected. Then erase the program, disconnect, restore the Clock settings to their appropriate values, and reconnect. Refer to the Debugging section of the FAQ for more information. 9. The Flash programmer may identify blocks of Flash that are not physically present on the application board if the chip select that enables the Flash device is programmed with a higher boundary then what is physically available. 10. The USB and Ethernet Smart Cable will hold the reset line low if it detects a target power loss. 11. The ZDS flash programmer requires the external flash device memory locations to be aligned with the flash device's specified block arrangement, otherwise the entire flash device will not be erased or programmed correctly. For example, the Micron flash on the eZ80Acclaim! modules should be placed on a 1MB boundary because the upper four address lines are ignored when it is enabled. If the chip select lower boundary is 040000h, an access at the same location would result in an access of block 6 instead of block 0. 12. Connecting the ZPAK's TIM directly to the target board's ZDI connector is recommended. If an adaptor is required avoid using wire wrap or any other prototype material otherwise download, program and/or debug operations may not be reliable. When using an adaptor, the following changes to the ZPAK TIM (ZiLOG PC: 99C0853-001) may help increase communication reliability: a) Change R10 to 10-22 Ohm. b) Change R6 to 2.2K if changing R10 does not help. 13. Debug and Flash program operations may not be reliable on targets with system clock frequencies less than 5MHz. 14. The simulator does not support UART input. 15. The simulator treats halt/sleep instruction as a NOP. 16. ZDS opens a UDP port to search for Ethernet Smart Cables and should be allowed to do so through an active firewall that stands between ZDS and the Ethernet Smart Cable. The firewall may be disabled or configured to grant ZDS the right to open a local UDP port. The local port number is assigned by the host and the foreign port number is 3000. 17. Working with large projects across a network may saturate the communication interface of the host computer. ZDS may report "Not Responding" messages while it is waiting for all the files to be opened. ZDS is actually still loading information and will begin 'responding' as soon as the transfer is complete. It is recommended that the source files be copied and installed on the ZDS host computer. 18. Page Erase of internal Flash memory is used as the default to protect user data or programs (i.e. Boot Loaders) in Flash. The user can select mass erase by removing the check mark from the Project -> Settings -> Debugger tab "Use Page Erase Before Flashing". When Page Erase is selected, note that the debugger will erase all pages within the program's address range prior to programming Flash. The address range is determined by the lowest and highest addresses contained in the .LOD file and those pages and all the pages in between are erased in one step to speed the download process. If the program overlaps a page by a single byte the entire page will be erased. (i.e. For ROM Address Range: 0-38, 8000-FF00, the .LOD download will erase the Flash from 0-FFFF). The Flash Loader can be used if you need to download non-overlapping .HEX files in non-sequential order because the ZDS linker will sort the addresses when the file is created and the Flash Loader can then determine the exact pages to erase. (i.e. For ROM address Range: 0-38, 8000-FF00 the .HEX download will erase 0-1FF (entire page) and 8000-FFFF). Compiler, Assembler, Linker/Locator, & Librarian -------------------------------------------------------------------------- 1. The ZDS II Assembler processes macros in a way that is more consistent with the C preprocessor than was the case in ZDS I. Users converting ZDS I projects to ZDS II projects and encountering problems with their macros should contact Technical Support for help. 2. In the assembler, all the pre-defined pre-processor target symbols (EZ80F91, EZ80L92, EZ80F92, etc.) are always defined, either as 1 or 0 (depending on the target in use), rather than simply being defined/undefined, as some users may want it. 3. Due to some efficiency improvements made in support routines for the eZ80Acclaim! compiler in the 4.9.0 release of ZDS II, libraries and objects built with the 4.9.0 or later compiler are not compatible with libraries or objects built with earlier versions of the compiler. If your application includes pre-built libraries or object files, you will need to rebuild them using the new compiler in order to use them with newly built code. Failure to do so may have several manifestations; one that has been observed in several instances is that a breakpoint set at the beginning of main() will never be reached. Run-Time Library (RTL) -------------------------------------------------------------------------- 1. For the non-debug version of printf() in the runtime library, a %f format results in the first digit of the data being invalid. The debug version works correctly. 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 tab, 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 configuration 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. 4. The project conversion utility can not be cancelled and will modify the original project (.zdsproj) file. The backup (.zdsbak) file created by the conversion utility may be renamed and used with the original version of ZDS. See the FAQ for more information. Sample Projects -------------------------------------------------------------------------- 1. When using the Serial Smart Cable and starter.zdsproj with eZ80F910100KIT, selecting "[x] Use Alternate ZDI Frequency" option is recommended. Deselecting may result in unreliable download, program and debug operations. This is generally observed as inconsistent memory reads. 2. When using the USB Smart Cable and starter.zdsproj with eZ80F910100KIT, deselecting "[ ] Use Alternate ZDI Frequency" option is recommended. Selecting this may result in unreliable download, program and debug operations. This is generally observed as inconsistent memory reads. See the FAQ for more information. ZiLOG Standard Library (ZSL) -------------------------------------------------------------------------- 1. Neither hardware nor software flow control is supported. Target Hardware -------------------------------------------------------------------------- 1. The IDE will issue a Hard Reset When connecting to the Target. A Hard Reset, as described in FAQ 'How is the new Hardware Reset Implemented?', utilizes the target's reset line to reset the processor. This allows the IDE to gain control of the processor in 4 clock cycles. A reset issued while debugging is Soft Reset. A Soft Reset does not gain control of the processor immediately and inserting sleep or halt statements in the beginning of the code should be avoided. 2. The Ethernet circuit on F91 Mini Module board number is 99C0942-001 Rev A and B only: There is an error on the schematic for the F91 Mini Module, and as a result wrong value resistor is mounted on board. The R13 should be 6.49K ohm 1% (not 6.81K ohm 1% as shown). 3. The PRSTn signal from JTAG connector on the eZ80 Development Platform (99C0858-001 rev B only) is not connected properly. This was fixed in rev C of the board. For details, see the board schematics in the eZ80 Development Kit User Manuals which can be found at \Documentation\Tools_Documentation. 4. The J11 silkscreen on the eZ80 Development Platform (99C0858-001) is incorrect. It should be EN_FLASH. 5. The -DIS_ETH pin on the eZ80190 Module (99C0877-001) is not functional. 6. The RS-232 DB9 connector ground is not connected on eZ80F91 Modular Development Kit Platform (99C0945-001). It will work if the host system connector is grounded and a shielded ground cable is used. Otherwise connect a wire between P2 pin 5 and P2's mounting holes (shield). 7. Correction to the eZ80F91 Module schematic in UM0142: The 4.7K pull-down resistor R9 is not required nor recommended. Remove the resistor to correct; otherwise, JTAG may not function properly. 8. The eZ80F91 Module 50MHz crystal oscillator circuit is different than the recommended circuit in the eZ80F91 product specification PS0192. The inductor side of the circuit, on the module, is connected to Xin (pin#86) instead of Xout (pin#85). We recommend the oscillator circuit found in the eZ80Acclaim! product specification PS0192. 9. The eZ80190 module distributed with the eZ801900200ZCO development kit uses a 50MHz system oscillator. If the eZ80190 module is used with ZTP projects that use the CS8900 Ethernet controller, the 50MHz oscillator must be replaced with a 48MHz oscillator. Otherwise the ZTP projects will not be able to exchange Ethernet data reliably and the system may fail to function. After replacing the oscillator, it will also be necessary to modify the "System Clock Frequency" in the "Configure Target" window from 50000000 to 48000000. The "Configure Target" window is accessed from the "Setup" button on the Debugger tab of the Project Settings. Be sure the appropriate eZ80190 development platform is highlighted. For example, if you are using the eZ80190 module and the ZPAK II emulator, select the "eZ80DevPlatform_190_Flash - Ethernet" or "eZ80DevPlatform_190_RAM - Ethernet" target configuration depending on your project configuration. If you would prefer ZiLOG to replace the 50MHz oscillator, please contact ZiLOG customer support for a Return Merchandise Authorization (RMA). CLOSED CHANGE REQUESTS ============================================================================== IDE -------------------------------------------------------------------------- (Fixed in 4.10.1) CR 8473 Struct type variables not displayed correctly in the Watch window. CR 8471 Attempting to program an internal memory only project with the Project Settings chip selects disabled fails during the erase cycle. CR 8129 Flash loader provides incorrect/misleading feedback with WP enabled. CR 6992 The Watch Window disregards case of variable names so 'State' and 'state' incorrectly refer to the location. (Fixed in 4.10.0) CR 7291 ST M29W008EB flash device now supported in flash loader CR 7148 Suggestion to add a feature to clean up intermediate build files. CR 6973 AM29LV008BB and INTEL TE28F800B3xA flash devices now supported. CR 6837 A Windows application error occurs when libraries or objects are not comma delimited in the settings dialog. CR 6611 Some C and Assembler options are not used when the Linker Show Absolute Addresses in Assembly Listings (relist) option is selected. CR 6522 AM29LV081B flash device not supported. CR 6506 Flash Loader fail to access flash when CS0 boundary is in conflict with CS3. CR 6149 Suggestion to include standard startup linker commands in builds of all applicable projects. CR 6095 Suggestion to split the Communication portion out of the target configuration file. CR 6083 Include paths are too long for projects using ZTP. IDE unable to build project. CR 5908 Confusing message '[ERROR] Illegal address prefix "ÿ" found' displayed in output window. CR 5798 A request for an option to change the record size in hex output file. CR 5650 The IDE converts ALL include paths to absolute paths making the include strings VERY long in some cases. CR 5537 In a assembly code when the cursor is placed over the LABEL, the address of the label should be displayed rather than the opcode. CR 4803 Suggestion to improve Target selection/configuration during project creation. CR 4769 When changing from one configuration to another, ZDS always rebuilds all of the files. CR 3997 Device size is incorrect for Atmel flash devices. CR 3516 Using "asciz " in the watch window fails to show the expected string value. CR 3288 The disassembly window is not syncing up with the original C source file. CR 1452 Breakpoints over limit erroneously shown enabled. CR 1435 ZDS prohibits the addition of .txt. files to the open project. CR 1318 When browsing disassembly with interleaved source, the cursor moves up one line per click, but down two lines per click. It should move one line per click in each directions . CR 1095 Right mouse click on a source file will not show Compile option for some files on the project. Assembler -------------------------------------------------------------------------- (Fixed in 4.10.1) CR 8507 Bug when doing arithmetic involving the $ operator inside an EQU directive. (Fixed in 4.10.0) CR 6055 With jump optimization in effect, the difference between two labels isn't taking the optimization into account. CR 6053 The assembler sometimes performs the jump optimization even when that option is disabled. CR 2588 Problem with using $ in an EQU directive when jump optimization is in effect. Compiler -------------------------------------------------------------------------- (Fixed in 4.10.1) CR 8717 Bug in optimizer when a function call is inside an if() condition and is immediately followed by a struct pointer access. CR 8716 Memory leak in p3 executable, potentially catastrophic when compiling very large functions. (Fixed in 4.10.0) CR 6969 Internal error on complex statement involving array subscript followed by shift and then addition. CR 6724 Incorrect code for an if statement that depends on comparison of an unsigned char to int, when ANSI promotions are on. CR 6597 Bad code when dereferencing a pointer expression such as *(ptr + i + j); equivalent array form works OK. CR 6424 Internal error: if (expression) {...}; expression evaluates to 0, and the {...} block contains local variable declarations. CR 6346 Bad code generated when a complex expression with floating point types is used in a return statement. CR 6341 Incorrect code generated for the 2nd of two consecutive calls made using function pointers. CR 6333 Internal error for certain assignment statements using pointer arithmetic on one side of = and array notation on other. CR 5355 Memory allocated for a static array is incorrect when a macro is used inside an arithmetic expression to declare array size. CR 5111 Void pointer to a structure containing a long member: when optimized for size, assignments to said long are incorrect. CR 4810 Invalid code for "char data[5*10+50*sizeof(int)];". Too much space is allocated due to incorrect sizeof() calculation. CR 4010 Write to a local static variable is incorrectly optimized out, die to a bug in copy propagation optimization. CR 2793 Nested switch case fails when optimizing for speed. CR 779 Overly aggressive optimizing away of assignment statements when multiple copy propagation optimizations are made. Librarian -------------------------------------------------------------------------- (Fixed in 4.10.0) CR 6114 Librarian writes corrupted libraries if more than 200 modules are added. Run-Time Library -------------------------------------------------------------------------- (Fixed in 4.10.0) CR 6267 Sprintf drops the first zero after the decimal point when printing floating point values less than 0.1. CR 5984 The pointer returned by strstr() sometimes doesn't point to the start of the string that should be returned. CR 5900 Sprintf prints some large negative floating point numbers incorrectly. Zilog Standard Library -------------------------------------------------------------------------- (Fixed in 4.10.0) CR 6202 The instruction suffix used in line 229 of init_params_f91.asm (LD.LIS instruction) is not correct. OPEN CHANGE REQUESTS ============================================================================== IDE -------------------------------------------------------------------------- CR 7918 During the loading of large projects (those with a large number of files and/or file dependencies), the ZDS user interface may become non-responsive. CR 5519 External dependencies generation/display ignores project preprocessor defines. CR 5517 Unable to watch large EQU symbols on the watch window. CR 4431 IDE will not provide a warning that the hex code file is larger than the project device size when using Load from File on the code memory window. CR 3852 In assembly files, the ".r" or ".rr" designators are not correctly chroma coded. CR 3711 Hex files that use \r as a line ender are not supported. CR 3210 Local watch window does not display negative values CR 2731 When the program is running in the debugger, the program counter indicator (yellow arrow) is still displayed at previous location. CR 1650 After single-stepping through a function call, the program counter indicator returns to the calling line instead of the next executable line. CR 1638 Customized workspace not restored properly. Appears to be reset when application restarted. CR 1397 Double-clicking on the error sometimes places the cursor in the incorrect location. CR 1177 Resizing the debug windows is difficult and behaves inconsistently. Assembler -------------------------------------------------------------------------- CR 4838 The assembler accepts the illegal instruction LD ,((THRU_COUNTER) where is any 8-bit reg except A. Compiler -------------------------------------------------------------------------- CR 4867 The compiler crashes when any pre-processor directive is followed by an un-terminated C comment. Development Boards -------------------------------------------------------------------------- CR 5431 The XOUT and XIN signals are swapped on the eZ80F91 Module. Librarian -------------------------------------------------------------------------- CR 4690 The librarian fails when given a command line longer than 16K characters, due to many modules with long path names. Simulator -------------------------------------------------------------------------- CR 7392 The simulator does not properly simulate HALT or SLP instructions, instead treating them as NOP.