课程体系汇文.docx
- 文档编号:29520699
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:19
- 大小:21.54KB
课程体系汇文.docx
《课程体系汇文.docx》由会员分享,可在线阅读,更多相关《课程体系汇文.docx(19页珍藏版)》请在冰豆网上搜索。
课程体系汇文
课程体系
嵌入式软件工程师标准班
培养目标:
嵌入式软件工程师,相当于一到两年嵌入式软件开发经验。
学制:
全日制脱产班,共四个半月
授课:
全程实践项目教学,资深工程师手把手指导教学
实训内容安排(简表):
1.编程始终贯穿实训的每一个环节,强化基础,强化实战经验和动手能力,淡化理论概念。
2.最后的毕业设计为所有学员合作完成;除此以外,所有的项目每个学员独立完成。
侧重点
内容简介
详细内容
基础部分之C语言(共6~8天)
重点
C语言综述
1、C语言学习当中应当注意的问题
2、C语言的学习方法讨论
3、C语言学习着重点的全面分析
4、部分贯穿性的重点理论提纲挈领、如内存指针等。
5、C语言动手练习第一课
普通
C语言基础
1、基本数据类型
2、表达式
3、运算符、常量与变量
4、5、赋值语句
5、6、趣味编程练习
普通
字符串与数组
1、标准C字符串库函数一览
2、重点函数实现解析
3、C字符串处理范例
4、一维数组
5、二维数组
6、数组与指针
7、数组编程练习
重点
指针
1、判断指针的类型
2、指针的运算
3、数组和指针的同异
4、指向函数的指针
5、指针与抽象
6、指针与函数
7、指针练习
重点
中级语法
1、函数的类型和返回值
2、函数的参数传递
3、函数调用过程中的栈堆结构
4、递归函数调用
5、回调函数
6、联合类型,枚举类型,结构类型
7、结构体和函数练习
重点
嵌入式C重点
1、结构体
2、位操作,位域
3、大小端
4、头文件标准写法
5、关键字volatile、const、static、extern用法
6、大小端和关键字练习
普通
查漏补缺
1、流和IO重定向
2、代码风格与编程习惯
3、C语言语法关联性总结
4、综合练习,中型代码量编程
重点
C语言考核和总结
基础部分之C++(共4~7天)
重点
区别C++与C
1、从C到C++
2、Const关键字等在c和c++的区别
3、C与C++对于字符串的处理
4、类与对象的思想
5、内联函数
6、重载
7、引用
8、new和delete
9、练习用c++封装c代码,学习c++风格
普通
类的引入
1、面向对象
2、类申明
3、类成员
4、类和对象
5、类和对象练习
重点
构造函数
1、构造函数
2、析构函数
3、对象数组
4、静态函数
5、实验
普通
继承
1、运算符重载
2、继承
3、继承练习
4、智能指针和引用计数
5、智能指针练习
普通
C++的多态性
1、多态与虚函数
2、多态的练习
重点
C++考核和总结
基础部分之数据结构(共6~8天)
重点
线性表
1、数据结构基本概念
2、数据结构对软件编程的影响
3、线性表、
4、栈和队列
5、串、数组和链表(重中之重)
6、存储表示
7、链表练习
普通
树
1、树和二叉树
2、二叉树的遍历
3、树的存储结构
4、赫夫曼树及其应用
5、树的遍历练习
普通
图
1、有向图和无向图,
2、图的遍历
3、图的连通性
4、动态存储管理
5、图的练习
重点
查找和排序
1、顺序查找
2、二分法查找
3、内部排序
4、外部排序
5、哈希表
重点
数据结构考核和总结
基础部分之软件工程(共14~20天)
普通
开发流程
瀑布模型中各个阶段及各个阶段的任务
重点
动态内存管理
实现自己的malloc,分4个阶段由浅入深依次进行,此部分是重中之重,要求给足7天时间。
普通
可选项目练习
1,教务管理系统(小练习)(可选)
2,图书馆管理系统(可选)
3,有限状态自动机实现(重点)
普通
实习
参加公司实习,亲身学习企业工作氛围和开发流程
重点
实习考核和总结
基础部分之Linux基础(共5~7天)
普通
Linux入门
1、Linux介绍
2、Linux定制安装
3、Linux文件类型及属性
4、文件系统类型
5、Linux目录结构
6、Linux基本命令
7、网络相关命令
8、Linux系统服务
9、Linux启动详解
实验:
定制自己的linux,并自制部分启动参数
重点
LINUX基础
1、Linux系统服务
2、常用服务器配置
3、LinuxC语言编程环境
4、Linux编辑器vi的使用
5、Gcc编译器
6、Gcc编译流程解析
7、Gdb调试器及调试技巧
8、GCC代码优化
9、Makefile工程管理器
实验:
1、Vi的练习使用
2、Gdb调试有问题的程序
3、编写多文件的makefile
普通
文件和目录
1、文件类型
2、文件和目录
3、文件系统
4、设备特殊文件
5、文件访问
6、tar打包器
7、库函数和系统调用
普通
Linux调试
1、输入和输出
2、程序和进程
3、出错处理
4、功能测试宏
5、获取错误信息
6、部分常用工具简介
重点
考核和复习
提高阶段之arm培训(12天)
普通
嵌入式系统基础
1、嵌入式系统概述
2、开发板的介绍
3、基于ARM技术的嵌入式系统硬件架构
4、嵌入式系统硬件平台选型
5、常用处理器芯片
6、常用嵌入式操作系统
7、ARM处理器
8、嵌入式系统的组成和开发流程介绍
9、开发板演示
重点
Arm体系结构
及编程
1.基础知识,概念,应用举例
2.ARM体系结构
3.ARM的IO操作
4.ARM的定时器,中断,时钟,外部接口
5.ARM体系的异常、中断及其向量表
6.ARM体系的存储系统
7.ARM处理器寻址方式
8.ARM指令集,Thumb指令集
9.ARM硬件电路与接口技术
10.三星系列ARM9详
培养目标:
1.在32位ARM上实现(跑马灯、中断、蜂鸣器、UART、音频驱动、usb驱动)等项目加深对嵌入式技术的理解。
2.熟练使用32位ARM进行产品设计
3.逐步增大项目的难度,在实践过程中理解更复杂的嵌入式框架和工程思想。
4.完成代码2000行左右C代码、500行左右ARM汇编代码,进一步熟练C语言。
重点
考核与总结
提高阶段之Linux高级编程(共20天)
重点
IO口编程,文件编程
1、Glibc简介
2、文件描述符
3、文件共享
4、常用文件操作函数
5、系统功能调用接口(API)
6、标准I/O库接口
7、文件I/O操作
8、流和对象
9、串口应用开发
10、高级I/O
11、Poll函数
1、文件读写及上锁
2、串口操作
重点
进程编程
1、进程的属性和状态
2、进程控制和调度
3、守护进程
4、守护进程
重点
进程通讯
1、进程间的关系
2、信号、管道(PIPE)
3、信号(signal)处理
4、内存映射(MAPPEDMEMORY)
5、消息队列(MESSAGEQUEUE)
6、posix共享内存
7、信号量
8、互斥锁,读写锁
重点
多线程编程
1、线程与进程的区别
2、Posix线程
3、线程的创建与结束
4、竞争和临界区概念
5、线程同步
重点
IPC高级编程
1、线程间通信与进程间通信
2、posixIPC和systemVIPC
3、消息传递
4、同步
5、共享内存
重点
网络编程
1、网络基本概念
2、字节顺序
3、TCP/IP各个层次的主要协议和功能
4、UDP与TCP的区别
5、基于嵌入式LINUX的SOCKET编程
6、UDPSERVER-CLIENT程序练习
7、如何抓包并分析内容
重点
并发与IO多路复用
1、添加错误处理
2、处理SIGPIPE信号
3、使用fork进行并发处理
4、使用select与poll
重点
QT界面设计
1.QT类结构
2.常见QT组件
3.信号与槽
4.QT设计器
重点
综合项目
1.Linux文件编程
2.进程/线程编程实践(哲学家趣味问题实现等)
3.C/S网络通讯程序(TCP/UDP实现)。
4.SOCKET洪水攻击
5.QT(扫雷、贪吃蛇、俄罗斯方块程序任选一项).
培养目标:
1.熟悉linux的安装、配置和使用。
2.熟练进行Linux产品设计
3.熟悉linux下图形设计
4.熟悉linux高级编程及API。
5.养成关注用户感受的习惯和意识
完成代码3000行左右,进一步熟练C语言。
考核与总结
提高阶段之Linux内核(共6~7天)
普通
内核基本结构
1、简要介绍2.6内核
2、最新内核技术介绍
3、Linux内核源代码结构
4、Linux内核启动流程
5、Linux内核模块开发
6、Linux进程管理
7、O
(1)调度器分析
8、内核锁机制分析
9、内核抢占技术分析
重点
内存管理
1、内存管理与分配
2、Linux-i386的段式存储和页式管理
3、四级页表树
4、Linux的进程地址空间分布
5、VM的策略:
请求分页、写时复制,交换和页面置换(Token-based)
6、内核缓冲区管理:
slab分配器
7、页核心分配器和NUMA内存分配策略
8、页帧换出守护进程:
kswapd
9、Linux中断处理
重点
中断和异常
1、内核中的定时
2、高精度定时
3、IA-32平台上的中断概述以及APIC介绍
4、Linux的硬件中断模型和内核出入口图
5、BottomHalf机制
6、软中断的实现
7、Tasklet
8、工作队列
9、Linux对异常的实现
10、Linux内核并发与同步
11、时间、定时、延缓操作等
重点
培养目标
1.熟悉linux内核。
2.熟悉linux基本结构
3.掌握linux内存管理机制
4.掌握中断和异常处理
考核和总结
提高阶段之驱动程序设计(共20天)
普通
Bootloader编程
1、bootloader简介和架构分析
2、Linux启动代码分析
3、程序的存储和加载过
4、RO、RW以及ZI段的存储特性
5、启动代码的搬移过程
6、启动代码的初始化流程
7、bootloader代码解析及使用
8、boot常用命令
9、设置u-boot环境变量
10、配置编译u-boot
11、bootloader资源分配和移植
12、添加/修改bootloader功能模块
13、实现自己的bootloader
实验:
1、添加u-boot新命令
2、移植u-boot
3、修改Linux的启动logo
4、修改核心启动参数
5、添加硬件检测功能模块
重点
设备驱动综述
1、Linux驱动简介
2、Linux设备驱动的概念
3、Platformdevice模型介绍
4、模块的概念
5、模块的构建、编译和加载
6、驱动程序调试技术简单介绍
实验:
1、Platformdevice模型实验
2、GPIO按键实验——使用中断机制访问
3、按键中断实验
重点
字符驱动
1、字符设备驱动程序实现框架
2、典型驱动分析
3、用户空间与内核空间的数据传输
4、同步、互斥、阻塞、睡眠机制
5、Linux-2.6设备模型与sysfs文件系统
6、udev与devfs文件系统
7、fs_operation结构分析
8、中断机制
9、softirq机制
实验:
1、驱动开发编程环境与内核配置、编译
2、LED驱动程序设计
3、蜂鸣器驱动程序编写与测试
4、编写秒表字符设备,掌握定时器用法
普通
块设备驱动程序开发
1、块设备驱动程序的特点和工作原理
2、块设备驱动程序中两个关键结构体GEN_DISK与REQUEST
3、块设备驱动的设备文件接口概念
4、块设备驱动的文件系统接口概念
5、MTD设备的特点以及与块设备的关系
6、MTD设备驱动的框架及关键结构体分析
7、S3C2440中的NANDFLASH控制器驱动分析
8、块设备驱动的注册接口(register_blkdev)等
9、块设备驱动操作接口(open,release,ioctl等)
10、块设备驱动的request队列和request操作
实验:
1、实现RAMDISK驱动
2、移植S3C2410闪存控制器驱动
3、配置MTD内核选项
4、修改vdisk.c支持多个设备
代码分析(vdisk.c)
1、vdisk.c的注册接口
2、vdisk.c的open,release,ioctl
3、vdisk.c的request队列和request操作
实验:
音频驱动实验
重点
培养目标
1、熟悉linux设备驱动编写流程
2、掌握字符设备驱动编写方法
3、熟悉块设备驱动编写
完成代码2000行以上,进一步熟悉linux和巩固C语言
考核和总结
提高阶段之UC/OS操作系统(7~10天)
重点
UC/OS介绍
1.实时系统概念
2.μC/OSII应用举例。
3.内核结构
4.任务管理
5.时间管理
6.事件控制块
7.信号量管理
8.事件标志组管理
9.消息邮箱管理
10.消息队列管理
11.内存管理
重点
培养目标
1.能独立进行uCos代码分析
2.熟悉简单的嵌入式操作系统。
扩展阶段之毕业设计
重点
毕业设计
公司的实际开发案例,学员组成团队,合作完成。
代码量5000-10000行
1.VOIP电话
2.网络MP3(流播放)
3.点菜系统
4.公交导程系统
5.无线网络温控系统
6.嵌入式视频监控系统
7.HTTP深度检测防火墙
8.基于硬件加速技术的de-duplication文件系统
(贯穿于整个教学过程中,为学员课余时间完成)。
重点
企业实习
根据学员情况,推荐到企业,进行为期一到两个月的实习
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程体系