最近几年,几乎所有的IT企业对应届毕业生都有抱怨:动手能力太差,编程水平低下。大学期间,老师授课以理论为主,学生缺少各种实践。这造成很多学生就业难;学生找不到工作,而企业招不到合适的人!本课程不仅系统的梳理了一遍工作中常用的知识,更是通过大量编码实践,快速的提高了学生的整体编程水平,使之达到了企业的用人要求。智博杰嵌入式linux长期就业班9月底开班,欢迎报名◆授课特点本中心采用的是理论与实践交叉进行的教学方式;ÿ天的课程都是理论-实践-理论-实践......这样交叉进行。所有的课程设置,都是以实际软件开发中经常用到的,非常系统。ÿ天课后,老师都会布置练习题;ÿ门课程结束,都会有一个项目实训和考试。ÿ天晚上,都会安排老师值班,为学生解答疑难。◆课程设置第一阶段嵌入式Linux开发基础基础(32课时)Linux安装配置;Linux常用命令、简单shell编程;常用服务器配置;GCC编译、GDB调试、MAKE编写第二阶段C语言基础编程和高级编程(160课时)C语言基础;强化数组、指针、函数,从内存操作的本质上讲解它们。实际工作中结构、联合、文件操作的使用方式;高级宏定义和条件编译的各种用法;λ运算。算法:多种链表、多种排序、多种二叉树、动态规划分析、散列表、基本加密算法。高质量c/c++编程,企业级编码规范介绍。第三阶段Linux系统编程(96课时)Linux操作系统的各种特征、进程和线程的状态变迁、调度、并发;信号量3个代表性问题;文件IO操作;静态库和动态库的创建和使用;多进程、多线程、进程间通信IPC开发;多进程、多线程的并发管理第四阶段C++与QT编程(120课时)主要训练面向对象的编程思想。类、构造函数、析构函数;成员权限控制;继承和多态;静态成员、友元和运算符重载;模板和STL原理、使用。Qt项目的建立、图形界面开发、常用类使用、界面与后台关联等第五阶段Linux网络编程与3G(120课时)Linux网络协议模型,使用抓包工具抓取数据包分析ÿ一层的协议;常用网络编程函数send、recv、accept、select等;若干实际的网络开发案例分析,如:Tftp协议实现、Http协议实现等第六阶段ARM原理及应用(24课时)ARM基本概念、体系结构;ADS集成开发环境;ARM汇编指令集;ARM协处理器、MMU等第七阶段Bootloader与Linux内核开发(32课时)理解Bootloader的原理和功能;了解u-boot启动原理和流程,能进行不同平台的移植。学会Linux内核编译方法,学会内核裁剪。建立嵌入式开发环境,学会Tiny6410开发板的使用和开发。第八阶段Linux驱动开发(56课时)Linux内核模块的添加、删除等操作;编写字符驱动;内核级并发控制;IO阻塞与非阻塞;中断处理,上半部和底半部;内核内存的分配,IO端口和IO内存;块设备驱动;MTD开发等第九阶段就业指导及工作推荐(20课时)IT发展方向讲解;简历指导;常见面试问题指导;工作推荐,安排面试嵌入式ARMlinux驱动开发全程就业班入学要求:理工科类专科(包括专科)以上学历,有C语言基础,喜欢并有志投身于IT事业。课程大纲:教学大纲第一阶段Linux基础学习编号课程内容课时安排(时)1概述与规划22Linux与Ubunt0.53Ubuntu安装与配置1.54Ubuntu体验25Linux系统补充知识16X-Windows介绍17Ubuntu桌面环境及设置18Ubuntu添加删除程序及软件包管理19Shell环境基础及设置110Vi/Vim编辑器111文件与目录管理212Ubuntu文件属性与权限213压缩命令和查找系统214硬盘管理215用户管理216进程管理及作业调度217Shell高级应用及Shell脚本218综合练习219嵌入式Linux开发环境2第二阶段ARM驱动编程编号课程安排课时安排(时)1熟悉ARM处理器22ARM体系结构43ARM指令系统44ARM编程技术45ADS1.2操作范例26ARM映像文件及分散加载27初始化代码(Bootloader)分析与研究28嵌入式C语言复习29GPIO接口410存储控制器411内存管理单元MMU212NANDFlash控制器413NORFlash的访问414中断体系结构215系统时钟和定时器216通用异步收发器UART217IIC接口218LCD控制器219ADC和触摸屏的接口220RTC实时时钟221DMA访问422IIS串行音频接口423相机接口CAMIF4中期实践项目1S3C2440核心板设计2数码相框3电子复读机4音乐播放器5自带项目第三阶段嵌入式ARMlinux内核驱动开发编号课程安排课时安排(时)1Linux基础复习42搭建嵌入式ARMLinux开发环境63Kernel开发初步24模块编程25字符设备驱动开发初步66内存管理47嵌入式QT开发28中断59调试技术210时间管理211Linux设备模型412平台类总线设备驱动213udev&misc214wdt215触摸屏驱动216input子系统及tslib移植217LCD驱动开发618移植U-Boot219移植Linux内核220SD卡驱动程序移植221USB驱动程序移植2后期实践项目1MP42网络摄像机3自带项目整个课程的学时数=理论169学时+实践学时=300个学时(注:总的学时数会在300上下浮动,以便于授课老师根据每个班的不同情况适当延长或缩短实践时间)。第一阶段第二阶段第三阶段第四阶段Linux核心C/C++编程核心ARM体系结构嵌入式Linux高级编程Linux基础Linux核心命令LinuxShell编程标准C编程数据结构UC高级编程数据库及SQL标准C++编程UQT高级编程ARM处理器编程ARM硬件接口开发嵌入式Linux内核编程嵌入式Linux驱动编程系统移植和部署嵌入式应用开发课程目标通过本课程的系统学习,可以使学员由浅入深地对嵌入式Linux系统全面学习,能够独立胜任嵌入式Linux应用开发、系统开发等多方面工作。课程目标包括:1、精通嵌入式C语言高级编程2、精通Linux操作系统使用3、精通Linux系统基础编程4、了解基于QT的GUI开发5、熟悉ARM体系结构6、熟悉嵌入式Linux内核裁减移植及Bootloader启动过程7、掌握嵌入式Linux平台搭建8、熟悉嵌入式Linux驱动开发9、独立完成Mplayer项目开发10、掌握嵌入式Linux实际项目案例开发流程第一阶段:嵌入式C高级编程本期目标:在嵌入式领域中大部分低层开发,都会用到C语言。C语言简洁、紧凑、使用方便灵活加上GNU在实际项目开发中的扩展,使得C语言在整个嵌入式开发过程中起着至关重要的作用。更重要的是在嵌入式平台下可移植性比较强。一个精通C语言程序设计的程序员,可以很容易地进入Linux、WinCE、Vxworks、uc/os等嵌入式操作系统下的软件开发工作。本阶段学习目标是掌握C语言基本知识、巩固C编程语法基础,以及深入C语言高级编程,为将来的编程工作打下坚实的基础。序号课程名称课程内容掌握要求1嵌入式C语言高级编程C语言是嵌入式领域最重要也是最主要的编程语言,本课程将在学员C语言基础知识之上,通过大量编程实例重点讲解C语言的基础编程以及高级编程知识,包括常用函数与程序结构、字符串操作、指针、数组、结构体、宏、枚举、常用算法、库函数、文件的使用等知识。另外,本节还重点讲解数据结构的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、常用查找算法等内容的应用与C语言实现。各知识点都通过一个个实例,使理解更加深入。精通2项目实战——歌词解析器本项目在C语言阶段是非常具有代表性的,通过本项目对C语言的重点知识灵活运用,完成lrc格式歌词的文件读取、解析、存入链表等,并通过屏幕与歌曲同步实时显示。通过该项目能熟练掌握C语言基本数据结构,培养良好的编程规范。精通第二阶段:嵌入式Linux系统开发本期目标:嵌入式Linux应用开发和系统开发是嵌入式Linux中最重要的一部分,也是企业人才需求最广的一部分。本期学习的主要目标是精通嵌入式Linux下的程序设计,熟练掌握嵌入式Linux的开发环境,深刻体会整个嵌入式Linux项目开发流程,强化学员对Linux应用开发的能力,了解QTGUI开发。能够独立完成Mplayer应用开发项目。在工作中能很快适应项目中所涉及到的多任务编程,并且能快速转移到其它操作系统应用开发。序号课程名称课程内容掌握要求3Linux操作系统应用开发本课程主要讲解Linux操作系统的概念和安装方法。详细介绍Linux下的目录结构、基本命令、管理配置和编辑器,包括VI编辑器,GCC编译器,GDB调试器和Make项目管理工具以及Makefile、shell脚本编写等知识。并进行嵌入式开发环境的搭建。精通4嵌入式Linux高级系统编程本课程从系统调用开始,重点讲解标准I/O库,Linux多任务编程中的多进程和多线程,以及进程间通信、线程间通信、管道、消息队列、信号等重要知识。最后讲解基于s3c2440实验仪的GPIO,让学员与实际应用相联系。精通5项目实战——Mplayer播放器利用TFT图形库,在不带GUI的情况下自己实现MplayerUI界面的设计。实现Mplayer播放、暂停、上一首、下一首、静音、播放列表等功能,该项目中涉及到多进程、多线程以及进行间通信,重定向等系统编程知识,是对前面所学知识点的强化和提升。精通6基于QT的GUI开发QT具有跨平台、面向对象、丰富API、支持2D/3D渲染、支持XML、多国语等强大功能,在嵌入式领域的GUI开发中得到了广范的应用,在本阶段的课程中将了解到基于QT的GUI开发、并移植QT应用程序到S3c2440平台。熟悉第三阶段:嵌入式Linux设备驱动开发本期目标:驱动程序设计是嵌入式Linux开发工作中重要的一部分,也是比较困难的一部分。需要熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,需要考虑系统对设备的并发操作,熟悉所开发硬件的工作原理。具备ARM硬件接口的基础知识,熟悉ARM处理器S3c2440各资源、掌握Linux设备驱动原理框架,了解工程中常见Linux高级字符设备驱动开发。在工作中能独立胜任底层驱动开发。序号课程名称课程内容掌握要求7ARM体系结构ARM处理器在全球范围内,占据了低功耗、低成本和高性能的嵌入式系统应用领域的领先地位。课程主要以S3c2440为主,介绍其系统资源,如IO、时钟电源、中断、键盘扫描、定时器、AD、触模屏、LCD等,为熟悉Linux设备驱动开发打好基础。8ARMLinux设备驱动开发掌握Linux内核模块编程,用户态与内核态数据交换,掌握Linux操作系统下驱动原理,重点讲解嵌入式Linux下常用字符设备驱动的编写方法,熟悉字符设备驱动框架,能独立完成常见Linux设备驱动开发。掌握9嵌入式Linux驱动高级开发了解Linux设备驱动模型、并发与竞态、Linux驱动中的阻塞与非阻塞,为应用层提供具有高内聚低偶合的健壮底层代码接口。熟悉第四阶段:嵌入式Linux平台开发及Android平台搭建本期目标:Android是基于Linux平台的开源手机操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件,目前它的应用不再局限于移动终端,还包括数据电视、机顶盒、PDA等消费类电子产品。该阶段让学员掌握如何从零开始搭建嵌入式Linux开发环境,熟悉Bootloader启动过程,了解Android操作系统开发流程。由于Android操作系统具有开源稳定等优势,它的应用领域还在不断扩张。序号课程名称课程内容掌握要求10嵌入式Linux平台架构本课程将使学员掌握从零开始搭建嵌入式Linux运行环境,包括内核裁减、内核移植、交叉编译、内核调试、Bootloader编写、根文件系统制作以及向内核中添加自己的模块,并在s3c2440实验仪上运行自己制作