TASKING VX-toolset for TriCore v6.3r1 patch 9
Release Note
Scope
This release note covers the changes between v6.3r1 and v6.3r1 patch 9 of the TASKING VX-toolset for TriCore.
For release notes prior to v6.3r1, please visit the TASKING
TriCore support website.
Contents
Changed components
This patch contains changes to the following components:
- ARM (HSM) C compiler
- ARM (HSM) C++ compiler
- TriCore C++ compiler with support for packed structures
- TriCore C compiler
- TriCore assembler
- TriCore linker
- TriCore control program
- TriCore high level language object dumper
- TriCore ELF dump utility
- TriCore ELF archiver
- TriCore hardware debug module to support DAS version 7.2.0 and above
- TriCore debugger symbol reader
- TriCore control program specification file (ctc\etc\cctc.spec)
- Processor families specification files (<target>\etc\processors.xml)
- TriCore AURIX 1st and 2nd Generation LSL files at ctc\include.lsl\
- TriCore library source files after running ctc\lib\src\unpack-tc-libc-sources.exe:
_Exit.asm, _fpclassify.c, _fpclassifyf.c, _fpclassifyl.c, _strtod.c, copysign.c, cpsignf.c, cstart.c, fenv.c,
fesetexceptflag.c, isinf.c, isinff.c, isnan.c, isnanf.c, llrint.c, llrintf.c, llrintl.c, longjmp.asm, lrint.c, lrintf.c, lrintl.c, rint.c,rintf.c,
rintl.c, setjmp.asm, sqrt.c, sqrtf.c, strcmp.asm, strcpy.asm, strtod.c, strtof.c, sync_on_halt.c
- TriCore run-time library source files after running ctc\lib\src.rt\unpack-tc-librt-sources.exe: all *.asm files now have the .END directive to
indicate the end of the assembly source.
- TriCore SFR files for TC26xB and TC39xB at ctc\include\sfr\
- TriCore Floating-Point run-time library (ctc\lib\src.fp) see also New Floating-Point run-time library
- Files (like LSL, SFR and startup files) to support the TC32x, TC33x, TC3Ex and TC37xEXT derivatives including files for Simulator support
- Updated LSL files for derivatives TC35x, TC36x and TC37x
- Files to provide debugger support for the TC387, TC3Ex and TC37xEXT on a TC3x7 TriBoard
- Files to provide debugger support for the TC36x on a TC366 TriBoard
- Files to provide debugger support for the TC33x on a TC33x and TC3x7 TriBoard and on a ADAS TC337 TriBoard
- Files to provide debugger support for the TC32x on a TC332 TriBoard
- License Manager: TLM User Manual (doc/taskinglm.pdf), GetCID and Licborrow utilities (bin\getcid.exe, bin\licborrow.exe), see
also Changed license manager component
- For the license protected executables with changed build numbers in this patch, the Altium license manager component (libmcrypt) has been replaced
by the newly implemented TASKING license manager component (AES library by Dr Brian Gladman).
Please note that the TriCore and ARM libraries (HSM) have been rebuilt. These libraries are also part of this patch.
Non EABI compliant bitfield offset used in a struct
To address issues TCVX-44802 "Non EABI compliant bitfield offset used in a struct" and TCVX-44962 "Struct alignments for bit-fields
not always EABI compliant", new --eabi sub options "d", "i" and "l" have been introduced that can be disabled for EABI compliance:
d/D +/-short-bitfield access short bit-field as a short
i/I +/-int-bitfield use word alignment for int bit-field
l/L +/-long-long-bitfield less alignment for long long bit-field
When these flags are enabled, the behavior is as before. When disabled, the bitfield behavior is EABI-compliant.
For a full description of these options, please run the compiler to show the extended option description: ctc --help=options
Enhanced solution for TCVX-44777 "Linker error ltc F004: cannot open (Too many open files) due to default limits"
The fix for issue TCVX-44777 (already part of patch 6) has been enhanced:. The linker does now only keep input files open that are actively processed.
GNU dependency file format
To address issue TCVX-40841 "Dependency file format does not match GNU", new option --dep-format[amk|gnu]
has been introduced.
The default is: --dep-format=amk
. When using the GNU format of dependency files, please apply option: --dep-format=gnu
.
Assembler module .END directive
To address issue TCVX-44047 "C compiler may leave empty .src file when it is killed", option --require-end
has been made the default
behavior of the assembler and the option has been replaced by --no-require-end
to get the behavior as before.
Interrupt handler user stack alignment
Due to the fix of issue TCVX-44325 "User stack pointer 4-byte aligned when interrupt occurs between FCALL and FRET", the stack in the interrupt handler
prologue may get 8-byte aligned as required by the EABI. To disable this 8-byte alignment, you can apply new compiler option: no-align-interrupt-stack
.
Enhanced linker map-file options
Due to the fix of issue TCVX-45302 "Long symbol and section names are spread across multiple lines within a map file", existing linker options
--map-file=TEXT
and --global-map-file=TEXT
can be extended with ":0
".
This will disable the default wrapping of long lines or table cells. For example: --map-file=output.map:TEXT:0
.
The same applies to linker option: --global-map-file
.
For a full description of these map files options, please run the linker to show the extended option description: ltc --help=options
The floating-point run-time library has been replaced with a new one which fixes several floating-point problem issues. It has now
also support for exception FE_INEXACT
. When using 32-bit floats the FP run-time library is only used when compiling with option
--fp-model=t
"support trapping on exceptions" or option --fp-model=s
"use software floating-point library".
When using 64-bit doubles the FP run-time library is always used, except when compiling with options --fp-model=fST
(f
enables "treat 'double' as 'float'").
Please be aware code size and speed may change for applications using this new FP-library.
The license protected executables with changed build numbers in this patch, are built with TLM v2.1r1.
All other executable files are still using the original TLM version v1.4.
The main new features of TLM v2.1r1 are:
- License pool mechanism
- Improved Pool names syntax
- Improved Verbose Logging
- Support for wait for a free license
For more detailed information, please refer to section License Information.
Added Open Source Software license files
The following Open Source Software license files have been added to the <install>\doc\oss\ directory:
- aes_gladman_license.txt
- arc4random_license.txt
- bcopy_license.txt
- getopt_license.txt
- libcxx_license.txt
- stlport_license.txt
For this patch, the following executable files have an updated build number: Build 24110649
- carm\bin\carm.exe
- carm\bin\cparm.exe
- ctc\bin\artc.exe
- ctc\bin\astc.exe
- ctc\bin\cctc.exe
- ctc\bin\cptc.exe
- ctc\bin\ctc.exe
- ctc\bin\elfdump.exe
- ctc\bin\hldumptc.exe
- ctc\bin\ltc.exe
All other executable files still have the original v6.3r1 build number: Build 19041558
TLM v2.1r1 Fixed Problems
- Clients configured to use joined licenses via the special license key "
PRODUCT
" cannot be borrowed.
Please note, that the new license pool mechanism, as supported by the TASKING Local License Server v2.1r2,
is the preferred way now to group multiple licenses instead of using "PRODUCT
".
- Licborrow reports the requested number of days as granted even if this is limited by the license server
- Licborrow diagnostic message on the Check License button is not clear
Fixed Problems
- TCVX-39753
- Call graph not correct for aliases
- TCVX-40266
- System libraries in product have .note section without version number
- TCVX-40841
- The dependency file format does not match the GNU
- TCVX-43538
- Linker counts scratch sections as reserved sections under 'Memory usage in bytes'
- TCVX-43964
- Control program option "--format=<type>" produces misnamed output
- TCVX-44047
- C compiler may leave empty .src file when it is killed
- TCVX-44249
- C compiler: MISRA C:2012 incorrect rule 8.13 violation due to typedef'd pointer parameter
- TCVX-44325
- User stack pointer 4-byte aligned when interrupt occurs between FCALL and FRET
- TCVX-44545
- Overlapping sections created when a reserved section is used with a memory fill entry
- TCVX-44671
- C compiler: MISRA C 2012 rule 3.2 false positive error for line splicing
- TCVX-44674
- The address values for FFT Accelerator in register files for tc26xb are incorrect
- TCVX-44711
- Linker segmentation fault on very long symbol names
- TCVX-44794
- AURIX 2G SYSPLLCON and CCUCON clock init sequence not according to the IFX 'Clock Ramp-up Example'
- TCVX-44846
- C compiler: flexible array member initialization: diagnostics may be missing
- TCVX-44856
- Run-time stack check will fail when project uses separate interrupt stack
- TCVX-44890
- Linker error F006: read error: .\<library name> has no size
- TCVX-44907
- Wrong code generation for an if-else statement
- TCVX-44912
- Optimization ignores __weak__ attribute in the code
- TCVX-44931
- Common debug info section generated by C compiler may contain references to code sections
- TCVX-44935
- User stack demand higher than calculated by the C compiler
- TCVX-44959
- Control program: incorrect handling of -L option without argument
- TCVX-45024
- Erroneous reserved size calculated in memory usage section
- TCVX-45025
- C Compiler: _Bool incorrect expression evaluation
- TCVX-45026
- Compiler conducts a signed division instead of an unsigned one in a specific use case
- TCVX-45041
- Erroneous code when loading a _Bool type variable into a char type using a _Bool pointer in an inline function
- TCVX-45046
- Incorrect SFR definition for register requiring 32-bit access leads to incorrect access to bit struct member
- TCVX-45074
- Wrong ABS pattern optimization for float or double
- TCVX-45078
- Incremental linking breaks weak definition replacement for references in same object file
- TCVX-45102
- TriCore compiler does not warn about an extern __uncached__ variable declaration
- TCVX-45146
- Compiler generates ld.da/st.da instructions for copying 8-byte structs in peripheral memory
- TCVX-45186
- Linker buffer overflow triggered by very long symbol names
- TCVX-45188
- Invalid floating-point transformation x x == 0
- TCVX-45197
- S900 assertion failed when -Oi is used
- TCVX-45198
- C compiler: missing cast to short
- TCVX-45201
- Erroneous code due to a missing cast in a specific use case
- TCVX-45204
- Erroneous spilling of 64-bit variables
- TCVX-45206
- Incorrect sign extension for compound operation on bit-field with -OE and --eabi=CD
- TCVX-45208
- S900: internal consistency check failed error initializing a local variable using compound literals
- TCVX-45209
- Incorrect constant folding with __sat types
- TCVX-45212
- HLL object dump tool generates multiple label entries for inline functions in ADX output
- TCVX-45218
- Erroneous code for do-while loop
- TCVX-45219
- HLL object dump tool generates multiple label entries for static functions with the same name in ADX output
- TCVX-45233
- Compiler ignores cast in a specific use case
- TCVX-45234
- C Compiler: initialization of an automatic struct member removed by optimizations
- TCVX-45238
- C Compiler: incorrect optimization of cast operation from int to short
- TCVX-45240
- Linker does not verify a possible overlap in the section name in a section select statement
- TCVX-45242
- Linker: F011: object writer error for "test.elf": file io error occurred
- TCVX-45245
- C++ Compiler calculates different struct size and alignment compared to C Compiler
- TCVX-45248
- Loop with iterator wrap-around terminates prematurely
- TCVX-45256
- Wrong code generation when pure functions are used
- TCVX-45259
- Incorrect iteration count when iterator limit variables have very large values
- TCVX-45269
- Propagation error in some compile time constant computations involving loops with iterator wrap-around
- TCVX-45285
- Read from union member incorrectly removed by optimization
- TCVX-45296
- C Compiler: incorrect shift calculation for long long cast int
- TCVX-45300
- String concatenation in the operands part of inline assembly is not supported
- TCVX-45301
- Zero size value for output section definitions in LSL file is not permitted
- TCVX-45302
- Long symbol and section names are spread across multiple lines within a map file
- TCVX-45303
- Missing GCC inline asm features
- TCVX-45316
- Assembly error when compiling code assigning an unsigned long long bit-field of size 32 bits to an unsigned int variable
- TCVX-45333
- C compiler : Aliasing not detected
- TCVX-45334
- Compiler errors E276 and E333 using designated initializers with a non constant value
- TCVX-45339
- Missing cast to unsigned char
- TCVX-45340
- C compiler generates invalid arithmetic
Fixed Problems
- TCVX-43989
- Compiler error S900: internal consistency check failed for specific use case and optimization setup
- TCVX-44252
- C compiler error S917: internal consistency check failed - please report
- TCVX-44358
- C compiler: ctc S917: internal consistency check failed - please report
- TCVX-44417
- Compiler generates wrong code for loops with 64-bit iterators
- TCVX-44515
- Compiler error ctc S911 with MISRA rule 10.3
- TCVX-44700
- Loading specific ELF file in the debugger takes a long time to complete
- TCVX-44758
- FP operations involving INF or NAN inputs may produce wrong results with --fp-model=sT
- TCVX-44769
- Conversion double-to-float may produce 0 instead of FLT_MIN
- TCVX-44770
- Multiplication of doubles may produce 0 instead of DBL_MIN
- TCVX-44782
- S911 error when any MISRA C 2012 rule check for rules 10.x is enabled
- TCVX-44839
- DSP-C: Constant folding involving fixed-point types may produce incorrect results
- TCVX-44841
- C compiler: ctc S900: internal consistency check failed - please report
- TCVX-44878
- Evaluation of floating expressions involving NaN may produce wrong results
- TCVX-44891
- FP multiplication of floats may produce 0 instead of FLT_MIN with --fp-model=s
- TCVX-44933
- C compiler error S900 internal consistency check failed - please report
- TCVX-44954
- C compiler error S900 internal consistency check failed
- TCVX-44962
- Struct alignments for bit-fields not always EABI compliant
- TCVX-44998
- Initialization of complex type global variable leads to S911 error
- TCVX-45028
- C compiler ignores cast in a specific use case for a function return value
- TCVX-45048
- Generate debug information for used symbols only
- TCVX-45069
- Flow optimization causes missing read operation
- TCVX-45075
- Non-trapping 64-bit floating-point emulation does not handle exceptional results correctly
- TCVX-45080
- Invalid strength reduction for subscript with unsigned wraparound
- TCVX-45091
- Wrong bit-field alignment for a short type member of a struct
- TCVX-45097
- C compiler generates incorrect array index values
- TCVX-45100
- MISRA global rules are not checked when only one module is supplied
- TCVX-45101
- An atomic_flag type variable (stdatomic.h) ends up in cached memory
- TCVX-45104
- Loop invariant code optimization issue
- TCVX-45105
- Wrong iterator values after jumping into loop
- TCVX-45112
- Memory access out of bounds due to a missing conversion of the loop increment
- TCVX-45113
- Signed instead of unsigned division/modulo
- TCVX-45115
- Erroneous code in a specific switch case
- TCVX-45118
- Forward store optimization for weak variable causes NULL pointer dereference
- TCVX-45129
- FP comparisons do not raise FE_INVALID when two qNaNs are compared and --fp-model=St
- TCVX-45131
- Linker LSL file for TC36x includes wrong memory size for pflash0/pflash1
- TCVX-45141
- Erroneous code for XOR assignment in a nested loop
Fixed Problems
- TCVX-43921
- Setting breakpoint during debug session - single stepping does not execute next steps
- TCVX-44267
- Linker: option --whole-archive ignores object modules without exported symbols
- TCVX-44584
- Missing or unoptimized SFR register configuration for some AURIX 2G TriBoards
- TCVX-44761
- Camera Interface register definitions erroneous in regtc37x_ext.sfr SFR file
- TCVX-44781
- GTM_CLC init value should be 0x0 for TC32x, TC33x, TC36x, TC37x, TC37x_ext
- TCVX-44793
- C compiler: missing truncation for cast that is converted to _Bool
- TCVX-44840
- C compiler: Incorrect CSE of VLA size expression
- TCVX-44843
- C compiler: unexpected "Assertion failed" when using _Alignas for an object with block scope
- TCVX-44903
- Compiler overwrites a complete byte in a bitstruct whereas only two bits are modified
- TCVX-44910
- Programming pflash2/3 memory on TC29x TriBoard not working
- TCVX-44913
- Erroneous code generated for C++ code using __disable_and_save and __restore intrinsics
- TCVX-44955
- C compiler error S900 internal consistency check failed
- TCVX-44973
- Unexpected high link time when using recursive functions
- TCVX-44980
- TC36x DFLASH0 size is incorrect in tc36x.lsl
- TCVX-44987
- Hardware debugging support for TC32x devices
Fixed Problems
- TCVX-43123
- Assembler astc --core=tc1.6.2 silently processed deprecated instruction mulms.h
- TCVX-43405
- Multi-core example blink_aurix does not stop at main()
- TCVX-43876
- TASKING MCS EABI document missing from product
- TCVX-44062
- DAS driver check fails with DAS version 7.1.8 and newer
- TCVX-44426
- FPU version of C library is not selected with control program option --fp-model=St
- TCVX-44461
- No error on narrowing conversion from char to bool
- TCVX-44484
- C library function strtof might incorrectly return INIFINITY or FLT_MAX for hexadecimal number
- TCVX-44541
- FP library: QNAN used in IEEE 754 arithmetic operations and in IEEE 754 unordered-quiet predicates leads to incorrect raising of FE_INVALID exceptio
- TCVX-44550
- FPU version of C standard library function sqrtf() may produce imprecise result (1 bit difference)
- TCVX-44642
- Common subexpression elimination optimization may violate #pragma STDC FENV_ACCESS ON
- TCVX-44654
- Formatted output issue when precision specifier used with non null-terminated string
- TCVX-44667
- With FLT_HAS_SUBNORM is 0 fpclassify(subnormal) returns FP_SUBNORMAL instead of FP_ZERO
- TCVX-44670
- Type conversions involving _Bool may produce wrong result
- TCVX-44677
- Erroneous code ignoring a break condition in an endless loop
- TCVX-44684
- Erroneous code generated using generic assembly code optimizations
- TCVX-44737
- Compiler generates wrong code
- TCVX-44738
- C compiler: wrong code generation for float-to-int conversion when using #pragma STDC FENV_ACCESS ON: no FE_INVALID is raised
- TCVX-44743
- Control flow simplification optimization may violate #pragma STDC FENV_ACCESS ON
- TCVX-44744
- Constant propagation optimization may violate #pragma STDC FENV_ACCESS ON
- TCVX-44751
- Incorrect optimization of left-shift operator
- TCVX-44753
- Atomic load is removed in some cases
- TCVX-44766
- C compiler treats a function local array with a const size unnecessarily like a VLA
- TCVX-44776
- Function @FLD accepts negative arguments with undefined behavior
- TCVX-44777
- Linker error ltc F004: cannot open <filename> (Too many open files) due to default limits
- TCVX-44792
- Erroneous code generation due to loop fusion optimization
- TCVX-44796
- FPU instructions may corrupt 64-bit integer computations
- TCVX-44802
- Non EABI compliant bitfield offset used in a struct
- TCVX-44808
- C compiler: incorrect integer promotion using expression simplification optimization
- TCVX-44810
- S911 internal consistency check failed error when using a VLA in a function call
- TCVX-44817
- DSP-C: operations on __sfract / __wrap __sfract may produce incorrect results
- TCVX-44836
- Missing zero-extend for indirect store to _Bool automatic variable
- TCVX-44872
- Compiler ignores variable value change after this has been passed by reference in a function call
Fixed Problems in the ARM compiler (HSM)
- TCVX-44491
- HSM: C library function strtof might incorrectly return INIFINITY for hexadecimal number
- TCVX-44588
- Missed "out of bounds" diagnostics
- TCVX-44589
- No error on narrowing conversion from char to bool
Fixed Problems
- TCVX-44441
- Incorrect use of a loop instruction
- TCVX-44443
- Intrinsics __getbyteN and __gethwN may return wrong result
- TCVX-44453
- Incorrect propagation of __pure__ function call result
- TCVX-44485
- Multi-core debugging not compliant to DAS driver version 7.2.0
- TCVX-44510
- Debugger: ELF load and parse hangs - debug session must be aborted
- TCVX-44522
- The __dsync() intrinsic does not always work as a memory fence
- TCVX-44614
- GLIBCXX_3.4.21 not defined in file libstdc++.so.6 error for Linux host
Fixed Problems in the ARM compiler (HSM)
- TCVX-44549
- ARM C compiler: loop optimization causes endless loop
- TCVX-44596
- C compiler: wrong code generation when using packed structures with some members declared as bit fields
- TCVX-44626
- Incorrect conversion of _Complex type to _Bool
Fixed Problems
- TCVX-40928
- AURIX multi-core: hex file does not contain code for cloned functions in ROM
- TCVX-43626
- XBAR0_SRI_BusErrorEvent alarm triggered by non linked fputc function
- TCVX-43754
- HLL dump tool does not include information about a static void function in the symbol table
- TCVX-43880
- Elfdump segmentation fault error when initialized functions included in the ELF file
- TCVX-43881
- Compiler MISRA 2012 rule 9.5 : incorrect flagging of rule violation
- TCVX-43911
- C compiler error S911 when MISRA C:2012 rule 16.3 is enabled and erroneous label added to switch case
- TCVX-43990
- Compiler error ctc s911: backend triggers ctc S911 with --tradeoff=0
- TCVX-44002
- Unexpected MISRA C:2012 rule 12.4 violation error
- TCVX-44022
- Unexpected W549: condition is always true warning
- TCVX-44028
- Wrong error ctc E460 for accesses to bit offset 31 using __imaskldmst intrinsic
- TCVX-44030
- SIMD optimization leads to erroneous assembly instruction
- TCVX-44041
- Assembler error E128 for C++ compiler generated code
- TCVX-44042
- Improve diagnostic for incorrect declarations
- TCVX-44044
- Check on constant expression of _Static_assert() not strict enough
- TCVX-44045
- Qualifiers const and volatile do not work inside _Generic()
- TCVX-44098
- Linker silently truncates ELF e_phnum field
- TCVX-44224
- Wrong result multiplying two INIFINITY values when using software floating-point library
- TCVX-44231
- Wrong sizeof result for atomic_flag type
- TCVX-44237
- Illegal double word access to SFR register range
- TCVX-44245
- C compiler: wrong code generation when using packed structures with members of 16-bit signed types
- TCVX-44246
- C compiler error: S911 : Expression simplification - with empty function parameter
- TCVX-44255
- C compiler: wrong code generation when using packed structures with some members declared as bit fields
- TCVX-44257
- Compiler violates EABI due to 4 byte user stack frame generation
- TCVX-44260
- Linker: ltc - Segmentation fault on LSL output section in overlay group
- TCVX-44278
- C++ compiler: generated code results in address 0x0000000 access causing bus trap
- TCVX-44286
- Directive .size missing for run-time library functions and some C library functions
- TCVX-44309
- MISRA C 2012 rule 10.4 checker reports false positive and fails to detect a violation
- TCVX-44339
- Subnormal values may incorrectly compare equal to zero
- TCVX-44377
- Linking with -lc*_fpu causes fesetround(FE_TONEAREST) to return -1 instead of 0
- TCVX-44383
- For non-trapping floating point comparisons: NaN == NaN incorrectly returns true
- TCVX-44387
- Erroneous code in code compaction function leads to invalid function parameter
- TCVX-44393
- Compiler issues double word accesses for data located in MCS memory
- TCVX-44400
- Wrong value is loaded into a 48-bit struct if used as a member of a larger 64-bit struct
- TCVX-44407
- C compiler front-end may produce imprecise FP result (±1 bit difference)
- TCVX-44419
- Linker does not insert alignment_protection section when copy_unit is greater than 1
- TCVX-44421
- Conversion of float to integer raises "Overflow" instead of "Invalid operation" exception
- TCVX-44423
- libfprt: subnormal values incorrectly compare equal to zero
- TCVX-44428
- Function fesetexceptflag() may incorrectly raise FE_INEXACT and/or call trap handler
- TCVX-44437
- Incorrect code for branch target align optimization when tail merging optimization active
- TCVX-44481
- Linker: option --global-type-checking causes a segmentation fault
Fixed Problems
- TCVX-44087
- Linker ltc: very long link / locate time >= 1 hour
Fixed Problems
- TCVX-40469
- Linker allows cloned sections outside the available DSPR0 memory range
- TCVX-43546
- Linker does not insert alignment_protection sections when a group includes sections with a different alignment
- TCVX-43913
- Compile-time concatenation of character string literal with unicode string literal fails
- TCVX-43980
- Linker may hang when the size of an output section is at least 2 MB
- TCVX-43998
- Invalid constant propagation with tripple indirection
- TCVX-44008
- Include file may be skipped when same filename is included from different directories
- TCVX-44014
- Missing initialization for local variable in a specific test case
- TCVX-44043
- Incorrect conversion of _Complex type to _Bool
- TCVX-44050
- Linker inserts section in an ordered, contiguous, fill group
- TCVX-44082
- Intrinsics __extracthwN and __extractbbyteN may return wrong result
- TCVX-44102
- Loop invariant code optimization issue
- TCVX-44215
- Standard floating-point functions that are inlined may return wrong result
- TCVX-44218
- Large floating-point numbers become zero when converted to _Float16
- TCVX-44270
- C compiler: wrong code generation when using packed structures with some members declared as bit fields of width 17..24
- TCVX-44289
- Zero-sized bit-field does not create padding before subsequent bit-field with --eabi=B
New Device Support
- Toolset support for the TC33x family
Fixed Problems
- TCVX-43868
- Run-time error for double _Complex expression passing to a function
- TCVX-43893
- C compiler omits value assignment to pointer type function argument with forward store optimization enabled
- TCVX-43915
- Unroll small loops optimization leads to wrong code when speed tradeoff -t0 used
- TCVX-43916
- C compiler - Generic Assembly Code optimization leads to false array index location in loop
- TCVX-43928
- Incorrect reordering of volatile memory reads
- TCVX-43931
- EMEM memory definition missing in TC35x LSL file
- TCVX-43940
- Erroneous code for a 'for' loop
- TCVX-43946
- Compiler Error: ctc S900 - internal consistency check failed with -O2 -t0
New Device Support
- Debugger support for TC387 chip on TC3x7 TriBoard
After installation of this patch, the directory backup_patch8
is present
in the installation directory of the product.
- Copy the contents of directory
backup_patch8
to the installation directory.
This way you overwrite the files installed by the patch.
- Remove directory
backup_patch8
.
TASKING products are protected with TASKING license management software.
License key
You need a license key when you install a TASKING product on a computer. When you order a TASKING
product from TASKING or one of its distributors, a license key will be sent to you by email or on paper.
See the TASKING License Management (TLM) Support page
for information on obtaining a license.
License pool mechanism
You can now define a named pool of specific licenses on the local license server.
A license pool is useful to specify that the licenses for one or more products shall
be grouped together. This can be the case for example when your license agreement
has constraints on geographical location, such as a single site license, country license
or continental license. In that case you can put all product licenses that are allowed
to be used by a specific location into a license pool.
Pool names for TASKING products released after March 2023 have the syntax
POOL-name
, where the name is free to choose from 1 up to 14 characters.
Pool names are also supported with existing TASKING products, as long as you use the TASKING Local License Server v1.5r3 or up
and specify the pool names in the fixed format POOL-xxxx-xxxx-xxxx
.
Note that you also need to use this fixed pool name format if you are mixing older and newer
TASKING products, such as with this patch.
The PRODUCT
keyword has been deprecated, but still works for backwards compatibility.
Improved Verbose Logging
You can set the TSK_LOG_VERBOSE
option in licopt.txt
,
or as an environment variable, to different verbose levels.
With level 3 or higher, detailed license configuration information is shown, which
is useful for debugging licensing problems. For example, it shows the environment variables
or options used, the license key and the search path.
Support for wait for a free license
You can now set the TSK_LICENSE_WAIT
option in licopt.txt
to a
configurable time period to wait for a free license seat to become available instead of directly
terminating when a license request is denied.