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, and a highly adaptable tool will greatly improve your work efficiency.

Based on personal experience and objective feedback from fans, the author recommends several commonly used software tools for embedded development, as shown in the figure below:

Part1Visual Studio Code

VS Code is a lightweight code editor developed by Microsoft that is cross-platform. Its full name is Visual Studio Code. It supports syntax highlighting, auto-completion, refactoring, and definition viewing, and it comes with built-in command line tools and Git version control. Users can implement personalized settings by changing themes and keyboard shortcuts, and they can also install extensions from the extension store to expand the software’s functionality.

Recommended Software Tools for Embedded Engineers

Visual Studio Code is particularly powerful in its autonomy, as it can combine with various compilers for various embedded development tasks! For example, the author often uses it for Linux drivers, STM32, ESP8266/32 (Espressif has a dedicated plugin platform)! Among them,Visual Studio Code‘s numerous plugins are also one of its major features! Here, the author recommends a few plugins!

Plugin Function Description
C/C++ This is a must-have
C/C++ Snippets C/C++ reusable code blocks
C/C++ Advanced Lint C/C++ static detection
Code Runner Code execution
Include AutoComplete Automatic header file inclusion
Rainbow Brackets Rainbow brackets help read code
One Dark Pro VSCode theme
GBKtoUTF8 Convert GBK to UTF8
ARM Supports ARM assembly syntax highlighting
Chinese(Simplified) Chinese environment
vscode-icons VSCode icon plugin, mainly for the icons of various folders in the resource manager
compareit Comparison plugin, can be used to compare the 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 in Ubuntu, VSCode should be our first choice.

Part2Notepad–

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 it can load a rich set of plugins.Notepad– also has a complete Chinese interface and UTF8 technology, making it suitable for writing computer program code and creating plain text documentation.

Users can expand 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 perform 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.

Part3Visual Studio

Unlike VSCode, Visual Studio is an IDE, which we can install as a backup for when needed, such as verifying C programs or developing C# programs. Some simulators related to embedded systems are also based on Visual Studio; the author’s CUDA code or research-related C++ code is often verified and simulated using Visual Studio!

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 to support data access.

Part4Keil uVision

Keil uVision is an integrated development environment (IDE) developed by Keil for the development and debugging of embedded systems. Keil uVision is based on C language and supports various microcontrollers and processors, including STM32, AVR, PIC, etc.

Recommended Software Tools for Embedded Engineers

I believe that most embedded engineers are familiar with the above interface; the IDE we use most often for STM32 development is this one. Of course, everyone has always criticized Keil uVision for its ugly UI! MDK6 is about to be released, and according to what the author knows, it seems that the UI design has not improved much, and MDK6 seems more like a collection!

Recommended Software Tools for Embedded Engineers

The main functions of Keil uVision include code editing, compilation, debugging, and simulation. 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 the source code into executable files or libraries for running on target devices. The debugging function helps developers debug and test code, including single-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.

Part5STM32CubeMX

STM32CubeMX is a graphical tool developed by ST Microelectronics for configuring and initializing STM32 microcontrollers and generating C code. It provides an intuitive visual interface to help 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 the author should know that many of the author’s projects use the HAL library for teaching. The benefits of learning the HAL library are many; first, ST Microelectronics has stopped maintaining the standard libraries for many development boards. Second, FreeRTOS and other RTOS provide direct API function interfaces for the HAL library, making it easy to develop and port!

Recommended Software Tools for Embedded Engineers

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

Part6VMWare Workstation

VMware Workstation is a powerful virtual machine 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 ARM architecture code on an x86 architecture. This operation often needs to be done in a Linux environment! Considering the office needs, most engineers still use Windows as their daily operating system. Therefore, VMware Workstation greatly facilitates our development in daily life! Of course, tools like ROS also rely on Ubuntu under VMware Workstation.

Recommended Software Tools for Embedded Engineers

Part7QT Creator

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

Recommended Software Tools for Embedded Engineers

QT can be considered a relatively large branch among embedded engineers, belonging to embedded application layer development. There are many UI development platforms similar to QT, but QT can be said to be one of the most common and mature! Readers with a good foundation in C++ can consider developing in this area, as the salary and benefits are quite good!

Recommended Software Tools for Embedded Engineers

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

Part8MobaXterm

MobaXterm is a powerful remote terminal emulator suitable for Windows and Linux operating systems. It provides an integrated remote terminal and X server that can connect to various types of remote hosts, including SSH, FTP, Telnet, etc. The key point is that it is free. When communicating via serial or SSH protocols, the terminal platform allows copying and pasting, which is really cool!!!! Therefore, I would call MobaXterm the strongest serial debugging assistant!!!

Recommended Software Tools for Embedded Engineers

The author currently primarily debugs on the Linux system, using Raspberry Pi 4B, Jetson Nano, and other advanced boards as terminal control and debugging tools, providing an excellent experience!!! Compared to the paid SecureCRT, it is truly a treasure software!

Recommended Software Tools for Embedded Engineers

Part9Vofa+

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, the Internet of Things, 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. The initials of their names together form the name VOFA+.

Recommended Software Tools for Embedded Engineers

Vofa+ is a supervisory machine that supports digital animation, allowing for an intuitive understanding of real-time data changes. It is also free, and its rich plugins will support embedded engineers’ actual debugging needs!

Recommended Software Tools for Embedded Engineers

Part10Arduino 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 use cases and Arduino library functions!

Recommended Software Tools for Embedded Engineers

Some engineers may consider ESP series development boards to be mere toys, or at most, to play with IoT; however, this is not the case! According to the author’s conversations with colleagues from many domestic and international universities such as MIT and NJUST, many universities have shifted traditional STM32 teaching to ESP32 teaching! At the same time, Espressif has excelled in lightweight edge computing!!! The times are flowing, and I believe that Espressif’s ESP32 series will shine brightly in the future!

Recommended Software Tools for Embedded Engineers

Part11Logic

Logic is a modeling and analysis tool for digital logic circuits that helps 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 logic analyzers available. However, Logic is a very visually appealing and functional tool!!! Unfortunately, it is quite expensive, but thankfully, there exists a mysterious Eastern power!!!

Part12uniapp

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

Recommended Software Tools for Embedded Engineers

The advantage of uniapp lies in: having its own community, rich components, and low development difficulty. This allows non-professional APP developers to quickly get started and develop their own apps!

Part13Beyond 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, file comparison, etc., and can be used to manage original documents, keep folders synchronized, compare program output, 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 which areas have changed, and these areas will need to be focused on during future development!

Recommended Software Tools for Embedded Engineers

Part14Git

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>git init</span><span>git add</span><span>git commit</span><span>git push</span>** and **<span>git pull</span>**, making it easy for developers to manage their code repositories.

Recommended Software Tools for Embedded Engineers

In summary, Git is a powerful tool that helps developers manage and collaborate more efficiently while providing better flexibility and scalability.

Recommended Software Tools for Embedded Engineers

Part15Tracealyzer

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 behaviors and events in real-time. It helps developers identify performance bottlenecks, debug issues, and optimize system performance.

Recommended Software Tools for Embedded Engineers

Tracealyzer’s main features 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 helps 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 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.

Part16 PyCharm

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

Recommended Software Tools for Embedded Engineers

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

Recommended Software Tools for Embedded Engineers

Part17Matlab

Matlab is a programming language and interactive environment for mathematical computation and engineering applications. Developed by MathWorks, it is a widely used scientific computing language and tool for various fields such as science, engineering, and finance. Most engineers may think that Matlab is a research tool that can only simulate; in fact, we can convert Matlab’s .m language programs into C language to run some advanced control algorithms on MCUs!

Recommended Software Tools for Embedded Engineers

Including image filtering algorithms can also be simulated in Matlab, and then the corresponding C language can be written for migration implementation!

https://sneak.blog.csdn.net/article/details/131803087
Recommended Software Tools for Embedded Engineers
END

Disclaimer:This article is reprinted from the internet, and the copyright belongs to the original author. If there are any copyright issues, please contact us in time, thank you!

Recommended Software Tools for Embedded Engineers

Leave a Comment