Essential Software Tools for Microcontroller Development

Follow us by clicking the blue text, reply with “Entry Materials” to get a comprehensive tutorial from beginner to advanced on microcontroller development.

The development board will guide you, and we will help you soar.

Author | Wu Ji (WeChat: 2777492857)

The full text is approximately 2113 words, reading will take about 5 minutes.

Previously, someone asked me what software tools are generally used for development?

In fact, there are many software tools involved in embedded development, and we don’t necessarily need to install them all.

Below, I will list the essential software I use for microcontroller development that must be arranged first.

I categorize them into three main types: development environment, circuit design tools, and serial port debugging tools.

Each category has many tools to choose from; you don’t need to install them all, just follow my suggestions.

1. Development Environment

1.Keil

This is an essential tool for microcontroller developers and the one I have used the most in my career.
Keil μVision is a microcontroller development environment based on Windows, widely used for the development and debugging of ARM Cortex-M, 8051, and other microcontrollers.
It provides integrated tools such as compilers, debuggers, and simulators, helping developers quickly create, compile, and debug microcontroller programs.
Keil is favored by developers for its ease of use, powerful features, and good compatibility.

2.IAR
This needs to be installed; our Wu Ji microcontroller project training camp will use this development environment for the STM8L series projects.
IAR Embedded Workbench is an integrated development environment (IDE) developed by IAR Systems, supporting various microcontroller chips and processor architectures such as ARM Cortex-M, RISC-V, AVR, 8051, etc.
In addition to basic code editing, compiling, and debugging functions, it also supports performance analysis and optimization, supporting multiple programming languages like C, assembly, and C++.
Some older engineers like to use this; I generally use it when developing STM8 microcontrollers and TI Bluetooth protocol stacks. Personally, I find it less handy than Keil. If you’re not familiar with it, you may encounter some strange issues, like being unable to go to define….
The compiled code takes up slightly less memory space than Keil.

3.STM32CubeIDE
It is known as the magic tool for STM32 microcontroller development, making it feel like a cheat for beginners.
However, I haven’t installed it, haha, I generally prefer to develop using the firmware library that I am familiar with.
STM32CubeIDE is a comprehensive development environment for STM32 microcontroller development launched by ST, supporting both Windows and Linux systems.
It provides rich code writing and debugging tools, supports C, C++, Assembly, and includes a wealth of example code and project templates.
In short, it allows you to use STM32 peripherals as long as you have hands.

4.Arduino IDE
If you don’t play with Arduino, you can skip this one.
Arduino IDE is an open-source microcontroller programming tool specifically used for writing programs on Arduino development boards.
It is rarely used for microcontroller development; many users transition from embedded application directions.
5.Code Composer Studio (CCS)
Install it when needed.
This might not be seen by many; I first encountered it when developing the TI Bluetooth chip CC2640.
CCS is an IDE launched by Texas Instruments for developing its microcontrollers and microcontrollers, providing powerful code writing and debugging tools, supporting multiple programming languages and operating systems.

6.Eclipse
Install it when needed.
Eclipse is generally used for ARM architecture-based microcontroller development. As an open-source project, it is completely free for users, which is a significant advantage for individual developers and small businesses.
Some domestic MCU with ARM cores particularly like to use it; I used it once a few years ago when developing vehicle-mounted products.
It can support embedded software development by installing different plugins, with functionalities like code editing, compiling, debugging, etc., supporting C/C++ programming languages, suitable for embedded projects of different scales and complexities.
Although powerful, setting up the development environment can be cumbersome; if the microcontroller supports Keil, I generally prefer to use Keil.
Which development environment to use is usually not something we can choose ourselves, but depends on whether the microcontroller supports it.
2. Circuit Design Tools
My first circuit design tool was Protel 99se, but that was 10 years ago, and almost no one uses it now. The following are currently widely used in China.
Which of the following tools to install can depend on your learning and work needs.
1.Altium Designer (AD)
This is the one I use the most.
Altium Designer is an integrated electronic product development system software developed by Altium, providing a series of functions such as schematic design, circuit simulation, PCB layout editing, topology logic auto-routing, and signal integrity analysis. AD software has a very high usage rate in China, especially favored by universities and self-learners due to its Chinese interface and relatively simple learning curve.

2.PADS
PADS (Personal Automated Design System) was created by MentorGraphics, including schematic tool PADS Logic, PCB tool PADS Layout, and auto-routing tool PADS Route.
PADS is widely used in the electronic design industry in China, especially in the consumer electronics industry. It is known for its powerful features and stability, although its interface may seem a bit old-fashioned.

3.Cadence
Cadence software is one of the giants in global EDA design software, providing ORCAD (schematic design tool) and Allegro (PCB design + simulation tool).
Cadence is more commonly used in large companies in China, especially suitable for complex circuit design and high-density PCB design.
It has powerful resource configuration and simulation tools, but may be difficult for beginners to learn.

4.Jialichuang EDA
This is also frequently used, with both a web version and a client; the most enjoyable part is that it has a rich component library and integrates the component catalog of Lichuang Mall, making it convenient for engineers to select and procure components during the design process.
3. Serial Port Debugging Tools
The following three are the ones I use the most; generally, without special needs, using SSCOM is enough, simple and stable.
1.SSCOM
Features: Full functionality and stability, supports common serial port parameter settings and data transmission.
Applicable scenarios: Suitable for developers who need to use serial port tools for general serial communication debugging.
2.Commix
I used this when I was working on PDU; it can automatically calculate various checksums, such as XOR, total, CRC16, etc., which is very convenient.
Essential Software Tools for Microcontroller Development

3.SecureCRT
Features: A terminal emulation program that supports SSH, Telnet, and rlogin protocols, with high security.
Applicable scenarios: Suitable for development environments needing secure remote connections and terminal emulation.
I have collected some tools in my resource package; if you need them, feel free to ask me to arrange.

Essential Software Tools for Microcontroller Development

Below are more original works by Wu Ji on personal growth experiences, industry experiences, and technical insights.

1.What is the growth path of an electronic engineer? A 10-year, 5000-word summary.

2.How to quickly understand others’ code and thinking?

3.How to manage too many global variables in microcontroller development projects?

4.Why do most microcontroller C language developers adopt global variables??

5.How to achieve modular programming in microcontrollers? The practicality is astonishing!

6.Detailed explanation of the use and actual function of callback functions in C language.

7.Step-by-step guide to implementing a queue in C language code, easy to understand and super detailed!

8.Detailed explanation of pointer usage in C language, easy to understand and super detailed!

Leave a Comment

Your email address will not be published. Required fields are marked *