Job Recruitment Website - Job seeking and recruitment - What courses do you need to study for mobile phone embedded?

What courses do you need to study for mobile phone embedded?

Hardware first.-Then, software. . . .

Learn assembly well, single chip microcomputer. . . . .

C vc should also learn something, such as debugging, operating system and data structure.

The most important courses in embedded software include:

( 1)

Structure and Application of Embedded Microprocessor: This is a basic course of embedded hardware, which replaces the traditional course "Microcomputer Principle and Interface" in our college (at present, a few it majors in domestic universities are doing it, because it is difficult to find practical use to talk about x86 microcomputer principle and interface, just for teaching). As we said, embedded software is a combination of hardware and software, and people engaged in embedded software should have a full understanding of the working principle and interface technology of ARM processors, including the assembly instruction system of ARM. If you don't understand the principle of the processor, how to control the hardware work, how to write the code that saves the most memory and runs at high speed (embedded software design pays special attention to space-time efficiency), and how to write the driver (drivers are all dealing with hardware)? Many companies require familiarity with ARM processors when recruiting embedded software personnel. In the future, if students come to the company to develop embedded software, the company will give you a hardware specification of the equipment.

(xxx

Specification), you must be able to understand the most basic instructions such as memory allocation and port usage (just like x86 assembly), otherwise how to design software. Some students think the embedded processor course is boring, mainly because the hardware course is abstract. After our embedded laboratory was built in June+10, 5438, you will feel tangible after doing some experiments. Some students are not interested in ARM assembly, and think that C language is enough for embedded development. In fact, we should not just regard assembly language as a programming language, but learn assembly mainly to master the working principle of the processor. How can a person unfamiliar with assembly language write the best C code on this processor? In some key parts of embedded development, it is sometimes necessary to write an assembly, such as Bootloader (and possibly BSP). Especially in high-speed situations (such as high-speed image acquisition and image decompression with DSP processor), at present, we mainly rely on sinks to write programs (I see many companies do this). Working in an embedded company and reading manuals describing principles, many of them may be described by assembly (I have also met them). This is because many hardware designers can only write or like to describe with assembly. At this time, you must know the assembler, otherwise the software and hardware personnel may not be able to communicate. Many embedded positions require familiarity with assembly when recruiting.

(2) embedded operating system course

Except WinCE, most embedded operating systems have strong real-time performance, so they can also be called real-time operating systems.

operational

System. People engaged in embedded systems must master at least one embedded operating system (of course, it is better to master two), which is the most critical of all embedded technologies. At present, the most important RTOS mainly includes:

The first category, traditional classic RTOS: the most important is Vxworks operating system and its Tornado development platform. Because Vxworks appeared earlier, it has strong real-time performance (it is said that it can respond to external event requests within 1ms), and the kernel can be extremely small (it is said that it can be as small as 8K) with high reliability, so in North America, Vxworks occupies more than half of embedded systems. Especially in systems with high real-time requirements such as communication equipment, almost none other than Vxworks. Many concepts and technologies of Vxworks are similar to those of Linux, mainly C language development. Vxworks is widely used by Bell-Alcatel, Lucent, Huawei and other communication companies when developing products. But because of the high price, Vxworks can't be used in some small companies or products. At present, many companies are switching to embedded Linux (I heard that Huawei is doing the same at present). But in any case, Vxworks will not waver for a long time. Similar to Vxworks, there are RTOS such as pSOS, QNX, Nucleus and so on.

The second category, embedded Linux operating system: In addition to being a server operating system, the most successful future of Linux is its application in the embedded field. Of course, the reason is that it is free, open source, supports many softwares and attracts many users, so the cost of embedded products will be low. Linux itself is not an operating system designed for embedded systems, nor is it a microkernel, so its real-time performance is not strong. At present, there are two main types of Linux systems applied in the embedded system: one is the cut Linux system specially designed for embedded systems, and the most commonly used one is uClinux (without MMU function), which currently accounts for a large share of applications and can run on ARM7; The other ran arm in arm.

9, generally Linux.

2.4. The18 kernel is transplanted on it, and more Linux functions can be used (of course, uClinux can run on ARM.

9 open). Many people predict that embedded Linux will account for more than 50% of the embedded operating system, which is very important. The disadvantage is that there are too few people familiar with Linux, and the development is slightly more difficult. In addition, at present, we can find that many textbooks and many universities use ucOS/II as the real-time operating system for teaching. This is mainly because ucOS/II is simple and open source, which is very suitable for beginners to learn the principle of real-time operating system. However, due to the limited function of ucOS/II, it is not the focus of our teaching. If you want to learn, you must learn something direct and practical, such as

UClinux is very practical. Besides, being familiar with Linux development is not only useful in embedded field, but also helpful for developing Linux application software and deepening the understanding of operating system, which can be described as killing two birds with one stone. As far as I know, at present, both Intel and Philip are doing embedded development of ARM+LINUX, while Fujitum is doing LINUX development on its own processor. At present, in the field of embedded Linux, it is particularly difficult to find people in the following aspects: one is to transplant Linux to a new model development version; Second, people who can write Linux drivers; Third, people who are familiar with Linux kernel reduction and optimization. The course series of embedded Linux in our college is: the required course of undergraduate operating system, then the optional course of Linux programming, and finally the optional course of embedded Linux system. At present, our college has a strong strength in Linux. Teacher Wei and Teacher Zhang are familiar with Linux development, while Teacher Jin and Teacher Tang are familiar with Linux system management.

The third category, Windows.

CE embedded operating system: Microsoft has also seen a huge embedded market, and MS is always the best. Although WinCE has only been published for a few years, it has occupied a large market share at present, especially in the occasions where PDA, mobile phone, display instrument and other interfaces require high requirements or the development speed is fast, WinCE is very popular at present (it is said that a company selling industrial computers sells boards so well that it is too late to cut WinCE for customers). At present, WinCE is mainly version 4.2 (. NET), the development platform is mainly WinCE Platform Builder. Sometimes, some upper-level applications are developed in the EVC environment. Because WinCE development is a familiar VC++ environment, students who have studied Windows programming in our college will not have much difficulty, which is why WinCE is easily accepted by people. The development environment is convenient and fast, and with the strong technical support of Microsoft, the development difficulty of WinCE is much lower than that of embedded Linux. WinCE is most suitable for development occasions that are eager to complete and don't want to take risks with embedded Linux (people looking for embedded Linux are not so easy to find). After all, companies can't try like students, and it is more important to ensure the success of development. According to different emphases, WinCE has two special versions, one is that the MS PocketPC operating system is dedicated to PDA (handheld computer), and the other is that the MS SmartPhone operating system is used for smart phones (mobile phones with PDA function), both of which belong to WinCE platform. In the PDA and mobile phone market, besides WinCE, there are other well-known PDA embedded operating systems, such as Palm OS (famous for its early appearance) and Symbian. But under the strong impact of WinCE, how long will Palm and Symbian have in the future? Our college may be the only college in China that offers a special course on Windows CE embedded operating system. The main reasons are as follows: There is a course on Windows programming in front of our college, and it is very convenient and natural for students to learn WinCE after learning VC++. By learning WinCE, they can also understand the general development process of embedded software, which is also suitable for students who are afraid of Linux. Obviously, embedded LINUX can never replace WinCE, and it is hard to say who will take a large share in the future. After all, many people are more willing to accept the platform of MS, just as governments around the world have been pushing LINUX for a long time, but how many users can you see actually using Linux on PCs? According to my observation, at present, LINUX has the highest voice on the embedded platform, but WinCE is actually used more. Embedded LINUX may be more of a company with long-term product planning, so as to reduce the cost in the long run;

Second, Microsoft Research Asia's support plan for WinCE courses in our college. We also hope that some students in our college can practice through interviews with Microsoft in the future. WinCE and multimedia (such as MPEG technology) are one of the more project areas that Microsoft Asia Institute of Engineering is currently doing, and they need people who are proficient in WinCE.

Summarize the course of embedded operating system. If you think you have a deep foundation, you can study hard and learn embedded Linux. If you think you have a good VC++ foundation and want to learn embedded development quickly, WinCE course in our college is the best choice.

(3) Other related software courses of embedded development.

If you are familiar with some major fields of embedded applications, such people are more popular with enterprises. The main related areas include:

A. Digital image compression technology: This is one of the most important and popular application fields of embedded systems. Mainly need to master MPEG encoding and decoding algorithm and technology, such as DVD, MP3, PDA, HDTV, set-top box, etc. all involve MPEG high-speed decoding. Therefore, our hospital has made an appointment with a doctor who can offer a course in digital image processing.

B communication protocol and programming technology: this includes traditional TCP/IP protocol and popular wireless communication protocol. First of all, most embedded devices are connected to the local area network or the Internet, so it is necessary to master the TCP/IP protocol and its programming first, which is the basic technology that needs to be mastered first. Secondly, wireless communication is the general trend at present, so it is also important to master the wireless communication protocol and programming. Knotless communication protocols include wireless LAN communication protocol 802. 1 1 series, Bluetooth, mobile communication (such as GPRS, GSM, CDMA, etc. ).

C. Network and information security technologies: such as encryption technology and digital certificate CA. Our college has elective courses in this field.

D.DSP technology: DSP is a digital signal.

Process digital signal processing means that DSP processor realizes digital signal processing algorithms through hardware, such as high-speed data acquisition, compression, decompression, communication and so on. Digital signal processing is a course for hardware majors such as electronics and communication, and it is best to understand software. At present, DSP talents are in short supply. If you have the foundation of courses such as signal and system and digital signal processing, it will be very helpful to learn the principle of MPEG encoding and decoding.

(4) Related hardware foundation of embedded development.

For students majoring in software engineering, it is important to engage in embedded software development, such as digital circuit, computer composition principle, embedded microprocessor structure and other hardware courses. In addition, basic software courses such as assembly language, C/C++, data structure and algorithm, especially operating system, are also very important. Our main purpose is to understand the working principle of hardware, but the focus should be on embedded software, especially operating system-level software, which will be our advantage.

Some of our graduate students are majoring in electronics and communication, and have a good foundation in analog circuits and single chip microcomputer, which is very suitable for learning embedded systems. Embedded itself is developed from single chip microcomputer, but single chip microcomputer has no OS, and now many embedded applications are becoming more and more complex, so that embedded operating system has to be introduced. In addition, in order to pursue higher signal processing speed, many companies now use hardware to implement some DSP algorithms, such as MPEG compression and decompression algorithms, which involves HDL digital circuit design technology and its FPGA/IP core implementation technology, and people in this field are scarce in the market at present.