Why is Linux?
Develop embedded applications in the market demand today today, a good champion is the key to the successful project. These decisions include selecting processors and platforms, software stacks, development tools, and characteristics, functions, and life cycles that determine the product. One, the product enters development, and any one of the above will lead to time and money, so the correct choice can maximize the probability of success at the beginning of the project. The selection of the processor and platform used by the embedded application is usually determined by the application's design objectives. Fortunately, we have a large number of processors and platforms to choose from, including many universal solutions and customized solutions provided by industry-leading chip aggamics and motherboard. Although the selection of the processor is the foundation, the choice of usual development platform has more challenges. In many projects, it is configured according to the standard motherboard, but most of them use their own motherboards to accommodate the required features. This usually means that the application is developed on a development board, but can support expected features on the user board. Looking for a standard board that meets the design needs is not a small matter, one of these goals is to have a good software platform support.
One, the hardware platform is selected, you need to find a software support platform. In this, the first difficult point is to find a reliable, stable, supporting this hardware operating system. It needs to provide support and tools needed for this project, while having sufficient motorism to meet any specialized needs. However, since the selection range of the processor is very wide, it is very difficult to find an operating system that supports the selected processor. The main reason is that most of the operating system suppliers that provide solutions cannot keep up with a large number of chip systems and motherboards, so they must choose to support limited hardware to maximize their investment.
Open source codes have reduced this problem from some extent, but most developers who provide solutions only will give the source code only when their own systems can meet the needs. This selection in the second bit is usually limited by the developer's investment. In many cases, the motherboard selected by the project is support (BSP or LSP), which must develop a new package, but also developers to have the ability and willing to work.
Of course, you can build your own operating system through a lot of open source code, and even this operating system will include some of many commercial real-time operating systems. But this method for most companies is not feasible, because it is necessary to establish a software environment inevitably use the technical strength of R & D products. Therefore, an attractive choice is to develop and manage projects with a software environment based on embedded Linux. Once there is a corresponding adjustment for embedded, Linux will provide a good environment for the development and management of the entire project, more beneficial to embedded solutions.
Thanks to the development of many people on Linux and its functional expansion, the Linux environment is increasingly popular in recent years. In order to adapt to new demand, Linux core technologies continue to develop, and the underlying procedures are constantly increasing to support a large number of new peripherals, technologies, agreements, and services. Most of the work that transplanted Linux to different platforms is done by professional embedded Linux. Because if you want to fully support the characteristics and performance of the motherboard, you must make special driver development and system integration, and their work is satisfying this needs. Although most embedded Linux system providers work on the open source, they are actually public code of their products.
An example of a fully open source code is Montavista Linux, a professional development and configuration platform for embedded applications. Embedded Linux systems also have most of Linux used on desktops and servers, such as reliability, openness, and high performance. Montavista has added a lot of new features on standard Linux for embedded systems. Although they have made a lot of work for this, they fully provide the research results to open source organization to complete the corresponding Linux source code to contribute to Linux. The following is a few important parts of their work:
Providing system boots and programs that do not need to be controlled and non-hard drive operations can be booted from FlashRom, including ROM bootstakes, can be reached by 500K. Support CompactPCI system and I / O motherboard can support CompactPCI backplane Network Equipment (Montavista Net) supports customized design and embedded product manufacturing compressed Flash boot support supports hot swaps in PCI interface
Montavista supports many processors and motherboards in several processor systems: Intel's Pentium series, Pentium 2/3 and compatible equipment; 386/486 compatible equipment; Strongarm 110, 1100, 1110, Xscale; Motorola PowerPC 603 / 604, 740/750/7400, PowerQuicc 823/860/8260; IBM PowerPC 405; MIPS 4K, 5K, 7K; Super Hitachi (SH) 3, 4.
Of course, on the selection of the operating system is the software environment for selecting items. In today's fierce market, developers need excellent and complete development tools to increase productivity, which requires a few groups of cooperation and even a few locations. Many procedures require control of the underlying module, especially in C, C , and assembly languages. This requires standard tools such as GCC, KGDB, GDB, DDD, etc. Increase these tools can help the target program to configure, test, and modulate them.
We also need to transplant the application from the traditional real-time operating system to the current system to make it reused by the code. All of these development tools are required, but it is necessary to achieve potential capabilities of embedded environments, requiring a powerful intermediate environment. Many projects in the mixed environment are also possible, which includes previous program code, or some specialized high-efficiency modes (such as sound / image operation or language translation), which can be flexible and easily configured. JAVA program code. We should thank Java virtual platforms, all of which can be implemented under Linux in the traditional real-time operating system.
Why is Java technology?
For embedded systems, Java technology has significant superiority than C language and assembly language. The most prominent feature is to reduce the development and maintenance of the system, the re-utilization capability of the code, and the integrableability of the Java code and the original code of the system.
Reduce development and maintenance
In the entire life cycle of the project, the Java environment greatly simplifies development and maintenance. Since the target environment is built on a virtual machine, the code can be easily written, debug, analyzed, changed, and maintained. Plus an external device to be connected in the future, the future system may be more complicated than the current embedded system. The upgrade manual may not play a role in the life cycle of the entire project. Instead, the connectivity of the hardware device makes it possible to remotely manage modules, so that developers can add new performance on the product while solving the problem of software upgrade and maintenance after product production.
Java technology has made real interactions. The function module of the program is developed on a lot of workstations and then tests and prepares integration. In this way, even if there is no hardware prototype, the technician can also develop functional modules. After completing the hardware prototype, the technician is connected to a commonly used hardware device through the network, and a virtual platform that can be used in a company or even several cooperation companies.
The execution environment of the Java program also reduces the requirements of memory management, and "space collection" technology can automatically collect memory space after the memory segment is released.
Re-use code
Due to the special demand for embedded systems, and different specialized hardware should work together, embedded software developers often develop very raw ways, sometimes every new project is coming again. Now, with the maturity of embedded techniques and the system itself makes greater optimization, many people have begun to use another product to be interested in using the modules of a product. This reusedness makes "once development, multiple times" becomes possible. The Java environment allows a module to accommodate multiple projects and platforms as long as they do very little work. Even when customers need a new target board, or use new hardware (CPU or peripherals) and software, or using different Linux can be transplanted. Integrated Java code and source code
The source code is clearly referred to as the multi-availability of the application and the reuse of the code. In Java applications, a well-designed interface, or virtual machine, or underlying hardware can be well compatible into the embedded system. Although it cannot be ported, the code developed in the local environment may remain the best solution for many features and hardware interfaces. In C, C or assembly language, the standard communication, interface module, user interface, and security feature will take much time and money. Compared with it, Java's basic library itself provides these things even more, so you can accelerate development.
Developers' interest and technology
Many programmers are now cultivated to do Java application development. For example, IBM has thousands of programmers who do Java programs. As most training institutions have opened this popular language and the corresponding development environment, a large number of Java developers have grown.
The next generation of embedded project developers need effective configuration of complex, powerful, connected to the network. Since Linux and Java technology meet TCP / IP protocol stacks, most of the work that supports communication needs has been completed, and it is still completed according to standards.
Picking the platform - the choice of intermediate layer
There are a lot of choices for the intermediate layer, most of which can be obtained as a separate module, such as the protocol stack, graphics development tool, management tool, special operating system functions such as high availability and real-time. Any of the individual uses is not too difficult, but with the increase in the number of intermediate layers, the impact of unavoidable will affect the work of the developer, and will delay the integration due to increase the complexity of the stack. Test, debugging progress.
Although Java initial design is to meet the desktop and server market, then it has found a broader recognition in embedded projects as an application environment. Developers in Java technology have long been integrated with some standards, including communication, security, module management. This design based on object-oriented Java program makes these completely different intermediate services to work with effective cooperation, and can manage well. The remaining intermediate environments provide the underlying execution in the same way, but now there is no support for the motherboard, we can't enjoy the benefits of Java technology.
Finally, Linux can be extended to provide the control necessary for developers to ensure the correctness of the real-time program execution and work. There are several ways to achieve this. Montavista has expanded the standard Linux platform, rather than specification. For example, in order to support the implementation of real-time programs, Montavista Linux uses new APIs to control store management, thread execution tables, and process execution.
Effective application
We should thank the standard Java class library structure, which makes the size of the management application become possible. In fact, research shows that more than 500kb size applications will be more complicated by Java encoding. This is because byte encoding is complicated than most hardware structures. The famous routing program is written in a class library and compiles character code, it is easy to reuse more than the program that is built in a real machine and standardizes the storage path.
IBM uses a unique way to complete embedded Java technology, actually from a unique root class created all of J9's version of the destination board and all Java class libraries. The source code for IBM's J9 and Java class libraries describes how to build these modules. A separate graft layer is used to describe the features of the unique target processor and real-time operating system interfaces. Different techniques can be used to design a separate functional module, and then compile with tools provided by embedded Linux real-time operating system. Using instant compilation technology and adequate cache, the program can be executed at a speed that is close to the program compiled using the local machine language. In fact, it is really important that the program is running fast enough. For many applications (including deep embedded devices for service management as a product sensor and controller, and equipment with user interface) are not its purpose. The user is far below the compilation speed of the Java compiler on the embedded processor today.
Java development tools
Many developers and engineers have found that a complete toolkit can provide a very helpful toolkit developers. Many of these developers are transferred from the development of corporate projects to the development of embedded projects, and many of them are generated from the current online service extension. These developers want to find a valid development tool. They have used integrated development environment, perfect adjustment tools, and the Java language help tools that help features, and language analysis molding tools. Most of the integrated version controls and issuance management functions. Many programmers who develop Linux under Linux also want to use Linux as a development platform to facilitate creating a unified effective development process to avoid conversion from the Windows development environment to the Linux environment. IBM and Montavista provide a Java integrated development environment and corresponding tools named "Visualage Micro Edition" based on Red Hat operating systems. It provides a complete embedded cross-development environment for engineers and developers.
Typically, develop programs on a personal computer, then running on a shared lab in a shared laboratory by remote debugging. "VisuaLage Micro Edition" provides remote debugging and program analysis tools, as well as techniques for developing hosts and target machines using the same files. NFS and LANs based on shared techniques allow the Java program to be directly loaded directly into the remote device. Once the code on the virtual machine changes, the change in the program can be reflected in the development host's adjustment interface. This close contact makes embedded developers have increased efficiency. Since Java technology is a virtual machine-based technology, the transformation of the code can be used on the connected embedded device. This provides more scalability and convenience for the designers of embedded projects. In particular, this makes it possible to expand and change characteristics in these use OSGi management techniques.
Java technology and Linux operating system combination
A complete embedded real-time operating system must be in an embedded Linux or Java platform. The embedded device is subject to the limitations and constraints of operating systems, drivers, and other functional modules. Using a Linux version that is unified with the embedded target platform is very important, not all Linux can be used.
Embedded equipment resources such as RAM, ROM, FLASH are relatively lacking, requiring special attention to their management. At the same time, the performance of the processor is relatively lacking (eg, a floating point accelerator), which requires different devices to provide different implementation procedures.
Since the embedded Linux must adapt to the specific environment of the target device, it is very important to quickly and efficiently recombine the mirroring of the Linux operating system is very important. This will make the developer increase, remove, and modify the Linux feature in the virtual machine and Java application needs. In each of the embedded development, every aspect of the device and the application must be considered in size, speed, and resources.
The embedded platform is completely unlike standard personal computers or workstations. In particular, you must do some work to operate the equipment on the embedded target board. Interactive ports, Flash storage, playback devices, and sound interfaces need to be set to complete. We would like to thank the extensive development experience in traditional embedded operating systems can also be used in embedded Linux development, and some embedded standards are also used in these devices. These standards include the following: Low-cost equipment management This embedded Linux operating system and Java technology unified launched a new world, and can build more efficient build on the liquid crystal screen and the graphical user interface on the touch screen. These devices are low power, compact, usually colored, which is very attractive for consumers and product producers. Many underlying design enables the user interface to use the handheld device or set-top box, which can control and display a large number of embedded devices such as in-vehicle, the underlying embedded operating system of the communication device. The graphical user interface is simultaneously used in a rough bitmap interface and window interface. Linux-based servers and workstations Configure the "X-Window" user interface and an optional window manager. Unlike, embedded Linux provides a more efficient direct way. For example, Montavista's Linux operating system configures an open source "MicroWindows" graphic distribution, which can be transplanted to a lot of processor platforms. It runs at the top of the Linux stack and provides an underlying interface close to the hardware device. It is specially designed to create high performance in an embedded processor, which can be used to create a high response speed interface. Montavista's MicroWindows uses IBM J9 and its Java class library. In this way, some embedded target devices can obtain a unified graphical interface support. IBM provides two basic graphics libraries: Simple Graphics Tools ("SWT") and "MicroView". AWT is specifically designed for personal Java platforms, which runs above the SWT graphics layer, as some browsers and connected XML translation tools. SWT can create user interface layers with complex window control. Simplified MicroView structures are used to create a relatively rough user interface on a low performance embedded device. Almost every development platform and embedded processor include communication interfaces. In Linux transplant, if there is RS-232 serial port and Ethernet port on the motherboard, the most basic task is to write the drive of these two devices. Communication is based on the TCP / IP protocol and simple serial port, where the TCP / IP protocol stack is provided by Linux. The TCP / IP protocol stack provides permissions to connect to the Internet, and also provides a Socket interface based on dialog communication between programs and programs. The DLD library of Java class libraries can be manipulated directly through special communication bus and device. These devices include self-control bus devices that meet "CAN", "MOST", or IEEE J-1850 standard. In the development, some devices can be directly accessed directly through the serial connection. Includes phones, car radios, and GPS units (satellite positioning systems). These devices can be controlled by a special protocol transmitted on a serial connection. But in the product, these devices are actually connected to the automatic communication bus. Therefore, in order to control these devices, a receiving layer is required. IBM designed a software package that provides hardware simulation, which is capable of selecting transmission technology, so that programs on the development platform can be directly ported to the final product.
Variability
Binding to using Java technology and embedded Linux operating system is now applied to a large number of embedded target boards. Developers can configure and add virtual machines as well as the components of the Java class library, based on the requirements of the project. The device driver can be selected as needed, and the application can also retain the application for the development and configuration of many related devices. This method can reuse its code via the user interface to reuse the large number of device programs. The Linux operating system and Java can be upgraded from the minimum to the maximum according to hardware devices.
Technical Support
Most of the cost of a project is used in the development of development, and the product is available. This support costs are related to the products of the product. When taking into account embedded Java code, the linkage of technical support from Linux and Java vendors is the key. To give a typical example, Java itself develops engineers to work with Linux vendors when doing the original virtual machine port and Java library for embedded Linux target platforms. The relationship between common development of Linux and Java suppliers is the most demanding. Especially in the environment where Linux open source, the source code that controls the Java library is also very important, so that different configurations can be made according to the specific conditions of a project. in conclusion
The combination of embedded Linux operating systems and Java provides new options for engineers and developers to configure different projects. We want to thank the professional Linux technical support company, they solved many of the problems encountered by embedded developers. A large number of connection devices can support the execution of the Java application.
Initially, the most considered is perhaps the source code and no traditional copyright fees. Because the business model of traditional real-time operating systems is based on the basis of ordering technical support and services, such embedded platforms are relatively cheap.
Improvements in the Linux platform are mainly considered in embedded devices, and the work is carried out in a prominent environment. With the emergence of IBM's "VisualAge Micro Edition", the developers of Java applications can get full support of rich interactive development tools.
Since Linux runs on the server for a long time, this makes Linux kernels and related functions to improve in robustness. Embedded Linux also has also been improved in this performance. Today, Linux has proven to be a very robust environment, and it has also been continuously improved over time and experience.
Today, the work made to embedded Linux is mainly to provide stronger, smaller system components, so that the system's initialization speed can be accelerated while enhancing the use of resources. When cooperating with Java powerful environments, project managers and developers can use this combination to successfully design and develop next-generation applications, and are highly reliable and high availability. program of.
Translator: Chen Wei Position: Bo Lisi Software engineers of support: pocketix Source: pocketix Date: December 9, 2002 11: 09http: //www.biplip.com/Default.aspx tabid = 35 & mid = 350 & ctl? = View & itemid = 171