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.
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.
This new compilation option allows to select the prefered technology:
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.
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.
This new compilation option is for compilation of ASN.1 syntaxes having ASN.1 INTEGER types with different value ranges:
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.