TASKING 8051 Toolchain v7.2r6

Release Note

  • TASKING Developers' Forum
  • TASKING Home Page
  • TASKING 8051 Support Page
  • TASKING 8051 FAQ
  • TASKING 8051 Application Notes



    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.

    New compiler _sfrword/_little qualifiers

    To support 16-bit SFRs defined on adjacent sfr byte addresses the compiler now supports the _sfrword type.

    _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);

    New intrinsic compiler functions

    The compiler now supports the following intrinsic functions:


    extern void f(void);
    extern void jmptome(void);

    void main( void )
        EA = 0;

        _jmp( jmptome );

    Improved library scanning algorithm

    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.

    Remote Evaluation Board Access Server

    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: 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:

    Extended OMF51 output format

    The OMF51 formatter tool is now capable of generating several extensions to the original Intel OMF51 output format. Extensions include: 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-2006 Altium BV