Embedded hardware can be divided into embedded processors and external devices. The processor is the core of the entire system, responsible for processing all software programs and signals from external devices. Generally speaking, embedded hardware refers to logic circuits, embedded processors, microcontrollers, storage systems, and hardware design techniques.
Embedded software is software designed for embedded systems. It is a type of computer software, also consisting of programs and documentation. It can be further divided into three categories: system software, support software, and application software, and is an important component of embedded systems. Embedded software can be divided into two layers, with the embedded operating system being the layer closest to the hardware. The operating system is the interface between the hardware and software, responsible for managing all software and hardware resources of the system. The operating system can also interact with external devices through drivers.
I. Different Subjects
Embedded hardware: Devices used to control, monitor, or assist in the operation of machines and equipment. Protocol processing modules centered around a general-purpose processor are used for processing network control protocols.
Embedded software refers to the operating system and development tools embedded in hardware.
II. Different Content
Embedded hardware: As part of a device or equipment, it is an embedded processor control board with control programs stored in ROM. A signal processing module centered around a digital signal processor (DSP) is used for modulation, demodulation, and digital-to-analog signal conversion.
Embedded software: Supporting software is software used to help and support software development, and usually includes databases and development tools, with databases being the most important.
III. Different Characteristics
Embedded hardware consists of an embedded computer system and an execution device. The embedded computer system is the core of the entire embedded system, comprising a hardware layer, a middleware layer, a system software layer, and an application software layer. The execution device, also known as the controlled object, receives control commands from the embedded computer system and executes the specified operations or tasks.
The power consumption, size, cost, reliability, speed, processing power, and electromagnetic compatibility of embedded processors are all constrained by application requirements. When selecting a processor, factors such as processing speed, technical specifications, low power consumption, software support tools, whether the processor has built-in debugging tools, and whether the processor supplier provides an evaluation board should be considered.
Embedded software consists of a series of microelectronic chips and devices, including microprocessors, timers, microcontrollers, memory, and sensors, along with a miniature operating system and control application software embedded in the memory. Together, they perform various automated processing tasks such as real-time control, monitoring, management, mobile computing, and data processing. The software running on an embedded system includes embedded operating systems, application programs, drivers, and some development tools. However, choosing a suitable operating system requires careful consideration of factors such as the development tools provided by the operating system, the difficulty of porting the operating system to the hardware interface, the operating system's memory requirements, whether the operating system provides hardware drivers, whether the operating system is customizable, and the operating system's real-time performance.
Although embedded hardware and software are different, they are closely related. Embedded development requires understanding the hardware characteristics of the MCU being used, the principles of various peripheral circuits and interface circuits, and also requires in-depth knowledge of the MCU core architecture, such as whether it supports floating-point processors/DSPs, coprocessors, instruction and data caches, etc.