Recommended Software Tools for Embedded Engineers

Recommended Software Tools for Embedded Engineers

As the saying goes: To do a good job, one must first sharpen their tools.As a qualified embedded engineer, you may encounter and handle various strange problems in your daily work. At this time, a highly adaptable tool can greatly improve work efficiency.Based on personal usage and objective feedback from fans, I recommend several commonly used software tools for embedded development, as shown in the image below:

Recommended Software Tools for Embedded Engineers

1

Visual Studio Code

VS Code is a lightweight code editor developed by Microsoft that is cross-platform. It supports syntax highlighting, auto-completion, refactoring, and definition viewing, and it has built-in command line tools and Git version control.Users can personalize settings by changing themes and keyboard shortcuts, and can also install extensions from the extension marketplace to expand the software’s functionality.

Recommended Software Tools for Embedded Engineers

Visual Studio Code is particularly powerful in its versatility, allowing it to integrate with various compilers and tools for various embedded development tasks!For example, I often use it for Linux drivers, STM32, and ESP8266/32 (Espressif has a dedicated plugin platform)!Among its many features, the numerous plugins for Visual Studio Code are a major highlight! Here are a few plugins I recommend:

Plugin Functionality
C/C++ This is definitely a must-have
C/C++ Snippets C/C++ reusable code snippets
C/C++ Advanced Lint C/C++ static analysis
Code Runner Run code
Include AutoComplete Automatic header file inclusion
Rainbow Brackets Rainbow brackets, helpful for reading code
One Dark Pro VSCode theme
GBKtoUTF8 Convert GBK to UTF8
ARM Support for ARM assembly syntax highlighting
Chinese(Simplified) Chinese environment
vscode-icons VSCode icon plugin, mainly for folder icons in the resource explorer
compareit Comparison plugin, can be used to compare differences between two files.
DeviceTree Device tree syntax plugin
TabNine An AI auto-completion plugin, highly recommended, those who use it know!
Recommended Software Tools for Embedded Engineers

Note: When developing embedded systems on Ubuntu, VSCode should be our first choice.

2

Notepad++

Notepad++ is a free and open-source text editor for Windows. It is powerful, supports syntax highlighting, multi-window synchronized editing, multiple languages, and various programming languages, and can load a rich set of plugins.Notepad++ also has a complete Chinese interface and UTF8 technology, suitable for writing computer program code and creating plain text documentation.

Recommended Software Tools for Embedded Engineers

Users can extend Notepad++’s functionality by installing plugins, such as code folding, code hints, document formatting, and document preview. Additionally, Notepad++ supports custom macros, which can help users quickly execute repetitive tasks or batch modify text.In summary, Notepad++ is a feature-rich, easy-to-use text editor with good extensibility, suitable for writing various types of text and code.

3

Visual Studio

Unlike VSCode, Visual Studio is an IDE that we can install for emergencies, such as verifying C programs or developing C# programs.Some simulators related to embedded systems are also based on Visual Studio, and I often use Visual Studio for validating CUDA code or C++ code in research work!

Recommended Software Tools for Embedded Engineers

In addition to standard features, Visual Studio also provides a rich set of extensions and plugins to meet the needs of different fields. For example, users can install C++ extensions to support C++ programming or install Entity Framework extensions for data access.

4

Keil uVision

Keil uVision is an integrated development environment (IDE) developed by Keil for embedded system development and debugging.Keil uVision is based onC language and other programming languages, supporting various microcontrollers and processors, includingSTM32, AVR, PIC etc.

Recommended Software Tools for Embedded Engineers

I believe that most embedded engineers are familiar with the interface mentioned above. The IDE we use most often for STM32 development is this one.Of course, everyone has always criticized the UI of Keil uVision for being too ugly! MDK6 is also about to be released, and from what I understand, it seems that the UI design has not improved much, and MDK6 appears to be more of a collection!

Recommended Software Tools for Embedded Engineers

The main functions of Keil uVision include code editing, compiling, debugging and simulation, etc. Among them, the code editor supports syntax highlighting, code folding, and auto-completion, which can help developers quickly write code.The compilation function can compile source code into executable files or libraries for running on target devices.The debugging function can help developers debug and test code, including step execution, breakpoint setting, variable monitoring, and more.The simulation function can simulate the operating environment of the target device to test the correctness and reliability of the code.

5

STM32CubeMX

STM32CubeMX is a graphical tool developed by STMicroelectronics for configuring and initializing STM32 microcontrollers and generating C code.

It provides an intuitive visual interface that helps developers quickly configure and set up various peripherals, pins, and clocks of the microcontroller.

Recommended Software Tools for Embedded Engineers

STM32CubeMX can directly generate HAL library configuration programs for STM32, greatly facilitating individual developers’ use of STM32 series development boards.Those familiar with me should know that many of my projects use the HAL library for teaching. The benefits of learning the HAL library are many; first, STMicroelectronics has stopped maintaining the standard libraries for many development boards.Secondly, FreeRTOS and other RTOS provide direct API functions for the HAL library, making development and porting easier!

Recommended Software Tools for Embedded Engineers

HAL libraries represent the future trend of low code volume and high encapsulation.However, the HAL library also has many drawbacks, such as low code efficiency and code redundancy!

6

VMware Workstation

VMware Workstation is a powerful virtualization software that can simulate multiple operating systems and application environments on a single computer.

Recommended Software Tools for Embedded Engineers

Embedded engineering often requires cross-compilation work, that is, compiling code for the x86 architecture to run on ARM architecture. This operation often needs to be done in a Linux environment!Considering everyone’s office needs, most engineers still use Windows as their daily operating system.Therefore, VMware Workstation greatly facilitates our daily development work!Of course, tools like ROS also rely on Ubuntu running under VMware Workstation..

Recommended Software Tools for Embedded Engineers

7

QT Creator

Qt Creator is a cross-platform integrated development environment (IDE) specifically for developing C++ applications based on the Qt framework.It is a free and open-source tool provided by the Qt Company, suitable for operating systems such as Windows, Linux, and macOS.

Recommended Software Tools for Embedded Engineers

QT can be considered a significant branch among embedded engineers, belonging to the development of embedded application layers. There are many UI development platforms similar to QT!However, QT is currently one of the most common and mature options! Readers with a decent C++ foundation can consider developing in this area, as the salary prospects are quite good!

Recommended Software Tools for Embedded Engineers

Of course, QT can also be used for simple C++ introductory learning simulations!

8

MobaXterm

MobaXterm is a powerful remote terminal emulator suitable for Windows and Linux operating systems.It provides an integrated remote terminal and X server, allowing connections to various types of remote hosts, includingSSH, FTP, Telnet etc. The key is that it is free.When communicating via serial or SSH protocols, the terminal platform allows for copy-pasting, which is incredibly convenient! Therefore, I would call MobaXterm the ultimate serial debugging assistant!

Recommended Software Tools for Embedded Engineers

Currently, I primarily debug on the Linux system, using advanced boards like Raspberry Pi 4B and Jetson Nano as terminal control and debugging tools, and the experience is truly excellent!Compared to the paid SecureCRT, it is truly a treasure software!

Recommended Software Tools for Embedded Engineers

9

Vofa+

VOFA+ is an intuitive, flexible, and powerful plugin-driven high-freedom upper computer that can be seen in fields dealing with electricity, such as automation, embedded systems, IoT, and robotics.The name VOFA+ comes from: Volt, Ohm, Farad, Ampere, which are the basic units in the electrical field, named after their inventors—four giants in the field of electronic physics. Their initials together form the name VOFA+.

Recommended Software Tools for Embedded Engineers

Vofa+ is simply a software that supports digital animation, allowing for an intuitive understanding of real-time data changes. It is also free, and its rich plugins will assist embedded engineers in their actual debugging needs!

Recommended Software Tools for Embedded Engineers

10

Arduino IDE

Arduino IDE is an integrated development environment (IDE) that supports Arduino boards. It is a simple and easy-to-use tool that helps developers write, edit, upload, and debug interactive electronic products based on Arduino.Today, Arduino IDE has fully adapted to the development needs of ESP8266/32, providing rich usage examples and Arduino library functions!

Recommended Software Tools for Embedded Engineers

Some engineers may think that ESP series development boards are just toys or at most for IoT projects, but that is not the case!According to my discussions with colleagues from many domestic and foreign universities such as MIT and NJUST, many universities have changed their traditional STM32 teaching to ESP32 teaching!At the same time, Espressif is even excellent in lightweight edge computing! Times are changing, and I believe Espressif’s ESP32 series will shine in the future!

Recommended Software Tools for Embedded Engineers

11

Logic

Logic is a tool for modeling and analyzing digital logic circuits, helping users design and verify various digital circuits, including combinational logic circuits, sequential logic circuits, and state machines.

Recommended Software Tools for Embedded Engineers

Logic analyzers are very common testing tools in embedded engineering, and there are many types of logic analyzers. However, Logic is both visually appealing and functionally robust! Unfortunately, it is quite expensive, but fortunately, there is the mysterious power of the East!

12

uniapp

uniapp is a framework for developing cross-platform front-end applications based on Vue.js that allows developers to use a single codebase to publish to multiple platforms, including iOS, Android, and Web (responsive).It supports various mini-programs and quick applications, enabling developers to respond more flexibly to different application scenarios.

Recommended Software Tools for Embedded Engineers

The advantages of uniapp include:Having its own community, rich components, and low development difficulty, allowing non-professional APP developers to quickly get started in developing their own APPs!

13

Beyond Compare

Beyond Compare is a comprehensive comparison tool that can be used to compare text, folders, files, etc., helping users quickly and accurately find differences and similarities.It supports various comparison methods, including text comparison, folder comparison, and file comparison, and can be used to manage original files, keep folders synchronized, compare program output results, and check the accuracy of burned CD backups.

Recommended Software Tools for Embedded Engineers

Linux driver engineers often need to use Beyond Compare to compare old driver codes when learning new development board drivers.This way, they can quickly identify what has changed, and these areas will be the focus of future development!

Recommended Software Tools for Embedded Engineers

14

Git

Git is a distributed version control system used to track and manage changes in projects. It was initiated and developed by Linus Torvalds in 2005 and has now become an open-source project widely used.With Git, developers can store the version history of a project locally and synchronize it with a remote repository to share and collaborate with other team members.It also provides many commands and tools, such as **<span><span><span>git init</span></span></span><span><span><span>git add</span></span></span><span><span><span>git commit</span></span></span><span><span><span>git push</span></span></span>** and **<span><span><span>git pull</span></span></span>** etc., making it easy for developers to manage their code repositories.Recommended Software Tools for Embedded EngineersIn summary, Git is a powerful tool that helps developers manage and collaborate more effectively while providing better flexibility and scalability.

Recommended Software Tools for Embedded Engineers

15

Tracealyzer

Tracealyzer is a tool for real-time tracking and analysis of embedded systems. It is developed by MathWorks and aims to help developers better understand and optimize the performance of their embedded systems.Tracealyzer provides in-depth analysis of embedded systems by tracking runtime behavior and events in real-time. It can help developers identify performance bottlenecks, debug issues, and optimize system performance.

Key features of Tracealyzer include::

  1. Real-time tracking: Tracealyzer can track the runtime behavior of the system in real-time, including task execution, interrupts, timers, and events.

  2. Performance analysis: Tracealyzer can analyze system performance metrics such as response time, latency, and throughput. It can help developers identify performance bottlenecks and optimization opportunities.

  3. Debugging and troubleshooting: Tracealyzer can capture errors and exceptions in the system and provide detailed information and stack traces to help developers debug and resolve issues.

  4. Visual reports: Tracealyzer generates detailed visual reports, including timelines of tasks and events, performance metric charts, and stack traces. These reports can help developers better understand system behavior and formulate optimization strategies.

  5. Cross-platform support: Tracealyzer supports various embedded platforms, including embedded devices based on Windows, Linux, and real-time operating systems.

16

PyCharm

PyCharm is an integrated development environment (IDE) specifically for developing Python applications. It is a powerful tool that provides many features and functionalities to help developers improve efficiency and create high-quality Python code.

Recommended Software Tools for Embedded Engineers

Today, the popular AI technologies, such as object detection and natural language recognition, often require training of neural networks using Python .This often requires the use of Python IDEs, and PyCharm is currently a very mainstream AI development platform! Embedded AI engineers often need to train network models in PyCharm before deploying them on AI boards!

Recommended Software Tools for Embedded Engineers

17

Matlab

Matlab is a programming language and interactive environment for mathematical computation and engineering applications. It is developed by MathWorks and is widely used as a scientific computing language and tool in various fields, such as science, engineering, finance, etc.Many engineers may think that Matlab is only a research tool for simulation! In fact, we can convert Matlab’s .m language programs into C language to run advanced control algorithms on MCUs!Recommended Software Tools for Embedded EngineersIncluding image filtering algorithms can also be simulated in Matlab, and then the corresponding C language can be written for porting implementation!

Recommended Software Tools for Embedded Engineers

Recommended Software Tools for Embedded Engineers

Some screenshots of electronic books

Recommended Software Tools for Embedded Engineers

【Complete Set of Hardware Learning Materials】

Recommended Software Tools for Embedded Engineers

Leave a Comment