|
|||||||||||
Technical Support Support Resources
Product Information |
/****************************************************/ /* Release Notes for Version 6.01 */ /* 8051 DEVELOPMENT TOOL KITS */ /****************************************************/ This file contains release notes and last minute changes relating to the 8051 Version 6 toolchain. Information in this file, the accompanying manual, and software is Copyright (c) 2000 Keil Software and Keil Elektronik. All rights reserved. Contents ======== 1. What's new in C51 Version 6.01 2. uVision2 Integrated Development Environment 3. Compiler Enhancements 4. Assembler Enhancements 5. Linker Enhancements 6. Manuals Provided 7. Example Programs 8. New Devices & Register Header Files 9. uVision2 Debugger - On Chip Peripherals in the Simulator 10. Sales and Technical Support 1. What's new in C51 Version 6 Three new optimizer levels help shrink program size up to 25%. The integrated source browser lets you quickly navigate through your source code. The device database sets all compiler, assembler, and linker options for you. We are constantly improving our products. During the Support Period that is listed in the uVison2 About box you may download the latest updates from our Web page to keep your product current. If your support is exhausted you should contact our sales depardment to enlarge your support period. Compared to Version 6.00 the Release V6.01 contains the following enhancements: - C51 directives RET_ISTK, RET_PSTK, and RET_XSTK to unload the on-chip stack and use the reentrant stack for storing the return address. - New C51 ANSI library functions: modf, strtod, strtol, strtoul. - New BL51 Linker features for XDATA and CODE address ranges and wildcards in segment control directives. - The uVision2 Debugger provides now Monitor-51 interface and simulation for the peripherals of most standard 40-pin devices (8051FC,RD,RD+, 8052 ect.) - The uVision2 Editor now offers syntax coloring for assembler code and in the context menu a text insert for the CPU register defintion file. - Context Sensitive help for C166 library functions and error messages. To get help on a library function, simply type F1 in the editor window. The same works on error messages in the Output Window - Build page. 2. uVision2 Integrated Development Environment This release includes uVision2 for Windows. uVision2 is an integrated development environment that encapsulates a project manager, integrated make facility, tool configuration, editor and a powerful debugger. You use uVision2 to write, compile and debug your programs using our tools. The example programs provided are designed to work with uVision2. 3. Compiler Enhancements C51 Version 6 has the following improvements compared to Version 5: - Three new Optimize Levels: this new optimizations focus on code density. Compare to C51 Version 5 the new optimization levels of C51 Version 6 recude code size of your application by 5 - 15%. OPTIMIZE(7): Extended Access Optimization: uses the DPTR also for register variables. Pointer and array accesses have been optimized for both speed and code size. OPTIMIZE(8): Re-use Common Entry Code: moves common function entry code on the beginning of a function. This saves code memory. OPTIMIZE(8) is the new default level of C51 Version 6. OPTIMIZE(9): Common Block Subroutines: multiple instruction sequences are deteced and packed into subroutines. This optimization is most efficient on large modules. - The data type enum adjusts now automatically the size to 8 or 16 bits. - Support for Atmel, Philips and Temic dual DPTR has be added. It works the same way as described for the Dallas 80C320, 80C520, 80C530, 80C550 in the C51 User's Guide, chapter 5. Philips and Temic devices: Dual DPTR's are today available on several Philips devices. The C51 directive MODP2 generates code for dual DPTR's. NOMODP2 disables dual DPTR usage. Atmel devices: Dual DPTR's are currently available only on AT89S8252. The C51 directive MODA2 generates code for dual DPTR's on Atmel. NOMODA2 disables dual DPTR usage. - One interrupt service routines without 'using' attribute, C51 ensures now that the registerbank 0 is selected during execution. This adds the instruction MOV PSW,#0 to the interrupt service routine. However, now you can omit also the using attribute on high-priority interrupts, when you have other low-priority interrupts with a 'using' attribute (which is also the case in RTX-51 and RTX-51 Tiny applications). If you are using only the registerbank 0 in your application, you can use the C51 directive ONEREGBANK. Then C51 does not generate the additional MOV PSW,#0 instruction. - The C51 directives RET_ISTK, RET_PSTK, and RET_XSTK allow you to unload the on-chip stack and use the reentrant stack for storing the return address. More information can be found in the C51 User's Guide 3.2000. - New C51 ANSI library functions are now available: modf, strtod, strtol, strtoul. More information can be found in the C51 User's Guide 3.2000. 4. Assembler Enhancements The following features have been added to A51 Version 6: - C Pre-processor added - C sfr and sbit definitions These features are described in the following. - C Preprocessor: A standard C macro pre-processor expands the source text before the file is translated. The C pre-processor is almost identical to the pre-processor implemented in the C51 Compiler and is described in the C51 User's Guide, Chapter 4. The #include file path specification is taken from the enviroment variable C51INC. The following pre-defined Macros exist in A51: __FILE__ Name of the file being translated __LINE__ Current line number in the file being compiled __TIME__ Time when the translation was started __DATE__ Date when the translation was started __STDC__ Defined to 1 __A51__ Version number of the A51 Assembler (for example 600 for V6.00) __KEIL__ Defined to 1 - C sfr, sbit Declarations: A51 now accepts standard register defintion files from C51. Therefore the sfr and sbit C Declarations are added. Example: sfr P0 = 0x80; sbit P0_1 = P0^1; - ERROR output: The user may generate standard error messages with the __ERROR__ directive. Example: IF CVAR1LEN > 10 __ERROR__ "CVAR1 LEN EXCEEDS 10 BYTES" ENDIF #ifdef TESTVERS && RELEASE #error TESTVERS GENERATED IN RELEASE MODE #endif - INCDIR Directive (Abbreviation ID): with INCDIR you can supply one or more paths to search for when a $INCLUDE (file) directive is processed. Example: $INCDIR (C:\C51\ASM) A51 STARTUP.A51 INCDIR (C:\C51\INC,C:\MYDIR) The search order for $INCLUDE is as follows: - current directory (typical the folder of the uVision2 project file) - paths specified with $INCDIR - path derrived from the bin directory with ..\asm path (this is C:\Keil\C51\Asm in default installations). The search order for #include is identical to C51. 5. Linker Enhancements BL51 Version 4.0 has the following improvements: - With the directive DISABLEWARNING (Abbr. DW) you can selectively disable Linker warnings. Example: BL51 myfile.obj DISABLEWARNING (1, 5) will disable the report of Warning Number 1 and 5. - The new BL51 version sorts the segment size and locates the segments according its length. This typically ensures less GAPS in the memory space. If it is required to disable this feature, i.e. to get the behaviour of the previous version, state the NOSORTSIZE (Abbr. NOSO) directive in linker invocation line. - The directive SPEEDOVL (Abbr. SP) you can select that the linker does no longer uses the references to the constant segments starting with ?CO?. However, this might result also in missing warnings, when you are using pointers to functions without correction of the references (refer to the 8051 Utilities User's Guide, page 34 - page 41 for more information). This directive might be useful for applications with complex pointer to function tables. - The directive NOAJMP (Abbr. NOAJ) you can disable the use of the AJMP instruction in the interbank jump table. This option is required for 8051 derivatives which are not supporting the AJMP instruction. - With the BL51 directive RECURSIONS (Abbr. RC) you can specify the number of RECURSIONS allowed, before the Linker reponses with the message: FATAL ERROR 232: APPLICATION CONTAINS TOO MANY RECURSIONS. Example for using the RECURSIONS directive: BL51 test.obj RECURSIONS (100) It should be noted that the linker may run for a long time to detect all recursions and remove the references. You should therefore use the standard setting RECURSIONS (10) by default. - By default, BL51 inserts inter-bank CALL's for indirect called functions in code banking applications. If your application is using many pointer to functions and if you can ensure, that these indirect calls never cross a code bank, you can use the NOINDIRECTCALL (Abbr. NOIC) directive. - When the new NOJMPTAB (Abbr. NOJT) directive is stated, BL51 does not longer insert any inter-bank calls for program calls. This feature is implemented to use user-defined bank switch mechanism for code banking. The NOJMPTAB directive modifies the following features of BL51: a) the linker does not longer need bank logic file: L51_BANK.OBJ. b) the linker does not modify any jump call instructions. c) the linker does not generate any warnings if a jump/call is made to another bank. The user must ensure that the proper bank is selected before a call is done. The BL51 code banking linker does not longer select the bank automatically. - The XDATA and CODE directives accept now address ranges in the directives Example: BL51 myfile.obj CODE (0- 0x2000, 0x4000-0x8000) XDATA (0-0x3FF) XDATA and CODE ranges are generated from the uVision2 Options dialog - Target page when you enter external memory devices. - In the segment control directives now wildcards are accepted when you locate segments. Example: BL51 myfile.obj (CODE (?PR?*?myfile (0x100)) will locate all program code segments in the module myfile to address 0x100 an up. 6. Manuals Provided The 8051 release includes the Getting Started and Creating Applications User's Guide. This manual leads you step-by-step though several example programs. It also introduces you to our broad product line. In addition, it is a quick reference for all of our 8051 and 251-based development tools. The manual is available in PDF format under \KEIL\C51\HLP\GS51.PDF. 7. Example Programs Several example programs are included in the EXAMPLES directory. These files demonstrate how to use the uVision2 Project Manager and Debugger. More Information can be found in the uVision2 Quick Start Guide. 8. New Devices & Register Header Files The C51 Version 6 covers support for 8051 derivatives currently available. Also included is support for multiple DPTR's on Atmel, Dallas, Infineon, Philips and Temic devices. We have added header and support files for most 8051 derivatives. When you edit a C or assembler source text, the correct register defintion file is listed in the editor context menu that opens with a right mouse click. Use the Insert "#include | ||||||||||
|
Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.