The ASNSDK MCE has been especially
designed to be embedded in UMTS Mobile equipment
for the implementation of the RRC protocol.
It includes a very small memory basic unaligned ASN.1
PER (Packed Encoding Rules) encoding/decoding
engine providing a C API.
With less than
2Kbytes RAM and
130Kbytes ROM memory space required to process the whole
UMTS RRC protocol, the MCE ASN.1 PER engine gives
you the capital advantage to significantly
save RAM and ROM for the development of added-value
user application.
Its powerful capacity to directly fit to
the user application data structures, without
imposing its own intermediate data structures,
ensures you to save intermediate memory allocation
and CPU time consumption. (cf.
Technical overview)
Very Efficient management of Memory Space
Through a user callbacks mechanism, the MCE ASN.1
PER provides the ability to directly fit
to the user application data structures without
imposing intermediate C data structures,
thus saving:
- User application source code for processing
intermediate structures,
- RAM used to store these intermediate data
structures,
- CPU time consumption for managing and copying
intermediate data structures into application
data structures.
Moreover, a particular attention has been
brought in the design of the MCE ASN.1 PER runtime
in order to favor the use of ROM instead
of RAM.
In order to reduce the memory space required
as far as possible, the MCE ASN.1 PER runtime has
been optimized to only support the reduce
set of basic ASN.1 types and features used
in the definition of the UMTS RRC protocol.
Strict control of system resources
The user application fully controls the memory
allocation. The MCE ASN.1 PER runtime does not
allocate or release dynamic memory.
To prevent system stack overflow, as ASN.1
values encoding/decoding is highly recursive,
the MCE ASN.1 PER runtime manages its own private
stack. The depth and the size of this stack
is computed by the ASN.1 compiler, thus the corresponding RAM is allocated
at once when running the MCE ASN.1 PER runtime.
To save CPU time consumption and intermediate
memory allocation, data to be decoded, can
be directly read from a user-specified input
thanks to a customizable «stream» concept.
In the same way, encoded data can be directly
written to a user-specified output.
Portable on any processor, real-time OS and C compiler
The MCE ASN.1 PER runtime has been developed following
strict C coding rules taking benefits of
our twelve years experience in the porting
of our ASN.1 and Network protocols stack
products on numerous embedded environments.
All C data types and system calls can be
easily customized to fit your own operating
system and hardware environment. The MCE
ASN.1 PER runtime is fully re-entrant in order
to run on multi-threads system.