TASKING VX-toolset for C166 v3.0r2
This release note covers the changes between v2.5r1 and v3.0r2 of the TASKING VX-toolset for C166.
This section gives an overview of the most important new features and improvements in v3.0. See the sections with fixed issues for a complete list.
Various Significant Eclipse Changes
In v3.0r1 a major overhaul in various Eclipse parts has been made to improve ease of use. A summary of the changes:
- The distribution has been updated to the Eclipse Helios release: Platform 3.6.1 and CDT 7.0.1.
- Active Project has been introduced. The project can be set to active with the right-mouse-button menu item 'Set Active Project'. Various actions such as build, rebuild, start debugger and project properties now always apply to the active project.
- It is now required to select a device at project creation time. The created project will automatically become the Active Project.
- The project LSL file that is created for a new project is tuned for on-chip memories of the XC2000/XE166.
For this purpose a template.lsl file has been added to the include.lsl directory of the product. Eclipse will copy the template.lsl file to project's LSL file at project creation time.
- The C startup code editor has been removed. The cstart.c and cstart.h can be edited using the standard C/C++ editor.
- The C startup code can now be controlled through new properties pages: Project > Properties > C/C++ Build > Startup Configuration and Startup Registers. The settings are still stored in the project's cstart.h. Manual modifications of cstart.h will be reflected in the properties pages.
- The graphical user interface pages of the LSL editor are removed. The LSL editor is now a text-only editor.
- New properties pages have been added to make linker script settings: Project > Properties > C/C++ Build > Memory, Stack/Heap and Vector Table.
The Memory page has tabs for defining Memory, Reserved areas and DPPs. The settings are still stored in the project's LSL file. It is also still possible to modify the LSL file manually. Manual changes will be reflected in the property pages where possible.
- The Target Board Configuration wizard has been removed. For connecting with the debugger, you can create a new debug configuration in the standard Eclipse fashion. When using a board that has external memory, the memory settings for the project can be imported through File > Import... > TASKING C/C++ > Board Configuration.
- The Flash properties page is moved and is now a child of the Run/Debug Settings properties page. The settings in the Flash properties page are solely for controlling the debugger's flasher.
The XML schema for the debug target configuration files (.dtc) has been modified to accommodate some of the changes mentioned. In case you have created a .dtc file for your own board it shall be updated accordingly. (119-38028)
Device support updated
The device support has been updated with the latest status from Infineon.
The following devices have updated SFR files:
- XC22xxI, XC22xxL and XC22xxU
- XC23xxE, XC23xxD and XC23xxS
- XC27x7X, XC27x3X and XC27x2X
- XE16xxL and XE16xxU
The device specific LSL files in the product's include.lsl directory have been updated. When you copied such a file completely or parts of its contents to your project, you may need to update these files in your project. The following changes may be relevant:
Flash memories got a priority attribute
The linker's algorithm for putting sections in memory is such that when a section is placed, a place for the next section is searched starting the end address of the just placed section. It may happen that after placing a data section in flash in an uncached range, the linker tries to put sections that are located later at addresses higher than this data section. This may result in the behavior as described in issue 119-37974.
To force the linker to always start searching for a place for a section in the first flash memory (Flash0) the flash memory definitions now got a 'priority' attribute.
When you have copied the contents (especially the memory definitions) of the processor's LSL file to the project's LSL file, you probably don't have the speed or priority attributes on the flash memories. Unless you applied the workaround. It is recommended either to add the priority attribute to the flash memory definitions, or to copy the processor's LSL file contents again to your project's LSL file.
Tags of memory maps have changed
In v2.5r1 the memory maps of the Flash memory definitions for devices with an ICACHE were tagged 'cached' and 'uncached'. This has changed to 'cached' and 'not_cached'. You must update your LSL file if you have references to the 'mem:spe:Flash0/uncached' in group definitions. This must be updated to 'mem:spe:Flash0/not_cached'
Macro to allow redefinition of on-chip memories
The definition of on-chip memories and reserved ranges in the device specific LSL file can now be suppressed by defining the macro __REDEFINE_ON_CHIP_ITEMS before inclusion of the device LSL file in your project's LSL file. The Eclipse Memory properties page automatically inserts this macro in the project's LSL file as soon as you modify one of the on-chip memory definitions. At the same time it places the modified memory definitions in the project's LSL file.
Linker predefined macro __LITE__ added
A new predefined linker macro __LITE__ has been introduced. This macro is only defined in the linker included in the Lite edition. With this macro you can make conditional implementations for the Lite and full versions in your LSL file. (119-38037)
New LSL attribute: priority
The LSL 'priority' attribute has been introduced as an alias for the 'speed' attribute. This to avoid confusion for memories that you want to prioritize, but don't have a speed difference. The standard LSL files in the product's include.lsl directory only use the 'priority' attribute. (119-38056)
Updated DAS to 3.3.1
The DAS server and drivers that are (optionally) installed in the setup have been updated to version 3.3.1 to support the latest devices and boards. (119-37706)
- 119-38092 - Label pragmas
- 119-38106 - Make active project selection available from the Project menu
- 119-38032 - re-add Restart button to Debug view toolbar
- 119-38111 - Change #include __CPU__ in de template lsl file in the actual cpu
- 119-38118 - Only show debug configurations of active project
- 119-38166 - Validate the value field in the Startup Registers Property page
- 119-38167 - Show an error if the processor and the target do not match in a debug configuration
- 119-38198 - Pass -D__CPU_<CPU>__ option to linker
- 119-37471 - View Memory does not work properly for __bit variables
- 119-37517 - fpbits.h not an official header file anymore
- 119-37538 - Add __malloc__ attribute
- 119-37640 - Double quotes backslashed by amk.exe when executing cmd.exe
- 119-37681 - Bitfields of port registers for all xc16x derivatives are incorrect
- 119-37691 - Assembly HLL Debug Information missing
- 119-37754 - Wrong memory location opened when "View Memory" is used on a variable
- 119-37761 - Problems after importing TASKING C166 C/C++ ELF file for debugging
- 119-37776 - C++ compiler issues error : Segmentation fault
- 119-37793 - Eclipse update may cause error on subsequent update
- 119-37925 - Map file viewer always sets focus on "Select table"
- 119-37928 - Flash properties page table not sorted
- 119-37930 - NPE on flash properties page table double click
- 119-37934 - debugger may not recognize type __bit
- 119-37935 - incorrect handling of type __bit
- 119-38029 - Undeserved Eclipse syntax error for qualifier __packed__
- 119-38035 - Assembler list file option -wrap-lines does not list commented C source lines at all
- 119-38036 - Assembler control lines ignored in list-file
- 119-38071 - debugger may treat data qualified __bita incorrectly
- 119-38075 - very slow execution of single step with register window open
- 119-38077 - addresses of __near and __far variables incorrectly displayed
- 119-38081 - Wrong LSL file and/or cstart.c/cstart.h contents when recreating project
- 119-38082 - Set active project does not work anymore when a new window has been created
- 119-38097 - Switching processor may lead to loss of on-chip memory settings
- 119-38103 - Handle 'all configurations' properly on Memory, Stack/Heap and Vector table property pages
- 119-38137 - Add cached/not cached buttons also on memory table
- 119-38159 - Missing __PAGE_081_MEM_TYPE definition in SFR files
- 119-38160 - Previous settings in on chip items are overwritten after processor is changed and cancel button is pressed
- 119-38161 - Label job error occurs when scrolling in Registers view
- 119-38162 - Error notifying a preference change listener in profiling
- 119-38163 - DPRAM in LSL file c161pi.lsl incorrectly set to 0x00F600 instead of 0x00FA00
- 119-38164 - Error in debug configuration for imported elf file
- 119-38165 - Loop iterator register overwritten
- 119-38169 - Default include directory still being showed in the Project view when using compiler option --no-stdinc
- 119-38172 - Creating a new debug configuration for a C167CR project fails
- 119-38177 - GPT12E_KSCCFG not present in Econo Line SFR files.
- 119-38179 - Focus moved away after using "Build Selected File(s)" or "Clean Selected File(s)"
- 119-38185 - LSL file may become corrupt after changing the processor of a project
- 119-38187 - Additional keywords not recognized anymore when trial period expires
- 119-38195 - Debugger hot keys f5 (step into), f6 (step over) and f8(run) not functional
- 119-38202 - Erroneous Warning W549: condition is always true with default optimization
- 119-38209 - false MISRA W572 7.1 "octal constants (other than zero) shall not be used" for constant 0U
- 119-38210 - Constant propagation causes missing read operation
- 119-38212 - Variables and Register view problems in Lite edition for older devices
- 119-38216 - Static variable incorrectly optimized by the compiler
- 119-38234 - Cannot change name of memory map
The list of open issues for v3.0r2 can be found on the internet.
- 119-37937 - Add support for EasyKit XC2320S
- 119-37984 - Lite edition tools must run under DAvE Drive
- 119-38014 - add amk option for generating make targets
- 119-38044 - Move to Helios release, Eclipse 3.6.1 and CDT 7.0.1
- 119-38045 - Move linker script settings to properties pages
- 119-38046 - Implement C Startup configuration as properties pages
- 119-38048 - Introduce 'Active Project'
- 119-38064 - Switch directly to DAvE code generator
- 119-38153 - Add support for EasyKit XC2234L
- 119-37514 - It is not clear one can fill in an absolute address at the Data breakpoint dialog
- 119-37706 - Update to DAS version 3.3.1
- 119-37939 - Update SFR files for XC2200L/XC2300D/XC2703X/XE166xL to latest Infineon SFR specification
- 119-37940 - Update SFR files for XC2200U/XC2300S/XC2702X/XE166xU to latest Infineon SFR specification
- 119-38002 - PSRAM and ICACHE documentation additions for c166_user_guide.pdf
- 119-38028 - Update DTC files (*.dtc) for new Eclipse implementation
- 119-38037 - Add __LITE__ macro definition in Lite edition's linker
- 119-38054 - The initial LSL file used in Eclipse must be tuned for XC2000/XE166
- 119-38056 - priority attribute as alias for speed attribute
- 119-38062 - Require selection of device at project creation
- 119-38063 - Remove the Target Board Configuration wizard
- 119-38072 - describe in manual that no debug information is generated for variables defined using __atbit
- 119-38123 - Change Run menu into Debug menu with more useful contents
- 119-36887 - After a trap the OCDS debug session cannot be terminated anymore
- 119-36968 - Setting the breakpoint failed
- 119-37236 - c166 S900: internal consistency check failed - please report
- 119-37388 - Debugger hangs with specific ELF file
- 119-37729 - rm: cannot remove 'foo.o': no such file or directory falsely generated when using filename and directory as argument
- 119-37852 - lk166 W141: unresolved reference to __lc_vb_vector_table_0
- 119-37936 - manual does not describe what __interrupt(-1) means
- 119-37945 - Disabling MISRA-C checking with "#pragma nomisrac" not working when preprocessor is activated
- 119-37946 - Undeserved MISRA-C rule 5.2 violation when using enum type
- 119-37954 - "The chosen operation is not enabled" when clicking Debug Target button
- 119-37957 - Error ' Index out of bounds' when opening the cstart multipage editor
- 119-37958 - Cannot import EDE projects from XE166 version
- 119-37959 - XE160 and XE161 devices appear under XE162
- 119-37966 - Total number of reserved bytes for xrom is 4 bytes too large
- 119-37967 - Space usage in map file not correct for more than one mapping in LSL file
- 119-37972 - update manual ICACHE group/select example
- 119-37973 - Mention updating DPP addresses in ICACHE documentation
- 119-37974 - DPP in uncached range results in code being located in uncached range
- 119-37978 - C startup ICACHE enable documentation incomplete
- 119-37979 - Debugger does not yet support flash programming for ICACHE devices
- 119-37980 - Debugger cannot access cached memory
- 119-37985 - incorrect debug information for anonymous aggregate members
- 119-37988 - Special target .PHONY not documented
- 119-37993 - When building a project results into errors, still the message 'C/C++ build completed succesfully' is displayed
- 119-37994 - Let make utility stop the build process on error
- 119-37995 - Missing sfr definitions for XC22XX LE/ULE derivatives
- 119-37996 - Missing sfr for XC2000 Future derivatives
- 119-37999 - lk166 E100: unexpected error: space spe:xc16x:code maps to both a space and non-space
- 119-38000 - Wrong macro names used in LSL files for XC2xxx-136F derivatives
- 119-38001 - Having reserved cached memory, the Flash memory should not be indicated as being "reserved" in the LSL editor
- 119-38010 - Wrong __FP_ENV floating point environment buffer size declared in trap.src for xc16x cores
- 119-38017 - Array index incorrectly calculated
- 119-38031 - Local struct not initialized using option +gcc
- 119-38038 - Empty system LSL file after copying into project
- 119-38057 - XC2210U-4F must have 4k PSRAM
- 119-38058 - Lite edition debugger does not show global variables
- 119-38068 - regxc2387e.sfr : SCU_STMEM0 definition missing
- 119-38083 - Use alternative SFR file format shall not depend on SFR file inclusion
- 119-38095 - Move Flash property page to Run/Debug Settings
- 119-38102 - Create an import wizard to import memory and all related project settings
- 119-38113 - Change LSL memory map tags for uncached areas
- 119-38124 - Warnings on cstart.c in Lite edition on imported project
- 119-38128 - Updates to SFR files for XC22xxI, XC23xxE, XC27x8X Series
- 119-38133 - Incorrect start address of DSRAM for XC22xxU, XC23xxS, XC27x2X and XE16xFU in LSL files
- 119-38134 - "rm: cannot remove 'test.obj': no such file or directory" when using rm.exe from a different drive
The list of open issues for v3.0r1 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
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.