Job Recruitment Website - Job information - How to learn ARM and DSP?
How to learn ARM and DSP?
It's a great job. Open the websites of various companies, and the embedded positions in the recruitment account for more than half of the engineer positions.
There are only a few generalized embedded systems: the traditional 5 1, AVR and PIC are called embedded microcontrollers; ARM is an embedded microprocessor; DSPFPGA .
Objectively speaking, DSP needs more than ARM, and ARM is similar to FPGA.
Due to the unprecedented development in the field of digital processing and communication, DSP has a wide range of applications, from MP3 cameras to controllers in our military products.
Brothers of FPGA usually do ANSIC (application specific chip design). ARM is not much better than single chip microcomputer, but its uniqueness lies in the decline of price and the improvement of performance. It all depends on ARM's strategy. Awesome! ! I admire their strategic vision! !
It is worth noting that: in job hunting, enterprises (well-known, not small) pay no more attention to simple ARM hardware development engineers than single chip microcomputer, and few large enterprises write "ARM development is preferred" in their positions. What do you write more about? I believe you can see "embedded LINUX" here. What is needed is software in hardware.
Is ARM hardware or software?
It's hard to say that ARM is hardware and LINUX is software. Most of ARM's hardware has been modularized. If I change the board like this, it will be more touching. This is also ARM's strategy. I admire it again.
In fact, the development of LINUX is more and more time-consuming. In this respect, ARM should be regarded as software.
This is especially true when looking for a job. For example, in Lenovo, the closest thing to ARM is "BIOS engineer" and software, while in MOTO, the closest thing to embedded LINUX engineer is software. Many other companies classify embedded product development as hardware. Therefore, this will not be discussed, and playing with your own board is the key. You call yourself an "embedded development engineer" when you are really upset.
Third, do you want to buy a development board?
My answer is "in your personal learning method", but if housekeeping needs to look at the level of cheating notes, I personally recommend or buy ready-made ones.
1 wheat
You can focus on software development when buying a board. Software development (especially drivers) can be done without worrying about their own hardware problems. I just write drivers and program debugging, and make sure the hardware is ok before writing drivers every time. In addition, buying boards saves money and time. It took me more than 2 weeks to make my own board and schematic PCB! It took another 15 days to make the board, and when I came back, I welded 44B0 160 feet! This is a problem ~ ~ How much did it cost? 2-layer board, plate-making fee 300 yuan! Of course, I imported all the interfaces and made a 20X 18 LCD backplane, which is relatively large. Generally speaking, components+LCD +PCB= 1 1XX! 24 10 is enough.
Moreover, the information you bought is relatively complete, but don't expect technical support! It's all a lie. I won't tell you after I sold you.
2 do
Do-it-yourself can better understand the underlying hardware, and you can add things according to your own requirements. For example, I added a GPS module, a GPRS module and an SD card module, expanded a 35-key IIC keyboard, and modified the LCD interface according to the purchased LCD, so that it can be directly connected with an FPC cable. Well done. There is a play.
Of course, you can also do it strategically, for example, like me, keep RAM, ROM and Internet as a ready-made board, so that you can take their information and use it directly, leaving yourself a way out. Others, such as SD, do it yourself. It's all achieved ~ ~ that is, spending money and time.
Then give some suggestions to friends: try to get ready-made boards, try to collect complete information of other boards, and be sure to get the schematic diagram without problems.
Most of the sketches circulated on the Internet were drawn by Simon in 2003. Here, pay tribute to Simon! ! Awesome!
But there is a small BUG in that picture, I mean version 03, and there is no such problem in the latter one. There is something wrong with the 80 19 address line and address. Some people imitate the SCH of his PDF pictures, which is even more flawed! Condemn! By the way, condemn the man who stole Simon's board.
3 which one to buy?
Personal feelings can be divided into three categories.
1) First of all, it is ZLG's, and the information is very complete. I feel that he really wants to teach you how to develop ARM, instead of making a board to sell money like some companies don't make their own technology. But the biggest drawback is that the price is too expensive! Moreover, it is mainly PHILIP's, and the supply is more troublesome ~ ~ Some people may say that the 2 1XX series is not expensive, because there is no expansion bus, so it can only run UCOS, not UCLINUX. But to be honest, the 2 1XX series is a combination of cost performance and price performance of ARM7. ARM7 is most suitable for industrial control. How did the popularity of ARM come from? All of them are ARM7, and 44B0 is a typical commercial film. However, if you are looking for a job here, you should choose one that can run UCLINUX.
But it is still the first recommendation, because in the rookie period, the right information is too important! ! I was moved by ZLG's pragmatic spirit! Look at this code.
2) I feel that the 44B0 of the carp platform is good.
There is nothing else in hardware, but the information is comprehensive. Unlike some families, the schematic diagram is taken directly from others, and it is still wrong ~ ~
3) Find the cheapest one
It seems that the cheapest one sells for 350, right? Nothing else but collecting information to save money and time. As for the incomplete information, don't worry about it ~ ~ the hardware will definitely work.
Fourth, do you want to have a single chip microcomputer foundation such as 5 1 AVR?
It's better to have it, but it doesn't matter if you don't have it.
I just watched others do it two months ago, and I came into contact with it. I studied single-chip microcomputer, but I haven't done it. Our technical backbones here are AVR and 5 1, and I adjusted the C language program with them. Did you get a look at him? I'm a real rookie, right?
But before doing this, I specially found two books of ZLG and read examples and schematic diagrams, which is very important. There is an assembly C in the routine. It's OK if you understand. You don't have to write it yourself.
What software does development need to learn?
To sum up, there are mainly the following.
1 ADS debugging
Advertising +AXD, to be exact. The advertisement contains AXD. Originally, they all used SDT. Later, ARM no longer supported SDT, and instead supported ADS. Let's use advertisements.
Some people's programs are still released in SDT version, but basically they can find corresponding advertisements. Newcomers shouldn't be confused here. ADS is a compiler and AXD is a debugger. Debugging in ARM's RAM, it is as cheap as AXF's
2 PLASHPGM
FLASH burning software. AXD is debugged in RAM, and it will be gone when power is cut off, which is convenient for program modification. The debugged program is downloaded to FLASH, and it is powered on to run directly.
There are many similar softwares, such as FLUTED and FLSHP, but FLASHPGM is the best. If someone still asks the question that FLASH does not support BIN format files, it's up to my PLASHPGM.
3 BANYANT debugging agent (I don't know if the name is right, I usually call it "half a sheep" because I know it just ate roast sheep that year).
Debugging agent is to use it to help you realize most of the functions of JTAG emulator with simpler JTAG (cheap) at the original price of1k. See my other explanation for JTAG debugging principle. Simply understand the JTAG driver for yourself.
There are many debugging agents, such as H-JTAG and ARM7 (I don't know the specific name, but I remember that the executable file is called ARM7. EXE), and BANYANT is better.
It should be noted that none of the installation methods of debugging agents are simple, but they are all different and need to be explained. And AXD should be run before debugging. Save money, so don't bother.
4-arm -ELF-TOOLS tool chain
UCLINUX has developed tools, such as ARM-ELF-GCC. A tool chain is something that packages many tools together and publishes them for your development. See my other note for the specific installation method.
In addition, if you want to develop LINUX, you should use ARM-LINUX-TOOLS, which is different and not universal.
5 u-shaped boots
The well-known BOOTLOADER generation tool seems to have Li Meihui (ambiguous name ~ ~).
The generated BOOTLOADER is burned into FLASH, and then you can download and burn others with BOOTLOADER.
BOOTLOADER is required to download UCLINUX. BOOTLOADER is like a BIOS on a computer. Of course, UCOS doesn't need this, and I don't know what to use:)
The latest version is 1. 1.4. See my other note for specific usage.
6 UCLINUX package
UCLINUX source package, needless to say? I suggest you use your existing experience first, and then compile and cut it yourself. Because the editing technology of UCLINUX alone is relatively simple, but it involves a wide range.
7 VMWARE
Old-fashioned virtual machine software, in a virtual machine, one machine installs Linux (used on PC), which saves you the trouble of switching machines back and forth. Remember to install VMWARE-TOOLS. The installation method is in my other note.
What books do you recommend?
I mainly recommend ZLG's three books. With these three books and the internet, I don't need any other books. Among them, I mainly recommend the first two books, and the third one introduces the architecture, which is not bad.
1 ARM embedded LINUX system construction and driver development, Beihang edition
The driver is written in detail, and the introduction of early development is also very good.
2 ARM embedded system experiment course (2), Beihang edition
There are schematic diagrams, experimental procedures and notes of ZLG2200 to understand how people developed it.
3 ARM embedded system basic course
The most important thing is the system structure. The assembly part is introduced to improve the theoretical quality.
44B0 data sheet
It is written here to emphasize its importance.
It is not recommended that ZLG's early red arm have a general architecture.
I'm tired of writing too much.
I haven't read several other books. Never seen it. okay You've read some recommendations.
Seven options UCOS? UCLINUX? LINUX? VXWORKS? Or use it as a microcontroller.
1 engaged in development, engineering design, UCOS, compact, multi-process, simple, reflecting the essence of ARM7.
2 LINUX embedded system is widely used in the field of LINUX consumption and communication, but the disadvantage is that it must be ARM9 to run, and the board of ARM9 can't do it by itself. Six-ply boards are too expensive. Buy a development board 1K to hit the bottom. However, it is still recommended to choose ARM9+LINUX.
3 UCLINUX is a speculative embedded system:) It can run on ARM7. Since you have a close relative of LINUX, you can easily switch to LINUX and give it to a poor man like me, hehe.
4 VXWORKS
If you learn well, you can find a well-paid job, but the job opportunity itself is not better than LINUX.
5 used as a single chip microcomputer
Not recommended, although ZLG, whom I admire, has been calling for it. Because for learning, multi-process system design is the head of ARM7, at least you need the whole UCOS:)
A friend asked me if I could learn this as a foundation first. Of course ~ ~ but it took me 1 week to get it done. Here are my notes for debugging the advertisement in RAM first. Later, the small program I used to clear the flash was the LED flashing program I wrote at that time. In addition, at 1 week, I loved eating so much that I didn't set the OM well, which led to the failure of the Crystal Array.
Ha ha. This must be done, but it has passed. Aim farther away.
How long does it take to study?
I have been a rookie for more than two months now, and I have been disturbed several times. Or have you done PCB design and plate making, RAM debugging, FLASH download, UBOOT transplant and download UCLINUX (unedited, ready-made), LCD driver.
Frankly speaking again: I do compare dishes. I say this not to envy everyone, but to tell you that "you should be better than this."
I believe that a good attitude+appropriate methods+timely summary = achievement.
What do you play with nine arms?
When?
Hardware design of 1
2 system transplantation
3 Promote development
4 application development
It's gone. Among them, it is recommended to focus on the next two, 3 difficult, 4 flexible, and the most important thing is to find a job.
What board shall I use?
Many people asked me this question, and I wrote one specially. Say it again.
I made it myself. RAM, ROM, 80 19 and other things that I didn't understand at that time were all made according to Simon's instructions. The following changes have been made while maintaining other inconveniences.
1 GPS module and GPRS module are added for serial communication.
One UART0, one UART 1, when using HyperTerminal, switch by jumper.
2 SD cards and 7843 touch screen
At the same time, it is hung on SPI bus, because SPI can only hang one device, and I/O simulation is prepared at the same time. Two devices are hung on four IO through jumpers.
An IIC keyboard with 35 keys has been expanded.
ZLG 7290 is used, which does not occupy the CPU. It supports 64 keys at most, only 35 keys are installed, and all other interfaces are left.
The LCD interface is modified according to the bought LCD, and can be directly connected with FPC cable.
So although there are many changes, it is really transplanted, and the initial debugging has not moved, just to prepare for the not so good time now:)
Xi development process
The following is my development process.
1 Schematic diagram of design (JTAG truth instrument with wiggler)
2 design PCB (JTAG truth instrument with wiggler)
3 plate making
4 welding voltage to ensure normal voltage.
5 Weld 44B0+JTAG circuit +WIGGLER's JTAG truth instrument+peripheral circuit, and connect BANYANT+ emulator. BANYANT prompts an error, but it can display the number of 44B0, which seems to be 0x0F0F0F0F0, indicating that 44B0 can.
6 Solder crystal +RAM+ROM+ peripheral circuit, connected with BANYANT+ emulator, can display the correct 44B0.
7 Connect BANYANT+ emulator, open AXD, and operate RAM in the command line window to see if it can be modified. If you can (look at the RAM address in the memory window), RAM will do.
You can use this command "setmem 0xc000000, 0xffffffff, 32".
My RAM is hung on BANK6, so the address is 0XC000000. If you change it, you have to change it.
Debug the program with the method I wrote "I wrote a C project template and an instruction". Write a simple one. I wrote an LED flashing. See if it works.
According to the summary of FLASH burning, burn the program into FLASH and test it.
10 transplant UBOOT according to UBOOT transplant operation.
1 1 Download UCLINUX according to the simple instructions for downloading UCLINUX.
12 look at the method of driver development and write a driver yourself.
13 There are many things for you to play with.
About JTAG truth instrument
JTAG truth finder is mostly a simple board, a model 244, and there is nothing wrong with it.
According to several definitions of parallel port, it is recommended to choose WIFFLER definition because there are many supported software. There are many on this website, so don't say much.
It is worth mentioning that some JTAG truth meters have jumpers on the schematic diagram to enable the reset signal, which generally does not jump. Just don't use the reset signal, because JTAG protocol itself can also control the reset of 44B0.
Of course, there is no need for a reset signal jumper on the springboard.
Thirteen which company's arm
This is a relatively simple question.
1 ARM7 is mainly aimed at several companies.
Samsung, Philip, ATMEL's
ATMEL's products are AT9 1SAM7S32 and AT9 1SAM7S64, which are tailored for 8-bit applications. The price is very cheap, like "3 knives". It is similar to Philip's 2 1XX, with little information and good project selection.
The other two have nothing to say, right?
2 arms 9
This is played with 24 10 and 2440. It's still hot at 2440. You can consider buying one.
But 24 10 is cheaper and good for learning. I recommend the whole book:)
In fact, the most used field of ARM9 should be consumer electronics, such as mobile PDA, and INTEL and TI should be the most used.
However, Intel's TI introduction materials are few and the price is high. It depends.
- Related articles
- Where is the registration point of Yiwu Music Grading Examination?
- Do patrol drivers need security certificates?
- How about Puyang Shentai Real Estate Co., Ltd., Henan Shentai Investment Group? See how they recruit people every day. What is the company's treatment?
- Introduction of Watermelon Festival
- How about Changchun Xinmingyu Automobile Maintenance Service Co., Ltd.?
- Corporate management and military model
- Will frequent job hopping really affect our employment?
- What about Liaoyuan Dongyuan Network Technology Co., Ltd.?
- How is CNOOC Asphalt (Yingkou) Co., Ltd. now? Treatment and benefits! thank you
- A brief introduction to the story of an alternative village girl