The embedded system is based on the application, computer technology, hardware and software can be cropped, adapting to the application system for a dedicated computer system for functional, reliability, cost, volume, and power consumption. It has been more than 20 years of history. There are also some famous embedded operating systems, such as VxWorks, Palm OS, Windows CE, but these operating systems are commercial products, which are expensive and due to the source. The code does not disclose a series of issues such as the support of the device, the application of the application. As an excellent Free OS, Linux has become the most potentially embedded operating system in recent years.
Embedded Linux combines the characteristics of embedded and Linux, which develops its own characteristics compared to general application development, which briefly introduces the general process of embedded Linux development.
Understanding hardware is a primary step, this is the characteristics of embedded development. Understanding hardware refers to understanding the entire hardware, determining whether the hardware is appropriate for current applications. CPUs and various peripherals need to be used in embedded systems, thereby collecting information about related hardware, including CPU, chip manuals, and various peripherals and related circuit diagrams, etc., and deeper the overall system Learn.
After you understand the hardware, the next step will be prepared for the Linux tool and other tools, these tools include: compiler / assembler / connectors, corresponding library tools, target file analysis / management tools, symbolic viewers for the CPU used. and many more. Fortunately, due to the openness of Linux, Linux tools for different target platforms can be available online, and most of these tools are provided by GNU. Other tools need also include hardware vendors to provide the company's tools such as programmers, download tools, and surplus devices. All of these tools are essential to future development, commissioning, etc.
After doing the above preparation, you have to enter a substantive work stage. First, the memory address, such as SDRAM's memory address, Flash memory address, etc., this requires a combination of actual applications and hardware conditions, to make a reasonable arrangement of the memory address according to the limitations of hardware and actual application, Pay attention to the arrangement of memory addresses to have certain scalability to minimize changes in future need to change. In general, embedded Linux's memory address arrangements are embodied in the connection script.
Then you enter the preparation code and the machine-related code phase. A variety of different target systems, even the startup code and machine-related code of the same target system are also different. The startup code generally needs to complete the hardware initialization, load the kernel and installation root file system, and start the kernel execution, and the startup code of the different target platforms can generally be written by reference to the existing startup code and the relevant CPU manual under Linux.
The startup code and machine-related code programming are completed and after starting the system, the next step can start the driver's writing. Linux write drivers and generally writing drivers do not have much different differences, you need to make a understanding of the relevant hardware, and you need to follow some rules of Linux write drivers. After writing a driver, you generally write one. The corresponding test program has been tested at any time. Various different types of devices under Linux have a number of driver source codes for reference, so more time is spent on the particular hardware characteristics.
In addition to these steps mentioned above, when actually developed, many times, library (the library average referring to the C library), GUI, and system programs are transplanted. This is because the libraries used in embedded Linux generally cannot directly use standard libraries, and they need to be streamlined, although some streamlined C libraries such as UCLIBC can be used, but they still need to be modified often. Embedded Linux commonly used GUI has MicroWindows, MiniGUI, QT / Embedded, Tinyx, etc., each having its use, the target platform and application levels are different, must be selected according to actual needs. System programs such as Mount, LS, etc. are must be applied, and some are required for debugging, and some universal system programs are required for initial. Author: Li Xiaoping
Currently, the project engineer of Bolisi Software Co., Ltd.
This article has published a magazine in "Creating Software"
Reprinted:
Embedded Linux