ZDS II - ZNEO(TM) 5.2.4 (Build 23051102) ============================================================================== Thank you for purchasing this development kit for the ZiLOG ZNEO(TM) microcontroller family. 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 (old site) http://www.zilog.com/index.php?option=com_product&task=tech_support&Itemid=88 Table of Contents -------------------------------------------------------------------------- A. CHANGES FROM PREVIOUS RELEASE B. COMPATIBILITY C. SYSTEM REQUIREMENTS D. APPLICATION AND OTHER OS ISSUES E. PRECAUTIONS AND LIMITATIONS F. CLOSED CHANGE REQUESTS A. CHANGES FROM PREVIOUS RELEASE ============================================================================== (In 5.2.4) - Assembler, Compiler, and Linker bug fix maintenance release to reduce the frequency of P1 and P2 Internal Errors and make.exe faults (make aborts after displaying a cryptic large negative error code). - Fixed CR13649 that could cause "P2: Internal Error(0xB47E59)" when C a FOR loop with an empty 'test' expression and a break and/ or continue statement in the loop body is compiled. - Fixed CR13632 causing "P1 Internal Error 0xFFC2A5" to occur when compiling large macros that exceed an internal limit after expansion. - Corrected CR13630 that could also cause "P2 Internal Error (0xB47E59)" when compiling compound ternary conditional operators like d = (e) ? myfunc((f) ? 1 : 2) : 3; - New compiler Warning message 229 - "Unreferenced Label" and Error message 47 - "Definition of macro exceeds the maximum length". Note that Warning 299 is generated at the end of the function containing the unreferenced label and that the warning is only generated for the last such label in the function due to the compiler automatically suppressing generation of multiple identical preprocessor and frontend warning or error messages for the same line of code. - Corrected CR13614 that could cause the compiler to convert an unsigned integer to a signed integer during some instances of integer promotion when passing certain 8 or 16-bit arguments to functions. - Added support for Acclaim Smart Cable (In 5.2.2) - Fixed the CR13577 of parsing large include files that causes extreme slowness on project opening or rebuilding. - A rare but critical compiler bug, CR 13575, has been fixed. This bug applied only in unusual circumstances. Its effect was to produce a P2 Internal Error. See the section on Closed Change Requests > Compiler for details. (In 5.2.1) - A critical compiler bug, CR 13503, has been fixed. This bug applied only in fairly specialized circumstances, but its effect was to corrupt execution if those circumstances arose in a given application. See the section on Closed Change Requests > Compiler for details. - Fixed a bug in dynamic memory management in the ZNEO assembler. This bug was causing the assembler to crash when a label was defined both by a define in the ZDS project and by an equate in the source file. This was previously released as 5.2.0 Patch #2. - Fixed Assembler CR 13456. The assembler was generating incorrect conditional assembly, leading to the wrong branch being taken, for half of the possible ZNEO condition codes. The error occurred for those condition codes whose most significant bit is 1, as specified in the ZNEO CPU Core User Manual. This was previously released as 5.2.0 Patch #1. - The ZDS default installation root directory has been changed to C:\Zilog (In 5.2.0) - A new C header file has been added. This new header makes it easier to write C code that manipulates bits and other fields in SFRs by defining symbolic names for all these fields. The syntax and examples for using this new file are given in the Online Help. - The C standard Library has been expanded by adding many new functions which are specific to the ZNEO memory map. These functions are variants of those Standard Library functions that take pointer parameters. In the new variants, pointers into each of the ZNEO memory spaces are supported so that users do not have to make their own modifications to the library. More information is given inthe Online Help. - MaxBranch option is added in the project settings -> assembler page - In the Workspace window, the dependency files of a source file is now hierachically displayed after the source file. - The edit fields are replaced with list views in the following project settings pages: o Assembler->"defines: and "includes directories" o Linker->"Address space", and "Additional Objects and Libraries" - Register address is shown in the SFR window when hovering on a Register. - Symbol window now displays symbols in sortable column. B. COMPATIBILITY ============================================================================== Devices -------------------------------------------------------------------------- Z16FMC Series: Z16FMC28xx, Z16FMC64xx, Z16FMC32xx Z16F Series : Z16F2810xx, Z16F2811xx, Z16F3211xx, Z16F6411xx Please refer to the Project > Settings > General > CPU selection for the latest supported devices. 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 In-Circuit Debuggers/Programmers -------------------------------------------------------------------------- Acclaim! Smart Cable, firmware version 1.0 or later: ~ ZDS Debug Tool selection: AcclaimSmartCable ~ Supports target frequencies from 10KHz to 20MHz ~ Supports target voltages from 2.7V to 3.6V ~ Requires 2mA from the target USB Smart Cable, firmware version 1.4 or later (except ver 1.8): ~ ZDS Debug Tool selection: USBSmartCable ~ Supports target frequencies from 10KHz to 20MHz ~ Supports target voltages from 2.7V to 3.6V ~ Requires 2mA from the target Opto-Isolated USB Smart Cable, version 1.3 or later (except ver 1.8): ~ ZDS Debug Tool selection: USBSmartCable ~ Supports target frequencies from 32KHz to 20MHz ~ Supports target voltages from 2.7V to 3.6V ~ Requires 2mA from the target Ethernet Smart Cable, version 1.0 or later: ~ ZDS Debug Tool selection: EthernetSmartCable ~ Supports target frequencies from 32KHz to 20MHz ~ Supports target voltages from 2.7V to 3.6V ~ Requires 2mA from the target USB device drivers and installation instructions can be found in one of the following locations: \device drivers\USB\x32\ \Device Drivers\USB\x32\ 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/software/zds2.asp C. SYSTEM REQUIREMENTS ============================================================================== Supported Operating Systems -------------------------------------------------------------------------- Windows 10/32 and 64-bit Windows 8 /32 and 64-bit Windows 7 /32 and 64-bit Acclaim!/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 D. 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 USB Smart Cable after the system has started. E. PRECAUTIONS AND LIMITATIONS ============================================================================== Debugger & Programmer -------------------------------------------------------------------------- 1. Editing and building code while in Debug mode requires that the current debug session to end. Restart the debugger, after completing the build, to debug the new code. 2. The Watch Dog Timer (WDT) must be disabled while debugging the target. The WDT will cause the processor to perform a reset and the debug mode will not be enabled upon reset. Therefore the debugger will lose control of the processor. 3. The debugger does not support ZNEO's instruction execution trace feature. 4. The debugger does not support arrays with more then 6 dimensions. 5. When "No" is selected in response to the warning/prompt that flash options bits will be overwritten and whether to continue, the IDE shows a progress bar as though it continues to write to flash. In actuality, the flash is not written. 6. When debugging a program that changes the system clock and enters STOP mode, add at least a 300 msec delay between the system clock change and the STOP instruction execution otherwise the debugger may not be able to retain the target connection. 7. 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. 8. The USB and Ethernet Smart Cables will hold the reset line low if it detects a target power loss. 9. Stepping over a POPF instruction in the debugger will result in unusual behavior due to the assembler workaround described below in "Compiler, Assembler, Linker/Locator, & Librarian Precautions & Limitations, #2". When the step is initiated, the Disassembly window will be opened with the PC indicator pointing to an IRET2 instruction (the 2nd instruction of that assembler workaround). Perform a step in the Disassembly window to advance the PC indicator to the next assembly statement, then resume stepping in the source code window. 10. Selecting "Watchdog" as a clock source and 0.010000MHz frequency from ZDS>Project Settings>Debugger>Target>Setup will take time before it will stop when you hit "Stop Debugging". 11. It is recommended to use other terminal software other than Hyperterm when using Vista such as TeraTerm. 12. There is a bug in the ZNEO DMA register read back logic. The DMQxREQSEL registers can be written, but they do not read back correctly. 13. USB Smart Cable Firmware 1.8 is not compatible with ZNEO devices. 14. When the External Flash [ ] Automatically Detect Device is selected under Project > Settings > Debugger > Target Setup > Configure Flash the IDE will flash a warning as shown: "[Warning] Could not determine external flash selection" This is not a problem and could be ignored. Normal debug session is not affected. 15. Please see OPEN CHANGE REQUESTs below section for additional info. Compiler, Assembler, Linker/Locator, & Librarian -------------------------------------------------------------------------- 1. The list file is generated with 52 lines per page if Show Absolute Addresses in Assembly Listings is selected. 2. The POPF instruction is being translated to an alternative, equivalent but considerably longer set of instructions by the assembler. This is a temporary workaround for ZNEO silicon erratum #4 (see UP0087, Product Update: Errata for ZNEO Z16F Series). The POPF instruction is currently translated to the following equivalent: PUSH #NextInst IRET2 NextInst: Here, IRET2 is an alternative version of the IRET instruction which is required in this context to avoid problems with chained interrupt handling. 3. Please see OPEN CHANGE REQUESTs below section for additional info. F. CLOSED CHANGE REQUESTS ============================================================================== IDE -------------------------------------------------------------------------- (Fixed in 5.2.0) CR 13577 Opening a project with large include files takes a long time due to the slow parsing of include files. (Fixed in 5.2.0) CR 13400 Negative 16-bit value is not properly displayed in the watch window. CR 13393 Hovering on a recently modified constand macro doesn't display the updated value. (Right-mouse click to update intellisense database). CR 13282 Flag if the same firmware version is selected on firmware upgrade. CR 8669 add column headers to symbol windows and ability to sort the column on a header click. CR 6946 Ability to branching offsett(12,16,24,32) in the assembler Assembler -------------------------------------------------------------------------- (Fixed in 5.2.0) CR 13394 Equates that use '$' are not handled correctly by optimizations that change instruction size. CR 13368 Assembler STRUCT feature shows incorrect addresses in relist file, though actual code generated is correct. CR 13363 Vector Table machinery wrongly picks up IRQ routines defined in libraries. CR 13249 Several problems with assembler correctly enforcing the restricted scope of local and anonymous labels. CR 13201 Need a way to disable the warning message "Unsupported initialization of ERAM." CR 13059 Assembler should not allow relocatable data in a directive that reserves space, such as BLKB. CR 11704 Assembler gives internal error for deeply nested (more than six levels) STRUCT TAG definitions. CR 11063 Assembler internal error when a struct name is used in EQU statements. CR 7767 Assembler reports an error if a label is declared both XDEF and XREF in the same module. CR 6075 Syntax error reported when a comment line is terminated by a CR only instead of the required newline. CR 4258 Mapfile and debug line information are corrupted when both absolute and relocatable segments are in use. CR 1397 If an included file has an undefined symbol and you click on the error message, the display jumps to a location in the wrong source code file. Compiler -------------------------------------------------------------------------- (Fixed in 5.2.2) CR 13575 A P2 Internal Error is very rarely reported when compiling code that contains a sub-expression of the form (X - C), where C is a constant and X is a non-constant. (Fixed in 5.2.1) CR 13503 The return value is corrupted in functions that both (a) contain calls to other functions and (b) have a return value which is a struct or union. (Fixed in 5.2.0) CR 13371 Bad code generated when computing a macro parameter that is used repeatedly inside the macro. CR 13366 Implementation of the compiler ALIGN directive does not allow variables to be initialized properly. CR 13359 Backend internal error on attempt to call an absolute address. CR 13242 Some bit-field manipulating code gives a P3 internal error when built, depending on the size of the bit-field's declared type. CR 10516 Code generated for accessing array members doesn't always use the most efficient instruction forms available. CR 8630 Internal error when applying the exclusive-or assignment operator to a bitfield member. CR 8466 Backend internal error on recursive structure references. CR 8393 Read of a volatile peripheral control register optimized out when the value read is not used later in the function. CR 7726 Preprocessor doesn't handle ternary operator as part of constant expression. Linker -------------------------------------------------------------------------- (Fixed in 5.2.0) CR 13377 When padding bytes with 0xFF, omit padding address ranges that aren't included in the Linker > Address Spaces listing. Run-Time Library -------------------------------------------------------------------------- (Fixed in 5.2.0) CR 13298 Create new header files that define symbolic names for the bits and other fields inside Special Function Registers. CR 13253 Sprintf can miscount number of characters placed in buffer, when adjusting field widths of numerical data. CR 13103 RTL needs to support variants of standard library functions that take pointer arguments into different memory spaces.