TASKING 8051 Toolchain v7.2 r1
Release Note
TASKING Developers'
Forum
TASKING Home Page
TASKING 8051 Support
Page
TASKING 8051 FAQ
TASKING 8051
Application Notes
Summary
This release note describes the changes and new features of all TASKING
8051 products since v7.1.
The main reasons for this release are:
Debugger support for Infineon OCDS over DAS
Infineon DAS (Device Access Server) is supported as new communication channel between Crossview Pro and target
boards containing devices in the Infineon XC800 family. Crossview Pro can connect to the DAS server using
TCP/IP. The DAS server (which may run on any computer in the network) connects to the target board using a USB
connection. For communication with DAS it is required to use a so called 'wiggler box'. This is a small
device that is used to connect to the JTAG port on the target board.
Debugger/Flash support for Silicon
Laboratories JTAG and C2 target boards
The Crossview Pro debugger now supports both the Serial as well as the USB
Debug adapters to connect with Silicon Laboratories JTAG and C2
boards. This allows you to debug a program directly from EDE. You can
select the Silabs debug environment under Projects | Project Options |
Crossview Pro | Execution Environment. Also the flasher now supports both
the Serial as well as USB Debug Adapters and both JTAG as well as the C2
communication protocols. The protocol is automatically selected based on
the target family, but can be overriden for the Crossview Pro debugger
under Projects | Project Options | Crossview Pro | Communication, or under
Projects | Project Options | Flasher | Flasher Settings for the Flasher.
To support 16-bit SFRs defined on adjacent sfr byte addresses the compiler now supports the _sfrword type.
Example:
_sfrbyte SFRH _at(0xF1);
_sfrbyte SFRL _at(0xF2);
_sfrword SFR _at(0xF1);
Please note that in the above example the high byte is defined on the lower address, this matches
so-called big-endian definition, which is the default used by the compiler when dealing with 16-bit
integer types. However, in general, most SFR word definitions define the lower SFR byte
on the lower address (e.g. RCAP2L=>0xCA RCAP2H=>0xCB). In order to support these little-endian SFR words
an extra _little qualifier can and should be used on these _sfrword definitions, like:
_sfrbyte RCAP2L _at(0xCA);
_sfrbyte RCAP2H _at(0xCB);
_sfrword _little RCAP2 _at(0xCA);
The compiler now supports the following intrinsic functions:
Example:
extern void f(void);
extern void jmptome(void);
void main( void )
{
_push(IE);
EA = 0;
f();
_pop(IE);
_jmp( jmptome );
}
The 8051 link51 linker now provides a new directive MULTIPASS to switch to an
improved algorithm to resolve external references. Using this directive the linker not only rescans all
objects within a single library, but also rescans all libraries until all external references have been
resolved, or until the remaining external references cannot be resolved by any of the objects present in any
of the specified libraries.
When using EDE this feature is by default enabled, but can be switched off under:
Project | Project options | Linker | Linking
Use multipass library rescanning.
The Remote Evaluation Board Access Server has been added to the product.
Installing this server allows you to share a RS-232 connected evaluation board
over the network. The board is connected to the PC where the Remote Evaluation
Board Access Server is running and all CrossView Pro ROM monitor debuggers can connect from any PC in
the network to the server. The Remote Evaluation Board Access Server must be
installed separately from the tool chain, which allows you to install it on a
machine which does not run the tool chain. The installation is started from the
Showroom (started by the initial setup.exe). The Remote Evaluation Board Access
Server has its own manual.
This feature is only available for products on Windows. CrossView Pro on
other platforms can connect to a server running on Windows.
Extended ROM monitor safety check
The Crossview Pro debugger used with a TASKING ROM monitor now automatically checks if the code to be
downloaded overwrites the serial interrupt vector used by the ROM monitor.
For most ROM monitor target boards the serial interrupt vector is located in user writable RAM area. When this
area is not reserved in the application it will be overwritten during download causing the ROM monitor to be
inaccessible from the Debugger. Crossview Pro now first checks with the monitor which serial interrupt vector
is being used and prevents it from being overwritten. In that case a message is shown that includes the area
to be reserved by the application.
In order for this feature to function properly the ROM monitor has to support the INFO command, this command
returns the serial interrupt vector used by the ROM monitor. Projects to (re)build the TASKING ROM monitor
for several target boards can be found in the 'mon' directory of the installed product.
Improved custom segment naming
When selecting code bank switching the compiler automatically uses a
different segment name convention to allow for proper function distribution
over different code banks. It may in some situations be required to still
use a different segment name convention, this can now be done through the
standard C Compiler -R option, and through EDE under Project |
Project Options | C Compiler | Code Generation | Segment names.
New Compiler optimizations
Several new compiler optimizations have been added to the compiler. These
optimizations include amongst others:
-
bitfield handling
-
integer arithmetic
-
sfr word handling
-
invert operator
The compiler now recognizes expressions of type '(x << 8)|y' to merge
2 characters into an integer. Using this type of expression will result
in highly optimized code. This optimization can also be used to merge 2
byte SFRs into an integer. Below an example how to achieve this, advantage
of this method over the _sfrword language extension is the ability to merge
2 SFRs that are not on adjacent addresses.
#define SFRWORD(low,high)
(volatile unsigned int)((high << 8) | low)
_sfrbyte CRCL _at(0x85);
_sfrbyte CRCH _at(0x90);
_inline volatile unsigned int GetCRC(
void )
{
return SFRWORD(CRCL,CRCH);
}
unsigned int x;
void main( void )
{
x = GetCRC();
}
Support for new 8051 derivatives
Several new 8051 derivatives including complete new families are now supported
throughout the toolchain. The following families are now supported:
-
Ali Corporation 8051 family
-
Altium 80C51 family
-
AMD 8051 family
-
Analog Devices 8051 family
-
Atmel 8051 family
-
Chipcon 8051 family
-
CML Microcircuits family
-
Cybernetic Micro Systems family
-
Cypress 8051 family
-
Dallas/Maxim 8051 family
-
Domosys 8051 family
-
Fraunhofer 8051 family
-
Honeywell 8051 family
-
Hynix 8051 family
-
Infineon Technologies C500/C800 family
-
Intel MCS 51 family
-
ISSI 8051 family
-
Kawasaki 8051 family
-
Maxim 8051 family
-
Megawin Technology 8051 family
-
Mentor Graphics 8051 family
-
Micronas 8051 family
-
Myson/Century 8051 family
-
Nordic 8051 family
-
OKI 8051 family
-
NXP 80C51 family
-
Ramtron Semiconductor 8051 family
-
Sharp 8051 family
-
Silicon Laboratories 8051 family
-
Silicon Storage Technology FlashFlex51
-
STMicroelectronics 8051 family
-
Siliconians 8051 family
-
SMSC 8051 family
-
SyncMOS Technologies 8051 family
-
TDK 8051 family
-
Tezzaron Semiconductor 8051 family
-
TI 8051 family
-
Triscend 80C51 family
-
UTMC 80C51 family
-
Versachips 8051 family
-
Vitesse Semiconductor 8051 family
-
Winbond 8051 family
-
WinEdge Ultra51 family
-
Zylogic 8051 family
Extended OMF51 output format
The OMF51 formatter tool is now capable of generating several extensions
to the original Intel OMF51 output format. Extensions include:
-
Type information
-
Symbolic Debug
-
Bank switch information
These extensions will be accepted by most debuggers/emulators available
today. Besides the even more powerfull IEEE-695 format is still available.
TASKING Flash/Load Tools
This new version supports flash utilities for the Silicon Laboratories 8051 family (through
the Silicon Laboratories JTAG wiggler), the Phytec 8051 target boards and for the
Winbond 80C51 family. Also a loader utility is supported for the Infineon C868 Starter Kit. Both flash
and load utilities can be selected under Project | Project Options... |
Flasher. When a flasher/loader is selected the 'flash' button in the 'build'
toolbar is enabled. Pressing this button will directly flash an absolute
IEEE-695, OMF51, Intel Hex or Motorola S-Records file to the target.
Copyright 2004-2007 Altium BV