A reasonable embedded development learning route

Source: Internet
Author: User

A reasonable embedded development learning route

Embedded engineers generally divided into two types: one is to learn electronic engineering, communications engineering, and other hardware professional background, they are mainly engaged in hardware design, and sometimes to develop some of the most closely related hardware software, such as bootloader, Board support Packages ( Like the bios of a PC, drive hardware down, support the operating system on top, and the original hardware drivers. Their advantage is that the hardware principle is very clear, insufficient is that they are better at defining a variety of hardware interfaces, but often to complex software systems (such as embedded operating system principles and complex application software, etc.).

The other is to learn software, computer professional background, mainly engaged in embedded operating system and application software development. The person who learns the software is usually difficult to master the hardware principle and interface, and can only write some BSP and hardware driver.

1. Basic knowledge:

Objective: To understand the principle of hardware, but focus on embedded software, especially operating system-level software.
Subjects: Digital circuit, computer composition principle, embedded microprocessor structure.
Assembly language, C + +, compiling principle, discrete mathematics.
Data structures and algorithms, operating systems, software engineering, networks, databases.
Main book: the C + + programming language, data structure-C2.

2. Learn Linux:
Objective: To gain an in-depth understanding of Linux systems.
Method: Develop and analyze the Linux kernel using the LINUX-〉LINXU system programming development-〉 driver.
Main books: Full anatomy of the Linux kernel, advanced programming in the UNIX environment, deep understanding of the Linux kernel, scenario analysis, and source generation.


3. Learn Embedded Linux:
Objective: To master the embedded processor and its system.
Methods: (1) The structure and application of the embedded microprocessor: direct arm principle and assembly can, do not repeat x86.
(2) Embedded operating system class: Ucos/ii simple, open source, can be used to get started. Then in-depth study of uclinux.
(3) must have a block Development Board (ARM9 above), have the conditions to participate in training (progress fast, can meet some friends).
Main books: Maudeca's "embedded system" and other ARM9 manuals and arm assembly instructions.

4, in-depth study:
A, Digital Image compression technology: Mainly should master MPEG, MP3 and other codec algorithms and technology.
B, communication protocol and Programming Technology: TCP/IP protocol, 802.11,BLUETOOTH,GPRS, GSM, CDMA and so on.
C, network and information security technology: such as encryption technology, digital certificate CA and so on.
D, DSP technology: Digital Signal PROCESS,DSP processor through the hardware to realize the processing algorithm.
Description: Too much detail is not stated, can be adjusted according to the actual situation. The focus is 1, 3, not necessarily in order. For C + +, the reason is that C + + is not just a language, a tool, she is an art, a culture, a philosophical idea, but not to show off things. For the Linux kernel, it is also necessary to learn to program and read some good code.
Note: To learn to raise a counter-many, there is a strong foundation, a lot of things simple to see can be. To be a qualified programmer, the prerequisite is to be proficient in at least one programming language and have good logical thinking. We must combine practice with theory.
do not blindly study technology, although the squeeze time is difficult to do, but still have to leave some room to improve other hobbies, such as the universe, drawing, machinery, management, psychology, games, science fiction movies. There are some things that you don't want to do but have to do!
technology is programmed and programmed in programming. Never dream skyrocketing rise, do not do impetuous people, do not feel the road diffuse on. But to program programming in programming, finished in programming, in programming!

Embedded Book Recommendations
Linux Basics
1. "Linux and Unix Shell Programming Guide"
C Language Basics
1, "C Primer plus,5th Edition" "Beauty" Stephen Prata
2, "The C programming Language, 2nd Edition" "Mei" Brian W. Kernighan David M. Rithie (K & R)
3, "advanced programming in the UNIX environment,2nd Edition" (apue)
4, "Embedded Linux application development detailed"
Linux kernel
1, "in-depth understanding of the Linux kernel" (third edition)
2, "Linux kernel source code scenario analysis" Maudeca Hu Himing
Research Direction
1, "UNIX Network Programming" (UNP)
2, "TCP/IP detailed"
3, "Linux kernel Programming"
4, "Linux Device Driver Development" (LDD)
5, "Linux Advanced Program Design" Yang Zongde
Hardware Basics
1, "ARM architecture and programming," Du Lei
2, s3c2410 datasheet
Basic English
1. "Computer and Communication professional English"
System Tutorials
1, "Embedded system-architecture, programming and Design"
2, "embedded system-the use of open source code and Strongarm/xscale processor" Maudeca Hu Himing
3. "Building Embedded Linux Systems"
4, "embedded arm system principle and case development" Yang Zongde
Theoretical Basis
1, "Introduction to Algorithms"
2, "Data structure (c language version)"
3, "Computer organization and system structure performance analysis"
4, "in-depth understanding of computer systems" "Beauty" Randal E. Bryant David O ' Hallaron
5, "Operating system: Essence and Design Principle"
6, "Compiling principle"
7. "Data Communication and computer network"
8, "data compression principle and application"

C language Books recommended
1. The C programming language "C programming language"
2. Pointers on C "C and hands"
3. C Traps and pitfalls "c pitfalls and pitfalls"
4. Expert C Lanuage Program
5. Writing Clean Code-----Microsoft techiniques for developing bug-free C Programs
"Programming essence--microsoft Writing high quality error-free C program Secret"
6. Programming Embedded systems in C and C + + "Embedded System Programming"
7. "C Language Embedded system programming discipline"
8. "High quality C++/C Programming Guide" Lin Rui

A reasonable embedded development learning route

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.