Embedded Linux development tool selection and application analysis

Source: Internet
Author: User
Overview

Embedded Linux features stability, scalability, and open source program code. It is compatible with multiple processors and hosts and is widely used in a variety of products and applications. However, cross-compilation, device driver development/debugging, and smaller sizes are all serious challenges for Embedded Linux developers. To address these challenges, dedicated tools for Embedded Linux have emerged and are growing rapidly.

However, many of these development tools are not compatible with non-x86 platforms, and they do not achieve good archiving or integration. In other development environments, high integration between components is not fully realized. Therefore, to create a complete cross-platform development environment from these free software components, developers should realize that this will require a lot of research, implementation, training and maintenance work.

Linux is one of the few operating systems that can be executed on embedded devices or used as a development environment. This feature allows developers to develop, debug, and test applications and libraries on common hardware (such as x86 desktop systems) before turning to this development system, therefore, the dependency on the standard reference platform and instruction set simulator can be reduced. This technology is only applicable to applications and libraries, but not to device drivers, because the development of the latter relies on the Linux architecture.

Open source program code groups and some software vendors can provide device driver development tools. Since device drivers are closer to hardware than standard applications, it is difficult to develop them. Fortunately, Linux desktop systems can use tools not available in windows and other operating systems. Developers with sufficient experience in developing device drivers may be used to Linux development systems.

The rapid development of Linux and the continuous emergence of desktop Solutions highlight an important question: How should the selected tool solution be executed on different Linux distributed systems? Are they dependent on the software configuration of the host platform?

Some Linux tools provide development environments independent of the host platform, including a series of application software, libraries, and utilities that support development tools. This method almost isolates the development environment from the host configuration, so the host can be any Linux distributed system, and any updates and modifications will not affect the functions of the development environment.

The main disadvantage of this method is that the requirement for storage space is increased-about 200 MB, because it is actually equivalent to a micro-Linux distributed system.

Available tools

The development of an embedded Linux product requires several stages, including configuring and constructing basic Linux OS for the target board; debugging applications, libraries, core and Device Drivers/core modules; optimize, test, and verify the final solution before shipment.

There are hundreds of open source program code development tools to choose from. As long as developers spend time and energy investigating, implementing, and maintaining a series of different tools, they can always find a complete solution to accomplish almost any development task.


Figure 1

Developers must precisely consider the features provided by the loose collection of these tools and the effort required to form a complete solution. "

In terms of debugging Linux applications and libraries, GNU Debugger (GDB) has been a standard for several years. It is a command line program that is supported by multiple front-ends of different graphic user interfaces. Each front-end can provide debugging control in multiple ways. Although GDB is not a perfect solution, it is sufficient to handle various debugging tasks and has been widely supported by open source program code groups.

Debugging of Linux core or device drivers is much more complicated than debugging of applications.

Pay special attention to the following aspects during the investigation:

What are the debugging methods that support product hardware development?
What core support programs are required?
What other support programs are required?
What is the debugging interface and how to use it?
Does this tool need to remove the core module and handle virtual address translation?
What other tools are required to provide a complete solution?

After further investigation, developers often find that tools A and B do not provide completely consistent functions because they are developed independently of each other. As a result, developers must precisely consider the functions provided by the loose collection of these tools, and make great efforts to form a complete solution.

If integration, availability, interoperability, and portability between different processor types are critical, developers should consider purchasing commercial development tools. This is mainly because the efforts made to develop a 'free' solution are taken into account, and commercial development tools are not expensive.

Linux BSP

The Linux system has two main parts: the Linux core with a device driver, and the root file system, including all the applications, services, and libraries required by the system.

In addition to the OS components residing on the target board, you also need to create a cross-compilation environment consisting of the GNU Compiler Collection to support libraries and binary programs (binutils.

Although almost every component can be found online, it is difficult to collect too much information about hardware or device driver support, integrated test information, cross-compilation guides, or software compatibility. Although developers can download various components from the Internet for free to configure the embedded Linux operating system, the status of each component in terms of version, support, stability and testing needs to be determined by the developer. Then, the developer needs to complete the final OS integration and testing and provide Lifetime Linux OS maintenance for the developed products.

On the other hand, the commercial Linux board support tool kits provided by embedded Linux vendors are generally pre-installed and tested, and provide support and maintenance. Other factors that need to be considered include the addition of different libraries and core features to the Linux Desktop host, as well as the long-term maintenance issues caused by changes to developers in the Organization.

The Quality Assurance Department generally performs a series of rigorous verification and performance tests, including memory leak detection/correction, program code optimization, and task tracking. Developers who want to develop embedded Linux products for Non-X86 platforms using open source program code tools will find that this task is even more difficult than selecting the open source program code debugging solution. Linux Trace Toolkit, Valgrind tool, and other memory analysis programs can complete some testing and verification tasks. But in general, they lack key features, integration functions, and extensive hardware support. The evaluation process of these open source program code analysis tools is basically the same as that of the evaluation of the debugging solution.

The final analysis is that a well-designed development environment should be able to provide suppliers and open source program code with the best features of both worlds:

* Complete development capabilities;
* Ease of use and integration;
* Coordination and Control of large-scale engineering organizations;
* Quality and support assurance;
* Continuity;
* Open source program code based on your own judgment.

Author: David Beal embedded Linux Director Email: dbeal@metrowerks.com Metrowerks

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.