About embedded how to learn (see no regrets, to learn the technology of peers a bright road)

Source: Internet
Author: User

About the embedded how to learn, I believe that there are a lot of Daniel answered very professional, recently in the knowledge of a network called----Li Brooks, ~ The Netizen to this summary, I personally feel very good, there are two other netizens Li Crifan and Tony Ho , after all, I've had a lot of things to do since I worked, and there's a part of what he said, so let's see what they said:

One of the four-year college students raised the question:

The NPC four students, professional for the electrical class, has C language, SCM, mold electricity, the basis of the number of electricity, has always wanted to engage in embedded aspects of the work (interested), but at the current level, can not find this aspect of the work, so has been in the tangle is to find a professional job to do, or to training institutions training, Then find an embedded aspect of the work, I hope you can guide twos. Another: Embedded learning needs what kind of basic knowledge, training four months of time to work hard to learn about what level can be achieved.

Here are the answers:

First place: Li Brooks

copyright belongs to the author. Commercial Reprint please contact the author for authorization, non-commercial reprint please specify the source.
Li Brooks
Links: https://www.zhihu.com/question/22252234/answer/75026117
Source: Know


No, uninvited. Do the electric race from the program Ape One, currently engaged in embedded Linux driver development. There is a single chip from 51 to St TI has done, DSP only used Ti, mainly in the switching power supply control applications. Suggested Learning routes:
1 Learn 51 monolithic computer, this stage you only need to follow Guo Tianxiang's video to learn, only request realizes the function, superficial understanding. However, it is recommended to ask questions such as "Why does the IO control register write a specific value to illuminate the LED light?" What does the circuit structure of the IO port look like? "What is the pull-down, sink current?" ", this stage is mainly familiar with the use of single-chip microcomputer, and in the use of thinking to find problems, but also familiar with some basic concepts.
2 began to check the data reading, look at analog circuit digital circuit and so on, began to understand the problem raised in 1. This time the problem is mainly focused on the circuit.
3 began to learn STM32, casually buy a board, look at the atom of the book followed step by step to do. At this time you will encounter a lot of computer problems, while learning tutorial, while learning: microcomputer principle, compiling principle, operating system. You need to figure out the arm architecture to figure out how the CPU is pointing, decoding, executing, knowing address bus, controlling the bus, and how the data bus works. To figure out what files are generated at each stage of your compilation, what is distributed, what is relocation, what is a code snippet, what is a data segment, and so on. Also be able to figure out how the CPU starts and how the program image is laid out in memory. To know the principle of interruption, as well as on-site protection and so on. Finally you get to know each point of knowledge, turn to GCC development STM32, when you have a good grasp of knowledge, you should be able to quickly learn to write the linker script and understand the meaning of each statement.
4 began to enhance the C language, digging deep into the C language of each corner. It's a good idea to know what the compiler will do when you write down a statement. Data structures and software engineering are also required, and it is advisable to learn about design patterns. Start learning to develop a good code style and start thinking about the structure of your code. It can be said that if you can learn the design patterns, learning the Linux kernel in the future is beneficial. You will find that the Linux input subsystem is a bit like the responsibility chain pattern, and you will find that the ASOC audio system is somewhat like a template method pattern. Privately, if you can look at more than two different aspects of the same programming ideas, you will get a deeper understanding, better understand the essence.
5 seriously study the OS aspects of the book, all the knowledge points to understand what the process is what the thread is, competition deadlock priority reversal, virtual address space Physical address space, user space kernel space and so on. Start to learn Ucos, this nothing to say, if in 2 can master a variety of knowledge points, know how the CPU interrupts how to protect the recovery site, then read Ucos source, in principle there will be no doubt. If you can develop the ability to grasp the overall structure of the code in 4 and learn good data structure and basic algorithms, read the source is no obstacle. Once the principle good grasp, the source code can also read, then thoroughly understand Ucos is the logical thing.
6 self-modeled Ucos write a stm32 on the real-time OS out.
7 March into Linux. Learn the basic use of Linux, see Zhao Jiong that core analysis, gnawing Linux kernel design and implementation, grasp the overall kernel architecture. After you can learn to drive, see the advice of Chen Cossong Teacher's book, figure out the basic drive architecture and how to write a simple drive, take it seriously, here emphasize the device driver model. Finally chewed the Linux kernel source scenario analysis, two volumes read attentively, here emphasizes the VFS part of the kernel. Then is to see Song Baohua Teacher's book, further learning drive development. At last....... Look at the kernel source to see the kernel source code to see the kernel source.
8 Other what SPI,IIC, what DMA, is only a skill problem, as long as the knowledge of the good, skills want to do point.
9 I didn't think of anything else at the moment. Think again

second place:li Crifan copyright belongs to the author.
Commercial reprint please contact the author for authorization, non-commercial reprint please specify the source.
Li Crifan
Links: https://www.zhihu.com/question/22252234/answer/20769642
Source: Know

Now we have compiled a tutorial, see:
1. Look First:
Embedded Software Development
Understand the knowledge of embedded software.
2. If you intend to develop the driver, then look at:
Embedded Driver Development
3. If Linux-related embedded, then look at:
Embedded Linux Software development
4. If it is related to Linux drivers, go to:
Embedded Linux Driver Development

========================================
At present, the quality of embedded training is not very clear. But according to the personal understanding, seemingly high quality is not much.
So, given your foundation, it is recommended that you:
First find their own professional work, with a relatively stable basis for survival. Then take the time to learn embedded by yourself.

On the self-learning embedded words, need to have what basis, how to learn the embedded problems in a gradual manner, to tell the truth, it is difficult to say a few words clearly. However, I will try to say that you can read:

"How To learn Embedded"
Based on this, I am also working on a little bit of perfection I want to write about how to learn embedded tutorials.
The main idea, and the content of the part that has been written, is as follows:

1. Explain the overall embedded industry overview, application areas, examples.
2. Then through a number of typical products you can access to explain the embedded industry sector industry chain.
3. Then you can figure out where you are as an embedded software developer.
4. Then you know what you need to do about software work, and relationships with other industry chains and collaborators.
5. Figuring out the location of the big environment is how to engage in embedded software development.
Related content:
Embedded background knowledge of embedded development
An overview of "finishing" Embedded software knowledge system

6. Is the basic knowledge about what is needed
Related content:
"Finishing" analogy explanation: What knowledge should be mastered in embedded development

7. Then, for some typical embedded software development, how to build a development environment, how to develop a little bit.
Related references:
(1) A previously encountered book explaining the chatty, embedded development aspects:
Embedded.Systems.Architecture_ Free High Speed download
It's a good book, but it's English. If the English is OK, suggest to see more, even if not fully understand, you can also look at its approximate framework, in order to have a concept of embedded development.
(2)
Basic concepts and development logic of embedded development
(3)
"Problem solving" using an embedded development Board to realize the basic idea and logic of data collection

8. Then it is the real logic and process that explains the development of specific areas, such as how embedded Linux drives are written, and so on.
Related references:
(1)
Embedded Development Series Tutorials
(2) The book previously recommended to others:
Linux Device Driver Development detailed

Anyway:
At present: The above section of the post, part of the recommended books, you do make a first look at it.
later: about the embedded development, from the logical concept to the actual hands-on operation, I will take the time to perfect a full set of tutorials, to explain in detail all aspects of the matter. By the time, look at my tutorial, it will be very clear.

"Some other embedded-related content"
1. The basic concepts encountered in some embedded areas are explained:
Explanation of noun concept in "finishing" embedded field
2. Some experiences were summarized:
"Finishing" embedded development experience and summary
3. The last time you answered a similar question to another person, you can also refer to:
Learning about embedded drivers?

Last
I have been writing about the embedded aspects of the content, if written, will be published to my own personal site in the corresponding embedded classification:
Embedded | On the road
In other words, if you are interested, you can take a look at it from time to time, you may see some of my updated, embedded posts.
Some of these may be introductory topics in the embedded domain tutorials, some of which may be specific to an embedded knowledge point. You pick up what you're interested in and you can. third place: Tony HoTook a picture, with a thick skin, I will be the learning sequence of each skill tree and reference learning materials to organize:

About the blogger himself suggested:

I also came from the embedded training to find a job smoothly, but before training did not know so much, because the university knowledge is limited, and I am still a general college students, reading is electronic information engineering, Insight short-sighted, at that time just know several single-chip and arm, no solid professional knowledge, But it is through training this platform long insight to successfully embark on the embedded development of this road, and then after their own work constantly add new knowledge, or some progress. Training pros and cons, of course, you have the ability you can self-taught, do not waste college years of time, do embedded, English must be good, C language, data structure, operating system and other theoretical knowledge to have. Poor self-control, the choice of training is also good, but to be able to persist, after all, 4 months of study equals you need to master the university nearly several years of things, not easy ah, and the tuition is not cheap, generally more than 15000, because this four months is pure learning technology core knowledge, Instead of having a lot of free time and other non-technology-related knowledge like the university. Therefore, and learn and cherish, if this article can help you beginners, please thank the three-bit Daniel.

About embedded how to learn (see no regrets, to learn the technology of peers a bright road)

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.