Current location - Education and Training Encyclopedia - Education and training - What do embedded Linux system engineers learn?
What do embedded Linux system engineers learn?
Course arrangement Course introduction The first week mainly introduces the important concepts of C language in embedded development programming and the key and difficult points in programming skills. In the form of reviewing a series of lectures and case studies, the focus is on the knowledge including the structure of functions and programs, pointers, arrays and linked lists, and the use of library functions. In the second week, the basics of Linux operation and programming mainly introduce the basic commands and basic programming knowledge of Linux, including Linux file operation and directory operation commands, VI editor, GCC compiler, GDB debugger and Make project management tool. In the third week, C intensive programming training on Linux mainly includes integer algorithm training, recursive and stack programming training, bit operation training, pointer training, string training and common C library function programming interface practice, so as to strengthen students' understanding of basic programming development under Linux and their ability of coding and debugging. From the fourth week to the seventh week, the advanced programming and project development programming practice in Linux environment mainly includes system programming (signal/system call/pipeline /FIFO/ message queue/* * memory sharing, etc. ), file I/O programming (file descriptor/file read-write interface/atomic operation/blocking and non-blocking IO, etc. ), multi-task and multi-thread programming (process identification/user identification /fork and vfork/ multi-thread concepts) Master the development process of Socket programming under Linux, and be familiar with the call interface functions and related data structures of network programming, so that students can initially develop system programming on Linux. At the same time, combined with the previous learning content and programming technology, a team cooperation project is developed as a group, and the assessment content includes file I/O programming, multi-thread programming, network programming and project document writing. The architecture and programming practice of embedded processor in the eighth to ninth week of mid-term exam mainly introduces the architecture of ARM, MIPS and PowerPC and their basic programming knowledge, including instruction classification, addressing mode, instruction set, storage system, abnormal interrupt handling, assembly language and mixed programming of C\C++ and assembly language. At the same time, combined with the hardware design principle and basic hardware design flow of ARM embedded development board, the working principle and driving mechanism of various peripherals are analyzed, and a large-scale programming work on ARM development board is completed through hands-on practice. Week 10- 1 1 The basic and advanced application of embedded Linux mainly introduces the basic process and knowledge of embedded Linux development and application, including the basic concept and development process of embedded Linux, the working principle of Bootloader, kernel clipping configuration and cross-compilation, root file system making, network programming, graphical interface and database development. At the same time, independently complete an application programming work based on embedded Linux GUI. In week 12- 13, the driver theory and driver development practice of embedded Linux mainly introduce the driver development specifications on embedded Linux, including the concepts of device driver, character device driver, block device and network device, network card driver and common embedded device driver development. At the same time, two kinds of embedded device drivers are written independently, including debugging and loading of driver modules and writing of complete project development documents. In the week 14- 15, the development practice of embedded Linux project team mainly includes the design and implementation of a real and complete embedded project development process, involving various embedded Linux programming technologies such as data acquisition, network communication, graphical user interface display, embedded database storage system, etc. Students are required to establish the concept and process of enterprise project development mode of team development and collaborative work, strengthen their understanding of the compilation of project summary design documents and detailed design documents, and make full preparations for the cultivation of vocational skills and quality before employment. Graduation ceremony training objectives Mastering learning content Mastering three programming languages Mastering C++ language Mastering ARM assembly language Mastering two embedded Linux operating systems Mastering uCLinux Mastering two embedded real-time operating systems VxWorks Mastering uC/ OS-II Mastering three processor architectures: ARM architecture PowerPC, Samsung S3C24 1 0/ S3C44B0 Proficient in Intel XScale PXA255 Proficient in Philips LPC22xx Proficient in EP73 1 2 Master MIPS Godson, master two hardware design tools Candence PCB, master Protel, master two editing software under Linux VI, master EMACS, master two string communication tools HyperTerminal (Windows), master MiniCOM (Linux), and master three Flash programming tools Flash programmer (GUI). Familiar with JFlash programming software and principles, proficient in SJF series programming software and principles, proficient in two integrated development environments: ARM ADS 1.2, K-Develop IDE, a source code version management tool CVS, and the overall development process of embedded Linux. And GNU cross compiler use cross compiler -gcc/ G++ Proficient in Linux Makefile Organization Structure Proficient in Bootloader Boot Code u-Boot Proficient in RedBoot Proficient in Kernel Compilation Configuration Parameter Setting Proficient in Kernel Debugging Proficient in File System JFFS2 Proficient in NFS File System Proficient in ROMFS File System Proficient in EXT2 File System Proficient in YAFF File System Proficient in Setting Backup Driver LCD Device Driver Proficient in USB Device Driver Proficient in Network. Card device driver is proficient in embedded graphics system MiniGUI, QT/ embedded micro-win, embedded database system SQLLite is familiar with embedded application development, network communication application development, database storage application development, multimedia application development, graphical user interface development, Shell programming skills, explanation and mastery-it shows that the principles of the learned contents and tools have been deeply analyzed, the specific technical details of related content realization have been understood, and the advanced skills of using related tools have been mastered. Familiarity-shows that you can master the content and tools you have learned, master the basic concepts of related content, and skillfully use the common skills of related tools. Comprehension-shows that you have a general understanding of the content and tools you have learned, can distinguish the conceptual similarities and differences of related content, and can initially use related tools.