软件工程师嵌入式高级培训.docx
- 文档编号:24508366
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:8
- 大小:20.28KB
软件工程师嵌入式高级培训.docx
《软件工程师嵌入式高级培训.docx》由会员分享,可在线阅读,更多相关《软件工程师嵌入式高级培训.docx(8页珍藏版)》请在冰豆网上搜索。
软件工程师嵌入式高级培训
本课程将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天项目开发~
嵌入式项目阶段
项目实战内容包括:
PDA、MP3、MP4、手机、IC卡门禁系统、GPS导航仪等嵌入式产品软件开发项目可选择。
1、PDA项目:
采用WinCE或者嵌入式Linux操作系统,实战内容包括BootLoader编程、UI编程、应用程序编程。
2、MP3项目:
采用C语言编程,在矩力MP3芯片平台上编写UI。
3、MP4项目:
在Sunplus芯片平台,学习编写MP3、MP4、FM、图片浏览等模块程序。
4、手机项目:
在MTK手机平台上,学习编写电话簿、短信、MP3、MP4、数码相机的模块软件。
5、GPS导航仪项目:
在三星2440平台上,采用WinCE操作系统,学习编写GPS导航仪模块软件。
6、另外还有更多实际产品开发工作,可提供学员参与。
C++项目阶段++项目阶段++
A.数据库实践
(一)SQLServer
(1)一
1.数据库的体系结构介绍2.标准SQL的数据类型3.表的设计。
表内的约束:
主键,唯一,检查。
索引。
4.表之间的关系的设计。
包括一对一、一对多、多对多。
表间的外键约束。
5.数据操作语句6.常用函数7.关联查询8.嵌套查询9.连接查询
(二)SQLServer
(2)二
1.T-SQL的基本语法2.数据类型3.变量4.条件分支5.循环控制
(三)SQLServer(3)三
1.视图2.游标3.过程
(四)SQLServer(4)四
1.函数2.触发器3.事务4.ADO和ODBC编程
B.实战项目
i.类UC语音视频网络聊天室:
文本,语音,视频聊天集于一体,重点掌握网络和多线程序编程,数据压缩,传输。
ii.远程教学系统:
实现远程教学,屏幕传输,课件文件设计,制作,播放,声音,视频传输,数据库管理。
iii.类QQ游戏大厅:
管理游戏用户登陆,游戏下载,房间管理,实现1-2个最基本的多人在线游戏,如斗地主,拱猪,升级等。
iv.类雷霆战军3D游戏:
运行Direct3D技术,强调设计模式,在线多人游戏,实现通关功能,界面和逻辑分离思想,外挂制作技术原理。
v.CVT版本控制工具:
三层架构,实现软件项目管理,人员管理,权限管理,版本控制,项目数据外部备份,文件的签入签出,文件蒙合操作,文件历史对比,项目人员在线沟通功能。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程师 嵌入式 高级 培训