1, embedded linux upper application, including GUI development of QT.
2. The development of embedded linux system.
3. Embedded linux driver development At present, the main operating systems for embedded systems are LINUX, WINCE, VxWorks, etc.
Linux is open source and free, and the source code is open, which is more suitable for us to learn embedded systems. So if you teach yourself, you can try the following route:
(1)C language is the strongest of all programming languages, and the programming of single chip microcomputer, DSP and various chips similar to ARM can be completed in C language), so you must master it very skillfully.
Recommended books: Tan Haoqiang's is very good. The classic textbook Programming Language was written by foreigners and also translated into Chinese.
(2) The principle of operating system is necessary. It doesn't matter if you graduated from computer science. If you are not a computer major, you must find a relatively simple book on computer principles, and explain the basic issues such as "process", "thread" and "system scheduling" clearly.
(3)Linux operating system is written in C language, so you should also learn Linux programming first. Only when you can apply it can you have a deeper understanding of the essence of its kernel.
Recommended books: advanced programming in UNIX environment (second edition)
(4) Understand the architecture, principle and assembly instructions of arm. In embedded development, we seldom write assembly, but the minimum requirement is to be able to understand ARM assembly.
(5) When porting the system, you need to start with the lowest bootloader, and then port the kernel and file system. However, this part of the migration relies heavily on hardware, and the configuration steps are complicated, so there is not much detailed information.
(6) Promote development
Linux driver design is not only a challenging field, but also a profound content.
The essence of linux driver design belongs to the category of linux kernel programming, so there are requirements for linux kernel and kernel programming. Before studying, you should know the composition of the linux kernel, because each part can be expanded into a thick book if it is studied in detail. The above is just a general framework, and many things will be involved in the actual development, such as cross-compilation, makefile, shell scripts and so on. Therefore, it takes a long period to learn embedded systems, and the threshold is high. Self-study requires strong learning ability and professional skills. As long as you can persist, you will succeed!