深圳嵌入式长期就业培训班
【面向学员】
大专及以上学历
【学习模式】
面授/线上
【上课时间】
面授时间:4~5个月
【教学安排】
阶段:嵌入式系统开发基础理论
职场定位:
1. 嵌入式 Linux 软件开发工程师(Embedded Linux Software Development Engineer);
2. Java语言开发工程师(Java language development engineer )
本期目标:嵌入式系统是现在热门的计算机应用领域之一,嵌入式 C 语言在其中起着至关重要的作用。一个精通C语言程序设计的程序员,可以很容易地进入 Linux、Vxworks 等嵌入式操作系统下的软件开发工作。本阶段学习目标是掌握 Linux 操作系统的使用,打好 C 语言基础、进一步深入学习 C 语言编程并精通常用的数据结构,为将来从事应用开发及底层课程的学习打下基础。通过本阶段的学习,学员还可以熟练使用 Java 语言编程,为后期学习Android 相关开发,打下良好基础。通过本期学习,还可以熟练掌握嵌入式 Linux 的开发环境,为将来做底层嵌入式开发工作打基础。
课程大纲:
Linux 操作系统使用
本课程从零起点,讲述了 Linux 内核的起源、发展历程以及目前广泛的应用场合;概述了 Linux 系统的基本组成框架及组件能;详细介绍 Linux 下的文件管理、用户管理、网络管理、软件管理等基本命令;以及包括 VI 编辑器,GCC 编译器,GDB 调试器和 Make 项目管理工具、Shell 编程等在内的 C 语言环境搭建知识。
完成:《文件管理器》、《用户管理器》
嵌入式 Linux C 语言编程
C 语言是嵌入式领域重要也是主要的编程语言,本课程将在学员 C语言基础知识之上,通过大量编程实例重点讲解 C 语言的编程知识,包括函数与程序结构、指针、数组、常用算法、库函数的使用等知识。
完成:《字符串处理器》、《学生信息管理系统》
嵌入式 Linux C 语言数据结构及经典算法编程
数据结构是一门非常重要的基础课,在 Linux 内核、底层驱动、通信协议及实际开发中都有大量应用。本课程重点讲解数据结构的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、各种查找和排序算法等。每种重要的数据结构都会介绍其理论知识及 C 语言的实现,还会结合实例讲解其在实际中的应用。
完成:《死亡游戏》、《四则运算计算器》、《球钟》、《电文编码器》、《排课系统》
Java 语言编程
本课程主要让学员掌握 Java 语言基本语法,掌握面向对象编程方法, 同时和 C 语言进行对比理解面向对象的用法,同时,理解 Java 中多线程编程,网络编程及常用 Java 类。通过对 Java 语言的学习为Android 应用编程课程和 Android 底层系统移植打下基础。
完成:《停车场系统模拟小项目》
嵌入式 Linux 项目开发流程
本课程主要让学员从宏观了解嵌入式 Linux 开发环境搭建和项目开发流程,让学员建立起整体架构的概念,包括嵌入式产品需求分析和选型、硬件平台、移植、启动代码、驱动开发、系统部署等整个过程。
第二阶段:嵌入式系统开发核心课程
职场定位:
1. 嵌入式 Linux 系统工程师(Linux Development Engineer for Embedded Systems);
2. Android软件开发工程师(Android Software Development Engineer)
本期目标:参加本期培训的学员应该掌握嵌入式 C 语言编程技巧和 Android 开发的编程技巧。嵌入式 Linux应用开发和系统开发是嵌入式 Linux 中重要的一部分,也是企业人才需求广的一部分。本期学习的主要目标是精通嵌入式 Linux 下的程序设计,熟悉嵌入式 Linux 开发流程,强化学员对 Linux 应用开发的理解和编码调试的能力。Android 系统越来越多的应用到嵌入式领域,本课程学习的另一个主要目标是精通 Android 应用编程,可以完成Android 平台的应用项目的编写。同时掌握 bootloader 和 kernel 的移植技能,了解 ARM体系结构和编程,具备 ARM 硬件接口的基础知识,并了解 Linux 内核开发相关内容,在初步掌握 Linux 下的驱动程序开发方法的基础上,通过典型应用场景的分析举例,深入掌握Linux 驱动程序的开发技巧,让学员能够熟练的移植或编写不同类型的设备驱动程序。
课程大纲:
6. 嵌入式 Linux 应用编程
嵌入式 Linux 应用开发是嵌入式 Linux 中重要的一部分,也是就业面广的方向。本课程的主要目标是精通嵌入式 Linux 下的程序设计,精通嵌入式 Linux 开发环境,强化学员对 Linux 应用开发的理解和编码调试的能力,包括系统编程、标准 I/O、文件 I/O、库的制作和使用等。
完成:《文件的复制》、《文件加密解密器》、《LS 的实现》
7.嵌入式 Linux 并发程序设计
并发程序设计,是应用开发中非常重要的一部分内容,如何实现程序的并发是重点,又是难点。包括:多进程编程,进程间通信机制,多线程编程,多线程间的同步和互斥机制等。本课程会结合大量的案例来讲解。
完成:《多进程实现文件复制》、《命令行解释器》、《生产者和消费者》、《司机售票员问题》
8.嵌入式 Linux 网络编程
应用开发的绝大部分项目都涉及到了网络功能,有一个好的网络编程功底,是从事 Linux 应用开发的基础。包括:网络体系结构,TCP/IP协议,TCP 及 UDP 编程,服务器模型,超时控制,协议分析,抓包等。在讲解过程中,结合了大量实例并使用 wireshark 抓包工具分析。
完成:《文件服务器》、《网络聊天室》、《ping 客户端》、《网络嗅探器》
9.嵌入式数据库开发
能熟练的操作并使用一种数据库,是一个开发人员的基本技能。本课程重点讲解在嵌入式开发中有着广泛应用的SQLITE 数据库。包括:数据库的设计、SQL 语句、使用 C 语言来控制数据库等。
完成:《人力资源管理系统》
10.嵌入式 Linux 应用综合项目
对于一个开发人员,必须有一定代码量的积累,才能从根本上提高自己的编程能力。本课程让学员独立完成一个应用层的综合项目, 该项目涉及到了应用开发中的关键技术,包括内存管理、链表、文件 I/O、多进程、多线程、网络编程和数据库等。
完成:《在线词典》
11.Android 应用编程
Android 系统越来越多的应用到嵌入式领域,掌握 Android 应用开发的基础知识显得很有必要。本课程主要让学员掌握 Android 应用编程的主要方法,熟悉常用的应用组件的开发和事件处理机制等,并能理解现在使用的 Android应用产品的实现原理,通过本课程的学习,可以完成 Android 平台的应用项目的编写。
完成:《音乐播放器的设计与实现》 、《我们约会吧》
12.ARM 处理器编程
ARM 是嵌入式领域主要的 CPU 处理器,了解 ARM 处理器的基础知识将为后面课程的底层开发打好坚实基础,本课程内容包括 ARM 处理器体系结构、编程环境、指令集、寻址方式、调试、汇编和混合编程等方面的内容,为后面移植课程的学习打好基础。学完此课程学员可获得ARM 公司全球统一授权培训证书。
13.ARM 硬件接口开发
本课程重点介绍 ARM 的常用接口开发及硬件电路设计基础(包括 IO、串口、看门狗、PWM 定时器、ADC、实时时钟、SPI、I2C 等),另外还有物联网基础的内容,传感网中的热点技术(ZigBee、RFID),为后续的课程打好基础。结合 FS4412 开发板和自主研发的 Cortex-A9 仿真器。完成:
1、基于 Cortex-A9 的温度采集实验
2、基于 Cortex-A9 的 GPIO
3、基于 Cortex-A9 的键盘驱动
4、基于 Cortex-A9 的 flash 读写实验
5、基于 Cortex-A9 的闹铃驱动
6、基于 Cortex-A9 的 ADC 驱动
14.嵌入式 Linux 系统开发
Linux 的新版本在内核驱动框架上有了较大的改动,引入设备树的概念。华清远见投入大量研发精力,移植了新的 Linux-3.14 操作系统,编写了全套的设备驱动教学程序。在 Linux 系统移植课程中,详细讲解 Uboot-2013.01 和 Linux-3.14 在 FS4412 平台的移植过程。
完成:
1、搭建交叉开发环境
2、移植 UBOOT 支持 FS4412 开发板(exynos4412)
3、移植 Linux-3.14 内核支持 FS4412 开发板
4、制作自己的根文件系统
15.嵌入式 Linux 内核开发
本课程是驱动开发的基础课程,深入内核细节,了解 Linux 相关运行机理,为后面的驱动开发打好理论基础,内容包括内核源码结构、内存管理、进程管理、中断管理、系统调用、内核同步、时钟和定时器管理、信号、调度、进程间通信、文件系统和 I/O 设备管理等方面的内容。
16.嵌入式 Linux 驱动开发基础
驱动开发既要熟悉相关硬件的操作又要深入理解内核中驱动框架和相关机制。前面的 ARM 和系统移植课程为驱动课程打下基础。驱动课程的学习需要循序渐进,从简单的内核模块开始,逐步添加相关代码,实现对设备的各种复杂操作。驱动中的相关机制不需要死记硬背,要理解背后的内核设计思想。此外,驱动和应用层各种编程接口密切相关,学习时要相互关联。
完成:
1、内核模块编写、编译和使用
2、字符设备驱动框架
3、互斥机制、阻塞和非阻塞 IO、设备轮询、导步通知
4、中断注册、中断处理函数编写、内核相关延时机制
5、内核内存分配、释放和映射
6、设备模型、设备节点自动创建
7、I2C 子系统、SPI 子系统
8、块设备、网络设备驱动编写
17.嵌入式 Linux 驱动开发
驱动开发是嵌入式 Linux 开发难度高的内容,也是目前嵌入式行业紧缺的人才之一。有了前面课程知识的铺垫,本课程将重点讲解嵌入式 Linux 下常用接口驱动的编写方法; 完成 flash 驱动、块设备驱动、网卡驱动、液晶驱动、sd 卡驱动和 usb 驱动。
完成:
1、FLASH 驱动:掌握在 Linux 环境下驱动常见 flash 存储器。
2、块设备驱动:掌握块设备驱动的原理,学会 ramdisk 的编写。
3、网卡驱动:掌握网卡设备的编写原理,能够熟练移植各种网卡驱动。在对网卡硬件寄存器熟悉的基础上,有能力
为其编写完善的网卡驱动。
4、液晶驱动:掌握 frambuffer 驱动的原理,有能力在有控制器的嵌入式平台上参考液晶手册实现各种常见液晶驱
动。
5、SD 卡驱动:掌握 SDIO 接口操作,熟悉 SD 卡驱动的原理。
6、USB 设备驱动:了解 USB 主机设备驱动的结构及编程方式。
18. 综合案例的实战训练
在第二阶段课程中,为了帮助学员充分有效地掌握核心知识点在企业中的具体应用,并开始逐步按照企业需求、流程和规范进行实战训练,在嵌入式 Linux 应用开发、系统内核开发的课程讲授过程中全部采用项目驱动的方式,将来自合作企业的全真案例贯穿于课程中。通过这种方式带领学员分析企业岗位的真实技术需求,进行案例演练,从而快速掌握相关的技能和开发技巧。
第三阶段:嵌入式系统开发拓展与实践
职场定位:
1.嵌入式 Linux 驱动工程师(Embedded Linux Driver Development Engineer );
2.Android 研发工程师(Senior Android Engineer)
本期目标:参加本期培训的学员应该掌握嵌入式 Linux 和 Android 应用开发、系统开发和驱动开发的综合能力。本期学习的主要目标是掌握嵌入式产品开发从需求分析到详细设计整个过程的开发内容,并通过技术专题的讲解,帮助学员进一步体验 Linux 驱动程序开发的技巧,并积累足够的设备驱动开发经验。同时,本期课程还重点讲解嵌入式 Linux 在移动开发领域的典型应用--Android 操作系统,全面了解 Android 系统的开发过程和行业前景,在专业讲师的带领下,实战体验 Android 应用程序的开发及底层的系统移植及驱动开发。后,本期将重点花一个月时间,让学员从零开始完整完成一个真实项目的设计,使学员在巩固所学内容的同时,迅速积累项目设计经验,达到并超过企业用人需求,另外,通过实际项目案例,可以发现学员知识薄弱环节进行重点加强。目前嵌入式学院提供的真实项目包括嵌入式 Linux 和 Android 两个方向,包括:智能家居系统、智能手表、智能小车、仓储物联网系统、智能农业系统、智能 TV 系统、便携式智能医疗系统、远程视频监控系统、车载导航系统、安防监控系统等,每期学员可完整完成其中一个项目。
课程大纲:
19.嵌入式 Linux 在移动开发领域的典型应用--手机 Android 操作系统
介绍嵌入式 Linux 在移动开发领域的典型应用 Android 系统,了解Android 系统如何由嵌入式 Linux 衍生出来的,以及 Android 系统和嵌入式 Linux 系统差异化,了解 Android 系统的体系结构、开发特点以及关键技术点,并重点学习 ARM 对 Android 系统的支持现状,掌握 ARM平台上的 Android 相关开发工具和解决方案,重点讲解Android 系统在 ARM 平台上的移植过程,介绍 Android 系统底层驱动开发和嵌入式Linux 驱动开发的差异化,后介绍 ARM+Andriod 平台组合的行业应用前景,使学员全面了解 Android 系统的开发过程及发展前景。
20.Android 底层系统开发
通过本课程的学习,学员可以掌握从 Ubuntu 系统上搭建 Android 开发环境开始,到终 Android 系统硬件抽象层分析,从简单到复杂,从基础深入到架构,以源码分析为主线,架构设计理解为蓝图,上手实验为目的,系统介绍 Android 系统移植与架构开发要点。其中主要内容为:下载编译 Android 源码、Android 系统启动流程分析、定制产品系统、Android 移植技术要点分析、硬件抽象层实战等。
完成:《智能医疗平板系统深度定制》、《基于 Android 系统的移动设备开机速度优化》
21.嵌入式 Linux &Android 项目实践
在第二阶段课程中,为了帮助学员充分有效地掌握核心知识点在企业中的具体应用,并开始逐步按照企业需求、流程和规范进行实战训练,在嵌入式 Linux 应用开发、系统内核开发的课程讲授过程中全部采用项目驱动的方式,将来自合作企业的全真案例贯穿于课程中。通过这种方式带领学员分析企业岗位的真实技术需求,进行案例演练,从而快速掌握相关的技能和开发技巧。
完成:
1、基于 ARM Cortex-A9+Cortex-M0 的仓储物联网系统
2、基于 FSPAD_723 双核平板的智能家居系统
3、FarsightTV 智能网络机顶盒
4、车载导航系统项目
5、基于 ARM Cortex-A9 的安防监控项目
6、Android 开源平板电脑系统设计
7、实景智能家居
8、智能机器人项目
9、公交一卡通物联网充值系统
10、便携式智能医疗系统
11、基于 FS_Watch 的智能手表项目
12、智能农业综合实训系统
备注:嵌入式 Linux 方向的项目有:1、2、3、4、5、7、8、9、12;Android 方向的项目有:1、2、6、9、10、11
【校区环境】
【名师介绍】
林老师
· 具有丰富的嵌入式开发经验;
· 精通Linux下的C开发编程,熟悉Linux的各种应用编程接口和机制;
· 熟悉嵌入式Linux应用开发和系统开发,精通各类嵌入式操作系统;
· 精通多种基于Cortex-M系列的物联网方案;
· 从事过智能药盒、智能WIFI音箱、智能广告机等产品研发,熟悉三星S5PC100,S5PV210, STM32,高通体系架构的芯片;
· 从事过无人机和机器人的开发,对摄像头,RFID,GSM,GPS,2.4G,5.8G有深入
韦老师
· 具有丰富的嵌入式及物联网系统软硬件项目开发经验,一直致力于嵌入式Linux应用、系统、驱动和各类RTOS实时操作系统的研发;
· 从事过三星(S3C6410、S5PC100等)、瑞芯微(RK3128、RK3288等)、炬芯(S500、S900等)等基于ARM体系架构的多个平台的嵌入式系统软硬件的开发,对开源软件架构、开源硬件平台架构、智能硬件有独到的见解。曾独自研发多款物联网周边产品;
· 对各类传感器(比如指南针、六轴传感器等)、软硬件系统电源管理、WiFi开发深入研究。
谢老师
· 长期从事嵌入式系统的软硬件开发;
· 熟悉嵌入式系统上linux应用以及uCos实时操作系统的开发;
· 熟悉Linux系统的驱动开发,对嵌入式系统方向wifi,蓝牙的开发有较深的研究;
· 从事过教育竞赛类机器人的研发,熟悉各类传感器的驱动开发,以及各种传感器的姿态融合算法和滤波算法,对机器人的运动控制算法和无线通信技术有比较深入的研究;
· 熟悉STM32,三星(S3C2440,S5PV210等),全志(A20,A33等)
【教学现场】
【就业风采】