My Daily Tools for Embedded Systems Development

In this blog, I am focusing on the essential tools that engineers working with embedded systems should be using. These tools will allow engineers to consistently produce, analyze, improve, test, and deploy software for embedded systems. personally, I have tried and used most of the tools in the daily base.

1. Integrated Development Environment (IDE)

An Integrated Development Environment, or IDE, is available as a single piece of software, but it’s actually several important software development tools combined into one. An IDE contains all of the most important tools that are necessary for embedded software development. While IDEs vary in their features and benefits, they all contain at least three common elements: a code editor, a debugger and a compiler. Below are the IDEs that I used:

  • IAR Embedded Workbench

  • Eclipse

  • CodeWarrior

  • MPLAB

  • Code Composer Studio

  • Keil MDK

  • HighTec Development Platform

  • Vivado Design Suite

  • Arduino

  • PyCharm

2. Code Analysis Tools

Code analyses are a collective term which includes analysis such as searching the source code text or the model for patterns matching known faults or compliance with modelling or coding guidelines. There is a lot of commercial tools that can automatically identify issues through static code review analysis. The user can get notified on security issues, code coverage, code duplication, and code complexity in every commit and pull request, directly from your current workflow. below are a few of them that I have tried:

  • C-STAT, C-RUN (IAR Workbench)

  • LDRA

  • Parasoft

  • Klocwork (now a Rogue Wave Company)

  • Coverity

3. Debugger Tools

Mistakes are bound to happen, even for programmers and engineers who program and test embedded systems. Embedded systems developers should prioritize selecting hardware components with features that support debugging.

Some of the third-party tools are listed below:

  • Digital Oscilloscope

  • Logic Analyzer

  • In Circuit Emulator

  • Real-time Tracer

4. Simulations Tools

When engineers don’t have real hardware available, or they need to be sure that a piece of hardware can execute a program within its memory and other constraints, a simulator is used.

Developers can simulate their hardware setup, input from sensors and input from the human user interface to determine whether their code generates the correct output. Some of the popular tools are listed below:

  • Matlab (Model-in-the-Loop, Software-in-the-Loop, Power-in-the-Loop, X-in-the-Loop)

  • LabVIEW Real-Time (National Instruments)

  • Real Time Digital Simulator (RTDS)

  • Altair (HyperWorks)

5. Testing Tools

Embedded developers often have access to hardware-based embedded software testing tools that are generally not used in app development and the testing of applications.

Below is the list of popular embedded software testing tools that I have tried before.

  • Parasoft

  • TestPlant

  • Tessy

  • Vector Software

  • ATM (Automatic Test Manager)

  • Polarion (Test Management)

6. Bug and Issue Tracking Tools

As a popular saying goes “Better is the bug tracking tool, better the quality of the product”, a bug and issue tracking tools will help the team trace and knockdown the bugs and issues continuously. Here is the list of top bug tracking tools that I have used:

  • Bugzilla

  • Asana

  • JIRA

  • BackLog

7. Other Tools

Programmers that are developing embedded systems always need more tools. Below are the tools that I have used periodically in additional to the tools above.

  • VSPD (Virtual Serial Port)

  • Putty (Console)

  • Beyond (Code Comparison)

  • Notepad++

  • Lucid Chart (Flow chart)

  • QFSM (State Machine)

  • Beagle I2C/SPI (Protocol Analyzer)

  • Wireshark (Communication)

  • Doxygen (Documentation)

  • GIT( Version Control)

  • Agile (Agile Release)

  • Polarion (Requirement Management)

Summary

If you’re developing a product with embedded systems, you’ll need most of the tools listed here more or less.

Need more information? Have questions to ask? Feel free to comment. Thanks for watching.