Reduced MicroC Framework for C (SMXF)
You can generate MicroC application code and build it with the reduced MXF_C framework (SMXF). The SMXF framework is a reduced version of the MicroC Framework (MXF), better compliant to MISRA-C that avoids #ifdef , and other potentially dead code.
SMXF framework and requirements traceability
The SMXF framework supports predefined requirements and includes traces back to these requirements. The SMXF framework and its requirements are represented in a Rhapsody® model that you can find in the Rhapsody installation directory. The SMXF model is at ...\Share\LangC\smxf folder. The Rhapsody model can be used for generating the SMXF C source files, and to have each requirement represented as a comment alongside the code that answers it.
In MicroC, to generate code for requirements associated with entry actions, exit actions, and internal transitions, select the SafetyCriticalForCDevelopers value for Project Settings.
In the configuration settings window, you must select Include requirements as Comments in Code to enable the generations of requirements into code. The new model contains MicroC and ExtendedTableCapabilities, SafetyCriticalForCDevelopers setting with <<appliedProfile>> dependency from the project to the profile. It also contains AutoGeneratedCBehavioralRequirements and AutoGeneratedCCodeRequirements package.
In the code, the requirements are added before the implementation of the auto generated functions and function calls. You can show trace dependency on a requirement in the implementation file.Low level requirements (LLR) are generated to the code. High level requirements (HLR) are not generated to the code.
- MxfCMainloopNTConfiguration – for Mainloop NT environment
- MxfCVxWorks653Configuration - for VxWorks 653 environment
The following image shows the SMXF framework application applied to the Dishwasher model:
- No Animation, Tracing, Target-Monitoring
- No General Utilities and Data-Structures such as Collection, Heap, List, Map, Queue, Stack, String, MemAlloc
- No Additional Auxiliaries such as FixedPoint, Rapid, or Multicast Ports
- No Ports supported
- No Memory Manager, Dynamic Memory, Cleanup
- No Backward compatibility for Event Generation and Statechart macros.
- Test cases that use TestConductor capability
- Code coverage report through TestConductor
- Requirements coverage reports: All framework classes and operations are traced to requirements.
- MISRA compliance statement