Recommended software tools commonly used by embedded engineers

Preface: As the saying goes: If a worker wants to do a good job, he must first sharpen his tools. As a qualified embedded engineer, you may need to contact and deal with various strange problems on a daily basis. At this time, a highly adaptable tool will greatly improve work efficiency. According to the actual usage of the individual and the objective feelings of fans, the author recommends several commonly used software for embedded development. I hope this blog can help you learn to use some new tools. Of course, if readers have other good software recommendations, you can also leave a message in the comment area!

Recommended software map:

Considering that the author is currently partial to embedded software engineering, this blog only recommends good tools for embedded software engineers!

一、Visual Studio Code

VS Code is a cross-platform lightweight code editor developed by Microsoft, and its full name is Visual Studio Code . It supports syntax highlighting, auto-completion, refactoring, viewing definitions, and more, and has built-in command-line tools and the Git version control system. Users can personalize settings by changing themes and keyboard shortcuts, or install extensions through the extension store to expand software functionality.

Personally, the most powerful thing about Visual Studio Code is its autonomy. It can combine many gaps or compilers to carry out various embedded research and development work! For example: the author often uses it for Linux driver, STM32, ESP8266/32 (Espressif has a special plug-in platform)! in,

The many plug-ins of Visual Studio Code are also a major feature of it! The author here gives you a few plug-ins for Amway!

1), C/C++, this is definitely a must.
2), C/C++ Snippets, that is, C/C++ reuse code blocks.
3), C/C++ Advanced Lint, that is, C/C++ static detection.
4), Code Runner, that is, the code runs.
5), Include AutoComplete, that is, automatic header file inclusion.
6), Rainbow Brackets, rainbow curly braces, help to read the code.
7), One Dark Pro, the theme of VSCode.
8), GBKtoUTF8, convert GBK to UTF8.
9), ARM, which supports ARM assembly syntax highlighting.
10), Chinese (Simplified), that is, the Chinese environment.
11), vscode-icons, VSCode icon plug-in, mainly the icons of each folder under the resource manager.
12), compareit, a comparison plug-in, can be used to compare the differences between two files.
13), DeviceTree, device tree syntax plug-in.
14), TabNine, an AI auto-completion plug-in, highly recommended, anyone who uses it will know!

For embedded development in Ubuntu, VSCode should be our first choice.

2. Notepad++

Notepad++ is a free and open source text editor for Windows. It has powerful functions, supports syntax highlighting, multi-window synchronous editing, multi-language and multi-programming languages, and can load rich plug-ins. Notepad++ also has a complete Chinese interface and UTF8 technology, which is suitable for writing computer program codes and making plain text explanation files.

Download link: Download Notepad++ - free - latest version (softonic.com)

Users can expand the functions of Notepad++ by installing plug-ins, such as code folding, code hints, document formatting and document preview, etc. In addition, Notepad++ also supports custom macros, which can help users quickly perform repetitive tasks or modify text in batches.

In short, Notepad++ is a feature-rich, easy-to-use, and well-extensible text editor suitable for writing various types of text and code.

三、Visual Studio

Different from VSCode , Visual Studio is an IDE , and we can install one for emergencies, such as verifying C programs or developing C# programs. Some embedding-related simulators are also based on Visual Studio. The author's usual CUDA code or C++ code for scientific research will use Visual Studio for verification and simulation work!

In addition to standard functions, Visual Studio also provides a wealth of extensions and plug-ins 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.

4. Keil uVision

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

I believe that there is no one among the majority of embedded engineers who does not know the above interface. The STM32 development we have the most contact with is usually the IDE. Of course, what everyone has been criticizing is that  the UI interface of Keil uVision is too ugly! MDK6 is actually coming out soon. According to the author's understanding, it seems that the ui design has not improved much. MDK6 seems to be more like a collection!

The main functions of Keil uVision include code editing , compiling , debugging and simulation . Among them, the code editor supports syntax highlighting, code folding, auto-completion and other functions, which can help developers write code quickly. The compile function compiles the source code into an executable or library to run on the target device. The debugging function can help developers debug and test code, including single-step execution, breakpoint setting, variable monitoring and other functions. The emulation function can simulate the operating environment of the target device in order to test the correctness and reliability of the code.

5. STM32CubeMX

STM32CubeMX is a graphical tool developed by STMicroelectronics to configure and initialize STM32 microcontrollers and generate C code. It provides an intuitive visual interface that can help developers quickly configure and set various peripherals, pins and clocks of the microcontroller.

STM32CubeMX can directly generate the STM32 configuration program of the HAL library, which greatly facilitates the use of STM32 series development boards by individual developers. Those who are familiar with the author should know that many of the author's projects use the HAL library as teaching. There are many benefits of learning the HAL library. First of all, STMicroelectronics has stopped maintaining the standard libraries of many development boards. Secondly, RTOS such as FreeRTOS directly provide interface API functions for the HAL library, which is convenient for development and transplantation!

The author has something to say:

The HAL library is the trend of low code volume and high packaging in the future. However, the HAL library itself also has many shortcomings, such as low code efficiency, code redundancy, etc.! Moreover, CubeMX is mainly for

六、VMWare Workstation

VMware Workstation is a powerful virtual machine software that can simulate the environment of multiple operating systems and applications on a single computer.

Embedded projects often require cross-compilation, that is, compile the code of the ARM architecture on the x86 architecture . This kind of operation often requires us to do it under the Linux system! Considering everyone's office needs, most engineers still use windows as their daily operating system. Therefore, VMware Workstation greatly facilitates the development in our daily life! Of course, ROS and other uses also need to rely on Ubuntu under VMware Workstation .

七、QT Creator

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

QT can be regarded as a relatively large branch among embedded engineers, which belongs to the development of embedded application layer. There are many ui development platforms similar to QT ! However, QT can be said to be relatively common and mature at present! Readers and friends with good C++ skills can develop in this area, and the salary and treatment are very good!

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

8. MobaXterm

MobaXterm I would like to call it the strongest serial port debugging assistant! ! !

MobaXterm is a powerful remote terminal emulator 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 point is that it's still free. When communicating with protocols such as serial port or SSH, the terminal platform can be copied and pasted, which is really cool! ! ! !

The author is currently debugging the basic Linux system, Raspberry Pi 4B , jeston nano and other series of advanced boards are using it as a terminal control and debugging, the experience is really great! ! ! Compared with the paid SecureCRT, it is really a treasure software!

9. Vofa+

VOFA+ is an intuitive, flexible, and powerful plug-in-driven high-degree-of-freedom host computer . VOFA+ can be seen in fields dealing with electrical appliances, such as automation, embedded, Internet of Things, and robotics. The name of VOFA+ comes from: Volt/Volt, Ohm/Ohm, Fala/Fala, Ampere/Ampere, which are the basic units in the electrical field, and have the same name as their inventors—four scientific giants in the field of electronic physics. Their initials together form the name of VOFA+.

Vofa+ is simply a host computer that supports digital animation, which can be used to intuitively understand real-time data changes. It is also free, and the rich plug-ins will also help embedded engineers actually debug their needs!

VOFA+ recommended learning blog: http://t.csdn.cn/Qyma8

十、Arduino IDE

The Arduino IDE is an integrated development environment (IDE) that powers the Arduino board. It is an easy-to-use tool that helps developers program, edit, upload and debug Arduino-based interactive electronics. Today, the Arduino IDE has fully adapted to the development needs of ESP8266/32, and the IDE provides a wealth of use cases and library functions of Arduino!

Some engineers may think that the ESP series development boards are pure toys, or at most engage in the Internet of Things, but they are not! According to bloggers and MIT, NJUST and many other college colleagues at home and abroad, at present, many colleges and universities have changed the traditional STM32 teaching to ESP32 teaching! At the same time, Espressif is even excellent in lightweight edge computing! ! ! The times are constantly flowing, I believe Espressif's ESP32 series will shine in the future!

Eleven, Logic

Logic is a modeling and analysis tool for digital logic circuits. It can help users design and verify various digital circuits, including combinational logic circuits, sequential logic circuits, and state machines.

Logic analyzers are very common detection tools for embedded engineering, and there are many logic analyzers. However, the appearance and function of Logic are very durable! ! ! However, the price is too expensive, but fortunately there is a mysterious oriental force! ! !

Twelve, uniapp

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

The advantage of uniapp is that it has its own community, rich components, and low development difficulty. This enables non-professional APP developers to quickly get started developing their own APPs!

uniapp official website: uni-app quick start | uni-app official website (dcloud.net.cn)

13. Beyond Compare

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

When Linux driver engineers learn new development board drivers, they often need to use Beyond Compare to compare old driver codes. In this way, you can quickly find out which places have been changed, and these places need to be focused on in future development!

Beyond Compare official website: Download | Beyond Compare Chinese official website (beyondcomparepro.com)

14. Git

Git is a distributed version control system used to track and manage changes to projects. It wasinitiated and developed by Linus Torvalds in 2005 and is now an open source project and widely used. Using Git, developers can store a project's version history 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 git init , git add, git commit,git push and git pulletc., which allow developers to easily manage their code base.

In conclusion, Git is a powerful tool that can help developers manage and collaborate more effectively, while providing greater flexibility and scalability. 

15. Tracealyzer

Tracealyzer is a tool for real-time tracing and analysis of embedded systems. It was developed by MathWorks to help developers better understand and optimize their embedded system performance. Tracealyzer provides in-depth analysis of embedded systems by tracing the runtime behavior and events of the system in real time. It helps 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, etc.
  2. Performance analysis: Tracealyzer can analyze system performance indicators, 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 failures.
  4. Visual Reporting: Tracealyzer generates detailed visual reports, including task and event timelines, performance metrics charts, stack traces, and more. These reports can help developers better understand system behavior and develop optimization strategies.
  5. Cross-platform support: Tracealyzer supports a variety of embedded platforms, including embedded devices based on Windows, Linux and real-time operating systems.

Sixteen, PyCharm

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

Today's popular artificial intelligence AI technologies, such as: target detection, natural language recognition, etc., mostly require the training of Python neural networks. This often requires the help of Python 's IDE . PyCharm is a very mainstream artificial intelligence development platform today! Embedded AI engineers often need to train the network model in PyCharm , and then deploy the AI ​​board!

Seventeen, Matlab

Matlab is a programming language and interactive environment for mathematical computing and engineering applications. Developed by MathWorks Corporation, it is a widely used scientific computing language and tools used in various fields such as science, engineering, finance, etc. Maybe most engineers think that  Matlab is a scientific research tool and can only be simulated! In fact, we can run some advanced control algorithms in the MCU by converting the .m language program of matlab into C language!

Including the image filtering algorithm, you can also do a preview in Matlab, and then write the corresponding C language for transplantation!

Matlab official website: MATLAB - Technical Computing Language Product Information (mathworks.cn)

Guess you like

Origin blog.csdn.net/black_sneak/article/details/131803087