《2022年软件工程师嵌入式高级培训.doc》由会员分享,可在线阅读,更多相关《2022年软件工程师嵌入式高级培训.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 本课程将 C+和嵌入式有机地结合起来,培训内容包括理论知识强化、实际案例训练、企 业工程实战等内容,让学生扎实掌握 C+和嵌入式编程的各项关键技术,获得 C+和嵌入式软 件开发丰富的工程经历,为学员高质量高薪就业打下扎实的根底。 C/C+嵌入式高级软件工程师教学大纲由资深 C+嵌入式领域专家依照嵌入式系统的设计 原则和市场要求设计和制定,实践证明本教学大纲科学合理,能够快速培养有用的 C+嵌入式 工程师。通过培训能够获得扎实的开发技能,积累至少相当二年的工作开发经历。本课程系统介绍了 C+开发环境和 IDE 介绍、C 语言、C+/OOP 程序设计、GP 和标准模 板类库(STL)、Windo
2、ws 编程、Visual C+/MFC 程序设计、网络编程技术、数据库编程技术、 Unix/Linux 编程、面向对象的系统分析与设计方法、计算机系统的根本原理,操作系统、接口技 术、嵌入式系统开发详解等根本知识。通过这些知识的学习,让学生掌握 C+的关键技术和嵌 入式系统开发的根本原理和设计方法,并通过实际工程的开发,让学生掌握嵌入式系统开发的整 个流程,操作系统移植的根本思想、移植原则,应用程序及驱动程序的开发和调式方法。由有关专家、学者和优秀的一线资深 C+嵌入式工程师,集合国际先进嵌入式技术和理论, 对嵌入式开发过程进展综合分析,结合最新的软件开发环境,进展实际案例的培训;实战训练贯
3、穿于全部课程中,学员学练结合、学以致用,以培养实际工作才能,快速获得工程经历.第 1 部分:Linux 操作系统根底入门 部分:第 1 天 Linux 操作系统根底1. 介绍 Linux 操作系统的根本知识,包括开展概述,目前应用情况,技术优势和特点等。 2. Linux 系统的安装预备,Linux 文件系统。 3. 实验内容:安装 Linux 操作系统第 2 天 Linux 根本命令1、 Linux 常用操作命令,包括用户系统相关命令,文件目录相关命令,压缩打包相关命令,网 络相关命令等。 2、 Linux 启动过程详解 3、 Linux 系统效劳 4、 实验内容:Linux 系统常用命令操
4、作第 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.
5、计算机处理数据的抽象层次 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. do while 循环 5. 嵌套循环 6. 多维
6、数组 7. 操纵台输入输出第 8 天 分支语句和逻辑操作符1. if 语句 2. 逻辑表达式3. ?:操作符 4. switch 语句 5. break 6. continue 7. return 8. 简单文件输入输出第 9 天 函数1. 函数原型 2. 函数参数和按值传递 3. 参数为数组(一维和多维)的函数 4. 参数为指针的函数 5. 参数和返回类型维构造的函数 6. 处理 string 对象的函数 7. 函数指针 8. 内联函数和宏的使用 9. 援用变量 10. 函数重载的机制 11. 函数模板 12. c+程序的内存模型和几种内存的分配方式 13. 构造化程序设计的原则 14. 源
7、文件和头文件的物理规划以及对程序模块划分和程序编译的妨碍 15. 静态变量 16. 名称空间第 10 天 类(1) )1. 面向过程编程和面向对象编程的区别 2. 面向对象和程序设计语言的关系 3. 类的概念和抽象层次 4. 接口的概念和客户/效劳器模型 5. 类的定义和数据封装 6. 构造函数和析构函数 7. this 指针和对象数组第 11 天 类(2) )1. 指针类成员以及动态分配内存的初始化 2. 含指针成员的类的=操作符重载和拷贝构造函数的定义 3. 按成员拷贝(bit-wise copy)和 deep copy 的区别 4. 什么时候需要考虑深拷贝(deep copy) 5. 操
8、作符重载 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.
9、 类模板和详细化第 3 部分 数据构造和算法数据构造和算法( ) 第 15 天 数据构造和算法(1)1. 常用的字符串的 c 函数的详细的代码实现 2. 数据构造概论3. 算法根本概念 4. 时间和空间复杂度 5. 单链表的实现及其应用 6. 循环链表的实现及其应用第 16 天 数据构造和算法(2) 数据构造和算法( )1. 双向链表的实现 2. 堆栈实现及其应用数据构造和算法( ) 第 17 天 数据构造和算法(3)1. 队列的实现及应用 2. 字符 串的查找,交换,连接等操作 3. 数组,字符串,指针,多维数组的互相关系和归纳 4. 递归算法 5. 二叉排序树的实现及应用 6. 二叉树的前
10、序遍历、中序遍 7. 历、后序遍历。 8. 常见排序方法和二分查找第 18 天 阶段考试第 4 部分 嵌入式系统和 ARM 介绍第 19 天 嵌入式系统和 ARM 介绍1. 嵌入式系统概述 2. ARM 硬件平台介绍,ARM 处理器体系构造 3. 嵌入式软件开发流程 4. 实验内容: 用 JTAG 工具烧写 NAND FLASH第 5 部分 嵌入式 Linux 系统编程第 20 天 嵌入式 Linux 开发环境的搭建1、 嵌入式穿插编译环境的搭建 2、 超级终端的配置和使用 3、 编译嵌入式 linux 内核 4、 制造文件系统 5、 Bootloader 介绍 6、 实验内容:移植 Linu
11、x 内核第 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、 实验内容:管道通讯编写程序,共享内存实验第
12、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 开发
13、入门 3、 搭建 Qt/Embeded 开发环境 4、 Qt/Embeded 图形界面编程 5、实验内容:使用 QT 编写“HELLO WORLD”程序第 6 部分 Windows 编程第 28 天 Windows 程序内部运转机制1. API 与 SDK 2. 窗口与句柄 3. 音讯与音讯队列 4. WinMain 函数 5. 第一个 windows 程序 6. 音讯循环的错误分析 7. 变量的命令商定第 29 天 MFC 框架1. MFC AppWizard 2. 基于 MFC 的程序框架剖析 3. 窗口类、窗口类对象与窗口第 30 天 简单绘图与文本编程1. MFC 音讯映射机制 2.
14、绘制线条 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. 坐标空间和
15、转换 8. 图形的保存和重绘 9. 窗口滚动功能的实现 10. 元文件 11. 兼容设备描绘表网络编程( ) 第 33 天 网络编程(1)1. 计算机网络概述 2. OSI 七层模型和 TCP/IP 协议栈 3. 客户机/效劳器的通讯方式 4. 物理层和数据链路层5. 传输层 6. TCP 和 UDP 协议网络编程( ) 第 34 天 网络编程(2)1. 基于 WinAPI SOCKET 编程根底 2. 面向无连接的协议和面向连接的协议 3. 流式协议和数据报协议的区别 4. 套接字选项的配置 5. 网络层相关技术 6. 字节顺序(Byte-order) 7. 基于 MFC 的 CSocket
16、 类的网络编程多线程( ) 第 35 天 多线程(1)1. 进程和线程 2. 线程创立函数 3. Sleep 函数 4. 使用互斥对象实现线程同步 5. 保证应用程序只有一个实例运转静态、动态连接库、 第 36 天 静态、动态连接库、组件编程1. 事件对象 2. 关键代码段 3. 线程死锁 4. 互斥对象、时间对象与关键代码段的比拟 5. 基于音讯的异步套接字6. 静态库 7. 动态库第 7 部分 WinCE 编程第 37 天 Windows CE 操作系统的介绍1、 Windows CE 的构造功能概览 2、 进程、线程与调度 3、 内存治理 4、 存储治理与文件系统 5、 驱动治理与效劳
17、6、 用户界面与图形系统 7、 Windows CE 的应用特性第 38 天 建立 Windows CE 开发环境1. Windows CE 应用程序开发的几点说明 2. 应用程序开发流程 3. Windows CE 的应用编程接口 4. 开发工具介绍及比照第 39 天 平台模仿器的建立和使用1. 建立模仿器环境 2. 建立硬件开发板环境第 40 天 WinCE 操作系统设计1. 在 PC 机上运转 Windows CE 2. Platfrom Builder 集成开发环境 3. 定制 Windows CE 操作系统的一般流程 4. Windows CE 的目录组织第 41 天 Windows
18、 CE 窗口音讯机制与屏幕输出1. 建立一个 Hello World 程序 6、 添加窗口音讯响应函数 7、 编写文字输出程序 8、 编写屏幕绘图程序下多线程编程, 第 42 天 WinCE 下多线程编程,文件操作与串口通讯1. 多线程的实现 2. Windows CE 中的文件操作 3. Windows CE 中的串口通讯第 43 天 Windows CE 下 MFC 程序的开发1. 建立基于 MFC 框架的 Windows CE 应用程序 2. 编程实现菜单,对话框,窗口的操作与音讯通讯 3. 编程实现 MFC 中的根本控件的功能 4. 编写 Windows CE 下的串口调试工具第 8
19、部分 MTK 软件第 44 天 设计根底理论1、软硬件原理介绍 2、重要技术指标介绍 第 45 天 MTK 开发环境介绍1、MTK 芯片介绍 2、MTK 软件架构分析第 46 天 MTK 开发工具介绍1. 烧写程序下载工具 FlashTools 2. 编译工具和辅助工具 update, Active Perl 3. Trace 工具:catcher 4. 工程测试工具: META (Mobile Engineering Testing Architecture)第 47 天 MTK 软件编译及工程源程序介绍第 48 天 由浅入深的软件开发1. 熟悉编译过程 2. 改变编译参数/宏定义来实现配置
20、的改变或设定 3. 更换资源文件实现新的界面 4. 利用 MTK 辅助工具实现新功能 5. 修正源程序实现复杂的功能更改或增加 6. 修正 NVRAM 数据来改变的功能/功能 7. 新功能模块的开发第 49 天 如何在开发板上进展工程实践第 9 部分 结业考试第 50 天 结业考试第 10 部分 工程实战第 51100 天 工程开发 嵌入式工程阶段工程实战内容包括:PDA、MP3、MP4、IC 卡门禁系统、GPS 导航仪等嵌入式产品 软件开发工程可选择。 1、PDA 工程:采纳 WinCE 或者嵌入式 Linux 操作系统,实战内容包括 BootLoader 编程、 UI 编程、应用程序编程。
21、 2、MP3 工程:采纳 C 语言编程,在矩力 MP3 芯片平台上编写 UI。 3、MP4 工程:在 Sunplus 芯片平台,学习编写 MP3、MP4、FM、图片阅读等模块程序。 4、工程:在 MTK 平台上,学习编写簿、短信、MP3、MP4、数码相机的模 块软件。 5、GPS 导航仪工程:在三星 2440 平台上,采纳 WinCE 操作系统,学习编写 GPS 导航仪 模块软件。 6、另外还有更多实际产品开发工作,可提供学员参与。C工程阶段 工程阶段 A. 数据库实践(一) SQL Server(1) 一1. 数据库的体系构造介绍 2. 标准 SQL 的数据类型 3. 表的设计。表内的约束:
22、主键,唯一,检查。索引。 4. 表之间的关系的设计。包括一对一、一对多、多对多。表间的外键约束。 5. 数据操作语句 6. 常用函数 7. 关联查询 8. 嵌套查询 9. 连接查询(二) SQL Server(2) 二1. T-SQL 的根本语法 2. 数据类型 3. 变量 4. 条件分支 5. 循环操纵(三) SQL Server(3) 三1. 视图 2. 游标 3. 过程(四) SQL Server(4) 四1. 函数 2. 触发器 3. 事务 4. ADO 和 ODBC 编程B. 实战工程i. 类 UC 语音视频网络聊天室:文本,语音,视频聊天集于一体,重点掌握网络和多线程序 编程,数据压缩,传输。 ii. 远程教学系统:实现远程教学,屏幕传输,课件文件设计,制造,播放,声音,视频传输, 数据库治理。 iii. 类 游戏大厅:治理游戏用户登陆,游戏下载,房间治理,实现 1-2 个最根本的多人 在线游戏,如斗地主,拱猪,晋级等。 iv. 类雷霆战军 3D 游戏:运转 Direct3D 技术,强调设计形式,在线多人游戏,实现通关功 能,界面和 逻辑别离思想,外挂制造技术原理。 v. CVT 版本操纵工具:三层架构,实现软件工程治理,人员治理,权限治理,版本操纵, 工程数据外部备份,文件的签入签出,文件蒙合操作,文件历史比照,工程人员在线沟通功能。