Keil Logo
         /*         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.


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.

  sfr  P0 = 0x80;
  sbit P0_1 = P0^1;

- ERROR output:  The user may generate standard error messages with the 
  __ERROR__ directive.

  IF CVAR1LEN > 10


- INCDIR Directive (Abbreviation ID): with INCDIR you can supply one or more 
  paths to search for when a $INCLUDE (file) directive is processed.

  $INCDIR (C:\C51\ASM)

  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:

  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

- 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 " option to include the register defintion 
header file in your source code.

9.  uVision2 Debugger - On Chip Peripherals in the Simulator

With more than 400 derivatives on the market it is impossible that the 
uVision2 Debugger & Simulator supports all aspects and on-chip peripherals
of the various devices.  However the simuator currently supports all 8051
40-pin devices like the 8051Fx,RD,RD+, 8052 and variants as well as the
Infineon C515, C517 and C517A.  We are constantly improving simulation
support for on-chip peripherals.  The next devices covered will be Philips
LPC series and Analog Devices ADuC812.

uVision2 works now also with the Monitor-51 Target Monitor.  You can now
select in the dialog Options - Debug and enable the Monitor debugger
with Use Keil Monitor-51 Driver.  You can adjust COM port settings with
the Settings button.

As an alternative to the uVision2 Debugger it is also possible to use the
dScope-51 that is available in the C51 Version 5 package.  You may invoke
dScope-51 via the uVision2 tools menu.  The following setup calls dScope-51 
with an INI file that depends on the project name of the current uVision2 

*  Use uVision2 Tools - Customize Tool Menu dialog.
*  Enter the following information:
   -  Menu Content:   Run dScope-51 with @P
   -  Command:        C:\C51\BIN\DSW51.EXE      // depends on your installation
   -  Initial Folder: 
   -  Arguments:      -i @P.INI

Now you can start dScope-51 directly from the uVision2 Tools menu.
You may create a INI file that contains the following content:

---- Example:  HELLO.INI (dScope INI file for HELLO project)
LOAD 8051.DLL      // the device you want to simulate with dScope-51.
LOAD HELLO         // the application you want to load
g, main            // run program til entry 'main'

10. Sales and Technical Support

We at Keil Software are dedicated to providing you with the best development 
tools and the best technical support.  More than 1200 technical support questions
and the releated answers can be accessed with the Keil Online Support Solutions 
Database that is available on Internet

When a new question arises, it is added to the database which is published to the
world-wide web daily.  That makes it easier for you to get technical support at
times when our support staff is unavailable. 

If you experience any problems or have any questions about this product, contact
one of our offices for assistance.

In the USA...                             In Europe...

KEIL Software, Inc.                       KEIL Elektronik GmbH
1501 North 10th Street, Suite 110         Bretonischer Ring 15
Plano, Texas 75074                        D-85630 Grasbrunn, Germany

Sales         (800) 348-8051              Sales   +49 89 456040-0
Support       (972) 312-1107              Support +49 89 456040-24
Fax           (972) 312-1159              Fax     +49 89 468162
Email           Email


  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

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.