Files
PTV_Archive/compilers/c51/Hlp/Release_Notes.htm
2023-04-20 10:16:42 +02:00

800 lines
44 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0043)http://www.keil.com/update/_c51/c51v701.htm -->
<html>
<head>
<title>C51 Release Notes</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<style>p { font-size: 10pt; font-family: Verdana }
.LI2 { margin-top: 6px; margin-bottom: 6px }
.Release { font-weight: bold; background-color: #cccccc; padding: 6px }
.ToolT { font-size: 8pt; color: #808080 }
.TinyT { font-size: 8pt; text-align: center }
ul { font-size: 10pt; font-family: Verdana; list-style-type: square }
ol { font-size: 10pt; font-family: Verdana }
h1 { font-weight: bold; font-size: 18pt; color: #000080; font-family: Verdana;
text-align: center; margin-right: 3px }
h2 { font-weight: bold; font-size: 14pt; color: #000080; font-family: Verdana;
background-color: #cccccc; margin-top: 24px; margin-bottom: 3px;
padding: 6px }
h3 { font-weight: bold; font-size: 10pt; font-family: Verdana; background-color:
#cccccc; margin-top: 24px; margin-bottom: 3px; padding: 6px }
pre { font-size: 10pt; font-family: Courier New; background-color: #ccffcc;
margin-left: 24px; margin-right: 24px }
li { margin-top: 12px; margin-bottom: 6px }
</style>
<meta content="Microsoft FrontPage 4.0" name="GENERATOR">
<meta name="ProgId" content="FrontPage.Editor.Document">
</head>
<body>
<h1>Release Notes for C51<br>
<font size="2">8051 Development Tool Kits</font></h1>
<p align="center">This file contains release notes and last minute changes that
are not found in the printed manuals.</p>
<p class="TinyT">Information in this file, the accompany manuals, and software
is<br>
Copyright © Keil Software, Inc and Keil Elektronik GmbH.<br>
All rights reserved.</p>
<hr>
<h2>Contents</h2>
<ol>
<li class="LI2"><a href="#WhatsNew">What's New in C51</a>
<li class="LI2"><a href="#ExamplePrograms">Example Programs</a>
<li class="LI2"><a href="#DeviceDatabase">Device Database™</a>
<li class="LI2"><a href="#PeripheralSimulation">Peripheral Simulation</a>
<li class="LI2"><a href="#TechnicalSupport">Technical Support</a>
<li class="LI2"><a href="#ContactDetails">Contact Details</a></li>
</ol>
<h2><a name="WhatsNew"></a>What's New in C51</h2>
<p>The following sections list the changes instituted in each release of the C51
toolset.</p>
<h3>C51 Version 7.05 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[ISD51 In-System Debugger - Version 2]</b></font><br>
Added: Real-Time Flash Breakpoints using In-System Application programming (IAP), User I/O via serial debugging interface and address range for the memory verify function.</li>
<li><font color="#800000" size="1"><b>[Flash Monitor-51 - Version 4]</b></font><br>
A new variant of Monitor-51 is included in the Professional Developers Kit. The Monitor runs on un-modified Flash Devices that
offer IAP programming. It can run from the on-chip resources of standard 8051 Flash Devices and does not require von-Neumann
memory. Flash Monitor includes Flash download and real-time breakpoint support. Currently the Monitor is pre-configured for
Atmel T89C51CC01,&nbsp; T89C51RC2, and T89C51RD2, but can be also configured for other devices.</li>
<li><font color="#800000" size="1"><b>[uVision2 Debugger/Simulator]</b></font><br>
Added: simulation for Atmel T89C51CC02, T8xC5115, AT89C1051, AT89C1051U, AT89C2051, AT89C4051 and Philips P8xC51Rx2, P8xC51RB2H/RC2H/RD2H, P8xC3xX2.&nbsp;</li>
<li><font color="#800000" size="1"><b>[uVision2 Debugger/Simulator]</b></font><br>
Corrected: AT89S8252 EEPROM simulation with Dual DPTR access and ADuC832 ADC DMA Stop.</li>
<li><font color="#800000" size="1"><b>[uVision2 Debugger]</b></font><br>
Corrected: local variables did not automatically display in the watch window - locals tab.</li>
<li><font color="#800000" size="1"><b>[LX51 Extended Linker]</b></font><br>
Corrected: potential problem with linker code packing on optimize level 10 and 11.</li>
<li><font color="#800000" size="1"><b>[C51 Compiler]<br>
</b></font>Corrected: erroneous combining of identical end sequence of while (1) loops.</li>
</ul>
<h3>C51 Version 7.04 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[Philips MX Device Support]</b></font><br>
Changed INIT_MX.A51: initialization is enabled for <b>far variables</b> by
default; <b>far variables</b> can now be absolutely located with <b>_at_</b>.</li>
<li><font color="#800000" size="1"><b>[Monitor for Dallas Contiguous Mode]</b></font><br>
Corrected breakpoints above 64KB code and single stepping in switch/case
statements did not work.</li>
<li><b><font color="#800000" size="1">[uVision2 Target Debugger]<br>
</font></b>Added call stack display and step out command for classic 8051
devices. Added <a href="http://www.keil.com/epm900">EPM900</a>
Emulator/Programmer support for Philips 89LPC932.</li>
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Corrected: integer promotion rules on combined pointer and char arithmetic,
for example:
<pre>int xdata *Test (int xdata * adr, unsigned char a, unsigned char b) {
return adr+(a+b); // did not promote 'a+b' to int
}</pre>
</li>
<li><font color="#800000" size="1"><b>[A51 Assembler, AX51 Assembler]</b></font><br>
C-style operators: | (OR), &amp; (AND), ~ (NOT) are now accepted by the A51
and AX51 assembler which is useful for common C and assembler header files
with <i>#define</i> statements. </li>
</ul>
<h3>C51 Version 7.03a Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[RTX51 Tiny2]</b></font><br>
Corrected os_wait problems on K_IVL,&nbsp; K_TMO + K_SIG events. Refer to <b>Keil\C51\RtxTiny2\Readme.TXT
</b>for details.</li>
<li><font color="#800000" size="1"><b>[uVision2 Debugger/Simulator]</b></font><br>
Added <b>Cygnal 80C51F02x</b> device simulation.</li>
</ul>
<h3>C51 Version 7.03 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Corrected incorrect warnings on enum mismatches.</li>
<li><font color="#800000" size="1"><b>[LX51 Linker]</b></font><br>
Corrected fixup error messages on Dallas 390 target.</li>
</ul>
<h3>C51 Version 7.02 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[LX51 Linker]</b></font><br>
Corrected problems with linker code packing and code banking and a potential
problem with the bank switch table location in banking mode 4.</li>
<li><font color="#800000" size="1"><b>[LX51 Linker]</b></font><br>
Added the <b>SPEEDOVL</b> directive to makes LX51 and BL51 compatible for
data overlaying. Detailed information on <b>SPEEDOVL</b> is available in the
Assembler/Utilities User's Guide, Chapter 9, Control Summary.</li>
<li><font color="#800000" size="1"><b>[BL51 Linker, LX51 Linker, Libraries]</b></font><br>
Added support for Mentor M8051EW Memory Extension that provides access to
1MB ROM and 1MB RAM. Details are described in <a href="../examples/m8051ew/apnt171.htm">Application
Note 171</a>. The <b>IBANKING</b> directive supports the on-chip banking
hardware on M8051EW based devices and is available in both the BL51 Linker
and the LX51 Linker. Additionally, LX51 may be configured with the
L51IBANK.A51 file that supports a 64KB bank for constants and 16 x 64KB
banks for <b>far </b>variables. Refer to <b>\C51\Examples\M8051EW</b> folder
for example code and further information.</li>
<li><font color="#800000" size="1"><b>[C51 Compiler, CX51 Compiler]</b></font><br>
Corrected a potential problem with generic and far pointer comparisons to a
NULL pointer constant.</li>
<li><font color="#800000" size="1"><b>[C51 Compiler, CX51 Compiler]</b></font><br>
Enhanced warning messages on <b>enum</b> and <b>memory typed pointer</b>
assignments.</li>
<li><font color="#800000" size="1"><b>[Monitor for Dallas Contiguous Mode]</b></font><br>
Released MON390 which provides a target monitor for the Dallas Contiguous
Mode. Detailed information, pre-configured Monitor versions, and example
programs may be found in the <b>\C51\MON390</b> folder.</li>
<li><font color="#800000" size="1"><b>[uVision2 Debugger/Simulator]</b></font><br>
Added simulation for several new devices (Atmel 89C51Ix). The Cygnal
80C51F02x devices are currently in beta status.</li>
<li><b><font color="#800000" size="1">[uVision2 IDE]<br>
</font></b>Added Flash menu to uVision2. Flash programming commands may be
configured under <b>Options for Target ­ Utilities</b>. These provide a
direct interface to external Flash programming tools like Philips FlashMagic.</li>
<li><font color="#800000" size="1"><b>[RTX51 Tiny Version 2]</b></font><br>
Released RTX51 Tiny Version 2. This release contains several new
enhancements like code banking support and cooperative task switching.</li>
</ul>
<h3>C51 Version 7.01 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added support for Extended Call Return Mode (ECRM) available in the new
Philips 51MX devices. This mode is configured in <b>START_MX.A51</b>. It
enhances the code density of the <b>ROM(HUGE)</b> memory model that provides
an 8MB linear program memory. This optimization requires that <a href="http://www.keil.com/support/docs/2214.htm">Linker
Code Packing</a> is enabled. Once this option is enabled, ACALL, LCALL, and
ECALL instructions are optimized.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Corrected minor problems in the <b>ROM(HUGE)</b> memory model.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added several new devices to the uVision2 device database.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added peripheral simulation for the new Philips 89LPC932.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added peripheral simulation for the second UART in Winbond devices.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added peripheral simulation for the four priority levels in the new version
of the Philips 8xC552 device.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Corrected problems in <b>L51_BANK.A51</b> with regards to variable code
banking on classic 8051 devices that used standard banking hardware.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Corrected a syntax problem (that was introduced in Version 7.00) in the <b>setjmp.h</b>
header file.
<li><font color="#800000" size="1"><b>[LX51 Linker]</b></font><br>
Validated LX51 <a href="http://www.keil.com/support/docs/2214.htm">Linker
Code Packing</a> for Philips 51MX and Dallas 390/400 devices.
<li><font color="#800000" size="1"><b>[BETA RELEASE]</b></font><br>
Released RTX51 Tiny Version 2 BETA with the following new features and
enhancements:
<ul>
<li>Code Banking Support
<li>Explicit Task Switch Function
<li>RUN Status Flag
<li>CPU IDLE Mode Support
<li>Hooks for Adding User Code to the RTX51 Tiny Hardware Timer Interrupt
<li>Improved Handling for Interval Events
<li>Reduced Code and Data Size
<li>Improved Performance</li>
</ul>
<li><font color="#800000" size="1"><b>[BETA RELEASE]</b></font><br>
Released MON390 BETA which provides a target monitor for the Dallas
Contiguous Mode. Detailed information, pre-configured Monitor versions, and
example programs may be found in the <b>\C51\MON390</b> folder.</li>
</ul>
<h3>C51 Version 7.00 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added the <b>ROM(HUGE)</b> directive which provides support for the Philips
51MX Linear Programming Model. Select this option in uVision2 using Options
for Target-Code Rom Size: Huge: 8MB program. More information is available
in <a href="http://www.keil.com/appnotes/docs/apnt_160.asp">Application Note
160</a>: Programming the Philips 51MX Architecture with the Keil PK51.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added the ability to perform 24-bit arithmetic calculations using <b>far</b>
pointers. For more information, refer to <a href="http://www.keil.com/appnotes/docs/apnt_160.asp">Application
Note 160</a>: Programming the Philips 51MX Architecture with the Keil PK51.
<li><font color="#800000" size="1"><b>[ISD51]</b></font><br>
Released <a href="http://www.keil.com/c51/isd51.htm">ISD51 (In-System
Debugger)</a>: a new target debugger that may be linked to user
applications. Refer to <b>\C51\ISD51</b> for more information.
<li><font color="#800000" size="1"><b>[LX51 Linker]</b></font><br>
Added a new LX51 Linker-Level Optimization called <a href="http://www.keil.com/support/docs/2214.htm">Linker
Code Packing</a>. This optimization analyzes and reduces total program size.
In uVision2, enable this optimization in Options for Target - C51: Code
Optimization: Linker Code Packing. This optimization is available for all
projects even those that use code banking. Note that this optimization is
still a BETA RELEASE for the Philips 51MX and Dallas 390/400 devices.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added two new optimizations to the C51 Compiler that reduce program code
size. In uVision2, enable these optimization in Options for Target - C51:
Code Optimization: Level.
<li><font color="#800000" size="1"><b>[Lx51 Linker]</b></font><br>
Added Linker <a href="http://www.keil.com/support/docs/148.htm">Disassembly
Output File</a>. This output file contains the complete disassembly of your
application complete with intermixed high-level source and all addresses. In
uVision2, enable this option in Options for Target - Listing - Linker Code
Listing.</li>
</ul>
<h3>C51 Version 6.23 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Corrected problems with register optimizations in while loops.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Corrected problems implicitly casting types in ternary statements.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Enhanced performance of the run-time library and pointer operations for the
Dallas Semiconductor 80C390 Contiguous Mode.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added ability to locate XDATA and CODE in regions other than 00:xxxx for the
Dallas Semiconductor 80C390.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Corrected various problems with initializations with Lx51 and bit objects.
<li><font color="#800000" size="1"><b>[A51 Assembler]</b></font><br>
Corrected problems <a href="http://www.keil.com/support/docs/2202.htm">synchronizing
MPL Macros</a> while debugging.
<li><font color="#800000" size="1"><b>[OHx51 Object File Converter]</b></font><br>
Added the <b>MERGE32K</b> directive which generates merged HEX files for
hardware with 32K common areas. Refer to the Ax51 User's Guide, Chapter 9,
Bank Switch Configuration for more information. In uVision2, select this
option in Options for Target - Output - Merge32K HEX File.
<li><font color="#800000" size="1"><b>[OHx51 Object File Converter]</b></font><br>
Corrected problems with Lx51 HEX file generation.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added simulation support for Analog Devices MicroConverters.
<li><font color="#800000" size="1"><b>[BETA RELEASE]</b></font><br>
<a href="http://www.keil.com/c51/isd51.htm">ISD51 In-System Debugger</a> is
a new target debugger that may be linked to user applications. Refer to <b>\C51\ISD51</b>
for more information.
<li><font color="#800000" size="1"><b>[BETA RELEASE]</b></font><br>
Added a new LX51 Linker-Level Optimization called <a href="http://www.keil.com/support/docs/2214.htm">Linker
Code Packing</a>. This optimization analyzes and reduces total program size.
In uVision2, enable this optimization in Options for Target - C51: Code
Optimization: Linker Code Packing.
<li><font color="#800000" size="1"><b>[BETA RELEASE]</b></font><br>
Added two new optimizations to the C51 Compiler that reduce program code
size. In uVision2, enable these optimization in Options for Target - C51:
Code Optimization: Level.
<li><font color="#800000" size="1"><b>[BETA RELEASE]</b></font><br>
Added Linker <a href="http://www.keil.com/support/docs/148.htm">Disassembly
Output File</a>. This output file contains the complete disassembly of your
application complete with intermixed high-level source and all addresses. In
uVision2, enable this option in Options for Target - Listing - Linker Code
Listing.</li>
</ul>
<h3>C51 Version 6.22 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Corrected several problems that were introduced with Dynamic Register
Allocation in Version 6.21.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added new examples for the const far memory type.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added support for the extended stack in the Analog Devices MicroConverters.
<li><font color="#800000" size="1"><b>[Lx51 Linker]</b></font><br>
Added examples for <b>far const</b> memory with classic 8051 devices in <b>\C51\EXAMPLES\FARMEMORY\1MB
CONSTANTS ON CLASSIC 8051</b>. These examples show how to use memory banking
with text constants.</li>
</ul>
<h3>C51 Version 6.21 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Corrected several minor problems.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added the <b>MODDA</b> directive and library support for the Dallas 390 Math
Accelerator.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added <a href="http://www.keil.com/c51/new_62x.htm">dynamic register
allocation</a> optimization which reduces program size and data usage.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added <a href="http://www.keil.com/c51/new_62x.htm">switch/if path
combination</a> optimization.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added optimization for <a href="http://www.keil.com/c51/new_62x.htm">long 0
comparisons</a>.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Corrected several optimizer problems that were introduced in C51 V6.20.
<li><font color="#800000" size="1"><b>[BL51 Linker]</b></font><br>
Corrected several minor problems.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added simulation support for the Dallas Semiconductor 80C390 peripherals.</li>
</ul>
<h3>C51 Version 6.20 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Enhanced the <b>L51_BANK.A51</b> file to support even larger code banking
programs (up to 4MB).
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added enhanced optimization for register variables.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added variable banking support for classic 8051 devices.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added debug dialogs for classic 8051 devices.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added four 64KB user memory areas (S:, T:, U:, and V:) that may be used when
debugging.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added functions or for special simulation capabilities (E<sup>2</sup>PROM, I<sup>2</sup>C
communication, and so on).
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Improved the Version Control (SVCS) Connection and corrected several
problems with environment variables.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added several new items to the Help Menu.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added several project management enhancements.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added numerous chips to the Device Database.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added simulation support for the on-chip peripherals of the following
devices (complete information is available in the µVision2 Help Menu -
Simulated Peripherals item.):
<ul>
<li class="LI2">Infineon C504.
<li class="LI2">Infineon C505C.
<li class="LI2">Infineon C508.
<li class="LI2">Infineon C515A.</li>
</ul>
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added new debugging dialogs for MON51.</li>
</ul>
<h3>C51 Version 6.14 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added examples to demonstrate the Dallas 390 contiguous mode
(\C51\EXAMPLES\DALLAS 390).
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added examples to demonstrate the Philips 51MX architecture 16MB support
(\C51\EXAMPLES\PHILIPS 80C51MX).
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added <b>far</b> memory (above 64K) support using the \C51\LIB\XBANKING.A51
configuration file.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added <b>far</b> memory examples for the 16MB memory space of the Analog
Devices ADuC812 and for the AtmelWM 89C51RD E2PROM area (\C51\EXAMPLES\FARMEMORY).
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added macros for absolute <b>far</b> memory access in <b>ABSACC.H</b>.
<li><font color="#800000" size="1"><b>[Cx51 Compiler]</b></font><br>
Added the <b>INCDIR</b> directive <font size="2">where you may specify
include paths.</font>
<li><font color="#800000" size="1"><b>[Ax51 Assembler]</b></font><br>
Added the <font size="2"><b>INCDIR</b> directive where you may specify
include paths.</font>
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added simulation support for the on-chip peripherals of the following
devices:
<ul>
<li class="LI2">Infineon C509.
<li class="LI2">Infineon C517A.
<li class="LI2">Infineon C515C.</li>
</ul>
</li>
</ul>
<h3>C51 Version 6.12 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Removed the 256-symbol limit from OMF51 object files.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Extended the length of C variable names to 256 characters.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added simulation support for the on-chip peripherals of the following
devices:
<ul>
<li class="LI2">Atmel WM T87C5111.
<li class="LI2">Atmel WM T87C5112.</li>
</ul>
</li>
</ul>
<h3>C51 Version 6.11 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added the <b>ROM(512K)</b> and <b>ROM(D16M)</b> directives to select the
contiguous modes of the Dallas Semiconductor 80C390. This directive must be
used with the <b>OMF2</b> directive. Refer to <b>\C51\EXAMPLES\DALLAS390\README.TXT</b>
for more information.</li>
</ul>
<h3>C51 Version 6.10 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Finalized support for the Philips 80C51MX.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Finalized support for the Dallas Semiconductor 80C390.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added banking mode 4 to <b>L51_BANK.A51</b> for user-provided bank switching
macros.</li>
</ul>
<h3>C51 Version 6.03 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[BETA RELEASE]</b></font><br>
Added support for the Philips 80C51MX, Dallas Semiconductor 80C390, and LX51
Extended Linker.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added the <b>OMF2</b> directive which causes the C51 Compiler to output
object files for the LX51 Extended Linker. This new object file format
supports 16MB code space for constants and 16MB xdata space and is required
for extended 8051 device variants like the Analog Devices ADuC812, Dallas
390, and others.
<li><font color="#800000" size="1"><b>[BL51 Linker]</b></font><br>
Added a new warning if your program CODE or XDATA exceeds the specified
memory area size.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added simulation support for the on-chip peripherals of the following
devices:
<ul>
<li class="LI2">Dallas 320/323/520/530.
<li class="LI2">Philips 80C552/554.
<li class="LI2">Temic 89C51RD2 (including on-chip E<sup>2</sup>PROM).
<li class="LI2">Temic 80C51CC02.</li>
</ul>
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Integrated debugger interface for the Triscend E5 CSoC. Refer to <b>\C51\HLP\README_FOR_TE5_UV2.TXT</b>
for more information.</li>
</ul>
<h3>C51 Version 6.02 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Corrected several minor problems with Optimizer Level 9.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added simulation support for the on-chip peripherals of the following
devices:
<ul>
<li class="LI2">Analog Devices ADuC812.
<li class="LI2">Philips LPC Devices.</li>
</ul>
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added simulation support for multiple DPTR registers.</li>
</ul>
<h3>C51 Version 6.01 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added the <b>RET_ISTK</b>, <b>RET_PSTK</b>, and <b>RET_XSTK</b> directives
which unload the on-chip stack and use the reentrant stack for storing
return addresses.<br>
<br>
Refer to <a href="http://www.keil.com/support/docs/1434.htm">The RET_ISTK
Directive</a>, <a href="http://www.keil.com/support/docs/1435.htm">The
RET_PSTK Directive</a>, or <a href="http://www.keil.com/support/docs/1436.htm">The
RET_XSTK Directive</a> for more information.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added ANSI library routines modf, strtod, strtol, and strtoul. Refer to the
on-line compiler manual for more information.
<li><font color="#800000" size="1"><b>[BL51 Linker]</b></font><br>
Modified the <b>CODE</b> and <b>XDATA</b> directives to allow address
ranges. For example:
<pre>BL51 my_prog.obj CODE(0x0000-0x3FFF, 0x8000-0xFFFF)</pre>
<li><font color="#800000" size="1"><b>[BL51 Linker]</b></font><br>
Modified segment control directives to allow wildcards in segment names. For
example:
<pre>BL51 my_file.obj (CODE (?PR?*?my_file (0x100))</pre>
Locates all program code segments in the module my_file to address 0x100 and
up.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added debugger support for <a href="http://www.keil.com/c51/mon51.htm">MON51</a>.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added simulation support for almost all 40-pin DIP devices (8051FC, RD, RD+,
8052, and so on).
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added support for syntax coloring in assembler code.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added&nbsp;item in the context menu to insert the CPU register definition
file.
<li><font color="#800000" size="1"><b>[uVision2 IDE]</b></font><br>
Added context-sensitive help for library routines and error messages. To get
help for a library routine, position the cursor on the function and press
the <b>F1</b> key. To get help for an error or warning message, select the
message and press the <b>F1</b> key.</li>
</ul>
<h3>C51 Version 6.00 Release</h3>
<ul>
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added 3 new optimizer levels which shrink program size up to 15%.
<ul>
<li class="LI2">Optimize Level 7 (Extended Access Optimization) uses DPTR
for register variables. Pointer and array accesses have been optimized
for both speed and code size.
<li class="LI2">Optimize Level 8 (Reuse of Common Entry Code) moves common
function entry code to the beginning of a function which saves code
memory. Optimize (8) is the new default optimization level for C51
Version 6.xx.
<li class="LI2">Optimize Level 9 (Common Block Subroutines) detects and
packs multiple-instruction sequences into subroutines. This optimization
is most efficient on large source files.</li>
</ul>
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added specific header file support for almost all devices.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added configuration file (<b>\C51\LIB\CONF151.A51</b>) for the Intel 151.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Updated the enum type to automatically adjust to 8 or 16 bits.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added dual data pointer support for Atmel devices (AT89S8252). Use the <b>MODA2</b>
directive to enable dual data pointer support. Use the <b>NOMODA2</b>
directive to disable support.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added dual data pointer support for Philips devices. Use the <b>MODP2</b>
directive to enable dual data pointer support. Use the <b>NOMODP2</b>
directive to disable support.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
Added dual data pointer support for Temic devices. Use the <b>MODP2</b>
directive to enable dual data pointer support. Use the <b>NOMODP2</b>
directive to disable support.
<li><font color="#800000" size="1"><b>[C51 Compiler]</b></font><br>
C51 now ensures that register bank 0 is selected for interrupts declared
without the <b>using</b> attribute. The instruction MOV PSW, #0 is added to
these routines.<br>
<br>
Previously, you were required to added the <b>using 0</b> attribute to
high-priority interrupts when low-priority interrupts used a different
register bank. This was the case for RTX51 Full and RTX51 Tiny applications.<br>
<br>
If your application uses only register bank 0, you may use the <b>ONEREGBANK</b>
directive to specify that the C51 compiler does not generate the additional
MOV PSW, #0 instruction.
<li><font color="#800000" size="1"><b>[A51 Assembler]</b></font><br>
Added C preprocessor support that expands text before the source file is
assembled. Directives like <b>#if</b>, <b>#else</b>, <b>#endif</b>, and <b>#include</b>
are supported in assembly source code (refer to the C51 User's Guide,
Chapter 4). The <b>#include</b> file path is obtained from the <b>C51INC</b>
environment variable.
<li><font color="#800000" size="1"><b>[A51 Assembler]</b></font><br>
Added the following predefined Macros:
<ul>
<li class="LI2"><b>__FILE__</b>: Name of the file being assembled.
<li class="LI2"><b>__LINE__</b>: Current line number in the file being
assembled.
<li class="LI2"><b>__TIME__</b>: Time when the assembly was started.
<li class="LI2"><b>__DATE__</b>: Date when the assembly was started.
<li class="LI2"><b>__STDC__</b>: Defined to 1.
<li class="LI2"><b>__A51__</b>: Version number of the A51 Assembler (for
example 600 for V6.00).
<li class="LI2"><b>__KEIL__</b>: Defined to 1.</li>
</ul>
<li><font color="#800000" size="1"><b>[A51 Assembler]</b></font><br>
Added support for C-style sfr and sbit declarations. The A51 Assembler now
accepts standard C-style register definition files. This allows you to use
the same header files for your C and assembler source files. The following
sfr and sbit declarations were added:
<pre>sfr P0 = 0x80;
sbit P0_1 = P0^1;</pre>
<li><font color="#800000" size="1"><b>[A51 Assembler]</b></font><br>
Added error output using the <b>__ERROR__</b> directive. For example:
<pre>IF CVAR1LEN &gt; 10
__ERROR__ &quot;CVAR1 LEN EXCEEDS 10 BYTES&quot;
ENDIF</pre>
Or using the C-style preprocessor.
<pre>#ifdef TESTVERS &amp;&amp; RELEASE
#error TESTVERS GENERATED IN RELEASE MODE
#endif</pre>
<li><font color="#800000" size="1"><b>[A51 Assembler]</b></font><br>
Added the <b>INCDIR</b> (abbreviation <b>ID</b>) directive where you may
specify the paths to assembler include files. You may specify one or more
paths to search when a <b>$INCLUDE</b> directive is processed. The search
order for <b>$INCLUDE</b> is:
<ul>
<li class="LI2">Current directory (typically, the folder of the uVision2
project file).
<li class="LI2">Paths specified with <b>$INCDIR</b>.
<li class="LI2">Path derived from the bin folder using <b>..\ASM</b> (<b>\C51\ASM</b>).</li>
</ul>
For example:
<pre>$INCDIR (C:\C51\ASM)
A51 STARTUP.A51 INCDIR (C:\C51\INC,C:\MYDIR)</pre>
The search order for <b>#include</b> is identical to that used by the C51
Compiler.
<li><font color="#800000" size="1"><b>[BL51 Linker]</b></font><br>
Added the <b>DISABLEWARNING</b> directive (abbreviation <b>DW</b>) which
allows you to selectively disable linker warning messages. For example:
<pre>BL51 myfile.obj DISABLEWARNING (1,5)</pre>
Disables warnings 1 and 5.
<li><font color="#800000" size="1"><b>[BL51 Linker]</b></font><br>
BL51 now sorts and locates segments according to their length. This ensures
fewer gaps in memory. Use the <b>NOSORTSIZE</b> directive (abbreviation <b>NOSO</b>)
to disable this feature.
<li><font color="#800000" size="1"><b>[BL51 Linker]</b></font><br>
Added the <b>SPEEDOVL</b> directive (abbreviation <b>SP</b>) which causes
the linker to ignore references to constant segments that start with ?CO?.
This speeds up the overlay process but may result in a lack of warnings with
regard to constant segments. This could lead to problems if you use pointers
to functions and do not manually specify the call tree references to the
linker. Refer to <a href="http://www.keil.com/support/docs/1445.htm">SPEEDOVL
Directive</a> and <a href="http://www.keil.com/appnotes/docs/apnt_129.asp">Application
Note 129</a>: Function Pointers in C51 for more details.<br>
<br>
This directive may be useful for applications with complex pointer to
function tables.
<li><font color="#800000" size="1"><b>[BL51 Linker]</b></font><br>
Added the <b>RECURSIONS</b> directive (abbreviation <b>RC</b>) which allows
you to specify the maximum number of recursive calls allowed before the
linker aborts. The default number of recursions allowed is 10.<br>
<br>
A recursive call generates the following linker warning:
<pre>*** WARNING L13: RECURSIVE CALL TO SEGMENT</pre>
When the maximum number of recursions is exceeded, the linker responds with
the following error:
<pre>FATAL ERROR 232: APPLICATION CONTAINS TOO MANY RECURSIONS.</pre>
To use this directive, enter the following on the linker command line or in
the Misc box in uVision2.
<pre>BL51 test.obj RECURSIONS (100)</pre>
Note that the linker may run a long time to detect all recursions and remove
the references. Unless you have specific reasons to change this setting, you
should leave it at the default level of 10.
<li><font color="#800000" size="1"><b>[BL51 Linker - Code Banking]</b></font><br>
Added the <b>NOAJMP</b> directive (abbreviation <b>NOAJ</b>)
which&nbsp;disables use of the AJMP instruction in the inter-bank jump table
in code banking programs. This option is required for 8051 derivatives which
do not support the AJMP instruction.
<li><font color="#800000" size="1"><b>[BL51 Linker - Code Banking]</b></font><br>
Added the <b>NOINDIRECTCALL</b> directive (abbreviation <b>NOIC</b>) which
specifies that function pointers do not access functions outside the current
code bank (in code banking programs). By default, in code banking programs
the BL51 Linker inserts inter-bank calls into the call table for functions
called through a function pointer. If your application uses function
pointers and if you can ensure that indirect calls never cross a code bank
you may use the <b>NOINDIRECTCALL</b> directive to save space in the call
table.<br>
<br>
Refer to <a href="http://www.keil.com/support/docs/1059.htm">The Code
Banking Mechanism</a> for more information about the scheme used by the BL51
Linker for code banking.
<li><font color="#800000" size="1"><b>[BL51 Linker - Code Banking]</b></font><br>
Added the <b>NOJMPTAB</b> directive (abbreviation <b>NOJT</b>) which
specifies that the call tree is not created for code banking applications.
This feature is provided for developers who will create their own code
banking scheme. This directive modifies the behavior of the BL51 Linker as
follows:
<ul>
<li class="LI2">The L51_BANK.A51 code banking logic file is not required.
<li class="LI2">The jump and call instructions are not modified for banked
functions.
<li class="LI2">No warnings are generated if a jump or call is made to
another code bank.</li>
</ul>
If you use this directive you must ensure that the proper bank is selected
before a call is performed. The BL51 Linker no longer selects the code bank.</li>
</ul>
<h2><a name="ExamplePrograms"></a>Example Programs</h2>
<p>Example programs included in the <b>\C51\EXAMPLES</b> folder demonstrate how
to use the uVision2 Project Manager and Debugger (see the uVision2 Quick Start
Guide for details). Please refer to these if you are new to the tools and want
to get started quickly.</p>
<h2><a name="DeviceDatabase"></a>Device Database™</h2>
<p>A unique feature of the Keil uVision2 IDE is the <a href="http://www.keil.com/dd">Device
Database™</a> which contains information about more than 400 supported
microcontrollers. When you create a new uVision2 project and select the target
chip from the database, uVision2 sets all assembler, compiler, linker, and
debugger options for you. The only option you must configure is the memory map.</p>
<p>As new devices become available, they are added to the database along with
data sheets and header files. For information about adding your own chips to the
database or about creating your own personal databases refer to the following
knowledgebase articles.</p>
<ul>
<li class="LI2"><a href="http://www.keil.com/support/docs/1421.htm">Adding
Custom Parts to the Device Database</a>
<li class="LI2"><a href="http://www.keil.com/support/docs/1645.htm">Creating
Custom Databases</a></li>
</ul>
<h2><a name="PeripheralSimulation"></a>Peripheral Simulation</h2>
<p>The uVision2 Debugger provides <a href="http://www.keil.com/uvision2/what_is_sim.htm">complete
simulation</a> for the CPU and on-chip peripherals of most embedded devices. To
discover which peripherals of a device are supported, in uVision2 select the
Simulated Peripherals item from the Help menu. You may also use the web-based <a href="http://www.keil.com/dd">Device
Database™</a>. We are constantly adding new devices and simulation support for
on-chip peripherals so be sure to check Device Database™ often.</p>
<h2><a name="TechnicalSupport"></a>Technical Support</h2>
<p>At Keil Software, we are dedicated to providing you with the best development
tools and technical support. That's why we offer numerous ways you can get the
technical support you need to complete your embedded projects.</p>
<ul>
<li class="LI2"><a href="http://www.keil.com/support"><b>Technical Support
Knowledgebase</b></a><br>
More than 1500 technical support questions and answers are available in the
Support Solutions Knowledgebase. When a new question arises, it is added to
the knowledgebase which is continuously published to the Web. This enables
you to get technical support at times when our support staff is unavailable.
<li class="LI2"><a href="http://www.keil.com/appnotes"><b>Application Notes</b></a><br>
Numerous Application Notes help you decipher complex features and implement
robust applications.
<li class="LI2"><a href="http://www.keil.com/download"><b>Example Programs and
Files</b></a><br>
Utility programs, example code, and sample projects are regularly added to
the Download File section of the web site.
<li class="LI2"><a href="http://www.keil.com/discuss"><b>Discussion Forum</b></a><br>
Post questions, comments, and suggestions to the Keil Software Discussion
Forum and interact with other Keil users around the world.</li>
</ul>
<p>Many of the features of our Technical Support Knowledgebase and Web Site are
the results of your suggestions. If you have any ideas that will improve them,
please <a href="http://www.keil.com/support/feedback.asp">give us your feedback</a>!</p>
<h2><a name="ContactDetails"></a>Contact Details</h2>
<p>If you experience any problems or have any questions about this product,
contact one of our <a href="http://www.keil.com/distis">distributors</a> or
offices for assistance.</p>
<div align="center">
<center>
<table cellspacing="0" cellpadding="5" border="0">
<tbody>
<tr>
<td style="BORDER-RIGHT: #800000 1px solid; BORDER-TOP: #800000 1px solid; BORDER-LEFT: #800000 1px solid; BORDER-BOTTOM: #800000 1px solid" valign="top" nowrap bgcolor="#ffffcc">
<p><b>In the USA...<br>
</b><br>
<b>Keil Software, Inc.</b><br>
1501 10th Street, Suite 110<br>
Plano, TX&nbsp; 75074<br>
USA<br>
<br>
800-348-8051 - Sales<br>
972-312-1107 - Support<br>
972-312-1159 - Fax<br>
<a href="mailto:sales.us@keil.com"><br>
sales.us@keil.com</a> - Sales E-Mail<a href="mailto:E-Mailsupport.us@keil.com"><br>
support.us@keil.com</a> - Support E-mail&nbsp;<br>
&nbsp;&nbsp;</p>
</td>
<td valign="top" nowrap width="30"></td>
<td style="BORDER-RIGHT: #800000 1px solid; BORDER-TOP: #800000 1px solid; BORDER-LEFT: #800000 1px solid; BORDER-BOTTOM: #800000 1px solid" valign="top" nowrap bgcolor="#ffffcc">
<p><b>In Europe...<br>
</b><br>
<b>Keil Elektronik GmbH<br>
</b>Bretonischer Ring 15<br>
D-85630 Grasbrunn<br>
Germany<br>
<br>
+49 89 456040-0 - Sales<br>
+49 89 456040-24 - Support<br>
+49 89 468162 - Fax<br>
<a href="mailto:sales.intl@keil.com"><br>
sales.intl@keil.com</a> - Sales E-Mail<a href="mailto:E-Mailsupport.intl@keil.com"><br>
support.intl@keil.com</a> - Support E-Mail<br>
&nbsp;&nbsp;</p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
<hr>
<p class="TinyT">Copyright © Keil Software, Inc. and Keil Elektronik GmbH.<br>
All rights reserved.<br>
Visit our web site at <a href="http://www.keil.com/">http://www.keil.com/</a>.</p>
</body>
</html>