M16C Toolchain v2.1r1



This release note describes the changes and new features of all TASKING M16C products with respect to v2.0r3. In the 'doc' directory of the product you can find the document 'conversion_guide.txt' please read this file before you convert a project from a previous version to this new version 2.1.

The following parts are described:

C++ support

C++ offers object-oriented design and coding possibilities though an ISO C++ compliant compiler. Scalable C++ offers compatiblity with the evolving Embedded C++ (EC++) standard which makes selective disabling of C++ features possible.

Mitsubishi ROM monitor

A connection with the Mitsubishi ROM monitor is now standard available in all products. It allows you to use the Crossview Pro debugger directly with the Mitsubishi ROM monitor available on several target boards. Examples have been added to be used with the Mitsubishi MSV30222-SKP starter kit and the Glyn EVBM16C/62 and EVBM16C/6N boards.

New TASKING M16C flash tool

A dedicated TASKING M16C flash tool has been added to the product. This flash tool interfaces to the standard Mitsubishi flash tool available on-chip. It allows you to directly flash an absolute IEEE-695, Intel Hex or Motorola S-Record file into the chip.

The v2.1 manuals do not contain a description of the flasher usage since it was added after the v2.1 manuals release. Instead the 'doc' directory of the installed product contains a file 'flash.txt' that contains a description on the Flash program usage.

Improved linker/locator interface

The interface to the linker/locator delfee files has been improved. Without needing to update any delfee description files it is now possible to reserve areas throughout the entire M16C space. Also it is possible to locate the startup code and the variable vector table to a fixed address.


The M16C Embedded Development Environment (EDE) has been updated to use Codewright v6.5

New examples

Dedicated examples have been added for the Mitsubishi MSV30222-SKP starter kit and for the Glyn EVBM16C/62 and EVBM16C/6N boards. Also a new basic C++ example has been added (cpp.pjt).

Crossview Pro Programmable Data Analysis window

The Crossview Pro debugger now supports the Programmable Data Analysis windows. This feature allows you to enables quick detection of gross errors in your signal processing routines by reducing large sets of data into meaningful visual diagrams. CrossView Pro can analyze the data according to pre-defined or user-defined specifications, and display the data the way you need it. Several pre-defined views are available like FFT, x-y, x-t, multi-grid and bars. This eliminates the need for reviewing or post-pro-cessing large files of raw data. You can also view the same set of data in several ways at the same time (e.g., in the time and the frequency domains).

Improved startup code generation

The M16C embedded development environment now supports the option to automatically add the generated startup code to the project. This generated startup code file gets the name '<project>_cstart.asm'. If you convert a project from a previous version it may already contain a startup code file called 'cstart.asm'. In that case you can do 2 things, first you can remove this 'cstart.asm' file from your project, secondly you can switch off the automatic generation and addition of the new startup code file under under EDE | Processor Options | Startup.

New variable vector table implementation

A new mechanism is used for the variable vector table that ensures that always the right (minimal) size is used for this table. To achieve this the MAX attribute has been added to the variable vector table section definition:

Using the MAX attribute automatically the right size will be used for the variable vector table. It will be as large as the highest vector used in your application. Thus if you application uses interrupt vectors 1, 2 and 7 it will be large enough to hold vector 7 (=7*4 bytes).

If you get the following error message:
    lkm16 E202 (0) <filename>.obj: Section .vecttab does not have the same attributes as already linked files
Then probably some files have not been recompiled with the new compiler v2.1. Solution is to do a 'rebuild' of the entire project forcing every module to be recompiled using the new compiler version. If you are using the '.vecttab' section in assembly files, then you can use the following template:

    SECT ".vecttab", RESET     ; the RESET attribute forces the
                               ; consecutive offset to be relative
                               ; to the start of the section.
    OFFSET <vector-number>*4   ; each vector uses 4 bytes
    DL <vector-address>

    SECT ".vecttab", RESET     ; this RESET can be left out, in
                               ; that case the following OFFSET;
                               ; should be relative to the previous
                               ; OFFSET + DL
    OFFSET <vector-number-2>*4 ; each vector uses 4 bytes
    DL <vector-address-2>

As an example you can use the vector definition for applications running on the M30222 board under the Mitsubishi ROM monitor. Since the ROM monitor requires the serial interrupt vectors to point to a fixed location in the monitor, the following assembly module has to be linked with every project running under the ROM monitor:

    SECT ".vecttab", RESET
    OFFSET 17 * 4

    DL 0F8A00h    ; used by the ROM monitor
    DL 0F8A00h    ; used by the ROM monitor


Solved problems

Several problems have been solved in this release. They are described in separate files: "solved_<name>.html".

Copyright (c) 2001 TASKING