嵌入式Linux系统开发工程师就业实训

2019-07-12 20:49发布

嵌入式Linux系统开发工程师就业实训
2009年12月19日
  [b]嵌入式Linux系统开发工程师就业实训
  [/b]
  共分3个阶段4个月系统学习,学员可以根据自身具备的技能选择其中的部分或全部进行实训学习。其中第一阶段适合嵌入式Linux开发零基础学员,目的是掌握嵌入式Linux应用开发基本技能;第二阶段适合已经具备嵌入式Linux基本开发能力的学员,目的是掌握嵌入式Linux系统移植关键技术;第三阶段适合已经具备嵌入式Linux基本开发能力的学员,目的是掌握嵌入式Linux内核/驱动开发技术。
  
  
  
  第一阶段(5周)《嵌入式Linux应用开发》
  本阶段实训课程针对计算机、电子类相关专业,嵌入式Linux开发零基础学员量身设计,该课程是嵌入式Linux应用开发的入门课程,也是嵌入式Linux工程师必须要掌握的基本技能。本阶段的学习目标:
  1.掌握Linux下Vi/GCC/GDB/Makefile等常用开发工具
  2.掌握嵌入式Linux系统下的C开发
  3.掌握嵌入式Linux系统下的C++开发
  4.独立完成一个嵌入式Linux应用开发项目。
  课程名称
  具体内容安排
  Linux开发环境
  熟悉Linux系统的安装、常用命令、SHELL编程,掌握Linux下Vi/GCC/GDB/Makefile等常用开发工具,理解编译和链接的过程,区分静态链接/静态库与动态链接/动态库各自的优缺点。
  C语言的嵌入式开发强化
  深入学习嵌入式开发中应用C语言所需要掌握的重点和难点,包括指针(尤其是字符串指针、函数指针等疑难点)、内存分配(分清堆、栈和全局内存,理解堆、栈和栈帧的工作原理)、位运算、结构体和联合体等,并结合重要的数据结构知识,如链表、队列、树等来讲解C语言。熟悉Linux下所用的AT&T汇编语言
  Linux系统高级C编程
  掌握Linux系统环境中的高级C语言编程,包括进程与线程、进程间通信(管道、命名管道、共享内存、消息队列、信号等)、文件I/O编程、串口编程、网络编程(包括TCP/IP协议、socket编程、HTTP协议和WEB服务器编程等)。。
  C++语言的嵌入式开发强化
  掌握嵌入式开发中所需要掌握的C++的重点和难点,包括构造函数/析构函数与内存管理、继承与虚函数、C++对象模型、面向对象分析与设计(OOD)及设计模式基础知识等。
  项目开发实践
  独立完成一个嵌入式Linux应用开发项目,基于Linux 2.6平台,该项目在开课后提前布置给学员,综合了第一阶段学习内容中的各个要点,学员在学习过程中就可以陆续实现该项目。通过该项目的实现情况,可以衡量学员掌握嵌入式Linux应用开发的实际水平。
  第二阶段(6周)《嵌入式Linux系统移植》
  本阶段实训课程针对计算机、电子类相关专业,并且已经掌握第一阶段内容的学员,通过该课程学习使得学员能够掌握嵌入式Linux系统移植与开发的核心内容,。本阶段学习目标:
  1.掌握ARM体系结构,基于X86/ARM平台下的Linux内核升级
  2.掌握U-boot、Linux内核的嵌入式平台移植
  3.掌握根文件系统概念,学会移植Jffs2Cramfs/Yaffs文件系统。
  4.掌握移植Qt/Embedded GUI库的移植与嵌入式GUI编程
  5.掌握Android软件平台的移植与软件开发。
  6.独立完成一个实际移植项目,包括U-boot、kernel,根文件系统以及GUI库移植。
  时间
  具体内容安排
  ARM体系结构
  掌握ARM体系结构介绍及其基本编程方法ARM指令,包括ARM体系处理器结构,指令分类寄存器,寻址方式、汇编指令集及伪指令、存储系统、异常中断处理、汇编语言与C语言混合编程等知识。
  Bootloader移植与开发
  掌握如何移植U-boot到ARM平台,并掌握U-boot的具体工作原理与应用;同时通过学习Bootloader的工作原理,学习如何开发用于ARM的简单Bootloader。
  内核移植
  基于X86/ARM平台升级Linux内核,包括配置、编译、安装Linux内核。Linux内核配置,内核编译和安装Linux内核是嵌入式Linux系统移植工程师必须要掌握的基本技能。本课程通过实际操作使学员完全掌握升级Linux内核技能。移植Linux 2.6 内核到ARM平台。
  根文件系统移植
  根文件系统概念,移植Jffs2文件系统。根文件系统是嵌入式Linux的重要组成部分,Jffs2文件系统是被广泛应用于嵌入式Linux系统的一种文件系统。本课程不仅要求学员理解根文件系统的概念,而且要掌握移植Jffs2文件系统的方法。
  Qt/Embedded移植与开发
  掌握如何移植Qt/Embedded GUI库到ARM平台,深入学习应用Qt/Embedded进行嵌入式GUI开发的要点,包括信号与槽、对象模型、事件机制、国际化、进程间通信等,并应用Qt/Embedded完成一个嵌入式GUI开发的实践项目。Qt/Embedded是基于Qt的目前最流行的嵌入式GUI和应用程序开发的工具包,它可运行多种嵌入式设备上基于C++进行开发,主要运行在嵌入式Linux系统上,并且需要C++编译器的支持,并为嵌入式应用程序提供Qt的标准API。本课程要求学员能独立移植Qt/Embedded库到嵌入式Linux平台。
  Android移植与开发
  移植掌握Android软件平台的移植,并熟悉Android平台的框架、掌握Android平台编程的基本概念与要点,并开发基于Android的实践项目。Android 是Google开发的基于Linux平台的开源手机平台操作系统。,是目前最热门的嵌入式开发的研究领域,它包括操作系统、用户界面和应用程序等软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。Android平台是现在和将来手机操作系统的发展方向之一。 本课程要求学员能独立移植Android软件到嵌入式Linux平台。包括摩托罗拉、三星、LG、T-Mobile、中国移动等在内的各大厂商和运行商都正在展开Android的研发工作。
  项目开发实践第6-11周
  完成一个完整的实际移植项目,基于ARM9+Linux 2.6平台,包括U-boot、kernel,根文件系统以及GUI库移植。该项目在开课后提前布置给学员,学员在学习过程中就可以陆续实现该项目,通过该项目的实现情况,可以衡量学员掌握嵌入式Linux系统移植的实际水平。
  第三阶段(6周)《嵌入式Linux驱动/内核开发》
  本阶段实训课程针对计算机、电子类相关专业,已经掌握嵌入式Linux应用开发以及熟悉嵌入式Linux系统移植的学生。通过该课程学习,应掌握嵌入式Linux内核/驱动开发的底层技术。本阶段的学习目标:
  1.掌握基于Linux内核驱动/内核开发的基础知识的打印调试技术和KDB调试技术
  2.掌握嵌入式Linux字符设备驱动开发
  3.掌握嵌入式Linux块设备驱动开发
  4.掌握嵌入式Linux网络设备驱动开发
  5.掌握嵌入式Linux下Framebuffer驱动开发
  6.独立完成一个嵌入式Linux MTD设备驱动开发项目。
  时间
  具体内容安排
  Linux驱动/内核开发基础
  掌握Linux内核开发的基础知识,包括内核/驱动开发的特点(如不能访问C库、没有内存保护、同步与并发等),基本的内核调试技术(printk, oops, gdb/kdb/kgdb等),基于Linux内核的打印调试技术和KDB调试技术。Linux内核调试是内核/驱动开发人员必须要掌握的基本技能。本课程要求学员熟练Linux内核的多种调试技术模块的开发、编译、加载及卸载,Linux设备驱动模型,驱动程序与硬件、内核(通过虚拟文件系统)及应用程序(通过系统调用)如何交互。
  字符设备驱动开发
  基于嵌入式Linux2.6内核的字符设备驱动开发,针对具体的实际应用字符设备驱动进行分析学习。本课程要求学员掌握Linux字符设备驱动开发的基本知识,能够独立写字符设备驱动程序。
  块设备驱动开发
  基于嵌入式Linux2.6内核的块设备驱动开发,针对具体的实际应用块设备驱动进行分析学习。本课程要求学员掌握Linux块设备驱动开发的基本知识,能够独立编写块设备驱动程序。
  网络设备驱动开发
  基于嵌入式Linux2.6内核的网络设备驱动开发,针对具体的实际应用网卡设备驱动进行分析学习。本课程要求学员掌握Linux网络设备驱动开发的基本知识,能够独立编写网络设备驱动程序。
  Framebuffer驱动开发
  嵌入式Linux下Framebuffer驱动开发,针对嵌入式设备上的LCD驱动进行分析学习。本课程要求学员掌握Linux的Framebuffer设备驱动开发的基本知识,能够独立编写LCD显示设备驱动程序。
  项目开发实践第12-17周
  完成一个实际驱动开发项目,基于ARM9+Linux 2.6平台,实现MMC/SD卡驱动程序。该项目在开课后提前布置给学员,学员在学习过程中就可以陆续实现该项目,通过该项目的实现情况,可以衡量学员掌握嵌入式Linux内核/驱动开发的实际水平。