4409 views|1 replies

128

Posts

0

Resources
The OP
 

[Repost] My Journey into Embedded Systems [Copy link]

How to get started with embedded systems? I just happened to see this article, so I turned to it here, hoping to solve some of the questions of novices.
-----------------------------------------------------------------------------------------------------------
Preface

This topic is very big, and it gives people the feeling that I seem to be very successful, but it is not the case. In fact, my level is not high, or even very low, but I have taken some tortuous learning paths, and at the same time expressed my real learning experience, hoping that it will be of reference significance to those who come later, thank you!

Three years of work, almost a useless person!

I graduated from a science and engineering university in central China in 2000, majoring in mechanical electronics. At that time, I had signed a contract to work in a provincial-level agency in the inland area. My family had been farmers for eight generations, and it was very remote. Being able to enter such a place was because the ancestral graves had good feng shui. But on the eve of graduation, there was an opportunity to enter IT. I wanted to go in, but my family strongly opposed it. The resistance can be imagined. At the same time, I had to pay a penalty of 4,000 yuan, which was an astronomical figure for me. A lot of the expenses in college were borrowed, and almost half of the expenses were earned by working part-time in college. In order to save money, I went home once a semester in high school and once a year in college. And I personally have a special life background (more accurately, sad scene), I won’t say much here, I can’t finish writing it even if I write ten articles, and it will also deviate from the topic. So I joined the work. The days of reading a newspaper and drinking a cup of tea, I almost felt a sense of emptiness and panic after work. Although my work was somewhat related to my major, it was very rare. My major was almost abandoned. I also thought to myself that if I didn’t go out, I would become a useless person and had to let the country support me. Two years later, I decided to go out, but I was almost a useless person, who would want me? I had to go to school to gild myself. This is the sadness of Chinese education and society!
As for my major, I changed it to computer science. I heard that it is easy to find a job. To be honest, I am not particularly interested in computers. Survival is the first need. Don’t laugh at me, haha!
The postgraduate entrance examination results came out, and I exceeded the national line by several tens of points. That direction required two people, and I was third, but that year was not iodine, and they ranked according to scores without interviews, so naturally I was not selected. In fact, they didn’t necessarily give me an interview opportunity, haha, I knew my own weight very well.
Finally, I was transferred to another school, paid the money, gritted my teeth, and paid it! Now I am still in debt! Why did I list this paragraph


before entering school

? You will know after reading it.
My company has a network, and I often search for English materials online. English is the only thing I didn’t learn much there. So I searched online for information, what should I learn, and finally decided to learn embedded systems. I heard that they are relatively closely related to hardware! I learned digital circuits, single-chip microcomputers, etc. in college, so I have made some use of them, and I don’t really know nothing. Of course, I also taught myself data structures, computer composition principles, etc. before that. I learned C language in college. Haha, this is my family background.
I know that my foundation is poor, so I took operating systems, databases, data structures, and C++ to look at. The government has this advantage, with a lot of free time, so I usually read books, which is very painful, and there is no one to ask for advice.
In addition, I went online to forums, and I went to technical forums of various majors, which are actually electronic forums and embedded forums. I almost didn’t post anything, and I almost read through the posts of several large and famous forums. Although there are many duplicates, I know what embedded systems are. These posts have a great impact on my future studies.
The two most critical points are: 1. What is embedded systems?
2. What knowledge do embedded systems require?
Knowing these two points, it's easy! I started planning my study route. The basic theory of computers cannot be lost, so I focused on the composition principle, data structure, operating system, and C++. At the same time, I learned from the forum that the real-time operating system UCOS is a very good embedded operating system, which is very good for beginners. So I bought a book, but the code could not be adjusted in the computer, and there were many similar problems on the Internet. I read the book and analyzed the code. If it didn't work once, I would read it twice or three times. Only then did I get started and know what a process is. When I read the operating system book, I didn't know what a process was.
I didn't master much during this period, but it had a great impact on me in the future. I remembered a sentence a classmate said to me in college: The most important thing in college is not what you have learned, but how to learn! This is probably what it means.

Entering my refuge

For me, entering college again is no longer a college, but a refuge. I hope that this time I will give me the opportunity and time to breathe and recuperate. This is what I think and practice.
I have three things in school: attending classes, going to the library, and surfing the Internet.
As for attending classes, the school offers many courses, which are very good. Many of them are explained by famous teachers, so many students want to learn and go to listen. I also considered it, but finally gave up. I think that time is limited. If you want to learn everything, you can't learn anything. So I divided the courses I studied. It's okay to pass the general courses, and I must study the important ones well. I hope there will be no debate about the question of learning more or less courses. This is just my opinion. So my grades should be very poor. The scores are low. Fortunately, the unit I later worked for didn't ask for my transcript, otherwise it would be terrible.
I personally feel that the efficiency of going to the library is much higher than that of staying in the dormitory. This is my experience.
When surfing the Internet, I set rules for myself: no playing games, no spamming, and less watching movies! Because time is too little and precious for me, I don't have the qualifications and capital to waste it. When surfing the Internet, I browse several important professional and technical websites and download technical information. A friend of mine recently opened an embedded website, www.embeded.cn. A considerable part of the information in it is what I found on the Internet. That website is very good and rich in information. It is extremely rich in embedded information, especially embedded Linux information.
Some people may ask, you downloaded so much information, how did you read and digest it all?
I treat this problem like this:
1. The information on the Internet is scattered and unsystematic, but if you collect similar things and read them together, it will be relatively complete. (There are a lot of embedded books in the past two years, especially in 2004, which are simply pouring out! In 2003, I wanted to buy a book on embedded, especially embedded Linux.)
2. For beginners like me, there are many things I don’t understand, it doesn’t matter, just read them repeatedly. My personal summary of the learning method is: repetition is the best teacher!
3. Even if some of them are not used, you can collect them and refer to them when you need them later.
But I don’t want everything. At present, my technical route is embedded Linux, so I basically don’t
collect things like wince.
In short, I make full use of my time to study in school. I see some classmates hanging on the Internet playing games all day and posting
some irrelevant posts. It’s a waste of time! I’m really sad! I list it separately here for

learning embedded . The article is a bit disordered, but I hope the content is useful. 1. Learning Linux Based on my understanding of the forum, I chose to learn embedded Linux. It just so happens that our school also attaches importance to embedded Linux. From the laboratory to the course arrangement, it is all about embedded Linux. The time and place are right! Here I will talk about my experiences and lessons learned in learning Linux.



It can be said that in the forum, learning Linux is almost the same as learning the Linux kernel. So I installed Linux on my computer and started reading books about the Linux kernel. I remember that before I came to school, I bought a book called Chen Lijun's first edition on the Linux kernel. Now there is a second edition. I started reading that book. Everyone said that the Linux kernel scenario analysis was good, so I bought the upper and lower volumes. Later, I bought "In-depth Understanding of the Linux Kernel". Finally, I bought Mao Decao's "Embedded Systems", which also analyzes the Linux kernel code and mainly talks about ARM.
It was a very painful process to read the kernel. Reading the scenario analysis was like finding a way out in the forest. During this period, I organized some classmates to learn the kernel, and almost few of them could stick to it. I think I stuck to it. I almost didn't understand the scenario analysis when I read it for the first and second time. I think there are three reasons: 1. My foundation is poor, which is the most critical. 2. The kernel itself is difficult. 3. There is no communication and guidance from experts. It was not until the third time that I touched the door and almost knew the general outline of Linux. Many details were also confused.
Summary of learning Linux. Here I would like to state that the embedded system I refer to is mainly software-oriented embedded system. The key and difficulty of learning embedded system lies in the operating system. If you do not master the operating system, I think it is difficult to master an embedded system. Even in embedded development, you can develop without knowing the operating system. I think that is superficial. It is difficult to go deep and improve your level. Statement: One-sided view! Do not delve into it!
In the process of learning the Linux kernel, I made an extremely serious route error: I started to learn the kernel without knowing Linux. I personally recommend a learning route: use Linux—〉linux system programming development---〉driver development and analysis of the Linux kernel. I am almost the opposite. In fact, you can learn the kernel without using Linux, but if you understand these things, learning is more efficient.
Regarding the question of whether to learn the kernel, my answer is as follows: not necessarily. If you like to delve into it, then entering the kernel will satisfy your desire. At the same time, it will have a good impact on your future development of embedded systems. If you want to engage in embedded Linux system development, it is best to have some understanding of the kernel. If you only do application development, it is not necessary. Let me make an analogy: if languages like C, C++, and Java are a certain martial arts sect in the martial arts world, such as boxing techniques, sword techniques, etc., then the Linux kernel should be the reflection of a person's inner strength.
How to start learning the Linux kernel: It is best to have three treasures: "In-depth Understanding of the Linux Kernel", "Scenario Analysis", and source code.
First read "In-depth", which mainly talks about principles. It seems that there is a book on the market that talks about principles and is more superficial. "Linux Kernel Design and Implementation" is said to be good. If you have not learned operating systems, like me, it is best to read a book on operating system principles first. After reading it several times, read scenario analysis, preferably with "In-depth". Read the two books crosswise, "In-depth" is the outline, and "Situation" is the subject. Finally, go deep into the code.
2. Learn embedded Linux
. When learning embedded, I think there are two key points, CPU and operating system. At present, arm is more popular in the market, so I recommend everyone to learn arm. There are many operating systems. Personally, for those who are just starting to learn, especially those who are not computer majors, I recommend learning ucos. It is open source and very small. It is very good to learn. Why I chose Linux, I don't want to talk too much, there are too many on the Internet, but I found in my work that it is very difficult to do the technical route of Linux. There are almost no problems in Windows, but there are almost traps everywhere in Linux development. Once you fall into it, it takes a long time to get out, and once you solve it, you will grow again! Relatively speaking, the development cycle is long and the difficulty is high. Now the information is gradually enriched, and the difficulty is also reduced!
As for how to learn, this is its special place. You must have a development board. I was the first among my classmates to buy a learning board. Although it costs money, I think it is worth it. It has a great impact on my internship and work.
If there is no development board, it is just talk. Some people say that it will cost 1000-2000 yuan. It is true. Brother, look at the long-term, for your career and development, that little money is nothing! Some people say that I don't have back pain when I talk while standing. Well, money has a great impact on me. I swept the toilet in college, and I was awarded 5 yuan/month for sweeping well. Brother, have you ever had it? I think investment in education is the most guaranteed benefit! I got 3k for internship, and many classmates got 1-2k, of course, there are also higher than me. Although I haven't graduated yet, I have been signed by a company. I am engaged in the research and development of popular high-end consumer electronics. For me who knew nothing two years ago, there should be a qualitative change. I am grateful to the school for accepting me, a waste. Of course, I have also worked very hard. I am not saying so much to show off. In fact, it is not worth showing off. Although I am satisfied with the working environment and treatment now, I find that I am very poor, especially in coding ability. I hope that everyone will play less games and program more. Programming is the hard truth!
3. Learning board and training
You can choose not to receive training, but you must buy a development board. If you want to learn embedded systems, you must buy a learning board, preferably an arm9 one, which is more expensive. It can run advanced operating systems. This does not need to be from a brand company, and generally there will be no problems. The boards on the market are generally Samsung's 2410, which are basically copied. If you are making products, you should pay attention. Generally, companies usually charge 2,000, and adding an LCD costs 3,000 or even more. I have come across some boards that only cost 1,200, and adding an LCD costs only 2,000. The difference is quite large. I think it is enough for learning.
As for training, if you have the conditions, it is best to participate. The main reason is that embedded systems are different from other systems. It takes a lot of time to figure things out on your own. If you have a master to guide you, it is very good and you can make rapid progress. Especially if you know friends who do this. I have received training and met a friend. He helped me a lot in my future work. I would like to thank him here! I remember an MBA student from Harvard said this, to the effect that: what you learn at Harvard is not important, the most important thing is that these future senior managers of major companies are my classmates! What a visionary!
At present, the market is relatively expensive for training, two to three thousand a week, and it is really expensive. The salary of those lecturers is definitely not low. But there is a fatal problem that continuous classes for several days are not effective. I hope that there will be more about 1,000 yuan in society, and the time is longer, such as one month, one or two classes a week. If no one does it, I will do it, haha!

I didn't expect to write so much at once, and I actually want to write more, such as how a guy at the Chinese Academy of Sciences learned the Linux kernel and read books, which really touched me. I admire him as a person. I also want to introduce Mao Decao's book "Embedded Systems", which is very useful for learning ARM Linux. I also want to introduce some things about internships and work, but it's too long and will waste your time. I don't want to check the typos in it, there are a lot! I'll just stop here.

This post is from Embedded System

Latest reply

Haha! I saw it a long time ago! Not bad  Details Published on 2009-10-27 07:50

82

Posts

0

Resources
2
 
Haha! I saw it a long time ago! Not bad
This post is from Embedded System
 
 

Guess Your Favourite
Just looking around
Find a datasheet?

EEWorld Datasheet Technical Support

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号
快速回复 返回顶部 Return list