I am a graduate of the 08 Huizhou College of Electronics, now engaged in embedded research and development of Linux. I write this so-called "embedded Learning Method", is because the beginning of learning embedded, the electronic system almost no one can bring their own to get started or teach related learning methods, basically are their own groping to learn, can imagine, the process of the pain of the level of people want to die. So hope that through the year to their own study, sorting out a learning route to the future of the electronic department of the younger Brothers for reference.
Don't say much nonsense, get to the point. First of all you should understand two concepts, what is the processor and what is the controller. Believe that a lot of students in the electronics department, starting from playing 51 single-chip computer began to enter the field of electronic research and development, and the AVR MCU, participated in the Freescale Smart Car competition, should also play 16-bit Freescale single chip chip. Well, we are using a microcontroller, it is a controller, we are on its chip programming, that is, the computer field so-called to write applications. Like computer students, they write software that runs on the processor, just like our pc. But when you first touch the embedded, we generally get started from the arm chip, arm with the controller and processor features, it has our usual play of the MCU-like IO function port, also has the same processor can carry a huge operating system features. From this point of view, in fact, the students in the electronic system as long as the knowledge of the operating system, embedded in fact is not a difficult task.
However, when you choose embedded Learning and treat it as a career direction, keep in mind that when you stick to it, you will choose a path that is completely different from playing a single chip microcomputer. Can say, play single-chip computer person, later can engage in the field of automatic control related work, can engage in FPGA/CPLD this chip programming production work, can also engage in the field of small household electrical appliances work. But playing the embedded electronic department students, the first to become a computer work students, you are on the computer programming every day, yes, you are a software engineer, computer software engineer. Of course, do not doubt that you choose the wrong direction, the electronic department of Students learning-driven development naturally has his advantage, but, please do not just let yourself become a driver developer (although the work is very high), the students of the electronic department is fully capable of becoming a system-level embedded experts. Please remember, you play hardware-born, you just soft and hard will, the entire product you can know.
So, how do we develop embedded learning?
*************************************************************************************************************** **************
Embedded five Big plate introduction
*************************************************************************************************************** **************
First, you should understand that the embedded is divided into several large sections.
Application |
File system |
Linux kernel |
Driver Program |
Bootloader |
I am one by one explaining to you and them the extent of your exposure to the embedded work you graduate from, and the kind of program you will learn at least at school.
Applications, which are divided into user-interface applications and applications that do not have a user interface, can be simply said to be the software we normally see. Of course, the general embedded software is written in QT language, computer department students are generally engaged in this aspect of the work, and no user interface applications, the students of the electronic department must be. Because the application is written using the interface provided by the Linux system, for the future we develop the Linux kernel and the driver is very large (very simple, you want to debug the driver or kernel, you must write the application). Of course, when you start looking for a job, companies want you to be proficient in the application because it is the most basic requirement and the only ability that graduates will be able to help when they enter the enterprise.
File system, in school to understand its characteristics and related use, at least must know what you use and see the characteristics of the file system. Every file system is born with its needs, and understanding it will help you learn at every stage of your study. But it is good to know, because the development of the file system this job, at least five or six years of work experience is likely to be involved. So, learn about the file system, and also learn about porting the file system.
Linux kernel, is a tens of millions of code composition of the program, sweat, get started to understand it, basic impossibility, but basic knowledge points still need to understand, how to understand, later introduced.
The driver, simply put, is to package the functionality of the hardware through a certain encapsulation technology and supply it to the Linux kernel. So that is to say, see Datasheet is essential. Datasheet, you know, brother don't say much.
Bootloader, is a boot chip initialization work and boot kernel boot of the package, basically now the use of Bootloader is u-boot. U-boot at present, most of the work is to modify the ARM initialization section, that is, the first assembly language you have to understand, followed by the ARM architecture you have to understand, there is the relevant arm datasheet you want to see.
Speaking of which, in fact, the electronic department students learn embedded, the advantage is that you have seen a lot of datasheet and hardware, the development of drivers and bootloader will be more handy. But, getting started with embedding, start with developing drivers and bootloader? Of course not.
*************************************************************************************************************** **************
Embedded Learning planning for Beginners
*************************************************************************************************************** **************
First Stage
First, according to the country embedded video tutorial started, the virtual machine installed, in the virtual machine installed a good Linux distribution, that is, Red hat, fedora these systems, preferably installed in the country embedded distribution version. Then the relevant commands to learn, such as how to view the kernel version, how to unpack the installation package, how to enter the root permissions, how to open the file, and how to write the program, what is the cross-compiler tool. In fact, the first stage of the country embedded in the study, the whole Linux environment and history have a general understanding.
Phase II
First go to the computer department over there to find this "computer operating system" book, spend half a month of time, the computer system to understand, what is the file system, what is the process, what is the file, what is the context and so on. But do not go deep to understand, to read through, that is, to understand the concept of the inside of the good, but there is about the algorithm, you do not have to go deep understanding, know that there is this thing on the line. Why do you want to understand the operating system first, in fact, the students in the electronic department learning Embedded, the most headache is a little bit about what the operating system is. For example, the input command this thing was basically not how to contact, in the process of embedded development, the input command is the most basic thing.
Phase III
Buy a book called "Linux C Programming Encyclopedia" back, one is to review the C language and the knowledge of pointers to learn, and the other is the Linux C language learning, such as Linux C programming style and normative; third, the book's content structure is very good, based on the Linux kernel programming, from shallow to deep, It covers all of the Linux programming content. So you finish it, basically is the embedded application programming should get started; Four is that the book is full of errors, you have to follow the program written by it to try to write their own run, when you find the wrong time to try to find a solution, so you will be very deep remember a lot of knowledge points. Well, this book will take about 1.5 months to learn.
Stage Four
Make a book about the Linux kernel, like "Linux kernel design and implementation," and get an overview of the entire Linux kernel, such as knowing what the driver is. But you'll be wondering, just to understand what role the driver plays in the core? NoNoNo, actually writes the driver, is writes the kernel. So many of the mechanisms of the kernel interface you have to understand. So you have to get to know it first.
Fifth stage
Learn about driving development from the complete handbook of embedded Linux application development, first understand what drives development is, and what the development process is for driving development. Then the first of their own character-based equipment to learn, developed a corresponding driver.
Sixth stage
Well, if you study here, I don't know if you're looking for a job. If you want to continue, then start u-boot related learning, this aspect of the study also on a book "ARM Architecture", and then according to the online spread of the tutorial to learn, of course, preferably have a development board, recommended MINI2440, this goods is still quite authoritative.
Seventh stage
Come here, I believe you are an introduction to embedded development, the embedded development of what you should know, hehe, five things: Application development, file system porting, Linux kernel porting, driver development and porting, U-boot porting. Of course, it is best to study with the Development Board. Then before graduation, please put the application development of the essence, the C language learning, this way to find a job is no problem. Of course, the ability to learn C + + is also very good, the Linux kernel programming ideas are a lot of reference C + + object-oriented thinking. Why it is used, is because the object-oriented programming language good management and easy to expand development, as to the essence of it, to understand Kazakhstan.
Oh, yes, there's a good book, "UNIX Advanced Programming"! Best to study oh, I said the whole book to be Oh!
*************************************************************************************************************** **************
End
*************************************************************************************************************** **************
Just write here, this is my own way to bitter B come, finally summed up. As for the effect, I'm not sure what. Can only say one sentence: Learn embedded, if you love it, then stick to it, it will bring you a lot of unexpected gains and appreciation.
Finally also want to give you say usually if there is no teacher help or classmates help, how to do. Network resources are very important OH. Forum, Q Group. Forum is best to focus on one, ask more to see, but the Forum's reply does not have Q group so timely. But here is one thing to tell everyone, is to ask others questions must have logic, otherwise like some people: "How to learn embedded?" "So a word, Khan, elder brother, who has to go bird you?"
So, basically, you can ask, like this.
1. What are you doing now, and what effect do you want to achieve?
2. What are the problems you are currently experiencing?
3. What are the tips of the error or problem, such as the "HyperTerminal error message Tip" For everyone to see
OK, I am not a cow, just hope that the future of the electronic department of the younger brothers can go more and more smoothly, for their parents to fight a little more gas. Come on!
(the article relates to the "electronic system" and "computer system" and other categories of words, the author did not discuss who is good who bad meaning, just want to borrow "electronic system" and "computer department" two words to explain the different subjects of the various disciplines to bring, to learn some of the obstacles to the embedded. If the text is written in the "electronic department" and "computer department" Students have disrespect, say "sorry"! )
[To] embedded learning method (for students of the School of Electronic Science of Huizhou University)