Common arm embedded learning questions and answers, designers and learners who are most concerned about the 11 questions:
1.ARM Embedded is learning hardware good or learning software good?
2. Embedded software and hardware, which kind of position is higher? Or, which one is more important in the design?
3. After learning 51 single-chip computer, want to buy arm development Board to continue to study, is to buy ARM7 or ARM9?
4. What kind of kernel do you study: ARM7, CORTEX-M3, CORTEX-M4, ARM9, cortex-a8 or cortex-a9?
5.ARM chip How to choose the model?
6. What is the main learning arm study?
7. Is it the first to learn the programming of an operating system-based application layer program, or to learn the programming of an operating system-based driver first?
8. Why learn embedded Linux, Android, and not other embedded operating systems?
9. Must you learn GUI interface design?
10. What kind of ARM development board do you buy?
11. Electromagnetic compatibility is known as black art, how to learn the design of electromagnetic compatibility in hardware design?
1. Is Arm embedded learning hardware good or learning software good?
Answer:
Learning hardware or software is good, if you can master any of them, all right!
Learning hardware, most people can do after college hardware design, this time everyone is a similar level, so feel like there is no threshold! But the difficulty of electronic product design is stability, especially the design of electromagnetic compatibility. N Years later, maybe three years, maybe five years, maybe eight years, in short, the number of years, this time there is a level of high and Low: Some people design electronic products is not a problem, some people have designed the electronic products is always a problem. Hardware design is a combination of design experience and theoretical re-learning: electromagnetic fields and electromagnetic waves, microwave and antennas, high-speed signal processing, signal integrity, PCB cabling practical measures, system electromagnetic compatibility of the processing measures, circuit debugging capacity and the ability to solve the circuit failure, and so on,
learning software, many people can not engage in this design work after graduating from college, because everyone in the school effort, many people have not actually entered the threshold of programming. But after entering the threshold, the vast majority of people will be in the same horizontal level, the level of the very individual higher, reflected in the stability of the program and the efficiency of the program operation. The design of the software, mainly reflected in these two points
Microcontroller hardware and software, because the frequency is too low, there are few stability problems, software workload is also small, many units of hardware and software are a person to do. But to the high frequency of the 32-bit microprocessor, the stability of the hardware is particularly prone to problems, increased functionality complexity, the difficulty of hardware design increased, the workload of software programming increased, so most of the company's software and hardware began to have many people separate design. The leaves are specialized! Large leaves responsible for system design, a variety of small leaves have to do hardware design, and some do software programming. The purpose is to play their respective strengths! Complete the final system function design
another need to emphasize is that learning hardware or software, but also to see the individual interested in hardware, or software interested?
2. Embedded software and hardware, which kind of position is higher? Or, which one is more important in the design?
Answer:
just enter the workplace, generally speaking, the treatment of embedded software will be slightly higher. Because previously said, many people did not enter the software design threshold within. But after all, the software is a youth career, with the increase in age and design experience, design capabilities, hardware design of the treatment has risen, and slowly will be the same as the software post treatment or even higher than the software position.
As for who is more important, the hardware is equivalent to the body, software equivalent to blood, indispensable, no one is more important to say. If you look at the product, the hardware is more important. Because of the problem in the product, the stability of the hardware problem is basically only to find a master redesign, if the circuit principle of the problem can also be directly increased or reduced components to solve. Software instability problems can be solved by modifying the program design and re-downloading the application to the chip. If from the design point of view, the system design is more important, because the system design requirements to understand some of the basic design of software, but also to the hardware design has considerable attainments, so that he can grasp the system design requirements, the correct design proposal.
3. After learning 51 single-chip computer, want to buy arm development Board to continue to study, is to buy ARM7 or ARM9?
Answer:
If you are more than a single-chip computer programming ability, it is recommended to buy ARM9 board, run Linux system, learning embedded Linux software programming,
If your microcontroller hands-on programming ability is more general, it is recommended to purchase CORTEX-M3 Development Board, first learn 32-bit ARM programming (support lightweight operating system, such as Ucos), exercise practical hands-on programming ability. With a certain degree of programming ability, then buy ARM9 board, run Linux system, learning embedded Linux software programming.
In Short is more hands-on, encountered problems more slowly accumulated up, you can digest!
4. What kind of kernel do you study: ARM7, CORTEX-M3, CORTEX-M4, ARM9, Cortex-a5, cortex-a, cortex-a8 or cortex-a9?
For:
If learning hardware design, CORTEX-M0, cortex-m0+, CORTEX-M3, CORTEX-M4 core chip, low frequency, signal integrity and electromagnetic compatibility requirements are not high, hardware design is relatively simple; ARM9, CORTEX-A5, Cortex-a7, CORTEX-A8, cortex-a9 core chip, high frequency, signal integrity and electromagnetic compatibility requirements are high, hardware design is relatively more complex.
If you are learning Embedded software application programming design, ARM9, Cortex-a5, Cortex-a7, cortex-a8, cortex-a9 kernel are similar, because the application software programming basically out of the underlying hardware.
first, the ARM7 core-based chip is now scarce, and most companies are discontinued. And the price has no advantage, the frequency is not high, can only run Ucos or uclinux system. So it's not recommended to spend a lot of time playing this ARM7 kernel chip .
CORTEX-M3 Core Chip is currently a relatively large amount of 32-bit ARM chip, the main frequency of about 70MHz to 120MHz, such as stm32f103, LPC1768 and other models. CORTEX-M4 Core chip Support DSP command function, the main frequency 100MHz to 200MHz, such as STM32F4 and other models. The two cores of the chip can be based on library functions to write programs, or based on registers directly write programs, you can run a lightweight operating system, such as Ucos. This type of chip is only suitable for the design of less complex products, the network protocol has certain requirements of the product is not recommended to use the chip.
ARM9 core Chip, is the current market running embedded operating system (Linux, WinCE) mainstream 32-bit ARM chip, the main frequency between 180MHz to 500MHz.
cortex-a8 and cortex-a9 cores can run a variety of embedded operating systems (Linux, WinCE, Android). The speed of the CORTEX-A8 processor can be adjusted in the range of 600MHz to over 1GHz, to meet the requirements of mobile devices that need to work under 300mW for power optimization. The CORTEX-A9 processor can be more than 1GHz in speed and supports multicore.
For beginners, learning library function programming or register programming, it is recommended to learn the development of chips based on the CORTEX-M3 kernel; If you are learning Linux embedded software programming, it is recommended to learn the Development board based on the ARM9 core chip If you are learning Android embedded software programming, it is recommended to learn the development board based on CORTEX-A8 and cortex-a9 core chip;
5. Currently there are many cores in arm, how should I choose the chip model?
Answer:
cortex-m0+, cortex-m0 core chip , low frequency, mainly for the replacement of 8-bit microcontroller programming low-end products, such as home appliances, small appliances and so on.
cortex-m3 Core Chip , the main frequency about 50-120mhz, cost-effective, suitable for large operating systems do not need product design, such as motor control, audio processing, industrial control.
cortex-m4 Core Chip , the main frequency about 80-180mhz, more than the M3 core DSP floating-point processing capacity, CORTEX-M4 core chip DSP performance than 16-bit DSP chip, but less than 32-bit DSP chip. Target applications for CORTEX-M4 microcontrollers include complex motor control, automotive electronics, embedded audio, and industrial automation.
ARM9 Core Chip , the main frequency of about 140-500mhz, support running Linux, wince operating system, support a certain graphical interface processing, suitable for network transmission, video processing, industrial control and other products design.
cortex-a5 Core chip , the frequency of about 500mhz-800mhz,8-level integer pipeline, low power consumption, can run Linux, Android, wince embedded operating system. CORTEX-A5 Dual-core performance is equivalent to CORTEX-A7 single core performance, mainly for entry-level smart phones, low-cost intelligent mobile terminals, industrial equipment and so on.
cortex-a7 Core chip , support multi-core, support graphics processing, the main frequency of about 800mhzhz-1.2ghz, 13-level integer pipeline, can run Linux, Android, wince embedded operating system, low power consumption, Mainly for smart phones and other power-demanding products.
cortex-a8 core chip , single core, the main frequency of about 600mhzhz-1ghz, 13-level integer pipeline, can run Linux, Android, wince embedded operating system, mainly for power systems, CNC industry, automotive Electronics, Robot vision, media processing wireless applications, digital home appliances, automotive equipment, communications equipment, network terminals and other products.
cortex-a9 core chip , with single-core, dual-core, quad-core, support graphics processing, the main frequency of about 1ghz-2ghz, 8-level integer pipeline, can run Linux, Android, wince embedded operating system, CORTEX-A9 Dual-core performance is equivalent to CORTEX-A7 four core performance, mainly for smartphones, netbooks, e-readers, digital TV, high-definition players and other products.
CORTEX-A15 Core chip , support multi-core, support graphics processing, the frequency of about 1.5ghz-2.5ghz, can run Linux, Android, wince embedded operating system, mainly for smartphones, tablets, mobile computing, High-end digital appliances, servers and other products.
St Company : Chip STM32F0 series based on cortex-m0 core, CORTEX-M3 Core-based Chip STM32F1 series, CORTEX-M4 Core-based chip STM32F4 series, is currently the most popular CORTEX-M series core chip.
NXP : Chip LPC1768 based on the cortex-m3 Core, LPC1788, cortex-m0+ core based Chip LPC800 series, ARM9 core Chip LPC3250, In the design of the recognition rate is relatively high.
Atmel Company : For many years the use of ARM core technology, ARM9 core chip for many years to start upgrading the higher core, designed to create a stable industrial-grade chip, not the pursuit of excellence in the frequency, but for the performance of more reliable industrial-grade chip. Can overcome all kinds of harsh environment, and all kinds of interference, low power consumption, so that industrial control can be more stable and orderly conduct. Now the ARM9 core chip has at91sam9260, at91sam9263, AT91SAM9G45,CORTEX-A5 core chip sam5d3x, etc.
Freescale Company : The company's chip stability is also very high, more for industrial control and automotive electronics. CORTEX-M3 Core Chip K series, ARM9 series Chip IMX.28,CORTEX-A8 core Chip I.MX53 series, CORTEX-A9 core chip i.mx6 series, etc.
Texas Instruments TI: has been committed to research processing faster, more powerful chip. The use of ARM's latest technology cortex A8 to improve the performance of the chip. The processing speed of some chips is pitches with the MCU of the X86 architecture. But recently the OMAP series chips are said to have been cut and may be out of the market. This makes the choice TI chip people in the heart a bit afraid! And, TI's chip update speed is too fast, let choose their chip manufacturers are also at a loss. Now the CORTEX-A8 core chip has AM3358, AM3359 and so on.
Samsung Semiconductors : Samsung manufactures arm core chips at a cost-effective price that no one can rival. Because of this, the chip has also been a lot of manufacturers pro-gaze. For example, s3c2440 cost-effective, general consumer electronics applications are more, not suitable for the harsh industrial environment to use. Now the ARM9 core chip has s3c2440, CORTEX-A8 core chip s5pv210, CORTEX-A9 core chip Exynos-4412 and so on.
In addition the domestic more hot some of the cortex-a core chip manufacturers are as follows: Rui Core Micro -cortex-a9 core chip RK3066, RK3188; cortex-a7 core Chip A31, a31s; Crystal Morning cortex-a9 core chip gm8126-mx, S802;
recently always seen a lot of personal and factory propaganda: the use of Samsung's 2440 or other models of Samsung design for industrial products, and I heard a lot of manufacturers say that the working temperature of the chip has done an aging test, low temperature can go to –40. This low-temperature experimental condition is only an industrial-grade mandatory temperature test conditions, not in this low temperature normal work is the industrial grade chip. Industrial-grade application is really difficult to achieve in a variety of harsh electromagnetic environment of stability, stability is the first element of industrial-level application, which is why Atmel chip many models a sell is more than 10 years, their chips do is stable. such as at91rm9200, at91sam9260, at91sam9g45 and so on.
6. What is the main learning arm study?
Answer:
on the hardware of the main learning arm core chip circuit design and additional peripheral circuit (USB, SDIO, CAN, 485, SPI, PCI, etc.) design and high-speed digital signal processing, signal integrity design, electromagnetic compatibility design, plainly speaking is to learn how to design a high-stability arm system circuit. Arm cores (cortex-m3, CORTEX-M4, ARM9, cortex-a8, CORTEX-A9, etc.) chip, the frequency is more and more high, the design of stability is more difficult to achieve.
The main learning of the software is based on operating system Application layer program programming and operating system-based driver programming or based on the library function of the bare-metal program programming and so on. cortex-m0+, Cortex-m0, CORTEX-M3, cortex-m4 core chips, can run bare-metal programs or lightweight Ucos system, the main software to learn the programming of bare-metal programs or lightweight operating system programming; ARM9, CORTEX-A5, Cortex-a7, CORTEX-A8, cortex-a9 core chips, can run Linux operating system, Android operating system, wince operating system, etc., learning the embedded operating system-based application programming and driver programming.
7. Is it the first to learn the programming of an operating system-based application layer program, or to learn the programming of an operating system-based driver first?
For:
The application layer program based on the operating system is the foundation of the embedded software design, it can complete the programming without needing to be familiar with the underlying hardware, so it is possible to learn the embedded Linux application Programming board, as long as the development boards can run the Linux system. Operating system-based driver programming design, requires designers not only familiar with the operating system, but also familiar with the underlying hardware, preferably a register-based program writing experience, the requirements of designers are relatively high.
Learn the basic process of driver programming: 1. Proficient in the bare-metal programming of the chip, 2. Proficient in the application programming of the operating system, 3. Familiar with Linux system kernel; 4. Learn and master the driver programming under Linux system;
Now the driver programming design, the chip factory and Development Board manufacturers have provided the majority of drivers, relatively can reduce the pressure of designers.
Therefore, it is recommended that you first learn the programming of an operating system-based application and have some programming experience to learn the programming of the operating system-based driver.
8. Why learn embedded Linux, Android, instead of learning other embedded systems?
For:
1.Linux, Android software is free, do not charge royalties.
2.Linux, Android embedded programming is mainly in C language, high compiler efficiency, can directly control the underlying hardware; GUI is programmed with C + + voice.
3.Linux, Android is open-source operating system, you can delve into the core code, to a certain extent, can design unlimited programming. At the same time, because the kernel can be cropped, it can control the compiled code size, and then adopt the chip with lower storage capacity to control the design cost.
4.Linux, Android online resources rich, designers can get a lot of free reference design code
Compared to: UCOS, ECOS and other lightweight operating systems, compared to Linux, wince, VxWorks, there are certain limitations on software functionality, and UCOS, the lack of their own compilers; Microsoft's wince embedded systems, VxWorks Embedded system copyright fee is particularly expensive, about each product about 100 yuan, and not open source, small companies basically can not get the original support, many programming because can not get the original technical support and can not be achieved. So now basically is to learn embedded Linux, Android programming.
9. Must you learn GUI interface design?
For:
In the application design of embedded software, GUI interface design is only used when the LCD display is supported in the product. Moreover, in the actual product design, because the software workload is relatively large, software design is also a multi-person cooperation, there will always be someone to do GUI interface design. Because the general Application Designer is based on C language programming design, GUI interface design is basically based on C + + or Java language programming, so for beginners, there is a big difference, it is recommended that beginners in the initial study without spending too much effort to learn GUI interface design.
10. What kind of ARM Development board do you buy?
For:
Development boards for bare-metal programs that do not run the operating system:
We recommend the purchase of boards based on stm32f103, STM32F4, LPC1768, LPC1788, etc., which are largely recognized by designers.
There are embedded operating systems:
11. Electromagnetic compatibility is known as black art, how to learn the design of electromagnetic compatibility in hardware design?
For:
We all know that in electronic product design, stability is the first place. The most difficult to deal with in stability is a good electromagnetic compatibility design. First of all, we need to enrich ourselves theoretically: electromagnetic fields and electromagnetic waves, microwave and antennas, high-speed digital signal processing, signal integrity analysis, electromagnetic compatibility measures in circuit design, EMC PCB cabling measures, system design, electromagnetic compatibility planning, electromagnetic interference and electromagnetic compatibility testing, corrective measures and other bad points. Secondly, it is necessary to apply these theories in the actual design, to prepare for solving the electromagnetic compatibility in the initial stage of the design, and to make corrective measures in the electromagnetic compatibility test with their own understanding.
In other words, the ability of electromagnetic compatibility is the actual design and theoretical re-learning combined with a process, the need for long-term design accumulation, will not be in a short period of time!
"Embedded how to learn?" New Ten asks the answer "