Skip to content

Cart

Your cart is empty

QA Systems

Configuring QA-MISRA for Real-World Embedded C/C++ Projects

Getting QA-MISRA running is only the first part of the setup.


For an actual embedded project, you will usually need to decide which coding rules should be checked, how compiler-specific code should be handled, and how you want to review or export the results.


QA-MISRA gives you quite a bit of control over this from the project configuration.



ADDING QA-MISRA TO KEIL µVision

QA-MISRA can be integrated with Keil µVision using the QA-MISRA µVision Toolbox included with the installation.


After installing the toolbox, open µVision and add QA-MISRA through:  Tools → Customize Tools Menu

                                   

Use the Command, Initial Folder, and Arguments provided by the toolbox installation.


Once the project builds successfully, QA-MISRA will appear under the Tools menu.


Selecting it opens the project directly in the QA-MISRA GUI for analysis.


Build Project → Tools → QA-MISRA → Configure Rules → Run Analysis




CONFIGURE RULES FOR YOUR PROJECT

A project does not necessarily need every available rule enabled.


From the Rules section in the QA-MISRA GUI, you can select the coding standards you want to use and enable or disable individual checks.


For example, a project may use MISRA C:2012 but exclude a rule that does not apply to the project. Another project may use a combination of MISRA rules and internal coding requirements.


QA-MISRA supports rule sets such as MISRA, AUTOSAR, CERT, CWE and others, depending on the language and configuration being used.

 

A typical setup looks like: Select a Coding Standard → Enable the Required Rules → Save the Configuration → Run the Analysis


The configuration can also be exported and reused, which is useful if several projects need to follow the same internal coding policy.

 

Individual findings can also be suppressed when a violation has been reviewed and accepted.

 

If a company needs a completely new rule that is not already available in QA-MISRA, that is handled differently from simply enabling or disabling an existing rule. QA Systems can work with customers to implement custom checks where required.

 



Handling Embedded C/C++ Code

Embedded projects often contain code that goes beyond standard C or C++.

 

Compiler-specific keywords, attributes, pragmas, macros and architecture-specific definitions are common, especially when working with MCU toolchains and vendor libraries.

 

QA-MISRA performs preprocessing before the analysis, so macros and the code produced by macro expansion can also be checked.

 

Compiler-specific extensions can be handled through the project configuration as well. Depending on the compiler and the extension being used, some additional definitions or configuration may be required.



Reviewing the Analysis Results

After an analysis is run, the findings can be reviewed directly in the QA-MISRA GUI.

 

The Results view shows the detected violations together with information about the rule that triggered each finding.

 

If QA-MISRA is being used through an IDE integration such as Visual Studio Code, findings can also appear directly alongside the source code.

 

This makes it easier to move between the reported rule and the code that caused it.

 

The analysis results are not limited to the QA-MISRA interface.

 

Reports can also be generated in formats such as HTML and CSV.

 

That makes the results easier to share with other developers or use during code reviews, project documentation and compliance activities.

 

For example, the workflow may simply be:

 

Run Analysis → Review Findings → Fix or Assess Violations → Generate Report


 

BRING CODING STANDARDS INTO YOUR WORKFLOW

The useful part of QA-MISRA is not simply running a large list of coding rules against the source code.

 

The project configuration lets you choose which rules QA-MISRA checks, how project-specific code is handled, and how the resulting findings are managed.

 

Once that configuration is in place, the same setup can be reused as the project grows or across other projects that follow the same coding guidelines.

 

For an introduction to QA-MISRA, see: Using QA-MISRA to Bring Coding Standards into C/C++ Development

For evaluation license and VS Code setup instructions: Setting Up a QA-MISRA Evaluation License and VS Code Extension

For an evaluation license, demonstration, or assistance with integrating QA-MISRA into your development workflow, contact: hrutik.champaneri@joraltechnologies.com

RELATED NEWS

CompCert: A C Compiler That Comes With a Proof
Hrutik Champaneri

CompCert: A C Compiler That Comes With a Proof

Safety-critical teams put considerable effort into their C source code. They run static analysis, check MISRA rules, review code, and test the compiled software extensively. However, testing cann[...]

Read more
a³ release 26.10
Alice Campbell

a³ release 26.10

New target aiT for TriCore now supports 3rd GEN AURIX TC46x.   Qualification Support Kits Qualification reports can now be exported as XML. New compiler-specific QSKs: aiT for e200 with Diab [...]

Read more
Beyond Code Generation: AI-Assisted Embedded Development with Arm CMSIS
Hrutik Champaneri

Beyond Code Generation: AI-Assisted Embedded Development with Arm CMSIS

AI coding assistants can generate a UART driver in seconds. But when the output is garbled or an application unexpectedly enters a HardFault handler, the problem may not be obvious from the sourc[...]

Read more
Setting Up a QA-MISRA Evaluation License and VS Code Extension
Hrutik Champaneri

Setting Up a QA-MISRA Evaluation License and VS Code Extension

The following steps explain how to activate a QA-MISRA evaluation license, configure the local server, install the QA-MISRA extension in Visual Studio Code, and run an example analysis. 1. Requ[...]

Read more
Using QA-MISRA to Bring Coding Standards into C/C++ Development
Hrutik Champaneri

Using QA-MISRA to Bring Coding Standards into C/C++ Development

In embedded and safety-critical software, coding standards help reduce risky language behaviour, improve consistency, and make software easier to review and verify. This is especially important i[...]

Read more