
There are innumerable “electrically powered products” in the world, such as kitchen refrigerators and car navigation systems.
These products can be operated according to the manual because of the built-in system called “embedded software (embedded system)”.
From the point of view of controlling all the operations of electric appliances, ES can be said to be “an important system that is the basis of electric appliances”.
This time, we will introduce in detail the basic knowledge of ES and the languages used for system development.
table of contents
- 1. What is embedded software (embedded system)?
- 2. Devices with embedded software
- 3. Language used for embedded software
- 4. What is the flow of developing embedded software?
- 5. Skills required for embedded software development
What is embedded software?
In the first place, the software is a term that refers to “mechanisms and programs that operate computers.”
To put it simply, embedded software is a “mechanism that controls machines such as home appliances and industrial equipment,” and is sometimes called an “embedded system” because of the characteristics embedded in the equipment. The role of ES is to operate home appliances and industrial equipment correctly according to the program written on the internal board (memory).
Devices with embedded software
Most of the “electrically operated equipment”, including the home appliances and industrial equipment mentioned above, have ES that controls the equipment.
To give a familiar example, a washing machine is an electric appliance that specializes in “washing clothes”, but the built-in ES also has functions that specialize in washing clothes. By pressing the switch, operations such as “injecting water into the washing machine”, “adding detergent according to the amount of water”, and “rotating the drum to wash clothes” are also incorporated. Thanks to the software. Unlike application software that runs on personal computers and smartphones, it can be said that the characteristic of ES is that it “directly controls the device”.
device | Main functions installed |
---|---|
Car navigation | Calculation of the distance to destination, display of route |
Air conditioner | Adjusting the temperature and humidity in the room, adjusting the wind direction |
Elevator | Open and close the door, move to the desired level |
Digital camera | Take and save photos, adjust image quality and luminosity |
vending machine | Discharge of goods, calculation of change |
In addition, there is various ES installed by each device. Keep in mind that no matter how simple a feature, an electronic device won’t work without ES. By the way, the engineer who specializes in developing this embedded software is called “embedded engineer (or embedded engineer)”. In addition to being in charge of software development at a system company, many embedded engineers develop independently and freelance.
The language used for embedded software
A programming language called “C language” is mainly used for ES development.
The C language has the longest history among many programming languages and is a well-known language used all over the world from its development in 1972 to the present day. It is used for a wide range of system development such as WEB applications and game software because of its simple mechanism and the ability to develop anything. In particular, C language is a language that makes it easy to design programs that directly control hardware, such as managing CPU and memory areas and is also suitable for “development work that plays a key role in the system” such as ES and the OS of personal computers. is.
The C language also has the feature of “fast processing speed”. Therefore, C language can be said to be the most suitable programming language for ES installed in devices such as medical devices and traffic lights where slow processing leads to accidents. In addition to the C language, programming languages such as C ++ and Java, which were created following the design of the C language, are used for the development of embedded software. In actually developing ES, it is indispensable to have an engineer who has a good knowledge of the C language and Java.
What is the flow of developing embedded software?
The language used for ES differs depending on the system company, but system development is the same as general software development and is done on a personal computer. Specifically, it is a flow to prepare a development environment such as a text editor (source code editor) and perform programming. However, since ES is “software that operates devices” when developing software, it is often developed in parallel with the devices (hardware). After the embedded software and equipment are completed, they are installed in the equipment and tested to see if it works properly.
To communicate between a personal computer and an embedded device, it is necessary to use a dedicated device such as ICE (in-circuit emulator) that replaces the CPU function or JTAG (JTAG) that writes to the internal circuit. Therefore, it is difficult to develop embedded software unless the engineer is familiar with the structure of the electronic board and hardware used to write the program, and how to use the dedicated equipment used for writing and inspection.
Skills required for embedded software development
As introduced in the previous section, to develop embedded software, knowledge about hardware and electronic boards, programming technology required for development such as C language, etc. are required. Because of the wide range of knowledge and technology required, there are often cases where even if you want to create embedded software to be installed in your products, you do not have an engineer or know-how to develop a system. Therefore, when developing embedded software, we recommend that you outsource to the company responsible for system development. If you are a system company that is good at designing and developing embedded software, it will build the best software for your product.
However, keep in mind that different companies and engineers who develop embedded software are good at different projects. For example, even if one engineer’s job is taken, such as a small device type embedded system that specializes in smartphones and home appliances, and a plant type embedded system that specializes in industrial machines and industrial robots, the fields of specialty will change. Therefore, when outsourcing embedded software, it is important to thoroughly investigate “the projects that the outsourced company is good at” before making a request.
If you ever want to know about similar things, check out the Facebook page Maga Techs