Author: Xiaowen Peng issued a document time: 2005.03.02
The embedded system is based on the application, based on computer technology, and hardware and software is cropped, suitable for specialized computer systems for strict requirements such as function, reliability, cost, volume, and power consumption. The most typical feature of the embedded system is closely related to people's daily life. Any common person may have various types of electronic products, small to MP3, PDA and other micro-digital devices, large to information appliances. Intelligent electrical appliance, car GIS. Four-level embedded system According to the definition of the International Electric and Electronic Engineers Association (IEEE), the embedded system is "control, monitoring, or device, machine, and equipment running." In general, the architecture of the entire embedded system can be divided into four parts: embedded processors, embedded peripherals, embedded operating systems, embedded applications, as shown. The core of the embedded system is a variety of embedded processors. The biggest difference between embedded processor and general processor is that most of the embedded CPU works in a system specifically designed for a particular user group, it will generally use the CPU Many of the tasks completed by the board are integrated into the interior of the chip, thereby facilitating the embedded system to be miniaturized while designing, while also high efficiency and reliability. In the hardware portion of the embedded system, other components for completing storage, communication, commissioning, and display, other components for completion of storage, communication, commissioning, and display, except for central control components, can be counted as embedded peripherals. Currently used embedded peripherals can be divided into three categories for storage devices, communication devices, and display devices. In order to make the development of the embedded system more convenient and fast, there is a need to manage software modules responsible for managing memory allocation, interrupt processing, task scheduling, etc. This is the embedded operating system. The embedded operating system is a system software used to support embedded applications. It is an extremely important part of the embedded system, which typically includes the underlying driver, system kernel, device driver interface, communication protocol, graphical user interface (GUI) associated with hardware )Wait. The embedded operating system has the basic features of the general operating system. If you can effectively manage complex system resources, you can abstract hardware, and you can provide library functions, drivers, development tools, and more. However, compared with the general-purpose operating system, the embedded operating system has a more distinctive feature in terms of system real-time, hardware dependence, software curability, and application specificity. Embedded application is a computer software for user-intended targets based on a fixed hardware platform for a particular application. Some embedded applications require specific embedded operating systems for a particular embedded operating system due to user tasks. Embedded applications and ordinary applications have certain differences, not only requires its accuracy, security, and stability, etc., but also optimizes as much as possible to reduce the consumption of system resources. Reduce hardware costs. The embedded Linux Linux has been advent from 1991 to now, in just a few years, it has developed one of the powerful and designed operating systems, which can not only compete with a variety of traditional commercial operating system. The rapid development is also available in the emerging embedded operating system. Embedded Linux refers to a dedicated Linux operating system that can be cured in a memory chip or a single-chip microcontroller having only a few k or a few m-bytes of a standard Linux. The development and research of embedded Linux is a hot spot in the field of operating system. In the current development of successful embedded systems, it is only half of Linux. The reason why Linux can make such brilliant results in the embedded system market, and it is unfunction with its own excellent characteristics. · Extensive hardware support. Linux can support multiple architectures such as X86, ARM, MIPS, Alpha, PowerPc, and have been successfully portable to dozens of hardware platforms, which can be run on all popular CPUs.
Linux has an abnormal driver resource that supports various mainstream hardware devices and the latest hardware technologies, and can even run on a processor without the storage management unit (MMU), which further promotes the application of Linux in the embedded system. . · The kernel is highly stable. The efficient and stability of the Linux kernel has been verified in various fields. Linux's core design is very delicate, divided into process scheduling, memory management, inter-process communication, virtual file system and network interface five parts, its unique module mechanism Some modules can be inserted into the kernel or removed from the kernel according to the user's needs. These features make the Linux system kernel can be crured very compact, which is very suitable for the needs of embedded systems. · Open source, rich software. Linux is an open source free operating system that provides users with maximum degree of freedom. Since the embedded system is very different, it is often necessary to modify and optimize specific applications, and thus the source code is critical. Linux's software resources are very rich, and each general program can be found on Linux, and the quantity is increasing. Developing embedded applications on Linux generally does not need to be started from the head, but a similar free software can be selected as a prototype, which is subject to secondary development. · Excellent development tools. The key to developing embedded systems requires a complete development and commissioning tool. Traditional embedded development debugging tools are in-circuit emulator, ICE, which provides a complete simulation environment to the target program by replacing the microprocessor of the target board, providing a complete simulation environment, making developers understand very clearly The program is easy to monitor and debug programs on the working state of the target board. The price of online emulators is very expensive, and it is only suitable for the very underlying debugging. If you are using embedded Linux, once the hardware software can support normal serial port functions, even if you don't have to use the online emulator, you can save a small development fee. Embedded Linux provides developers with a complete set of tool chains that can easily implement debugging from the operating system to each level of application software. · Perfect network communication and document management mechanism. From the birth date, Linux is inseparable from the Internet, supporting a variety of standard Internet network protocols, and is easily ported to the embedded system. In addition, Linux also supports file systems such as EXT2, FAT32, ROMFS, which has made a good foundation for developing embedded system applications. Faced with three major challenges, the R & D boom of embedded Linux systems is booming and occupying a large market share. In addition to some traditional Linux companies (such as redhat, etc.) are engaged in embedded Linux development and applications. Intel. , Motorola and other companies have also begun research in embedded Linux. Although the prospects are bright, the research results of embedded Linux are still a gap between the real demands of the embedded Linux, to develop a real mature embedded Linux system, but also need to work from the following aspects: · Improve system real-time. Although Linux has been successfully applied to various embedded devices such as PDA, mobile phones, car TVs, set-top boxes, network microwaves, but they can not be in trouble on medical, aviation, transportation, industrial control. Direct application, the reason is that existing Linux is a universal operating system, although it also uses many technologies to speed up the system's operation and response speed, and comply with the POSIX1003.1B standard, but from essentially an embedded real-time operating system.
Linux's kernel scheduling policies are basically used in the Unix system, and there will be many defects directly to embedded real-time environments. If the interrupt is turned off when the kernel thread is running, there is time-time uncertainty, and Lack of high-precision timers, etc. Because of this, Linux uses Linux as the underlying operating system, and the real-time transformation is carried out, thereby constructing an embedded system with real-time processing capability is a growing solution. · Improve the kernel structure. The Linux kernel uses a monolithic. The entire kernel is a separate, very large program, which allows the system to directly communicate directly, effectively shorten the switching time between the tasks, and improve the system response speed. However, it is not compliant with the poor storage capacity of embedded systems and limited resources. The embedded system often uses another architecture called microkernel, ie, the kernel itself provides only some of the most basic operating system functions, such as task scheduling, memory management, interrupt processing, etc., and similar to the file system. And additional features such as network protocols are run in the user space and can be taken according to actual needs. Microkernel greatly reduces the volume of the kernel, easy to maintain and transplant, and can meet the requirements of embedded systems. · Improve the integrated development platform. Introducing an embedded Linux system integrated development platform is an intrinsic requirement of the embedded Linux further development and application. Traditional embedded systems are for specific applications, software and hardware must be closely fit, but with the continuous expansion of embedded system, the emergence of embedded operating systems has become one. It is inevitable, because only this can promote the development of the embedded system towards hierarchical and modularity. Obviously, the embedded integrated development platform also meets the above development trends, an excellent embedded integrated development environment provides comparison of simulation functions, can achieve synchronous development of embedded applications and embedded hardware, and get rid of "embedded" The development of application software depends on the development of embedded hardware and the development of embedded hardware is an adverse situation. A complete embedded integrated development platform typically includes a compiler, a connector, a debugger, a tracker, an optimizer, and an integrated user interface. At present, Linux has a large gap compared to commercial embedded operating systems such as Windows CE based on a specific system custom platform based on a graphical interface, and the overall integrated development environment is to be improved and improved. Improve the real-time Linux ideas to improve the real-time real-time LINUX, its development has the following four ideas: · Provide a hard-real-time support, specific methods are: increase the clock accuracy, solve the problem of blocking interruption and kernel could not be preempted Representing system RT-Linux, Kurt-Linux. In fact, most of the real-time Linux uses the idea of improving the improvement clock accuracy and software interrupt manager with RT-Linux. In general, there is a contradiction between the kernel support hard real-time and using traditional Linux's rich system calls, so that the RT-Linux is separately realized a separate small hard real-time operating system. With the software simulation terminal controllers, improve clock accuracy, and the introduction of ideas such as the kernel, this contradiction is slowly resolved. · Provide support for real-time multimedia applications, initiatives include introducing novel scheduling algorithms (network package schedule, process schedule, disk scheduling). · Introducing novel scheduling frameworks and resource management ideas to better support QoS requirements in the network system, such as the idea of operating system scheduling in the vertical structure in Silk, the thoughts of qlinux, and RED-Linux A universal scheduling framework and the thoughts reserved for resources used in Linux / RK.