mirror of
https://github.com/VARCem/PTV_Archive.git
synced 2026-09-24 07:54:22 +00:00
800 lines
44 KiB
HTML
800 lines
44 KiB
HTML
<!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, 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. </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), & (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, 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 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 > 10
|
||
__ERROR__ "CVAR1 LEN EXCEEDS 10 BYTES"
|
||
ENDIF</pre>
|
||
Or using the C-style preprocessor.
|
||
<pre>#ifdef TESTVERS && 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 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 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 <br>
|
||
</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>
|
||
</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>
|