Version 4.0 enhancements
The runtime has been enhanced to improve time performances and memory usage. Both features have to be explicitely enabled by the user.
This chapter presents the new services and the improvements added to the TCE-C v3.0 release.
New code generation technology
The TCE-C v4.0 release contains a new PER encoding/decoding engine using the code generation technology. Compared to the existing table driven technology, code generation technology can significantly decrease CPU time consumption. It depends on the platform and the ASN.1 syntax.
The existing PER encoding/decoding engine using table driven technology remains available using the new -tech tabledriven compilation option (see below). It is the default option if -tech is not specified.
New technology option
This new compilation option allows to select the prefered technology:
- Use -tech tabledriven when the table driven technology is prefered,
- Use -tech codegen when the code generation technology is prefered.
When this option is not used, the table driven technology is chosen.
The table driven technology is available for all features.
The code generation technology is available only for Aligned PER and Unaligned PER.
Optimized support of LTE
LTE (Long Term Evolution) is the standard for the next mobile network technology.
Some of the ASN.1 syntaxes of this standard contain ASN.1 INTEGER values whose value range cannot be mapped on a standard integer type. Those ASN.1 INTEGER types must be mapped on a long integer type but mapping the whole runtime on a long integer type can increase code size and decrease performance.
The TCE-C 4.0 release supports an optimized mapping of ASN.1 INTEGER types on different C integer types. Only ASN.1 INTEGER values whose value range need a long integer type are mapped on a long integer type. The runtime and smaller ASN.1 INTEGER types continue using a standard integer type.
This new feature is available using the -longsize Size compilation option (see below). If nothing is specified, the ASN.1 compiler uses the bit length of the standard integer type int, typically 32 bits, for all ASN.1 INTEGER values and returns an error if the ASN.1 syntax contains ASN.1 INTEGER types which cannot be mapped on a standard integer type.
New INTEGER size option
This new compilation option is for compilation of ASN.1 syntaxes having ASN.1 INTEGER types with different value ranges:
- Use -intsize Size where Size is the bit length of the standard integer type int, typically 32 bits, for ASN.1 INTEGER types which can be mapped on a standard integer type,
- Use -longsize Size where Size is the bit length of the long integer type, typically 64 bits, for ASN.1 INTEGER types which cannot be mapped on a standard integer type and need a bigger integer type.
By using the new ASN.1 compiler option -longsize Size only those ASN.1 INTEGER types which cannot be mapped on a standard integer are mapped on an integer type whose bit length is defined by Size. On most systems this is typically a long integer type of 64 bits.
Without these options, all integer values are mapped on the standard integer type int.
This new feature is available for all encoding rules, value trace and constraint checking.