MC9S12ZVM_AMMCLIB_v1.0.2
=======================
Revision 1.0.2
April 2014

RELEASE NOTES
=============
This is the Freescale Service Release for rev 1.0.2 of the Automotive Math and Motor Control Library Set for Carcassonne MC9S12ZVM devices, supporting the S12ZVM core based devices.

Installation instructions:
==========================
Run MC9S12ZVM_AMMCLIB_v1.0.2_LIB.exe self executable file, in order to start the installation procedure and follow the instruction on the screen. The recommended destination path (the default one) is: C:\Freescale\AMMCLIB\MC9S12ZVM_AMMCLIB_v1.0.2

Important notes:
================
As the Automotive Math and Motor Control Library Set for Carcassonne MC9S12ZVM devices supports the global configuration option, it is highly recommended to copy the SWLIBS_Config.h file to your local structure and refer the configuration to this local copy. This approach will prevent the incorrect setup of default configuration option, in case multiple projects with different default configuration are used.

The Automotive Math and Motor Control Library Set for Carcassonne MC9S12ZVM devices is delivered without pre-selected default configuration option in the SWLIBS_Config.h file. The user is responsible to set the default configuration option according the application need, otherwise the error message is displayed and the compilation of the user application did not succeed.

Known limitations and issues:
=============================
There are no known limitations at the time of product release.

The library was built and tested using the following compilers:
===============================================================
- Cosmic Compiler for Freescale S12Z version 4.2.7
- CodeWarrior Development Studio for Freescale MCU Eclipse IDE, version 10.5

What's new in 1.0.2:
====================
- Revision history table has been added to the User Guide.
- Issue in non-symmetric look-up table in the floating point implementation of the GFLIB_Lut2D_FLT function  was corrected. This error was corrected also in 16-bit as well as in 32-bit implementations.
- Pragma "always_inline on" was added before the definition of all MLIB functions for CodeWarrior compiler to ensure that all MLIB functions are correctly inlined.
- The accumulation output error caused by incorrectly compensated right shift loose of precision in the GFLIB_IntegratorTR_F16 was corrected by moving the correction constant addition after the accumulator store.

Release history:
================
Rev 1.0.1
- Redundant negation operation was removed in the GMCLIB_ClarkInv_FLT function.
- The User Guide section describing the u16NSamples range for GDFLIB_FilterMA_F16 was harmonized across the function description.
- Missing sections for some functions in the User Guide was added.
- Application examples in the user documentation for GFLIB_Lut2D function were corrected.
- Casting for single floating point data type of the input value was removed from FRAC32(x) macro.
- Hexadecimal representations of the maximal fractional numbers in the FRAC16/FRAC32 macro functions were replaced by double floating point values and incorrect casting of the input value to float data type was removed.
- The boundary limit in GFLIB_Asin_FLT functions has been correctly casted to float.
- Wrong "float only" switches as "fp spfp" for CW and CW10x compilers, "floatsingle" for GHS compiler and "Xfp-float-only" for DIAB compiler were removed from library makefile for all supported Qorivva platforms.
- Parameter "mcDefaultImpl" of the structure SWLIBS_VERSION_T is redundant and was removed from structures in the SWLIBS_Version.c and SWLIBS_Version.h files.
- The GFLIB_Sqrt_F32 and GFLIB_Sqrt_F16 functions were optimized to reach better performance results.

Rev 1.0.0
- Only the 32-bit and 16-bit fractional implementations are supported in this release.
- All functions tested using MATLAB Bit Accurate Models and using target-in-loop test method.
- Precision of all 16-bit function implementations was changed from 14 bits to full 16 bits.
- The default installation destination directory was changed to c:\Freescale\AMMCLIB\MC9S12ZVM_AMMCLIB_v1.0.0
- Antiwindup implementation of the GFLIB_Controller_PIrAW was changed to the output limitation model.
- The GFLIB_ControllerPIp and GFLIB_ControllerPIpAW was modified to accept the negative proportional and integration gain shift.
- Incorrect condition in the MLIB_Convert_FLTF16 and MLIB_Convert_FLTF32 functions were corrected.
- Macro dispatchers of several functions were corrected to accept the multiple parameters.
- Default configuration macro and supported macro prefixes were changed from MLIB to SWLIBS.
- The user guide was updated to reflect the change of the installation process.
- The s16ShamIntvl/s16ShamIntvl1/s16ShamIntvl2 parameters for 16-bit fractional implemetation as well as the s32ShamIntvl/s32ShamIntvl1/s32ShamIntvl2 parameters for 32-bit fractional implementation were removed from GFLIB_LUT1D_T_F16/GFLIB_LUT1D_T_F32/GFLIB_LUT2D_T_F16/GFLIB_LUT2D_T_F32 parameter structures.
- The 64-bit installation of the Matlab is supported, thus the BAM models in 32-bit and 64-bit variants are provided for all supported functions.

Rev 0.1
- Initial release with 32-bit fixed point, 16-bit fixed point and single precision floating point data type support.
- Only engineering testing done
- Only the following functions available:
    - MLIB_Neg
    - MLIB_NegSat
    - MLIB_Add
    - MLIB_AddSat
    - MLIB_Sub
    - MLIB_SubSat
    - MLIB_Mul
    - MLIB_MulSat
    - MLIB_Div
    - MLIB_ShL
    - MLIB_ShLSat
    - MLIB_ShR
    - MLIB_Mac
    - GFLIB_Ramp
    - GFLIB_Limit
    - GFLIB_ControllerPIrAW
    - GFLIB_ControllerPIpAW
    - GDFLIB_FilterIIR1
    - GDFLIB_FilterIIR2
    - GDFLIB_FilterMA

Pre-compiled library compilation options:
=========================================
The Automotive Math and Motor Control Library Set for Carcassonne MC9S12ZVM devices is delivered with pre-compiled libraries for all supported compilers. The following options were used to build these libraries:
Cosmic:
    -v \
    -pc99 \
    -ga \
    -l

CodeWarrior Eclipse IDE:
    -w possible -w extended -w extracomma -w emptydecl -w structclass \
    -opt speed,level=3,dead,propagation,loopinvariants \
    -lang c99 \
    -model small \
    -ansi off \
    -ipa function \
    -inline smart,auto,bottomup \
    -bool off -Cpp_Exceptions off \
    -wchar_t off -msgstyle parseable -sym full \
    -RTTI off \
    -llong_size=8 \
    -double_size 8
