New school: Learning and planning for Embedded Linux operating systems

Source: Internet
Author: User

The ARM + LINUX route focuses on the embedded Linux operating system and its application software development goals:

1) master the structure and principle of mainstream embedded microprocessor, which is initially set to ARM9)

2) an embedded operating system must be initially set to uclinux or linux. The version is to be determined)

3) be familiar with the embedded software development process and build at least one embedded software project.

The benefits of developing embedded software are:

1) At present, people at home and abroad are scarce. This field has a high entry threshold, so IT is difficult for non-professional IT staff to break into this field; on the other hand, IT is because this field is relatively new and is growing too fast, and most people have unconditional contact.

2) Unlike enterprise computing and other application software, the work intensity of talents in the embedded field is usually lower, but the income is not low ).

3) If you want to start a business and build your own products, embedded systems are not as vulnerable to piracy as application software. The hardware design is generally customized by other companies. This is called "OEM". All of them are general-purpose hardware. We just need to design the software and turn it into our own product.

4) interest. This is the most important thing.

Disadvantages of developing embedded software are:

1) The entry point is relatively high, and the technologies used are often difficult. If the hardware and software foundation is poor, especially the operating system software skills are not deep, it may not be suitable for this trip.

2) the number of enterprises in this field is much smaller than that of enterprise computing enterprises.

3) There are a few companies that often require master's degree or above to engage in embedded systems, mainly based on the difficulty of embedded systems. But most companies do not have this requirement, as long as they have experience.

4) The platform is highly reliant and it is hard to change the platform.

Origin of interest:

1. The concept of success is different. If you don't trust your life, It is my success.

2. I like thinking and challenge logical thinking.

3. C

C is a language that gives full play to the limits of thinking. Some aspects of the spirit of C can be summarized as follows:

Trust programmers.

Do not stop programmers from doing what they need.

Keep your language short and lean.

One method is used for one operation.

Make it run fast enough, although it cannot be guaranteed to be portable.

4. I like underlying development and hate vb development tools. This is not to say that vb is not good ).

5. the development prospects are good. It is suitable for start-ups and an engineer who doesn't want to die.

Procedure:

1. Basic Knowledge:

Objective: To understand how the hardware works, but focusing on embedded software, especially operating system software, is my advantage.

Subject: digital circuit, computer composition principle, embedded microprocessor structure.

Assembly Language, C/C ++, compilation principle, and discrete mathematics.

Data structures and algorithms, operating systems, software engineering, networks, and databases.

Method: Although there are many subjects, they are simple foundations and most of them are mastered. You can select an optional course based on your needs.

Major books: the c ++ programming language has no time to read), data structure-C2.

2. Learn linux:

Objective: to gain an in-depth understanding of the linux system.

Method: use linux-> linxu system programming and development-> to develop and analyze the linux kernel. Let's take a look at the principle of deep learning. After reading the analysis several times, you can see the situation analysis in comparison. The two documents are cross-cutting. The depth is the outline, and the emotion is the goal. Analytics is the 0.11 version, suitable for learning. Finally, go deep into the code.

Major books: full analysis of Linux kernel, advanced programming of unix environment, deep understanding of Linux kernel, scenario analysis and source generation.

3. Learning embedded linux:

Objective: To master the embedded processor and its system.

Method: 1) embedded microprocessor Structure and Application: directly arm principle and Assembly, do not repeat x86.

2) embedded operating system: ucOS/II is simple and open-source for entry. Then we will study uClinux in depth.

(3) You must have a Development Board later than ARM9. if you have the necessary skills, you can join the training and make progress quickly. You can meet your friends ).

Main books: Mao decao's "embedded system" and other arm9-manuals and arm assembly instructions.

4. Deep Learning:

A. Digital Image Compression Technology: Master MPEG, mp3, and Other encoding and decoding algorithms and technologies.

B. communication protocol and programming technology: TCP/IP protocol, 802.11, Bluetooth, GPRS, GSM, CDMA, etc.

C. network and information security technology: such as encryption technology and digital certificate CA.

D. DSP technology: Digital Signal Process. The DSP processor implements Digital Signal processing algorithms through hardware.

Note:Too many details are not described and can be adjusted according to the actual situation. The focus is on 1 and 3, which do not have to be done in order. The reason for learning c ++ is that c ++ is not just a language, a tool, but also an art and a culture, it is a philosophical concept, but it is not used to show off things. For the Linux kernel, it is also necessary to learn programming and read some excellent code.

Note:We need to learn how to give it a lot and have a powerful foundation. We can simply look at a lot of things. To be a qualified programmer, you must be proficient in at least one programming language and have a good logical thinking. We must combine theory with practice.

Do not study technology. Although it is difficult to squeeze out time, you still need to leave some room to improve other hobbies, such as the universe, sketch, machinery, and management, psychology, games, science fiction movies. There are some other things that do not want to do but must be done!

The technology is programmed and programmed. Never dream of entering the sky in one step, do not be impetuous, do not feel that the road is long. Instead, we need to program and program again. After programming, we can program again! When the opportunity comes, do not believe that there is a miracle, blindly start a business is difficult to succeed, even if the development space is not necessarily great ).

Embedded Book recommendation

Linux Basics

1. Linux and Unix Shell programming guide

Online viewing of BKJIA is recommended:Linux Standard tutorial]

C language basics

1. The beauty of C Primer Plus, 5th Edition] Stephen Prata

2. The C Programming Language, 2nd Edition.] Brian W. Kernighan David M. RithieK & R)

3. Advanced Programming in the UNIX Environment, 2nd Edition APUE)

4. Detailed description of Embedded Linux Application Development

Online viewing of BKJIA is recommended:

C language core technology 

High-quality programming guide: C ++/C language (version 3rd) 

C ++ programming you can also

C # And. NET core technologies

Absolute C ++ Chinese version (original book 2nd)]

Linux Kernel

1. The third edition of "deep understanding of Linux kernel)

2. "Linux kernel source code Scenario Analysis" Mao decao Hu Ximing

R & D direction

1. UNIX Network Programming UNP)

2. Explanation of TCP/IP

3. Linux kernel Programming

4. Linux device driver development (LDD)

Hardware Basics

1. Du chunlei, ARM architecture and Programming

Online viewing of BKJIA is recommended:Mainstream ARM Embedded System Design Technology and instance troubleshooting ]

2. S3C2410 Datasheet

Basic English

1. Professional English for computer and communication

System tutorial

1. Embedded System-architecture, programming and design

2. Embedded Systems-using open source code and StrongARM/Xscale Processors

3. Building Embedded Linux Systems

Theoretical Basis

1. Introduction to Algorithms

2. Data Structure (c)

3. Computer Organization and architecture? Performance Analysis

4. An in-depth understanding of computer systems: Randal E. Bryant David O 'allaron

5. Operating System: essence and design principle

6. compilation principles

7. Data communication and computer network

8. Data Compression Principles and Applications

C language book recommendation

1. The C programming language

2. Pointers on C and pointer

3. C traps and pitfalls C traps and Defects

4. Expert C Lanuage Expert C Programming

5. Writing Clean Code

----- Microsoft Techiniques for Developing Bug-free C Programs

Essence of programming-Tips for Microsoft to write high-quality and error-free C Programs

6. Programming Embedded Systems in C and C ++

Embedded System Programming

7. C language Embedded System Programming Practice

8. Lin Rui, high quality C ++/C Programming Guide

To learn C as much as possible, you should not only focus on C itself. Algorithms and architecture methods are all important.

Related Articles]

  • Newbie School: Design and Application of Embedded Linux System
  • Memory Management Methods in Linux Embedded Systems
  • Linux Embedded Development Channel

Related Article

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.