Conditions, methods, and steps for learning Embedded Systems

Source: Internet
Author: User

Conditions, methods, and steps for learning Embedded Systems
Some people think that embedded systems are just to look for a book and compile a few Program It's done. In fact, the threshold for embedded systems is relatively high. The details are as follows:
1. You must have a certain amount of money.
(1) Expensive Development Board
(2) higher training fees
(3) the development platform is as expensive as possible. (Unless you just want to play)
2. There are many things to learn. (1) Window environment programming; (2) Linux environment programming; (3) Microcontroller
3. In the end, it is also the most important thing. You have to have a strong, indomitable mind and a common heart.
(1) strong self-confidence, positive and diligent (Note: good self-confidence is self-conscious !)
(2) Success is actually the best of yourself.
Although the embedded system has a high threshold, it is not as hard to break as other things. As long as we treat it with our heart, dongxue will eventually change and the spring breeze will surely blow. The procedure is as follows:
1. "C Language" Second Edition tan haoqiang; "C programming language" Second Edition Xu Baowen translation machine quit Industry Press
Can you separate pointer arrays and array pointers? Do you know the function pointer?
When you define a variable separately, can the space allocated by the system be different from the space allocated by a variable using the malloc () function?
2. Data Structure: Huang guoyu (c) And ye naqing (Tsinghua University Press)
Can you close the book and use the C language to implement the data structure of single-chain and double-chain tables in the book?
3. Article 2 of practical C ++ program design by steve_oualline, China Electric Power Press
At this stage, we mainly learn its object-oriented programming ideas and deepen our understanding of the C language and data structure.
4. Learning single-chip microcomputer, it is best to find a predecessor belt.
Can you use 51 Single-Chip Microcomputer to make something practical? Even if it is simple!
Pay attention to deepen understanding of interruptions.
5. Learn ARM microcontroller.
(1) read carefully the preparation of Zhou ligong in "ARM microcontroller basics and Practices" (Note: Even if you do not need the Development Board in the book)
(2) carefully read the original English documents of related chips. For example, arm920te.20.s3c2410_1.2.pdf
6. Learn UCOS !! Operating System.
(1) read the embedded real-time operating system uC/OS-! Translated by Zhao Beibei
You can take UCOS !! Can I port it to my own platform?
(2) can be written in UCOS !! Drivers running in the operating system environment for specific hardware
7. Familiar with Linux environment, learning programming in Linux environment, and learning cross Programming
(1))
(2) read the GNU make manual (translated Chinese Version) carefully.
(3) learning to create a cross-programming environment.
8. Learn about the Linux operating system.
(1) advanced programming in UNIX environment
(2) read the "joyfire notes" carefully and you can find it on the "www.qianrushi.com" website.
(3) read the Linux kernel complete notes carefully.
(4) carefully read understanding the Linux kernel 2
(5) Utilization Source code Read the "source insight" tool to analyze the source code of the Linux kernel.
(6) Finally, we can port the kernel and write the driver program for specific hardware running in the Linux operating system environment.
9. Learn how to write a Linux Device Driver. See Linux Device Driver
10. Review C ++ and use QT for graphic interface programming.
(1) carefully read the QT programming book
(2) Learn to perform qt gui field programming by viewing QT Electronic Documents
(3) learn cross-programming. (In fact, it is to change the command qmake to tmake)
11. Of course, you can also learn how to make a PCB and design your own CPU (that is, soft shell)
Now, you have completed the entire embedded process! But keep in mind: a thoughtful person is really a powerful person; he can be generous and strong!
Introduction to arm
First, let's talk about the development of arm.
It can be described as a good one to open the websites of various companies, and embedded recruitment occupies most of the positions of engineers.
In the broad sense, there are only a few types of embedded systems: Traditional 51, AVR, and PIC are called embedded microcontroller; arm is an embedded microprocessor; DSP; FPGA.
Objectively speaking, DSP requires more work than arm, while ARM is similar to FPGA.
Due to the unprecedented development in the digital processing and communication fields, DSP is very popular, ranging from MP3 image headers to controllers in our military products.
FPGA Brothers generally work on ansic (special chip design, which seems to be translated in this way ). Arm alone is not much better than a single-chip microcomputer, but its uniqueness lies in the declining price and improved performance. This relies entirely on arm's strategy !! They admire their strategic vision !!
It is worth noting that when looking for a job, enterprises (well-known, small ones) do not pay more attention to ARM hardware development engineers than single-chip computers, in the posts of few large enterprises, "arm development is preferred ". What do I write too much? We can see from the "embedded Linux" that we need software in hardware.
Whether arm is hardware or software
It is hard to say that arm is hardware and Linux is software. Most of arm's hardware has been modularized, And I have changed the Board into a more dynamic one. This is also the strategy of arm, and I admire it again.
In reality, the development of Linux is more time-consuming. In this regard, arm should be software.
This is especially true when looking for a job. For example, the closest link between Lenovo and arm is that BIOS engineers are software, while those in Moto are similar to embedded Linux engineers. Many other companies classify embedded product development as hardware. Therefore, it is critical not to discuss this. You call yourself an embedded development engineer"
3. Do you want to buy a development board?
My answer is "your personal learning method". However, if you want to watch this cheat note, you can recommend that you buy it.
1 buy
When buying a board, you can focus on software development. Software Development (especially drivers) does not have to worry about hardware issues. I just want to debug and write drivers and programs, make sure that the hardware is correct before writing the driver. In addition, it is more cost-effective and time-consuming to buy a board. It takes more than two weeks for me to build a board with a schematic PCB! The plate was made for another 15 days. After we got back, We welded 160 feet to 44b0! That's a hassle ~~ How much does it cost? 2-board, 300 plate-making fee! Of course, I introduced all the interfaces and made a 20x18 LCD backboard. The Board was relatively large. Overall components + LCD screen + PCB = 11xx! Enough.
In addition, the purchased materials are relatively comprehensive, but do not expect technical support! It's a lie. You won't be taken care of after you sell it.
2.
You can learn more about the underlying hardware and add things as required. For example, I have added the GPS module, GPRS module, and SD card module, I expanded the 35 keyboard keys of An IIC, modified the LCD interface according to the purchased LCD, and can be directly connected using the fpccable. It's a great job. Do you want to play.
Of course, you can do it with a strategy. For example, you can keep the ram, Rom, and network in the same way as a ready-made board, so that you can use their information directly, leave yourself a retreat. Others, such as SD, do what they do. Reached ~~ It is money and time.
Then, I would like to give some suggestions to my friends: Get the ready-made board as much as possible, collect as much information as possible for other boards, and be sure to get a problem-free schematic.
Most of the schematic diagrams circulating on the Internet are those of jun03 New Year Pictures. Here I would like to express my respect for them !! Cool!
However, there was a small bug in that figure. I was referring to version 03. Later, this problem was not solved. 8019 there is a problem with the address line and address. Another person, like the sch in his PDF, is still full of loopholes! Condemn! By the way, he condemned the man who sold the handsome boy.
3. which one to buy?
My feelings are divided into three categories.
1) First of all, zlg has a wide range of materials. I feel that he really wants to teach you how to develop arm, rather than making a card to sell money if some companies do not have the best technology. But the biggest disadvantage is that the price is too high! It is mainly Philip, and the supply is troublesome ~~ Some people may say that the 21xx series is not expensive. That is, the bus is not extended. You can only run UCOS, not uClinux. But in other words, the 21xx series is the combination of price and performance of arm7. Which of the following is the most suitable method for industrial control? How is arm popularity and sales? All of them come from 7.7. 44b0 is a typical commercial film. However, if you want to prepare for your work, you can choose to run uClinux.
But it is still the first recommendation, because the appropriate materials are too important during the cainiao period !! I was touched by zlg's pragmatic spirit here! You see Code Written.
2) I think Li yutai's 44b0 is good.
There is nothing more about hardware, that is, the information is comprehensive. Unlike some companies, the principle diagram directly takes people's homes, and it is still wrong ~~
3) find the cheapest
It seems that the cheapest one is selling 350, right? There is nothing else, that is, saving money and saving time to collect data. As for the incomplete information, don't worry about it ~~ The hardware must be easy to use.
4. Do you want to have 51 Single-Chip Microcomputer basics, such as AVR?
There is better, but it doesn't matter.
Two months ago, I only watched other people do it ~~, I have studied single-chip microcomputer and have never done so. Our technical backbone is AVR and 51, and I have called the C language program with them. You see it? I'm a good newbie, right?
But before doing this, I found two zlg books and read the examples and schematics. This is very important. If there is C in the assembly in the routine, it will be OK if you understand it. You do not need to write it yourself.
5. software to be learned during development
To sum up, the most important ones are as follows:
1 ads debugging
Specifically, it is ads + axd. ADS contains axd. After using SDT, arm stopped supporting SDT and changed to support ads.
Some people still release SDT, but they can basically find the corresponding ads. New people should not be enlightened here. ADS is the compiler, and axd is the debugger. It will be easier for axf to be debugged in arm's Ram later.
2 plashpgm
Flash program. When the axd is debugged in Ram, the power is lost, making it easy to modify the program. The debugged program goes down to flash and runs directly on power-on.
There are still a lot of similar software, such as Fluted and flshp, but flashpgm is the best. If someone asks the problem that flash does not support Bin files, it depends on the plashpgm I wrote.
3. banyant debugging proxy (I do not know the name, right? No. I usually call it "half goat" because I know it has just eaten roast goat in those days)
Debugging proxy is used to help you use the simpler JTAG (cheap) to implement most of the functions of the JTAG simulator that was originally sold for 1 K. For more information about JTAG debugging, see my other notes. Simply understand the JTAG driver you have made.
Debugging agent there are a lot of, what H-JTAG, arm7.exe (do not know what specific called, I remember the executable file called arm7.exe) are, banyant is better.
Note that none of the debugging agent installation methods are simple but different. In addition, the axd must be run before debugging. Save money, so don't worry about it.
4 arm-elf-tools tool chain
It is uClinux development tools such as ARM-ELF-GCC class. A tool chain is something that can be easily developed by packaging and Releasing many tools together. For more information about the installation method, see my other notes.
In addition, if you develop Linux will use ARM-LINUX-TOOLS, not the same, not universal.
U-BOOT
The famous bootloader generation tool, similar to Vivi (the name is ambiguous ~~)
The generated bootloader is burned into flash, and then you can download and download it with bootloader to write other
With bootloader, you can download uClinux. Bootloader is like a BIOS on a computer. Of course, UCOS does not need this. I don't know what to use :)
The latest version is 1.1.4. Take another note of this document.
6 uClinux package
The source code package of uClinux is unnecessary? It is recommended that you use the ready-made tools first, and then compile and crop them by yourself. Since uClinux alone is relatively simple in editing technology, it involves a wide range of aspects.
7. VMWare
The old Virtual Machine Software virtualizes a machine on a machine to install linux (on a PC), saving you from switching back and forth. Remember to install the VMWARE-TOOLS in my other note.
6. Recommended books
I mainly recommend three books of zlg. I don't need to use any other books if I have these three books plus the Internet. I mainly recommend the first two books and the third one to introduce the architecture, which is also good.
1. ARM Embedded Linux system construction and driver development, Beihang Edition
Driver writing is very detailed, and the early development Introduction is also very good
2 ARM embedded system experiment tutorial (2), Beihang Edition
There is a schematic diagram of zlg2200, an experimental program and a comment to learn how people develop it.
3 basic ARM Embedded System tutorial
The most important thing is the architecture. Let's take a look at the compilation Section to increase the theoretical quality.
4 44b0 Data Manual
It is important to emphasize it here.
What architecture is zlg's red skin arm ~ Class-only
I am tired of writing too much.
I haven't seen a few other books. Well, you have read the recommendations.
7. UCOS? UClinux? Linux? VxWorks? Or for Single-Chip Microcomputer
1. Engaged in development, engineering design, UCOS, compact, multi-process, simple, and embodies the essence of ARM7.
2 Linux is the root of the embedded system, the Linux consumption and communication fields are more used, but the disadvantage is that the arm9-board can only run, the arm9-board can not do it by itself, 6 layers is too expensive. Buy a 1 K Development Board. However, we recommend that you select arm9-+ Linux.
3. uClinux is a speculative embedded system. You can run it on ARM 7. You can easily switch from a close friend of Linux to Linux, just like me.
4 VxWorks
After learning, you can find a high-paying job, But job opportunities are not better than Linux.
5 For Single-Chip Microcomputer
Not recommended, although zlg I admire has always called for this. For learning, the multi-process system design is the head of the ARM7 game, at least you need the entire UCOS Ah :)
A friend asked me if I could learn this first? Of course ~~ However, it took me one week to complete the work, that is, the notes I took when I first debug ads in Ram. Later, I cleared the short flash program and wrote the LED flash program. In the other week, due to the fact that I had too much food and didn't set om, the crystal array was not ready.
Haha. This is a must, but it is always the same. A little farther away from the target.
8. how long it takes to learn
I 've been a newbie for more than two months and have been disturbed several times. The PCB design and plate making, Ram debugging, flash download, uboot porting and downloading uClinux (no tailoring, ready-made), and LCD driver are still completed.
Once again, I honestly said: I do know how to compare food. It doesn't envy everyone. I just told you, "you should be better than this"
I believe in a good attitude + appropriate methods + timely summary = achievements
What do arm do?
Just a few points
1. Hardware Design
2 system Transplantation
3. driver development
4. Application Development
No. It is recommended that you focus on the last two. 3 is difficult and 4 is flexible. The most important thing is the weight for finding a job.
10. What board do I use?
Many people asked me this question. I wrote one specifically. Let's talk about it again.
I did it myself. Ram, Rom, and 8019 were quite troublesome, but what I didn't understand at the time was all done by Jun. The following changes have been made to ensure other inconveniences.
1. added the GPS module and GPRS module for Serial Communication
One uart0 and one uart1. Use a jumper to switch with a Super Terminal.
2 SD card, and 7843 Touch Screen
At the same time, it is mounted on the SPI bus, because the SPI can only be mounted to one device. At the same time, I/O simulation is also prepared, and the two devices are mounted to four Io devices by jumper.
3. Added 35 keyboard keys for IIC
The zlg 7290 does not occupy the CPU. A maximum of 64 keys are supported, and only 35 are used.
4. the LCD interface is modified according to the purchased LCD interface, and can be directly connected using the fpccable.
So although there are many changes, they are really transplanted, and the initial debugging is not relevant, just to prepare for a later time :)
11 Development Process
Here is my development process
1. design principle diagram (JTAG viewer with wigggler)
2. Design a PCB (a JTAG viewer with a wigggler)
3 Versions
4. welding voltage. Check whether the voltage is correct.
5. Weld 44b0 + JTAG circuit + JTAG access device of wigggler + peripheral circuit and connect it with the banyant + simulator. The banyant prompts an error, but the 44b0 number can be displayed, which may be 0x0f0f0f only, it means 44b0 is okay.
6. solder the crystal + Ram + Rom + peripheral circuit and connect it with the banyant + simulator. The correct 44b0 is displayed.
7. Connect with the banyant + simulator, open the axd, and operate the RAM in the command line window to see if it can be modified. If yes (use the RAM address in the memory window), the RAM will be fine.
You can use this command to "setmem 0xc000000, 0 xffffffff, 32"
My Ram is mounted on bank6, so the address is 0xc000000. You have to change it if you change it.
8. I wrote "I wrote a c Engineering Template and wrote a instructions for use" to debug the program. I wrote a simple one. I wrote a LED flash. Optimistic.
9. Burn the program to flash according to the Flash burning summary, and test it.
10 porting uboot according to uboot porting operations
11. Follow the instructions on uClinux downloading to the next uClinux
12. Let's look at the driver development method and write a driver on your own.
13 you have a lot to do
12. About JTAG actor
The JTAG visitor is usually a simple tool. The JTAG visitor is 244, and it is easy to use.
We recommend that you use Wiffler to define different types of software based on the parallel port. There are many online users, not to mention them.
It is worth mentioning that some JTAG accessors have jumpers on the schematic to enable the reset signal, which generally does not jump on. That is, no reset signal is required, because 44b0 reset can also be controlled in the JTAG protocol.
Of course, the reset signal jumper on the Board does not need to jump.
13th, which company's arm
This is a simple problem.
1. There are several major companies in the ARM7 module.
Samsung, Philip, Atmel
ATMEL has relatively cheap at91sam7s32 and at91sam7s64 are tailored for 8-digit application products, the price is very cheap as if "3 knives. Similar to Philip's 21xx, there are too few materials, and the project selection is good.
The other two do not talk much about the above.
2 ARM9.
This is more than 2410 and 2440. Now 2440 is still quite popular. You can buy one.
But 2410 is cheaper. As for learning, it is better. We recommend the whole one :)
In fact, the most widely used field of arm9-should be consumer electronics, such as cell phone PDA, and most of the above should be Intel and Ti.
However, Intel's Ti has few entry-level materials and the price is high. Let's check the situation.

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.