TASKING VX-toolset for C166 v2.5r1
Release Note
Scope
This release note covers the changes between v2.4r1 and v2.5r1 of the TASKING VX-toolset for C166.
Contents
This section gives an overview of the most important new features and improvements in v2.5. See the sections with fixed issues for a complete list.
Device support synchronized
The device support has been synchronized in v2.4r2 and in v2.5r1 with the latest list of Infineon.
New series of devices that are added:
- XC22xxI, XC22xxL and XC22xxU
- XC23xxE, XC23xxD and XC23xxS
- XC27x7X, XC27x3X and XC27x2X
- XE16xxL and XE16xxU
Added several missing devices to XC22xxN, XC23xxA, XC23xxB, XC23xxC, XC27x8X, XC27x6X, XE167FH and XE169FH series.
A few devices have been renamed for consistency reasons. You will need to update the processor selection for your project when using one of these devices.
ICACHE support added
Devices with an ICACHE are now supported.
The ICACHE control registers can be initialized from the C startup code. In Eclipse the C startup code editor can be used to enable the ICACHE with the ICACHE_CTRL.ICEN bit (issue 119-37883).
The linker script language (LSL) has been extend to make it possible to tell whether code sections will be located by default into the cached or into the uncached memory area (issue 119-37460). The standard LSL files in the product's include.lsl directory have been updated to prevent data being located into the cached area (119-37837). By default sections will be located into the uncached area.
See the User Guide section "4.3.1. ICACHE Support" and "8.7.10. ICACHE Support and Named Memory Mappings" for detailed information.
Updated Eclipse
The Eclipse distribution is updated to the Galileo release (Eclipse Platform 3.5 and CDT 6.0).
The "new TASKING VX-toolset for C166 C/C++ Project wizard" is extended with a page to select the processor.
The options to enable Application wide optimizations (MIL-linking) is moved from the Global Options page to the Optimization page. The description and layout of these options are also improved.
MIL files now versioned
MIL files and MIL archives are now stamped with a version. When MIL-linking all MIL files and archives must be created with the same version of the compiler. If this is not the case an error will be issued. (issue 119-37750)
MISRA-C checking improved
The compiler now checks for MISRA-C rules 5.5, 5.7, 6.2, 8.8, 8.9. (issue 119-37621)
High level object dumper
A new tool is included in the product: The high level object dumper, hldump166. (issue 119-37676) With this tool the ELF file can be displayed in a readable way. The output includes:
- Section list
- Module list
- Disassembly, inter-lined with C/C++ source lines
- Low level ELF symbol table
- High level (DWARF) symbol table with absolute addresses
- Controllable expansion of high level struct, union and array symbols with sizes and absolute addresses of all members
- Text and XML file output.
An example of the high level symbol table:
---------- HLL symbol table ----------
Address Size HLL Type Name
0000F620 440 struct struct2_tag __near struct2_array[10] [hldump.c]
0000F620 44 struct struct2_tag
0000F620 2 unsigned int field1
0000F622 40 struct struct1_tag array[10]
0000F622 4 struct struct1_tag
0000F622 1 char field1
0000F624 2 int field2
0000F626 4 struct struct1_tag
0000F626 1 char field1
0000F628 2 int field2
0000F62A 4 struct struct1_tag
0000F62A 1 char field1
0000F62C 2 int field2
.
.
.
Data and Code address ranges separated for XC2000 and XE166
The product's standard LSL files no longer allow code to be located in DSRAM and DPRAM. For devices with an ICACHE the cached flash areas can only be used for code (issue 119-37460). This change is required for ICACHE, but also makes it easier to execute code from PSRAM. See "8.7.9. Copying Code Sections to PSRAM at Startup" in the User Guide.
On-chip flash support for XC2000 and XE166 updated
The product's standard LSL files for XC2000 and XE166, defining the on-chip memories, have been updated to match the device documentation more accurately. Each on-chip flash array now has it's own flash memory definition in LSL. This also includes the flash array mapped at the end of the flash memory range (issue 119-37708). The previously used name Program_Flash is replaced by the names Flash0..FlashN (issue 119-37920). The belonging flash definitions for the debugger have been updated similarly.
DAS LPT support dropped
The support for debugging via the parallel port has been dropped since v2.5r1. The new version of DAS no longer supports the parallel port. It is recommended to use the miniWiggler for debugging (issue 119-37817).
Improvements
- 119-37497 - Map File viewer: re-size hover pop-up when it has the focus after pressing F2
- 119-37498 - Map File viewer: change color automatically when adding a new filter
- 119-37507 - Add toolchain version to window title
- 119-37512 - Upgrade Eclipse to the Galileo release
- 119-37530 - amk.exe: it should be mentioned in the users guide that "ifdef", "ifndef", "else" or "endif" must start at the beginning of a line
- 119-37609 - add processor selection capability to new project wizard
- 119-37621 - Add checks for MISRA-C rules 5.5, 5.7, 6.2, 8.8, 8.9
- 119-37690 - Text global option for mil-linking is not clear
- 119-37719 - Better documentation of input parameters of __asm
- 119-37750 - Check if used MIL files and MIL archives have the correct MIL version
- 119-37769 - Global type checking must also check struct/union tags.
- 119-37887 - improve rendering of bit addresses
- 119-37911 - Update JRE to version 6
- 119-37920 - Change Program_Flash in LSL files to Flash
New Features
- 119-37098 - Support for "Inactive code highlight" using the LSL editor
- 119-37460 - Modify architecture LSL files for separate code and data support
- 119-37676 - New high level object dumper
- 119-37837 - Specify which memory map must be used by default
- 119-37838 - Add id to map statements
- 119-37883 - Add support to cstart for enabling ICACHE
Fixed Problems
- 119-36181 - Variables of base class not always shown via this-pointer of derived class
- 119-37407 - preprocessor define may cause duplicate path entry warning
- 119-37506 - incorrect makefile generated for mil-link project without C sources
- 119-37552 - Always generate 8-bit mau flash chips from flash dialog.
- 119-37616 - MISRA-C 2004 Rule 19.13 must be 'Advisory'
- 119-37627 - Example is wrong
- 119-37639 - Importing EDE settings does not succeed for an XC23XX or XE16X derivative
- 119-37647 - Document -C/--cpu behavior for inline assembly
- 119-37658 - When modifying the lsl file the linker will not be called
- 119-37662 - Map file viewer configuration buttons in the sections table are disabled
- 119-37663 - Keil project import wizard support for µVision4
- 119-37697 - Disabling checkbox "Warnings instead of errors" for CERT C code checking has no effect
- 119-37708 - LSL files do not reflect on-chip flash memory correctly
- 119-37710 - EDE import wizard: CPU setting not imported correctly
- 119-37717 - Missing documentation on floating point library and floating point trapping
- 119-37744 - The __bfld example in the manual does not fit on the page
- 119-37753 - Error when value in Variables View is changed
- 119-37779 - c166: S900 internal consistency check failed due to incorrect struct access (syntax error)
- 119-37800 - Debugger does not show bitaddresses as <byte-address>.<bit-number>
- 119-37817 - Remove DAS LPT support from the product
- 119-37851 - Find option in TASKING Registers view does not always work
- 119-37858 - problems in Variable view
- 119-37896 - Errors after opening LSL editor on Windows7 because cc166 cannot create a temporary file
- 119-37900 - Debugging assembly modules not possible
- 119-37910 - Compiler crash on specific code, related to CSE and HLL debug info generation.
- 119-37912 - Cannot distinguish bit addresses from byte addresses in absolute ELF file
The list of open issues for v2.5r1 can be found on the internet.
Improvements
- 119-37423 - Improve debug info at optimization level 0 by enabling coalescer
- 119-37484 - Add TC1 changes of the MISRA-C standard
- 119-37539 - amk: Allow leading space for directives
- 119-37611 - Add support for all XE166M devices
- 119-37707 - Bring device support in sync with Infineon Microcontroller PocketGuide 2010
New Features
- 119-37420 - add an option to generate a dependency file
- 119-37449 - Add an option to list all defined macros
- 119-37612 - Add feature to C compiler to dump header file tree
- 119-37668 - Add support for unnamed struct/unions
Fixed Problems
- 119-36026 - Wrong debug information for local variable
- 119-36541 - Debug option "Break on exit" has no effect
- 119-36650 - Incorrect debug information generated for __bit variables
- 119-37451 - implicit conversion from int to char shall allways trigger warning
- 119-37481 - MAC registers located in the ESFR space are pushed on the system stack without required EXTR instruction
- 119-37482 - The G flag is missing in the -A alias option.
- 119-37518 - Memory write scheduled over volatile access when -Av is enabled.
- 119-37526 - S917 assertion error
- 119-37535 - Wrong segment number accessed when writing to a huge struct member
- 119-37541 - S911 error when using function return as array size
- 119-37544 - c166 --help=k option does not list the __attribute__ keyword
- 119-37557 - Locate errors after applying a different page alignment on some sections
- 119-37573 - amk.exe: comparing two strings with ifeq does not work for strings with an even amount of characters
- 119-37575 - FASTBL bit missing in CPUCON2 in register files
- 119-37577 - S911, when a global is defined twice, once static
- 119-37579 - Overlay example address range incorrect
- 119-37606 - undeserved MISRA-C rule 7.1 violation for float constants: "octal constants (other than zero) shall not be used"
- 119-37607 - Incorrect DPP reference when using generic assembly code optimization
- 119-37633 - Wrong MAC opcodes generated for inline assembly
- 119-37654 - c166 E231: ["..\test.c" 14/10] expression must be constant
- 119-37655 - severe crash possible upon debugger termination
- 119-37656 - simulator hangs when setting bit 1 of register TFR
- 119-37659 - cannot place software breakpoints when working with DAS
- 119-37687 - --no-warnings overrules --warnings-as-error
- 119-37701 - flashing of external devices may not work
- 119-37702 - "lk166 F019: unrecoverable error: caught unknown exception" for flash chips with mau-size=16
- 119-37723 - Wrong return value for user stack R15 when dividing double zero by zero
- 119-37725 - Array index incorrectly calculated
- 119-37737 - Assembler generates wrong opcode for ST10 MAC shift instructions like __CoSHL
- 119-37752 - S911 error on specific code
- 119-37763 - AMK does not handle $(MACRO:.x=.y) correctly
- 119-37766 - Unexpected struct size for packed struct with bitfields
- 119-37791 - programming byte-programmable flash devices may fail
The list of open issues for v2.4r2 can be found on the internet.
When using the product without a valid license, the tools will run in trial mode.
This means you can use the toolset 15 days with full functionality. When running in trial mode, each tool
will report the number of days left. When using a license that does not cover the full toolset, the tools
that are not covered by the license will run in trial mode.
When after installing the license file the tools that are covered by the license still report that they
are running in trial mode, this means that there is a license error. If you want to force the termination
of the trial mode to get the FLEXlm error message you can set the environment variable FORCE_NO_TRIAL
to "yes".
All TASKING products include the industry standard FLEXlm license management software. In order to be able
to run this toolset, you will need a license key, although you can use the full functionality during the 15
day trial period as described above. You can only obtain a license key if you have purchased this product.
To obtain a license key, you can start the License Administrator from the program group of your installed
TASKING toolset. In case you still need to install the toolset, you can start the License Administrator by
setting a check mark at the end of the setup/installation process. The wizard of the License Administrator
will guide you through the steps to obtain your license key.
Once you have received your license key from Altium, you can install it on your system by running the License
Administrator again. Alternatively you can simply save the license key as the file 'license.dat' in the
C:\FLEXLM folder on your PCs hard disk.
More information is available on http://www.tasking.com/support/flexlm. On this page you also
find assistance to setup a floating network license, or for installation on Linux or Sun systems.