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.

Screen capture converter

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. converter

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.converter

Low level requirements (LLR) are generated to the code. High level requirements (HLR) are not generated to the code.

You can start using the SMXF framework by opening a MicroC model. Then you can generate code with one of the MxfCConfigurations:
  • MxfCMainloopNTConfiguration – for Mainloop NT environment
  • MxfCVxWorks653Configuration - for VxWorks 653 environment

The following image shows the SMXF framework application applied to the Dishwasher model:

converter

Note: You can find the Dishwasher model in the Rhapsody installation directory: ..\Samples\CSamples\SMXF\Dishwasher.
Because it is a reduced framework, the SMXF has the following limitations:
  • 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.
The SMXF has a code validation suite that contains:
  • Test cases that use TestConductor capabilityconverter
  • Code coverage report through TestConductor
  • Requirements coverage reports: All framework classes and operations are traced to requirements.converter
  • MISRA compliance statement