ZiLOG Developer Studio II - eZ80Acclaim! 4.11.1 (Build 08022501) ============================================================================== 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.11.1) - Numerous Change Requests have been addressed. Refer to the Closed Change Requests section. (to 4.11.0) - 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. - Numerous Change Requests have been addressed. Refer to the Closed Change Requests section. - Bus mode of eZ80F92/eZ80F93/eZ80L92 was changed from native mode to intel mode(02h->81h) for the following default target configuration. eZ80DevPlatform_F92_RAM eZ80DevPlatform_F92_Flash eZ80DevPlatform_F93_RAM eZ80DevPlatform_F93_Flash eZ80DevPlatform_L92_Flash 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: \Device 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 Vista** Windows XP Professional Windows 2000 SP4 Windows 98 SE **The USB Smart Cable is not supported on 64-bit Windows Vista. The Ethernet Smart Cable, available separately in the Ethernet Smart Cable Accessory Kit, is supported. 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) Ethernet port (when using Ethernet Smart Cable) 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 USB High-Speed port (when using USB Smart Cable) Ethernet port (when using Ethernet Smart Cable) 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 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 while the simulator has no limit.. 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). 19. Due to the instruction pipeline, it is not recommended to set a breakpoint on the 1st instruction of an ISR. Set a breakpoint at an instruction at least 3 bytes below the 1st instruction 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.11.1) CR 10600 Foreign keyboard inputs are not accepted and cause "illegal operation". CR 10706 IDE crashes when using CTRL+SHIFT+RIGHT/LEFT to move cursor around source code. CR 10832 Command Script "go " does not work. CR 10837 When adding web Files, they are added to "C Files" folder instead of "Web Files" folder. (Fixed in 4.11.0) CR 9781 Inconsistent page size between FlashDevice.xml file and datasheet for the AM29LV160BB. CR 9564 Suggestion to add a cancel button to the prompt to migrate a project from a previous version of ZDS. CR 9458 Using "close all" in the window menu closes all the documents without a prompt regardless of modified state. CR 9326 makefile and makfile script command will not create folder for make file generated in non-existent folder. also does not display error. CR 9160 After a "File > Save As...", the title bar does not change to new filename when full path displayed in title bar. CR 9159 If a selection is active in the document window and a build error is double clicked in the build window, the selection isn't deactivated until the cursor is moved. CR 9158 External dependencies in non-user include path, even with entire path provided in #include, do not show in external dependencies list. CR 9043 Suggestion to add scripting support for memory fill, save to file and load from file functions. CR 8911 Cursor is not tracking the Yellow Arrow in Code window with Disassembly. CR 8896 The watch window does not display *p_x correctly. CR 8711 Unable to see the contents of a struct array in the debug watch window CR 8691 After using the mouse to highlight and re-arrange the order of lines in a file, the change flag (asterisk in the file header area) is not set. CR 8676 Exported make files fail to build when the make file is exported into a directory other than the configured intermediate files directory for the project. CR 8658 Attempting a Find in Files with a nonexistent folder causes an application error in the IDE. CR 8462 Adding some build generated files (i.e., the .MAP file) to the project results in an endless loop of 'Project out of date' messages on debug session startup CR 8455 The Set Next Instruction function is enabled but does nothing when initiated while NOT in debug session CR 8450 After a file is modified during debugger session, some execution debugging functions do not flag user to rebuild the project. CR 8427 When using Intermediate Files directory other than the project directory, the .lis file is still on the project directory. Build > Clean will not clean the .src and lis. CR 8271 Suggestion to add a cancel button to the "Save Changes to Document [y/n]" dialog. CR 7687 Including square brackets in the Find in Files search string results in incorrect results. CR 7636 Find in Files shows multiple occurences on a single line. CR 7447 Performing as erase with the Flash Loader with no hex file selected crash ZDS. CR 7296 Calculate checksum does not remember last file entered requiring the user re-enter the path/file each time. CR 7193 In Control Panel->Mouse->Wheel I have the wheel configured to scroll 5 lines at a time, but in the ZDS II editor (and output window), it only scrolls one line at a time. Other applications (browser, email) work fine. CR 7075 Unable paste in the find window on the toolbar using Ctrl+V. CR 6992 The Watch Window does not differentiate case for variable names (i.e. State vs. state). CR 6722 Adding // on the source code line can hang the editor. CR 5791 In a C file, entering a line like test1 // "test2" /* test3 */ can hang the editor CR 5777 Suggestion to add a calculate checksum utility to the tools menu CR 5588 Large projects are extremely slow to open. CR 5516 Suggestion to add a short-cut key for "Find in Files" CR 5142 Some application settings (Tools > Options) are not saved and restored correctly. CR 4594 The editor does not preserve the cursor's column position when using the up/down cursor arrows to move through the file. CR 4590 Suggestion to add a bracket matching/locating function to the editor. CR 3651 Breakpoints added over the limited are not shown as disabled in the Edit Breakpoints window CR 3380 Suggested improvements to generated makefiles to make them easier to use. CR 3290 Including a path in Project > Settings > Assembler > Include path option can cause the build to fail. CR 3219 Double clicking the folding in the project view doesn't expand the folder to show the files contained therein. CR 3218 The default directory for Find in Files and File-Open is the same directory for multiple open instances of ZDS. 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 2638 Minimized source code windows are not displayed appropriately after a debug session is started. CR 2305 Suggestion to add a key binding (hotkey) for Find Next. CR 1638 The disassembly debugger window does not use the size/position of the window from the previous debug session. CR 1435 Attempting add a .TXT file to the project via Project > Add Files is prohibited, but works via Add File to Project in the source window context menu. CR 1177 It is difficult to consistently resize the debug windows (and other docking windows). CR 709 Minimized files are not restored when activated by double clicking on an associated build error in the Build Output window. CR 353 When Find in files (using file type is *.*) encounters a *.obj file, find will not continue if search string is found in the *.obj file. Assembler -------------------------------------------------------------------------- (Fixed in 4.11.0) CR 9934 Line continuations and macro expansions cause assembler error messages to give incorrect line information. CR 9606 Tokens are taken as labels despite neither starting in column 1 nor being followed by a colon. CR 8507 Assembler not properly evaluating the $ symbol when used in an arithmetic expression on one side of an EQU statement. CR 6536 A slightly different instance involving $ symbol in an arithmetic expression. CR 6190 The assembler does not process a single line comment using the COMMENT directive. CR 6075 Syntax error reported when a comment line is terminated by a CR only instead of the required newline. CR 5966 Data directive BLKP is not supported. CR 5579 Assembler fails to process DF data directives when the initializing constant begins with a decimal point. CR 5197 The valid instruction "res 0,(iy)" is not accepted unless an explicit displacement of 0 is added to iy. CR 5139 Self-referential symbol definition (e.g. _TEST VAR _TEST+1, _TEST previously undefined) gives internal error rather than a meaningful error message. CR 4878 CPU directives creating unwanted default definitions of macros for CPUs that are not in use. CR 4838 The assembler accepts the illegal instruction LD ,((THRU_COUNTER) where is any 8-bit reg except A. CR 4828 Lack of clear standard for hexadecimal number format causing confusion for strings like c_e_h: number or label? CR 4258 Mapfile and debug line information are corrupted when both absolute and relocatable segments are in use. CR 3744 Listing file doesn't show the code generated for nested macros. CR 3743 STRUCT, TAG, and related directives don't work. CR 2881 Nested macros supported only to a depth of 2. CR 2418 Assembler not handling "EQU $" correctly in some memory spaces. CR 2181 Assembler not turning off the jump translations when the user tries to do so through the GUI. CR 1973 Assembler does not flag instructions containing invalid combinations of IXL/IXH and L/H, e.g. LD L,IXH. Compiler -------------------------------------------------------------------------- (Fixed in 4.11.1) CR 11391 Internal error on a forward reference pointer type used in a switch-case statement. CR 11302 Compiler fails to perform needed ANSI promotions on SFRs so they can be used in bitwise operations with longer integers. CR 11272 Optimizer error when compiling a complex while clause that includes a pre-increment operation on a structure pointer. CR 11057 P1 Internal error when a global enum is defined after some functions have already been defined in the same file. CR 10850 Internal error when compiling code that tries to dereference the sum of a (char *) plus an int. CR 10756 P2 internal error for a particular combination of case and printf statements. CR 10713 Incorrect code from optimizer for code that walks through buffers assigning values from one buffer to the other. CR 10701 Wrong code generation when n char type loop index is assigned to a long member of a structure. CR 10688 Internal error for a particular case of initialization of a local pointer to zero with a type cast. CR 10684 Over-aggressive optimization involving an if clause that compares an array member to a constant. CR 10548 Incorrect and bloated code generated when comparing the value of an SFR to the literal constant zero. CR 10519 Incorrect code generation for accesses to members of an array which is an element of a structure placed at a fixed address. CR 10440 Internal error when chaining together additions of the same char variable such as (c1 + c1 + c1). CR 10432 Over-aggressive optimization of expressions with successive application of bitwise AND & OR operators, followed directly by an assignment to a structure member. CR 10075 Compiler improperly optimizes out read of the volatile variable i in this code: if (i){} -- ONLY when the body between the {} braces is blank. (Fixed in 4.11.0) CR 9997 Compiler hangs when compiling a switch-case for which the default case is an empty while(1) loop. CR 9933 Compiler does not respect scope restrictions on local labels. CR 9930 Generated code could be more efficient when dereferencing pointers to successive addresses. CR 9919 Struct members with same name but different scope not being accessed correctly. CR 9184 Internal error when compiling the statement: *pointer = *(pointer-1); CR 9109 Bad code generated for a particular complex expression using many array references, logical, and bitwise operations. CR 8966 Internal error in a particular case where a preprocessor constant is passed as a function argument. CR 8619 Bad code generated for switch-case statement when switching on the value of a volatile I/O register and optimizing for speed. 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 8393 Read of a volatile peripheral control register optimized out when the value read is not used later in the function. CR 8203 Compiler crashes on certain uses of offsetof macro at file scope. CR 8184 Need a more useful error message when user erroneously casts a pointer to (void) instead of (void *). CR 8041 Over-aggressive optimization in some cases for nested if statements. CR 7948 Error incorrectly reported when compiling the statement: char_pointer += (i<8); CR 7867 Internal error when function ends with closing braces of an if, a while (1), and the function itself with nothing between the braces. CR 7727 Internal error when left-shifting a nonzero value by 8 with ANSI promotions disabled, followed by conversion to a char. CR 7373 The compiler needs to support the set_vector formalism fully, including up-to-date vector number definitions. CR 7346 Preprocessor reports error when evaluating expressions like (val1 != val2), if both val1 and val2 are macros for hexadecimal constants and val1 is left-padded with zeroes. CR 7202 Internal error when ORing many preprocessors constants together and ANSI promotions are disabled. CR 6489 Compiler silently generates bad code for variable name 1 character longer than longest supported name. CR 6432 A function which attempts to return its own address causes an internal error. CR 6376 Bad code is generated when user attempts to initialize a pointer with \x escape sequence containing a syntax error. CR 6281 Compiler reports internal error when length of user include path exceeds 2000 characters. CR 5748 Compiler does not support source files with spaces in their names. CR 5735 Initializing a variable with the illegal octal constants '09' or '08' causes a compiler internal error. CR 5631 When a function contains only assembly code using the 'asm' keyword, the function prologue is placed after those assembly statements. CR 4867 The compiler crashes when any pre-processor directive is followed by an un-terminated C comment. CR 4693 Compiler crashes on code that ands a constant zero together with a Boolean expression such as (i < 27). CR 4552 Compiler gives error when attempting to cast a char directly to a float. CR 4022 Compiler gives internal error when same symbol is, incorrectly, both #defined and typedef'ed. CR 3973 Compiler gives error when attempting to cast a short directly to a float. CR 3899 Compiler should issue a warning when it sees an extern with no storage class to define the expected type. CR 3842 Comparison of 2 short ints not done properly when debug info is turned off. CR 3353 Compiler accepts incorrect syntax in a union initialization. CR 3074 Problem in the implementation of the va_start macro in stdarg.h, related to how bytes are pushed on the stack. CR 2686 Compiler gives error when attempting to cast a float to a short. CR 2673 Missing ')' in a macro definition crashes front end. CR 2622 Need a better error message when code tries to initialize an array or struct with non-constant values. CR 2518 Compiled code for a bit-setting macro is very inefficient, depending on the declared types of the variables. CR 2399 Compiler gives error when attempting to cast a float to a char. CR 2393 Request: provide a way to locate an array at a given address in memory. CR 2294 Frontend generates erroneous overflow error on a floating- point constant specified to very many (30) digits. CR 2276 Sizeof a local struct type definition is calcualted incorrectly. CR 2193 Back end crashes when an array declaration contains an expression for its dimension. CR 2004 Compiler does not support nested interrupts. CR 1958 Enumeration tags and enumeration constants should not share the same name space. CR 1747 Some register names in eZ80.h do not correspond exactly to the names in the Product Specifications. 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.1) CR 11238 Segment overlap problems for some RAM and ROM segments when using the "All RAM" configuration. (Fixed in 4.11.0) CR 9110 Linker improperly reports out of range error when RDATA lower limit is 0. CR 5146 Linker improperly overlaps segments when one or more of them have been renamed and then the new name is used in an ORDER directive. CR 4749 The LOCATE command does not check for memory overlaps. Run-Time Library -------------------------------------------------------------------------- (Fixed in 4.11.1) CR 11218 Small rounding error in the function atof. CR 11199 The assert macro sometimes doesn't work properly -- an additional pair of parentheses is required. (Fixed in 4.11.0) CR 8477 Realloc() will return a previously used pointer if the additional requested memory size is very small. CR 8456 The assert macro calls the function fprintf, which is not included in the library. CR 8015 User still gets warnings about vprintf from the genprintf feature, even when that feature is deselected. CR 3879 Size_t is incorrectly typedef'ed to int instead of unsigned int, in string.h only. CR 3179 The implementation of the offsetof macro in stddef.h is not compatible with the ANSI standard. CR 2602 Standard library functions div and ldiv must be provided. Simulator -------------------------------------------------------------------------- (Fixed in 4.11.0) CR 7392 The simulator does not properly simulate HALT or SLP instructions, instead treating them as NOP. 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 7687 Including square brackets in the Find in Files search string (i.e. "[find this]" or "[find this"), the search results are incorrect. 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 3711 Hex files that use \r as a line ender are not supported. CR 3210 Local watch window does not display negative values 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 1397 Double-clicking on the error sometimes places the cursor in the incorrect location. Development Boards -------------------------------------------------------------------------- CR 5431 The XOUT and XIN signals are swapped on the eZ80F91 Module.