【课程详情】
实训目标快速掌握嵌入式C语言基储ARM体系架构及其应用、Linux操作系统及其驱动与应用程序设计、嵌入式GUIQT/E应用程序设计,掌握嵌入式linux项目的完整开发流,培养良好的编程习惯,为从事嵌入式开发打好技术基矗通过嵌入式5个月的强化学习,学员可以掌握嵌入式领域带操作系统和不带操作系统、应用开发和驱动开发的常规就业技能,从而从容就业。实训对象针对有一定C语言基础,嵌入式、计算机、电子、自动化等相关专业,大学专科及专科以上学历的在校学生及嵌入式开发爱好者。实训教材《ARM体系结构》、《嵌入式Linux应用程序设计》、《嵌入式Linux驱动程序设计》、《C++程序设计》、《QT程序设计》课程安排个项目:实践项目数码相框项目介绍产品介绍数码相框作为一种时尚的消费类电子产品,正在逐渐走进人们的生活。当人们把一个精致的数码相框放置在书房的桌案上,或者安装到卧室的墙壁上,一边欣赏一家人欢聚的照片,或者是外出旅游时拍摄的美丽的风景,一边欣赏美妙动听的音乐,一定感觉非常的惬意和舒心。数码相框就是这样一类小产品,它带给人们的视觉享受的同时,也为人们的生活增添了不少的乐趣。·功能描述(1)支持自动浏览图片功能和手动浏览图片功能。(2)支持在浏览图片的同时播放背景音乐。(3)支持BMP,JPEG,TIFF,GIF格式的图片。(4)操作简单,方便该项目可划分为如下几个模块:ARMBoot模块、LCD驱动模块、Timer驱动模块、用户接口模块、JPEG图象处理模块涉及技术ARMBoot,UART,Key,Timer,I2C,IIS,中断、DMA、TouchScreen、FTLCD驱动,图象放大、图象缩小处理。开发工具ADS1.2开发环境,Linux+ARM+gcc交叉工具,SourceInsight3.5,DNW,MINICOM,CVS服务器,BUG跟踪工具。第二个项目实践项目Linux下的网络聊天系统项目介绍产品介绍在当前高节奏的办公自动化情况下,传统的公司员工沟通方式机制已经满足不到公司高速发展的要求。市场上常见的聊天工具(如腾讯的QQ)普遍满足不到公司的需求:要求公司内部PC必须连接上以太网,一是增加成本,二是风险管理,三是记录备分依赖于运营商;同时软件的使用习惯不符合业务需要,例如聊天记录的备份。针对于此业务需求,专门开发了此聊天系统以适应公司的业务需求要求。功能描述·系统参数管理:系统参数:服务端IP、服务端口等,是系统运行的必要参数,唯有拥有此修改权限的管理员才能修改。·用户/分组管理:分组,可以理解简单为公司的部门。一个分组下可以建议子分组,但每个分组下,子分组个数与当前组下人员个数总和(不含分组下人员数)不超过65535。·群管理:群与分组是不一样的,群是由员工发起的,分组是由管理员来管理的。群主要是应用于小组讨论或是兴趣组讨论,可以是临时,也可以是永久的。·聊天记录管理:关于聊天记录,有群聊天记录,也有个人的聊天记录。·日志维护管理:运行记录,当前记录了用户的连接历史记录。并对日志进行查寻、打英删除等操作·聊天:支持私聊、群聊、广播信息涉及技术GCC编译器、GDB调试器、项目管理工具makefile文件I/O编程、进程控制与通讯、多线程编程、网络编程开发工具GCC,GDB,MAKEFILE,VI第三个项目实践项目驱动模块开发项目介绍产品介绍驱动程序开发是嵌入式Linux项目中不可缺少的一部分内容,开发出高质量的驱动程序是项目成功的关键。本项目旨在培养具备开发Linux下驱动程序的人才,采用理论教学与实验相结合的方式,系统地介绍Linux下设备驱动程序开发过程。通过本项目的学习与实践,学员可以掌握Linux下字符设备、块设备、网络设备嵌入式Linux的驱动开发。功能描述·LINUX字符设备驱动程序开发LINUX字符设备驱动基础字符设备驱动程序实现框架与典型驱动分析用户空间与内核空间的数据传输同步、互斥、阻塞、睡眠机制。·设备驱动中常用的内核机制Poll和select操作异步通知机制1inux内核中断子系统中断处理程序编写驱动程序上/下半部处理与延缓执行机制内核定时器与延迟机制内核内存管理机制。·LINUX块设备驱动程序开发块设备及其驱动的特点块设备驱动程序中两个关键结构体GEN_DISK与REQUEST块设备驱动程序的注册与请求处理。·LINUX网络设备驱动程序开发网络设备驱动的结构NET_DEVICE结构分析数据包传送与接收网络驱动的中断处理网络设备驱动程序的基本实现涉及技术同步、互斥、阻塞、睡眠机制、Poll和select操作、异步通知机制、中断处理开发工具GCC,MAKEFILE。第四个项目实训项目便携式多媒体播放器项目介绍本系统是一款基于Linux平台的手持音频/视频系统,支持多种格式的音视频文件播放,并支持对jpeg、gif、png、bmp格式图片的浏览、缩放和裁减。系统总体结构·音视频数据流解析模块·DSP信号处理模块(编解码模块)·数字视频输入,立体声音频编译码器·外置存储器管理模块·系统管理模块技术要求对于本项目的开发者有以下技术要求:·熟悉ARM+Linux嵌入式编程环境。·熟悉Linux应用程序的开发。·熟悉音频处理技术·熟悉视频处理技术功能模块音视频数据流解析模块,DSP信号处理模块(编解码模块),数字视频输入立体声音频编译码器,外置存储器管理模块,外置存储器管理模块,系统管理模块。涉及软硬件软件:C/C++语言、Qt4SDK,Linux内核、Linux音频驱动,按键驱动,触摸屏驱动等。硬件:S3C2440,NANDFLASH,NORFLASH,SDRAM,TFTLCD、TouchScreen、Framebuffer采用技术GUI(QTE开发包)设计,音视频数据编解码技术,信号处理,DSP优化开发平台软件平台:Linux(2.6以上内核版本)硬件平台:ARM9+DSP实训步骤阶段培训企业编码规范,公司规章制度。嵌入式系统概述,熟悉s3c2440开发板ARM体系结构、ARM指令、S3C2440启动代码分析、ARMC汇编语言的混合编程、嵌入式C编程掌握ARM接口技术以及对常见外围设备的控制,熟悉运用ARM中断处理、DMA传输功能及I2C、IIS、TFTLCD等各种接口总线协议,开发各模块功能。第二阶段C语言基础:C基础:基本语法、函数、指针数据结构:结构体、线性表、栈、队列、二叉树、排序、查找第三阶段LINUX操作系统基础:Linux基础命令、SHELL程序设计、Linux下的C编程基储GCC编译器使用、GDB调试器、项目管理工具makefile、文件I/O编程、进程控制开发,进程间通讯、多线程编程。第四阶段移植:BootLoader移植、LINUX内核移植、LINUX文件系统制作、系统启动过程驱动:LINUX设备驱动简介,字符设备驱动,块设备驱动,网络设备驱动。第五阶段C++基础:基本语法、类、重载,对象成员与静态成员、字符串、继承、虚函数与多态QT编程技术:掌握QT安装、移植,QT中键盘,鼠标事件的处理、对话框的创建,及图形绘制。第六阶段项目需求分析:项目功能分析、UML需求建模、形成需求设计文档项目概要设计:对需求进行抽象、模块化设计、UML模块建模、形成概要设计文档项目详细设计:模块化代码实现、代码白盒测试、形成详细设计文档、白盒测试文档项目功能测试、验收:形成黑盒测试文档、项目软件使用手册与维护手册第七阶段代码编写和测试第八阶段测试文档、用户手册;项目评审、发布总览在整个实训方案中,严格按照实际的软件公司项目开发流程运作,并严格执行软件公司的规章制度以软件开发质量以及产品质量;整个开发过程由资深工程师进行跟踪指导以达到软件公司所需各层次人才标准要求实训组织结构项目组一个项目组一般由10-12名实习生组成,按照实训方案的要求完成实训工作任务。项目经理项目经理由万策智业从公司开发团队中选取项目经验丰富并且沟通表达能力强的项目经理、系统架构师或高级工程师来担任。项目经理负责在实践过程中对实习生的各种技术问题进行辅导并监督项目组的实施过程。执行经理实训基地为每个实习生提供施展自己才能的舞台,执行经理由实习生通过公开、公平、公正的方式竞选,再由实习生无记名投票方式产生,负责整个项目的开发计划制定、调整、资源分配、进度管理、沟通、协调管理等工作。执行经理向项目经理负责。行政经理行政经理由公司签订劳动合同的员工顾问担任,负责监督和协调整个实训项目按照实训方案顺利执行,并负责实习生的软、硬件工作环境,为实习生提供资源,同时监督实习生遵守实训纪律。项目角色构成项目成员的角色由实习生员根据自己的技能特点确定,一般每个项目组包括执行经理、系统架构师、编码人员、数据库设计员、界面设计员、配置管理员和测试人员和实施人员。项目经理根据项目具体情况,将上述实训角色定义在各自项目中,在项目组中每个成员都必须参与编码,另外还必须担任其中一种或多种角色,并在不同的项目中进行轮换。实习生在项目经理指导下按照规范的开发过程进行软件项目的开发,开展所有的项目管理与工程活动,每个里程碑阶段都要开展商业软件模式的阶段评审,评审一般由3位以上的各个专业软件工程师组成评审委员会,根据项目组出现的问题,提出改进和修改意见,并在后续工作中进行监督,实现整个项目的开发工作。实训时间及地点实训时间:5个月实训地点:厦门软件园万策实训软件基地实训部分知识点部份ARM体系及应用1嵌入式定义2嵌入式系统组成2.1嵌入式系统硬件基本结构2.2嵌入式系统软件体系结构3嵌入式系统设计流程4开发板硬件构成4.1硬件资源分配5熟悉开发板原理图6功能体验7ARM体系7.1ARM处理器的工作状态7.2ARM存储器格式7.3ARM处理器的工作模式7.4ARM寄存器7.5ARM异常处理7.6ARM寻址方式8ARM指令集,伪指令9ARM汇编程序设计10ATPCS规则11ARM启动代码实战12ARM应用编程12.1GPIO接口12.2UART接口12.3按键接口12.4中断接口12.5DMA接口12.6Timer接口12.7I2C接口12.8LCD接口12.9I2S接口第二部分C语言基础(CLanguageBasic)13、C语言程序结构14、数据类型、操作符和表达式14.1、标识符和关键字14.2、基本数据类型14.3、常量14.4、变量14.5、操作符14.6、表达式15、语句、控制流15.1break和continue区别15.2if和switch分支15.3do-while循环while循环15.4for循环16、函数16.1函数定义16.2函数原型16.3函数调用16.4递归函数17、预处理命令18、结构、联合、枚举和位域19、数组和字符串20、指针20.1指针声明20.2取址操作符20.3指针表达式与指针算法20.4指针与函数20.5传值与传址20.6指向数组的指针20.7指向指针的指针20.8指向函数的指针20、标准输入与输出20、文件处理第三部分数据结构和算法21、结构体、线性表22、栈、队列、串23、数组、广义表24、二叉排序树的实现及应用25、查找(Search)26、排序(Sort)第四部分嵌入式LINUX操作系统基础27、Linux操作系统的基本知识28、Linux系统的安装29、Linux常用命令29.1用户系统相关命令29.2文件目录相关命令29.3压缩打包相关命令29.4网络相关命令30、Vi等编辑工具使用31、Linux系统常用服务配制32、SHELL程序设计33、正规表达式34、SHELL编程实践第五部分嵌入式LINUX程序设计35、LINUX下的C编程基础36、GCC、GDB、Make工程管理器的使用37、文件I/O编程38、进程控制开发(创建、控制、守护等)39、进程间通讯(管道、信号、共享内存、消息队列、信号量等)40、多线程编程(创建、属性、访问控制等41、网络编程(TCP/IP协议、socket编程、网络高级程)第六部分ARM+Linux开发环境搭建及系统移植42、ARM处理器及S3C2440开发板介绍43、BootLoader移植44、U-BOOT的启动过程及代码分析45、U-BOOT常用命令介绍46、U-BOOT的Makefile综合分析47、添加U-BOOT命令48、Linux内核移植49、Linux内核的目录50、Linux内核配置51、KbuildMakefile52、Linux内核启动过程53、Linux文件系统制作54、文件系统介绍55、构建根文件系统56、BusyBox介绍57、文件系统启动过程第七部分ARM+Linux驱动程序设计58LINUX字符设备驱动基础59字符设备驱动程序实现框架60用户空间与内核空间的数据传输61同步、互斥、阻塞、睡眠机制62Poll和select操作,异步通知机制63中断处理程序编写,驱动程序上/下半部处理与延缓执行机制,64内核定时器与延迟机制65内核内存管理机制66块设备及其驱动的特点67块设备驱动程序关键结构体GEN_DISK与REQUEST68块设备驱动程序的注册与请求处理。69网络设备驱动的结构70NET_DEVICE结构分析71数据包传送与接收72网络驱动的中断处理第八部分C++语言基础73、面向对象编程的特性(FeaturesofObjectOrientedProgramming)73.1封装(Encapsulation)73.2数据抽象(DataAbstraction)73.3继承(Inheritance)73.4多态(Polymorphism)73.10多重继承(MultipleInheritance)74、对象和类(C++ObjectsandClasses)74.1C++对象模型(TheC++ObjectModel)74.2C++类(TheC++Class)74.3数据成员(DataMembers)74.4成员函数(MemberFunctions)74.4构造函数和析构函数(ConstructorsandDestructors)74.5赋值操作符(AssignmentOperators)74.6成员访问控制(MembersAccessControl)74.7类模板(TemplateofClass)75、派生类(DerivedClasses)75.1基类与继承类(BaseClassandInheritanceClass)75.2虚拟函数与纯虚拟函数(VirtualFunctionandPureVirtualFunction)75.3抽象类(AbstractClass)75.4重载与重写(OverloadandOverride)76、例外处理(Exceptionhandling)77、C++标准库(StandardLibrary)第九部分QT程序设计78、Qt编译和安装79、Qt入门80、创建对话框、主窗口及其应用编程81、创建自定义部件82、布局管理器83、事件处理84、2D和3D图形的绘制85、容器类86、输入与输出87、Qt多线程88、Qt多进程89、Qt网络编程
免责声明:本站部分内容来自互联网收集整合,目的在于信息传递与分享,并不代表本网站观点,本站不为其版权负责。如侵犯了您的权益,请来电或致函告之,本站将及时给予删除等相关处理。
预约报名 Booking Registration
推荐课程 Related courses
扫一扫
获取更多福利