Introduction to ARM and embedded linux

Source: Internet
Author: User
Article Title: Recommendations for getting started with ARM and embedded linux. Linux is a technology channel of the IT lab in China. Includes basic categories such as desktop applications, Linux system management, kernel research, embedded systems, and open source.

Many people always ask this question, so here is a summary document for your reference. Here, we must first describe that the following steps are for Linux systems and not for WinCE. Maybe you will notice that there are far more people doing linux research in embedded systems than those doing WinCE. Many manufacturers also provide information based on linux. I have been hard to understand. In fact, the WinCE interface is much better than the linux interface, and it is very convenient to use. More importantly, the development of WinCE is basically the same as that of Windows, it is much easier to learn, but there are far more people learning linux or using linux for embedded systems than WinCE. When talking with many people, I learned that their company never considered using WinCE. Because of the high cost, they all use linux for development. I did not use WinCE in my graduate lab. Most of them studied linux, and a small number of projects used vxwork. But I have never heard of using WinCE because it is open source! Of course, WinCE6.0 is also open-source, but linux has the advantage of being unblocked in terms of cost and resources. Correspondingly, more and more electronic manufacturers have begun to use linux to develop products. For example, Google recently developed the smartphone operating system Android is actually using the linux-2.6.23 kernel for improvement.

First, learn basic bare metal programming.

For those who want to learn hardware, they must first have a perceptual knowledge of the basic hardware usage methods, and have a deep understanding of the hardware control methods, if you learn the linux system at the beginning and learn to transplant it, you will immediately fall into a deep vortex. When I first started learning ARM, I chose ARM7 (the idea was that ARM7 was still very expensive at the time). When I learned ARM7, I still kept thinking about 51 single chip microcomputer and used ADS for programming, the first experiment is to control the led. People who have been studying arm for a while will laugh so stupid, not actually. I think this process will be much better, because no matter how complicated the system is, the underlying hardware control will be implemented, it is much better to have a perceptual understanding of the control of these hardware.

While learning about bare metal programming, we must understand the architecture and control principles of the hardware. I call it hardware. The so-called understanding of hardware means to understand how the hardware organizes so many resources and how these resources are controlled by cpu and programming. For example, there are AD converters, GPIO (General I/O port), and nandflash controllers in s3c2410, all of which have some registers to control. These registers all have an address, so what do these addresses mean? How can we control the operation of these peripheral devices through registers? Also, each unit in norflash has a corresponding address unit in the memory of this chip. What is the relationship between these addresses and the Register address just mentioned? Are they the same? The nandflash internal storage units corresponding to norflash are not linearly discharged. So how can we map the nandflash address to the memory space for use in s3c2410? Or simply, how should we use nandflash? In addition, when using ADS to program the arm9-line, an initialized Assembly file is required. What is the purpose of this file? What does the Code in it mean? Can I skip this?

This is a kind of understanding of the hardware. If you understand these things, you will have a deep understanding of the hardware, which will be of great help for further learning. If you skip this step, I believe that the more I learn, the more I will feel confused. The more I feel that this writing is unfathomable. Because your foundation is not well established.

However, I did not use ADS to program ARM9. after learning ARM7, I directly used arm9-to learn linux, therefore, it is difficult for me to answer questions about using ADS to program ARM9. I will study it myself.

I will provide a tutorial for this part soon. The examples in this tutorial are not written by the board we represent, but are obtained by our college lab, the English training program was written for their own experiment box, but it is of great reference and can be used as a valuable reference.

Second, use the linux system for some basic experiments.

When buying a set of boards, we generally provide some linux test routines. It makes sense to do this for a while. It also accumulates perceptual knowledge for further learning, can you imagine that anyone who has never used a linux system can learn linux programming well? Follow the routine in the manual to do the experiment. Although it is a bit of a doll learning to walk, it is a bit mentally retarded, but I think many experts will go through this process.

In this regard, we have no plans to provide corresponding routines for Deep Blue technology, mainly because the providers of the Development Board provide a wide range of routines. We will not repeat the work, provide only the most valuable things they don't have.

  Third, study the complete running process of the linux system.

What are the components of a complete linux system?

Three parts: bootloader, linux kernel (linux kernel), and rootfile (root file system ).

So how does the three parts work together to form the system? What are their respective functions? What are the links between them? How to contact? What is the execution process of the system? To clarify this problem, you will be very clear about the operation of the entire system, and lay another important foundation for the next step to create this linux system. This article introduces how many tons of data can be mined on the Internet. Please study it carefully.

 

[1] [2] Next page

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.