>>点击咨询学费与课程相关问题
|
侧重点 |
内容简介 |
详细内容 |
|
基础部分之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、 Linux C语言编程环境 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、 开发板演示 |
|
|
|
1. IO、定时器、中断、DA、AD等基础实验。 2. 电机PID控制算法 3. 小型电子琴 4. 大型MIDI音乐播放 5. 电力系统纹波采集和分析系统 6. 载波远程通信系统。 7. CPU性能分析程序(单片机版) |
|
重点 |
32位系统 |
1. 基础知识,概念,应用举例 2. ARM体系结构 3. ARM的IO操作 4. ARM的定时器,中断,时钟,外部接口 5. ARM体系的异常、中断及其向量表 6. ARM体系的存储系统 7. ARM处理器寻址方式 8. ARM指令集,Thumb指令集 9. ARM硬件电路与接口技术 10. LPC2000系列ARM7详解 11. 三星系列ARM9详 12. ARM9和ARM7的在工程实践中的区别 |
|
|
|
培养目标: 1. 在32位ARM上重新实现单片机的7个项目,通过对比加深对各种嵌入式技术的理解。 2. 熟练使用32位ARM进行产品设计 3. 逐步增大项目的难度,在实践过程中理解更复杂的嵌入式框架和工程思想。 4. 完成代码2000行左右,进一步熟练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、 内存映射(MAPPED MEMORY) 5、 消息队列(MESSAGE QUEUE) 6、 posix共享内存 7、 信号量 8、 互斥锁,读写锁
|
|
重点 |
多线程编程 |
1、 线程与进程的区别 2、 Posix线程 3、 线程的创建与结束 4、 竞争和临界区概念 5、 线程同步 |
|
重点 |
IPC高级编程 |
1、 线程间通信与进程间通信 2、 posix IPC 和 system V IPC 3、 消息传递 4、 同步 5、 共享内存 |
|
重点 |
网络编程 |
1、 网络基本概念 2、 字节顺序 3、 TCP/IP各个层次的主要协议和功能 4、 UDP与TCP的区别 5、 基于嵌入式LINUX的SOCKET编程 6、 UDP SERVER-CLIENT程序练习 7、 如何抓包并分析内容
|
|
重点 |
练习客户端/服务器编程 |
1、 客户端与服务器概念 2、 网络编程常用函数 3、 socket概念及使用 |
|
重点 |
并发与IO多路复用 |
1、 添加错误处理 2、 处理SIGPIPE信号 3、 使用fork进行并发处理 4、 使用select与poll |
|
重点 |
综合项目 |
1. IO、定时器、中断、DA、AD等基础实验。 2. 电机PID控制算法 3. 小型电子琴(功能增加) 4. 大型MIDI音乐播放(功能增加) 5. 电力系统纹波采集和分析系统 6. 载波远程通信系统。(功能增加) 7. CPU性能分析程序(功能增加) 培养目标: 1. 熟悉linux的安装、配置和使用。 2. 熟练进行Linux产品设计 3. 能够独立分析linux内核源码的 4. 通过7个基础实验的重新实现,理解更复杂的操作系统是否给设计带来方便,理解操作系统带来的负面影响和程序规模的关系。 5. 理解如何根据产品的复杂度,选择合适的芯片(CPU)和操作系统。 完成代码2000行左右,进一步熟练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、 Bottom Half机制 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、 Platform device模型介绍 4、 模块的概念 5、 模块的构建、编译和加载 6、 驱动程序调试技术简单介绍 |
|
|
|
实验: 1、 Platform device模型实验 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、 Poll和select操作 2、 异步通知机制 3、 1inux内核中断子系统 4、 中断处理程序编写 5、 驱动程序上/下半部处理与延缓执行机制 6、 内核定时器与延迟机制 7、 内核内存管理机制 8、 ioctl型驱动 9、 阻塞型驱动程序设计 |
|
|
|
实验: 1、 内核程序传递参数 2、 串口驱动程序设计 3、 在驱动代码中加入创建proc结点方法 4、 编写驱动实现包含等待队列、信号量、fifo等功能 5、 编写驱动实现包含poll功能 6、 编写驱动实现tasklet功能 7、 驱动的测试程序编写 |
|
普通 |
块设备驱动程序开发 |
1、 块设备驱动程序的特点和工作原理 2、 块设备驱动程序中两个关键结构体GEN_DISK与REQUEST 3、 块设备驱动的设备文件接口概念 4、 块设备驱动的文件系统接口概念 5、 MTD设备的特点以及与块设备的关系 6、 MTD设备驱动的框架及关键结构体分析 7、 S3C2440中的NAND FLASH控制器驱动分析 8、 块设备驱动的注册接口(register_blkdev)等 9、 块设备驱动操作接口(open,release,ioctl等) 10、 块设备驱动的request队列和request操作 |
|
|
|
实验: 1、 实现RAMDISK驱动 2、 移植S3C2410 闪存控制器驱动 3、 配置MTD内核选项 4、 修改vdisk.c支持多个设备 5、 移植嵌入式文件系统 |
|
|
|
代码分析(vdisk.c) 1、 vdisk.c的注册接口 2、 vdisk.c的open,release,ioctl 3、 vdisk.c的request队列和request操作 |
|
|
|
实验: 1、 音频驱动实验 2、 I2C驱动实验 3、 AD/DA采集实验 |
|
重点 |
培养目标 |
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. 内存管理 |
|
重点 |
UC/OS练习 |
1. uCos代码分析 2. 移植μC/OSII
(在uCos上重新实现以下项目) 1. IO、定时器、中断、DA、AD等基础实验。 2. 电机PID控制算法 3. 小型电子琴(功能增加) 4. 大型MIDI音乐播放(功能增加) 5. 电力系统纹波采集和分析系统 6. 载波远程通信系统。(功能增加) 7. CPU性能分析程序(功能增加) 培养目标: 1. 通过对简单操作系统的分析,逐步融入操作系统的环境。 2. 熟练使用uCos进行产品设计 3. 理解实时操作系统的内核原理 4. 通过7个基础实验的重新实现,理解操作系统如何给设计带来方便,理解操作系统带来的负面影响。 1. 在实践过程中理解当今最流行的嵌入式框架和工程思想。 完成代码1500行左右,进一步熟练C语言。 |
|
扩展阶段之毕业设计 |
||
|
重点 |
毕业设计 |
大公司的实际开发案例,学员组成团队,合作完成(贯穿于整个教学过程中,为学员课余时间完成)。 |
|
重点 |
企业实习 |
根据学员情况,推荐到企业,进行为期一到两个月的实习 |
汇文嵌入式学院学员实践项目案例介绍
——项目案例1:VOIP网络电话
1. 项目背景
随着光网络的飞速发展和数字传输技术的应用,原来在数据通信网中被视为应用“瓶颈”的带宽和服务质量等问题一一得到解决,推动了IP 技术的飞速发展,带动各种应用向IP 靠拢, VOIP 电话/VOIP 网络电话(又称IP PHONE 或VoIP)业务就是其中一个典型的应用。IP技术的逐渐完善以及IP电话的低廉收费为IP电话提供了广阔的发展空间。
2.系统功能说明
服务器建立于PC机上。
服务器可对用户进行维护及向用户发送系统消息。
服务器可对用户异常进行处理。
客户端以两种方式实现:PC客户端与基于arm板的手持客户端。
客户端以登录方式与服务器建立连接。
客户端可进行新用户的注册并把注册信息存储于服务器。
客户端通过数字号码与好友方式实现电话拨打。
客户端可对好友进行增、删、改、查操作。
客户端可实现文本短信功能。
客户端之间可以进行流畅语音通话。
客户端可实现来电显示功能。
手持客户端通过触摸屏可进行拨号功能。
客户端之间可实现视频聊天。(此为扩展功能)

3.硬件需求

4.软件需求

——项目案例2:手持点菜系统
1.项目背景
现代社会,餐厅越来越大,也越来越多,从顾客点菜到就餐,中间是一个复杂的过程,需要很多环节配合,即便每个环节都配合的很好,在时间效率上都不是很高,顾客满意度自然下降。餐厅规模越大,其中服务员,管理员,厨房管理的成本都会倍增。本系统基于此考虑而开发。主要实现顾客点菜、加菜、退菜,菜谱动态管理,菜品临时短缺的及时提醒等,并于餐厅服务器交互,提供简单的财务报表。减少餐厅中间管理层的成本。方便顾客就餐,提高经营的效率,获取更大的利润。
2.系统功能说明
整个系统分为三部分:手持终端,前台管理端,后台厨房端。
手持终端通过无线网络与前台管理端进行连接。
手持终端可以实现进行点菜、更新菜谱功能。
手持终端可以实现进行修改待加工菜单、查看菜品状态、结账功能。
前台管理端对菜谱、菜单进行管理。
前台端可实现统计各类营业额、数据校对转发功能。
后台厨房端通过网络与前台管理端连接。
后台厨房端可以打印菜单、修改菜谱信息。
后台厨房端可以修改菜品状态。

3.硬件需求

4.软件需求

——项目案例3:ARM嵌入式视频监控系统
1.项目背景
图像与视频监控系统是应用计算机与通讯技术实现对目标区域信息监控的系统,常用于交通,能源,公安,电信,军事等部门。随着计算机技术及网络技术的迅猛发展,视频监控系统的发展趋势必然是全面数字化、网络化,即采用嵌入式网络摄像机,利用网络进行传输,利用嵌入式监控设备体积小巧、性能稳定、通讯便利等特点,将使视频监控无处不在。
2.系统功能说明
监控终端:
监控终端的主控制器为S3C2410处理器,主控制器还需一些外围存储单元如Nandflash和SDRAM等。同时配备摄像头。摄像头上捕获的图像数据通过固定接口(USB)传输到S3C2410处理器集中处理。S3C2410对采集到的图像进行实时编码压缩,编码之后的码流直接传输到发送缓冲区中,等候发送。主要实现步骤分四部份:
1)平台搭建
连接好配套设备同是完成嵌入式Linux操作系统内核移植以及嵌入式Linux操作系统的设备驱动程序的开发等工作。
2)视频采集部分
使用设备接口函数访问摄像头设备,捕获实时的视频流。完成对设备基本信息,图像属性,各个信号源属性等的定义;采集模块通过接口采集摄像头中的图像,放入视频处理缓冲区中进行下一步的处理。
3)视频数据传输部分
在视频监控系统中,大量的数据需要通过网络传输,为了保证传输质量和传输实时性,就需要在传输之前进行编码压缩以减少数据量,建议采用MPEG4编码标准进行数据压缩(xvidcore)。
4)视频数据传输部分。
传输模块的作用在于把压缩之后的视频流传送到远程的PC机客户上,视频流数据的传输是基于TCP协议。视频传输采用了标准的RTP传输协议。。
服务器端:
1)服务端主要完成视频信号的接收和解压缩,用户可以通过浏览器观看监控现场采集到的视频,必需支持支持多台的远程数据图像采集。
2)服务端需具备完善的监控服务器管理软件。能对历史图像数据的存取、检索、图像数字处理、对比分析及异常情况预警。
3)服务器端能根据用户权限对远程数据图像采集器发送摄像头变焦、云台角度偏转等指令,对摄像机进行控制。

3 硬件需求

4.软件需求

——项目案例4:无线网络温控系统
1 项目背景
温度是工业生产和仓库管理中经常碰到的控制参数之一,温度控制的好坏直接影响产品质量的优劣甚至产品制造的成功与失败,仓库管理中对温度的控制是库存产品安全性考虑的重要因素。因而对温度的控制具有广泛的实际应用价值和应用前景。而随着信息化、智能化、网络化的发展,嵌入式系统技术也获得广阔的发展空间。
本系统目的是开发出一个基于嵌入式设备的温控系统,也可以称为环境温度监测和报警系统,同时本系统对湿度控制,噪音控制等具有良好的可扩展性。
2系统功能说明
温控终端:
系统控制结构为典型的闭环控制系统,可分为三个部分:
1)信号采集部分
温度信号由铂热阻采集,变换为电阻信号后,直接送人热电阻/电阻信号输入模块(1746-NR4)。在此模块中产生对应的A/D数字值,其对热电阻变送的温度信号的分辨率约为1/8度,处理中直接使用NR4的转换值,无需在硬件级电路上作其他处理
2)可编程控制器部分
处理器为S3C2440,调整器接受来自模拟量I/O模块(1746NIO4V)的电压输出信号,采用PID控制算法,通过双向可控硅控制电源的开度(即一周期内的导通比率),控制电源的输出功率,从而对温度进行实时控制。
3)数据传输及系统参数设置部分。
采用UDP传输协议同上位机(PC)通信,通过温度传感器采集环境温度数据,上传到上位机。
移植LINUX操作系统及QT, 编写QT程序,提供用户界面显示操作接口
设置功能:设置温度,本机和服务器IP地址和通讯端口等。
服务器端:
1)滤波处理及显示:将采集过来的数据作滤波或模糊处理,并以曲线图的形式显示在界面上。
2)网络传输多线程接收:同时接收多个终端温控数据,心跳报文判断是否存在断线或设备故障。
3)报警功能:如果有温度超过上限,将报警提示。
4)设置功能:设置温度报警上限。

3 硬件需求

4.软件需求

——更多项目案例请点击查看:http://www.huiwen.com/qianrushi-xiangmu.htm











