您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 软件工程师嵌入式高级培训.
本课程将C++和嵌入式有机地结合起来,培训内容包括理论知识强化、实际案例训练、企业项目实战等内容,让学生扎实掌握C++和嵌入式编程的各项关键技术,获得C++和嵌入式软件开发丰富的项目经验,为学员高质量高薪就业打下扎实的基础。C/C++嵌入式高级软件工程师教学大纲由资深C++嵌入式领域专家根据嵌入式系统的设计原则和市场要求设计和制定,实践证明本教学大纲科学合理,能够快速培养实用的C++嵌入式工程师。通过培训可以获得扎实的开发技能,积累至少相当二年的工作开发经验。本课程系统介绍了C++开发环境和IDE介绍、C语言、C++/OOP程序设计、GP和标准模板类库(STL)、Windows编程、VisualC++/MFC程序设计、网络编程技术、数据库编程技术、Unix/Linux编程、面向对象的系统分析与设计方法、计算机系统的基本原理,操作系统、接口技术、嵌入式系统开发详解等基本知识。通过这些知识的学习,让学生掌握C++的关键技术和嵌入式系统开发的基本原理和设计方法,并通过实际项目的开发,让学生掌握嵌入式系统开发的整个流程,操作系统移植的基本思想、移植原则,应用程序及驱动程序的开发和调式方法。由有关专家、学者和优秀的一线资深C++嵌入式工程师,集合国际先进嵌入式技术和理论,对嵌入式开发过程进行综合分析,结合最新的软件开发环境,进行实际案例的培训;实战训练贯穿于全部课程中,学员学练结合、学以致用,以培养实际工作能力,快速获得项目经验.第1部分:Linux操作系统基础入门部分:第1天Linux操作系统基础1.介绍Linux操作系统的基本知识,包括发展概述,目前应用情况,技术优势和特点等。2.Linux系统的安装准备,Linux文件系统。3.实验内容:安装Linux操作系统第2天Linux基本命令1、Linux常用操作命令,包括用户系统相关命令,文件目录相关命令,压缩打包相关命令,网络相关命令等。2、Linux启动过程详解3、Linux系统服务4、实验内容:Linux系统常用命令操作第3天Linux下C编程基础1.C语言编程概述2.Vi等编辑工具使用3.Gcc和GDB的使用4.Make工程管理器5.实验内容:Vi使用,用GDB调试程序,编写简单的Makefile第2部分C/C++编程编程语言简介、第4天C/C++语言简介、数据类型和操作符语言简介1.软件开发流程和方法,行业现状2.c/c++语言起源和历史发展3.c/c++语言的特点和应用领域4.c++集成开发环境介绍。讲解vc++IDE环境的使用,包括编译,链接,运行和调试。5.学习c/c++程序设计的方法6.c/c++简单程序的结构7.计算机处理数据的抽象层次8.c++的基本数据类型的处理9.数据溢出的结果和应对方法10.C++的算术操作符11.自动类型转换12.强制类型转换第5天复合类型1.数组2.字符串3.string类4.结构5.共同体6.枚举第6天指针1.指针2.内存分配3.指针、数组、字符串之间的关系4.指针算术5.字符串的指针操作。6.多维数组和指针访问。7.空指针的意义。8.指针练习。第7天循环和关系表达式1.for循环2.关系表达式3.while循环4.dowhile循环5.嵌套循环6.多维数组7.控制台输入输出第8天分支语句和逻辑操作符1.if语句2.逻辑表达式3.?:操作符4.switch语句5.break6.continue7.return8.简单文件输入输出第9天函数1.函数原型2.函数参数和按值传递3.参数为数组(一维和多维)的函数4.参数为指针的函数5.参数和返回类型维结构的函数6.处理string对象的函数7.函数指针8.内联函数和宏的使用9.引用变量10.函数重载的机制11.函数模板12.c++程序的内存模型和几种内存的分配方式13.结构化程序设计的原则14.源文件和头文件的物理布局以及对程序模块划分和程序编译的影响15.静态变量16.名称空间第10天类(1))1.面向过程编程和面向对象编程的区别2.面向对象和程序设计语言的关系3.类的概念和抽象层次4.接口的概念和客户/服务器模型5.类的定义和数据封装6.构造函数和析构函数7.this指针和对象数组第11天类(2))1.指针类成员以及动态分配内存的初始化2.含指针成员的类的=操作符重载和拷贝构造函数的定义3.按成员拷贝(bit-wisecopy)和deepcopy的区别4.什么时候需要考虑深拷贝(deepcopy)5.操作符重载6.友元类和友元函数7.类的自动转换和强制类型转换第12天继承1.继承和派生的概念2.继承的访问控制和继承方式3.构造函数成员初始化列表4.基类和派生类对象的构造顺序5.继承和对象模型(对象的赋值和切割)6.虚函数的语法和定义7.继承和多态的关系8.静态联编和动态联编9.虚析构函数10.虚函数表和多态实现的编译器机制11.含有虚函数的类的对象模型第13天代码重用1.Has-a关系2.包含成员对象的类3.私有和保护继承4.多重继承5.虚基类友元、第14天友元、异常和类模板1.友元2.异常3.类模板和具体化第3部分数据结构和算法数据结构和算法()第15天数据结构和算法(1)1.常用的字符串的c函数的具体的代码实现2.数据结构概论3.算法基本概念4.时间和空间复杂度5.单链表的实现及其应用6.循环链表的实现及其应用第16天数据结构和算法(2)数据结构和算法()1.双向链表的实现2.堆栈实现及其应用数据结构和算法()第17天数据结构和算法(3)1.队列的实现及应用2.字符串的查找,替换,连接等操作3.数组,字符串,指针,多维数组的相互关系和归纳4.递归算法5.二叉排序树的实现及应用6.二叉树的前序遍历、中序遍7.历、后序遍历。8.常见排序方法和二分查找第18天阶段考试第4部分嵌入式系统和ARM介绍第19天嵌入式系统和ARM介绍1.嵌入式系统概述2.ARM硬件平台介绍,ARM处理器体系结构3.嵌入式软件开发流程4.实验内容:用JTAG工具烧写NANDFLASH第5部分嵌入式Linux系统编程第20天嵌入式Linux开发环境的搭建1、嵌入式交叉编译环境的搭建2、超级终端的配置和使用3、编译嵌入式linux内核4、制作文件系统5、Bootloader介绍6、实验内容:移植Linux内核第21天文件I/O编程1、Linux系统调用和用户编程接口2、Linux中文件和文件描述符介绍3、不带缓存的文件I/O操作4、嵌入式Linux串口应用开发5、标准I/O开发6、实验内容:文件读写和上锁,串口读写第22天进程控制开发1、Linux下进程概述2、Linux进程控制编程3、Linux守护进程4、实验内容:编写多进程程序,编写守护进程第23天进程间通讯1、管道通信的创建和关闭2、信号通信的发送和捕捉3、共享内存的实现4、消息队列的实现5、实验内容:管道通信编写程序,共享内存实验第24天多线程编程1、Linux下线程概述2、Linux线程实现3、实验内容:“生产者消费者”实验第25天嵌入式Linux网络编程1、TCP/IP协议介绍2、Socket基础编程3、网络高级编程4、Ping源代码分析5、实验内容:NTP协议实现第26天嵌入式Linux设备驱动开发1、Linux设备驱动概述2、字符设备驱动编写3、块设备驱动编写4、中断编程5、实例介绍:LCD驱动和键盘驱动的实现6、实验内容:Skull驱动第27天Qt图形编程1、嵌入式GUI概述2、Qt/Embeded开发入门3、搭建Qt/Embeded开发环境4、Qt/Embeded图形界面编程5、实验内容:使用QT编写“HELLOWORLD”程序第6部分Windows编程第28天Windows程序内部运行机制1.API与SDK2.窗口与句柄3.消息与消息队列4.WinMain函数5.第一个windows程序6.消息循环的错误分析7.变量的命令约定第29天MFC框架1.MFCAppWizard2.基于MFC的程序框架剖析3.窗口类、窗口类对象与窗口第30天简单绘图与文本编程1.MFC消息映射机制2.绘制线条3.使用画刷绘图4.绘制连续线条5.绘制扇形效果线条6.插入字符7.窗口重绘8.路径9.字符输入第31天菜单和对话框1.菜单命令响应函数2.菜单命令的路由3.基本菜单操作4.动态菜单操作5.电话本示例程序6.对话框基本知识7.对话框的创建和显示8.动态创建按钮9.控件的访问10.对话框伸缩功能的实现11.输入焦点的传递12.默认按钮的进一步说明第32天绘图控制和文件1.简单绘图2.设置对话框3.颜色对话框4.字体对话框5.改变对话框和控件的背景和文本颜色6.显示位图7.坐标空间和转换8.图形的保存和重绘9.窗口滚动功能的实现10.元文件11.兼容设备描述表网络编程()第33天网络编程(1)1.计算机网络概述2.OSI七层模型和TCP/IP协议栈3.客户机/服务器的通信方式4.物理层和数据链路层5.传输层6.TCP和UDP协议网络编程()第34天网络编程(2)1.基于WinAPISOCKET编程基础2.面向无连接的协议和面向连接的协议3.流式协议和数据报协议的区别4.套接字选项的配置5.网络层相关技术6.字节顺序(Byte-order)7.基于MFC的CSocket类的网络编程多线程()第35天多线程(1)1.进程和线程2.线程创建函数3.Sleep函数4.使用互斥对象实现线程同步5.保证应用程序只有一个实例运行静态、动态连接库、第36天静态、动态连接库、组件编程1.事件对象2.关键代码段3.线程死锁4.互斥对象、时间对象与关键代码段的比较5.基于消息的异步套接字6.静态库7.动态库第7部分WinCE编程第37天WindowsCE操作系统的介绍1、WindowsCE的结构功能概览2、进程、线程与调度3、内存管理4、存储管理与文件系统5、驱动管理与服务6、用户界面与图形系统7、WindowsCE的应用特性第38天建立WindowsCE开发环境1.WindowsCE应用程序开发的几点说明2.应用程序开发流程3.WindowsCE的应用编程接口4.开发工具介绍及对比第39天平台模拟器的建立和使用1.建立模拟器环境2.建立硬件开发板环境第40天WinCE操作系统设计1.在PC机上运行WindowsCE2.PlatfromBuilder集成开发环境3.定制WindowsCE操作系统的一般流程4.WindowsCE的目录组织第41天WindowsCE窗口消息机制与屏幕输出1.建立一个HelloWorld程序6、添加窗口消息响应函数7、编写文字输出程序8、编写屏幕绘图程序下多线程编程,第42天WinCE下多线程编程,文件操作与串口通信1.多线程的实现2.WindowsCE中的文件操作3.WindowsCE中的串口通信第43天WindowsCE下MFC程序的开发1.建立基于MFC框架的WindowsCE应用程序2.编程实现菜单,对话框,窗口的操作与消息通讯3.编程实现MFC中的基本控件的功能4.编写WindowsCE下的串口调试工具第8部分MTK手机软件第44天手机设计基础理论1、手机软硬件原理介绍2、手机重要技术指标介绍第45天MTK开发环境介绍1、MTK手机芯片介绍2、MTK软件架构分析第46天MTK开发工具介绍1.烧写程序下载工具FlashTools2.编译工具和辅助工具update,ActivePerl3.Trace工具:catcher4.手机工程测试工具:META(MobileEngineeringTestingArchitecture)第47天MTK软件编译及工程源程序介绍第48天由浅入深的手机软件开发1.熟悉编译过程2.改变编译参数/宏定义来实现手机配置的改变或设定3.更换资源文件实现新的手机界面4.利用MTK辅助工具实现手机新功能5.修改源程序实现复杂的功能更改或增加6.修改NVRAM数据来改变手机的功能/性能7.新功能模块的开发第49天如何在开发板上进行项目实践第9部分结业考试第50天结业考试第10部分项目实战第51~100天项目开发~嵌入式项目阶段项
本文标题:软件工程师嵌入式高级培训.
链接地址:https://www.777doc.com/doc-988411 .html