Conversation with first-line LINUX embedded development engineers

Source: Internet
Author: User
Mr Chen has been engaged in Embedded Development in Linux. As a front-line engineer in development, his views on many issues may be more practical. Therefore, by email, he will discuss embedded development issues, ask him to talk about his views:
Q: for Embedded Development, we are going to explain some introductory knowledge to the students. From your first-line development experience, I would like to give you some suggestions:

Chen Gong replied:

For Embedded Linux, if there is a certain foundation, you can start with the driver; if there is no foundation, I personally suggest starting from the application. Because the application is the easiest and most intuitive. While the driver program runs in the kernel state, the structure of the driver itself is relatively complicated. If you want to thoroughly understand the driver's operating mechanism, the kernel will be involved. I am afraid there will be fewer problems for senior students, for lower-grade students, there are many problems. I have met some beginners who have lost their confidence in getting started. Of course, this is only a minority. However, it would be a good thing if you were able to get real-time and correct versioning after encountering problems.

Since you decide to talk about the driver, start with the kernel module. Virtual Device experiments can be performed on a PC, such as memory-Based Kernel Modules. You can describe the module structure, compilation, insertion, and uninstallation.

The driver module consists of character drivers, block device drivers, and network drivers. However, it is important for students to know that any system, especially embedded systems, is currently under development of embedded Linux products, the simplest, most important, most, and most complex character device drivers are character drivers in a broad sense, from Io drivers to serial drivers and USB drivers. It is better for students to focus on character device drivers, because an embedded device has a common Nic and flash is also a flash group (which also consists of several parts). However, in these two aspects, there are basically complete drivers, such as many Nic drivers, block device drivers, and general interfaces on the hardware layer, whether it is nor flash or NAND Flash, the file system layer has many very mature file systems, such as jffs2, yaffs, yaffs2, ext2, ext3, romfs, and cramfs. We don't need to study them any more and learn to apply them. Other devices, such as AD, da, can, and RS485, need to be designed based on applications. This is the key difference between a product and other products, it is also a value-added point of market value.

In addition, it is also extended from the previous point. If you are going to learn Linux and prepare a product, you should not regard Linux as the ultimate goal (of course, this is for the application ), there must be the idea of taking Linux as a platform. More importantly, they also require specialized technologies for various products, such as can, RS485, GPRS, or industrial control, Io control and real-time features. Linxu is profound and profound, and there is no end to research. But in products, it is enough for a product (of course, more and better, depending on people ).

Q: When developing embedded applications, the graphic interface or character interface is used in many application scenarios. Which of the following is more suitable for the development environment QT and MiniGUI, which types of applications are widely used in embedded systems?

Chen Gong replied:

For Embedded Linux applications, most applications do not require graphical interfaces, such as switches, routers, embedded gateways, and servers. Graphical interfaces are mainly used in multimedia, mobile phones, and other handheld devices and human-computer interaction systems that require graphical interfaces.

There are many graphical interfaces available for Embedded Linux. If you look online, you can find that it is far from what we often call QT and MiniGUI. Including tiny-X, Matchbox, Opie, and GPE. Different guis have their own characteristics and have their own special application scenarios. for product development, select the appropriate GUI as needed. For learning, it is natural to choose a GUI that is easy to get and easy to develop. QT is a good choice, because QT has a PC simulator that can be used without an actual LCD, you can simulate development on a PC without any hardware. QT is charged. Of course, the free version is available. MiniGUI is purely made in China and supports Chinese products. You can choose MiniGUI. This is a lightweight embedded GUI that can be used across platforms and the learning version is only 100 or more. MiniGUI can be used in industrial control scenarios. QT has not been used in this field yet and is mainly used in handheld devices.

We use tiny-X in our development. This is also a GUI that can be used for industrial control. It is basically compatible with X-window, with a small size, less resource occupation, fast and stable speed.

For Linux application development, in addition to Gui programs, the most basic applications include:

(1) Serial programming. Serial programming is extremely complex in both Windows and Linux, but it is very difficult to train a person's programming skills and capabilities.

(2) network programming and web-related programming. Network Programming of TCP, UDP, TCP/IP, etc. As for Web programming, it is mainly to enable a web server in the system, create some web pages, and configure or upgrade the entire system through remote logon. For example, our router configuration webpage. This kind of application will become more and more extensive in the future.

(3) Another one is shell programming. I think * everyone in the nix world knows the role of shell. In many applications, complicated functions, including remote system upgrade, are implemented through some very skillful shell scripts.

The three aspects I mentioned above are very easy to experiment and can be done without hardware and only in the case of PC.

If Ubuntu is installed on a student's computer, you may encounter more problems when configuring the embedded Linux development environment. But it does not matter. It can be solved. In my opinion, Ubuntu is suitable for home and office use, but it is more difficult to configure for development. However, there is no way. The computer hardware is too new now, and the most suitable RedHat 9.0 cannot be installed.

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.