ZDS II - S3 Family 5.3.2 (Build 17081801) ============================================================================== The technical documentation supplied in the installation is available in PDF format. This format requires that Acrobat Reader or equivalent be installed on the host machine. In the event of a component problem, please complete the Problem Report Form and submit it with your request. The form is located in the installa- tion 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 -------------------------------------------------------------------------- A. CHANGES FROM PREVIOUS RELEASES B. COMPATIBILITY C. SYSTEM REQUIREMENTS D. APPLICATION AND OTHER OS ISSUES E. P & L (PRECAUTIONS AND LIMITATIONS) F. CLOSED CHANGE REQUESTS G. OPEN CHANGE REQUESTS H. OTHER OPEN ISSUES A. CHANGES FROM PREVIOUS RELEASES ============================================================================== (to 5.3.2 Build 17081801) - Fixed the Project > Settings issues (incorrect header and missing selections) - Added S3F81RB support - Linker was updated for Group and Range commands - Fixed Linker crashing on some projects with long filenames. - Improved the S3 Boot Loader library to allow reprogramming the interrupt vector table using information in the downloaded Hex File. Previously the Boot Loader library would not reprogram Flash address below the (configurable) value of Application Start Address, including the interrupt vector table located between 0x00 and 0xFF. As a result of this change, the Boot Loader now reserves Flash memory between 0x100 and Application Start Address -1 (versus 0x00 to Application Start Address -1 previously). However, this causes the default value of Application Start Address to increase to 0x480 (from 0x400 previously). - Modified the syntax of the Linker RANGE command to support an optional PAD parameter when used to specify the lower and upper address limits of a segment. For example: RANGE _BL_CodeSeg_ PAD $100 : $47F. The PAD optional parameter prevents the linker from placing other relocatable segments in the padded range. This feature is now used to ensure relocatable application code (and initialized data) segments are not placed in the Boot Loader reserved area of Flash. - Updated the S3 Flash ISP II firmware to version 1.7 to correct a hang (yellow LED off) observed when attempting to program or debug target externally powered devices operating near their Low Voltage Reset (LVR) threshold, and/or with a shared reset pin configured such that the reset function of the pin is disabled. The firmware fix will not allow devices in this state to be programmed or debugged; it only prevents having to disconnect and reconnect the S3 Flash ISP II USB cable from the PC running ZDS to restore normal operation. - Added Firmware version 1.7 to \bin\firmware\S3FlashISPII directory The Firmware Upgrade procedure is described in: \bin\firmware\S3FlashISP_upgrade_information.pdf - Fixed a typo in the header file s3.h which was causing the SFRs TCCNT, TCDATA, and TCCON to be mistakenly defined for the S3F8S8B instead of the S3F8S6B as they should have been. - Updated OLH/Documentation for Bootloader topics (5.3.1 Build 17052602) - Fixed critical compiler bug, CR 13497, which was causing some ISRs not to execute properly - Added fix for S3F8S2x Flashloader automatically exits when doing flash operations. - Added S3FC40D Flash Programming Support - Added Firmware version 1.6 to \bin\firmware\S3FlashISPII directory !!! YOU MUST UPGRADE THE ISP II FW IMAGE USING THE PROCEDURE DESCRIBED IN THE .\bin\firmware\S3FlashISP_upgrade_information.pdf FILE TO ENABLE S3FC40D FLASH PROGRAMMING SUPPORT WITH ZDS 5.3.1 !!! (5.3.0 Build 16092903) - Added Engineering support for the following MCUs: o S3F80RB o S3F80R9 o S3F8R0B - Added Engineering support for the following Development Kit: o S3F80RB0100ZCOG (No available at release date of ZDS-S3 5.3.0 - Added Firmware version 1.5 to \bin\firmware\S3FlashISPII directory o Includes a SWIO Debug mode of operation and new ISP commands to enable enhanced debugging of S3 applications (e.g. single-step debugging from within the IDE) through the S3 Flash ISP II USB device (requires S3 applications to link the new Enhanced ISP Debug library; only available with ZDS 5.3.0 and later releases) o ISP FW v1.5 now only supports the SWIO serial interface provided by the S3 Flash ISP II. Non-SWIO serial interfaces (e.g. UART, I2C, SPI) are no longer supported. - This does not affect the use of (legacy) ISP Debug library but will impact projects using the S3 Boot Loader library that are not configured to use the SWIO interface !!! YOU MUST UPGRADE THE ISP II FW IMAGE USING THE PROCEDURE DESCRIBED IN THE .\bin\firmware\S3FlashISP_upgrade_information.pdf FILE TO ENABLE ENHANCED DEBUG CAPABILITES AVAILABLE WITH ZDS 5.3.0 !!! - Added new Enhanced ISP Debug library that must be linked to S3 applications to enable enhanced debug features available in ZDS 5.3.0 o New Debug capabilities supported by the Enhanced ISP Debug library (not available with the legacy ISP Debug library in ZDS 5.2.3 and earlier): > Single-step debugging of assembly and “C” source code o Also supports step-in step-over, step-out and run-to cursor > Resume applications after a breakpoint occurs without having to reset the target > Ability to modify the contents of RAM and Flash while debugging o The Enhanced ISP Debug library replaces the (standalone) ASCII Monitor library in ZDS 5.2.3 (and earlier) releases. Consequently the S3 Monitor library is no longer supported with ZDS 5.3.0 - Added Trace, Timer and Data Breakpoint support for OPENice-i2000 - Added end of Address location and checksum information for Calculate Checksum utility. - Added Smart Options verification at end of Program and Verify operation. - Added Device Info feature under Project > Settings > General window page. - The efficiency of the C compiler has been improved in release 5.3.0, significantly reducing the size of compiled code compared to earlier releases. The magnitude of this effect varies greatly from one application to another, as it depends on whether your program is open to the specific new optimizations that are now in place. - The compiler now offers an option to use static call frames in place of the more familiar dynamic frames. This option reduces code size in the great majority, though not all, applications. Some precautions must be taken, however. This option is selected on the C > Code generation page of project settings. See the Online Help topic Static Frames for details. - A new feature has been added to support run-time stack checking. You can use this feature during development to monitor the stack requirements of your application and detect stack overflows, which are often very hard to debug. This option is selected on the C > Code generation page of project settings. See the Online Help topic Stack Checking to learn how to use this feature. - We have added a new header file to make it easier to refer to bits or multi-bit fields in SFRs by symbolic names. This new header is named S3SfrBits.h. See the Online Help topic "SFR Bits and Multi-Bit Fields" for details on using this in your development. - In C applications, the default type of char variables has been changed from signed to unsigned. This could affect the execution of your application. See item 5 below in the section "P & L, Compiler, Assembler, etc. for a detailed explanation of this issue. - We have added support for arrays of LCD data memory mapped into RAM space, in C programs. See the Online help topic "Support for LCD Data Memory" (under the heading Application Development and Other Topics) for details on how to use this in your application. - The compiler now supports arrays or structs whose size need not be limited to a single page of RAM. B. COMPATIBILITY ============================================================================== Devices -------------------------------------------------------------------------- Please refer to the ZDS Help > Help Topics > Contents > Zilog Developer Studio II Help > Introduction > ZDS II System Requirements > S3 Product Support for the latest supported devices. S3 Flash ISP Driver -------------------------------------------------------------------------- USB device drivers can be found in the following location: \device drivers\USB\ ******************** Important! *************************** The Device Driver installer need to be run as Administrator OPENice-i2000 Driver -------------------------------------------------------------------------- The driver is included in the OPENice-SLD IDE Software and can be found in the following location: C:\OPENice\Drv Debug Tool -------------------------------------------------------------------------- S3 FLash ISP (S3USBISP000ZACG rev B or earlier) S3 FLash ISP II (S3USBISP000ZACG Rev C or later) OPENice-i2000 S3 Flash ISP Firmware -------------------------------------------------------------------------- Please refer to the S3FlashISP_upgrade_information.txt located in the following directory for information: \bin\firmware +-----------------+--------------+-----------------+-------------------+ | | Firmware | ZDS-S3 | | | Debug Tool | Version | Version | Notes | |-----------------+--------------+-----------------+-------------------| | S3 Flash ISP I | 1.2 or lower | 5.2.0 or Higher | Not supported in | | | | | this release. See | | | | | Note #1 | |-----------------+--------------+-----------------+-------------------| | S3 Flash ISP II | 1.4 or lower | 5.2.3 or Lower | See note #2 | |-----------------+--------------+-----------------+-------------------| | S3 Flash ISP II | 1.5 or Higher| 5.3.0 or Higher | | +-----------------+--------------+-----------------+-------------------+ Note #1 - Please contact the factory or Technical support for a FREE replacement S3 FLash ISP II. #2 - Need to upgrade to FW 1.5 or higher and use ZDS 5.3.0 or higher. C. SYSTEM REQUIREMENTS ============================================================================== Supported Operating Systems (Validated) -------------------------------------------------------------------------- Windows XP 32-bit (SP3) Windows 7 32 and 64-bit Windows 8 32 and 64-bit Windows 10 32 and 64-bit D. APPLICATION AND OTHER OS ISSUES ============================================================================== 1. Apply the latest Windows updates to the host system when appropriate. 2. Updated the S3 Flash ISP Windows Driver Package to use a SHA-256 code signing certificate for greater security. This could cause Windows 7 users to have to click the ”Always trust software from Zilog Inc” checkbox multiple times during the S3 Flash ISP II driver installation even though the “Always trust” checkbox was previously clicked. To correct this issue Microsoft recommends installing the hot fix described in KB2921916: https://support.microsoft.com/en-ca/help/2921916/the-untrusted-publisher- dialog-box-appears-when-you-install-a-driver-i This issue does not occur with Windows 8 or Windows 10. E. P & L (PRECAUTIONS AND LIMITATIONS) ============================================================================== User Manuals -------------------------------------------------------------------------- 1. The S3 FLash ISP Device driver is now installed as an option at the end of ZDS installation. This replaced the procedure in the Development Kit Users Manual. Debugger & Programmer -------------------------------------------------------------------------- 1. The Debug Tool > Simulator is not supported at this time. 2. If the S3 Flash ISP II drivers are uninstalled and the associated driver files are removed from the Windows PC by selecting the “Delete the driver software for this device” option when uninstalling the drivers, then the next time the USB ISP II device is detached and subsequently reattached to the PC, Windows will not be able to automatically re-install the necessary driver software. In this instance, it is necessary to perform the procedure described in Appendix A of UM0266 to reinstall all the S3 Flash ISP II drivers. However, before opening an S3 project file in the ZDS IDE, it is necessary to disconnect and reconnect the USB ISP II device again before opening the ZDS IDE and attempting to do a Connect to Target Reset+Go. If this is not done then after doing a Connect to Target or a Reset + Go, ZDS will report the following error: [ERROR] Failed to open ISP, SN# \\. \COMxx [ERROR] Unable to connect to the target To correct the problem, simply disconnect and reconnect the S3 Flash ISP II USB cable from the host PC. 3. To reduce the risk of damaging the S3 Flash ISP, please use the following start-up procedure for targets powered with an external power supply: o Connect the ISP to the PC o Connect the ISP to the target o Apply the External power to the target Note: Never connect the ISP to a self-powered target; only apply power to the target after it is connected to the ISP Compiler, Assembler, Linker/Locator, & Librarian -------------------------------------------------------------------------- 1. Please see the On-Line Help topics when converting from other assembler under Zilog Developer Studio II Help > Compatibility Issues o DifferenceS between the S3 and other Zilog Assemblers o DifferenceS between the S3 and SASM 2. One specific difference between the Zilog S3 assembler and SASM may cause warning messages to appear when building your project, where no warning is reported by SASM. The warning in question is message 606, “Program counter uncertain at this point, using best estimate.” This message is explained in more detail in the Online Help topic, Using the Macro Assembler > Warning and Error Messages. Please refer to that help topic for a full explanation of why this warning may occur in your project. When you see this warning message, typically you have code in your project that is trying to compare the value of the Program Counter (represented by the $ symbol in assembly code) to a fixed or symbolic value, in order to generate a warning or error at build time if your code doesn't fit into the memory limits of your project. Unfortunately, in the Zilog S3 assembler, the PC may be adjusted quite late in the process of generating code, and so these kinds of comparisons may not be reliable. Warning message 606 thus indicates that you can’t rely on this comparison in your code, whether the comparison test appears to succeed or fail. To determine whether your code violates the space constraints, simply examine the assembler listing file for the code in question. You will probably want to select the option to show absolute addresses in assembler listings (on the linker output page) when doing this. You might also consider runtime checks in the debug version of your project to flag a problem if the code grows beyond the constraints. This warning message itself can be disabled, if you choose, by including the following code in the source code file that is producing the warning message: INCLUDE “ZilogWarnings.inc” WARNING DISABLE PC_UNCERTAIN ; Disable Program Counter uncertain ; warning for this entire file Alternatively, to suppress the warning from just the single line of code that is producing it, delete the second line above and instead insert the following line just before the line of code that produces the warning message: WARNING SUPPRESS PC_UNCERTAIN ; Disable Program Counter uncertain ; warning for the next line of code 3. The compiler does not support placing executable code into the executable RAM address space which is available in some S3 CPUs. This address space is currently supported only for assembly code. 4. The instructions LDCPD and LDCPI do not have the intended effect in the S3F828B and S3F84I9 CPUs. Therefore, for these two CPUs only, the assembler will automatically convert any use of these 2 instructions that are found in any assembly source code file. The LDCPD instruction will be converted into a DECW instruction followed by an LDC instruction. The LDCPI instruction will be converted into an INCW followed by an LDC. These conversions will have the exact intended effect of the original LDCPD or LDCPI instruction though at the cost of an increased code size of 2 bytes per occurrence. The assembler will issue Warning 607 if it detects that one of these conversions has been made. If you prefer to disable that warning, place the following in your source code file before any LDCPD or LDCPI instructions have occurred: INCLUDE “ZilogWarnings.inc” WARNING DISABLE SUB_EQUIVALENT Or, equivalently, WARNING DISABLE 607 5. Beginning with the 5.3.0 release, in C code the default type of char variables has been changed from signed to unsigned. This could affect the execution of your application. The background of this change is that for char variables that are declared neither as signed or unsigned, the C Standard does not specify whether they are to be treated as signed or not. Instead, this choice is left to the compiler and the only requirement is that all such variables must be treated consistently as either signed or unsigned. Because of this lack of standardization, any C code that declares a variable as simply "char" rather than "signed char" or "unsigned char" is not safe if the behavior of the code depends on whether the variable is treated as signed or unsigned. Such code should be avoided. The following simple example shows the danger: char c; for (c = 10; c >= 0; c--) { ... /* do something */ } This code will run as expected, executing the loop 11 times, as long as c is treated as being signed. However, if chars (including c) are taken to be unsigned by default, the loop will never terminate because the condition c >= 0 will always be true for an unsigned char. We have changed the default type of char from signed to unsigned because this gives a code size advantage in some applications. This happens because when a char is being used in an operation with a larger integer type, the char does not first have to be sign-extended (an expensive operation) if the char is unsigned. If you have code similar to the above that implicitly depends on the signedness of char variables, that code is at best non-portable and, if it works, only does so by good fortune on particular compilers. There are 2 ways you can fix this in ZDS II release 5.3.0 or later. If you have only a single example (or a few) like the one above, you could simply change the declaration of c to "signed char c". This will allow you to get the code size benefit of our change for any unqualified char variables whose behavior does not depend on their signedness. Alternatively, you could select Project > Settings > C > Advanced > Default Type of Char > Signed. This would restore the behavior of pre-5.3.0 ZDS releases in this regard, at the cost of forgoing the code size advantage described here. IDE -------------------------------------------------------------------------- 1. When changing values of filling memory using the code memory window, you can only write a 0 to a 1 data and cannot write a 1 to a 0 data. Page Erase is not supported. 2. The support for the YIC OPENice_i2000 were validated for most targets except TB82NB. Target Hardware -------------------------------------------------------------------------- S3F8S190100ZCOG - S3F8S19 Development Kit ----------------------------------------- 1. Please note that U4 (Z8F6481AN) is used for factory test and is not needed for regular operation of the S3F8S19 development kit. U4 will be removed from future builds of the S3F8S19 development kit. 2. If the S3F8S19 Development kit is powered by a USB cable connected between P1 and a Windows PC, and if the Z8F6481AN includes factory test code, then Windows will attempt to locate driver software for the Z8F6481AN.Typically, Windows will not be able to find any compatible driver software and report that it was not able to load the necessary driver files. This situation is expected and can safely be ignored. The S3F8S19 development kit will function as expected regardless of whether or not Windows loads any drivers for the Z8F6481AN device. F. CLOSED CHANGE REQUESTS ============================================================================== Compiler -------------------------------------------------------------------------- (Fixed in 5.3.1) CR 13497 Compiler sometimes neglects to pop the PP in ISR epilogue. (Fixed in 5.2.3) CR 13458 Incorrect & inefficient code is sometimes generated when accessing SFR bits via bit-fields. G. OPEN CHANGE REQUESTS ============================================================================== H. OTHER OPEN ISSUES (NOT RECORDED AS CHANGE REQUESTS) ============================================================================== Assembler -------------------------------------------------------------------------- • Compatibility with Samsung tools for the .ORG directive is still being explored. Samsung documentation states that .ORG defines an offset from the current section start, but in practice, it seems to be absolute as in Zilog tools. Being treated as absolute for now. • The assembler reports no error when an impossibly large address is used in the .SECTION directive. • The undocumented Samsung assembler directive reg_equ is not supported.