沈阳嵌入Linux&Qt就业培训班
【课程简介】
嵌入式(Linux&Qt)长期就业课程,是华清远见基于十多年教学和研发经验的积累,并结合当下流行的产品和技术打造的专业权威课程。课程内容涵盖嵌入式(Linux+Qt)应用开发、ARM 开发、系统移植、底层/驱动开发等核心技术,并配合一系列智能产品实训平台和高端实战项目,**每位学员在课堂上能充分理解技术理论,又能提高实战能力,真正提高学员的就业竞争力!
【教学安排】
第1阶段:嵌入式系统开发基础理论
职场定位:
1、嵌入式 Linux 软件开发工程师(Embedded Linux Software Development Engineer);
2、C++开发工程师(C++ Development Engineer )。
3、Linux C 语言开发工程师
本期目标:嵌入式系统是现在热门的计算机应用领域之一,嵌入式 C/C++语言在其中起着至关重要的作用。一个精通 C/C++语言程序设计的程序员,可以很容易地进入 Linux、Vxworks 等嵌入式操作系统下的软件开发工作。本阶段学习目标是掌握 Linux 操作系统的使用,打好 C 语言基础、进一步深入学习 C 语言编程并精通常用的数据结构,为将来从事应用开发及底层课程的学习打下基础。通过本阶段的学习,学员还可以精通使用 C++语言编程,为学习Qt图形化界面编程相关开发,打下良好基础。通过本期学习,还可以熟练掌握嵌入式 Linux的开发环境,为将来做底层嵌入式开发工作打基础。
课程大纲:
Linux 操作系统使用
本课程从零起点,讲述了 Linux 内核的起源、发展历程以及目前广泛的应用场合;概述了 Linux 系统的基本组成框架及组件功能;详细介绍 Linux 下的文件管理、用户管理、网络管理、软件管理等基本命令;以及包括 VI 编辑器,GCC 编译器,GDB 调试器和 Make 项目管理工具、Shell 编程等在内的 C 语言环境搭建知识。
完成:《文件管理器》、《用户管理器》
嵌入式 Linux C 语言编程
C语言是嵌入式领域重要也是主要的编程语言,本课程将在学员 C语言基础知识之上,通过大量编程实例重点讲解 C 语言的编程知识,包括函数与程序结构、指针、数组、常用算法、库函数的使用等知识。
完成:《字符串处理器》、《学生信息管理系统》
嵌入式 Linux C 语言数据结构及经典算法编程
数据结构是一门非常重要的基础课,在 Linux 内核、底层驱动、通信协议及实际开发中都有大量应用。本课程重点讲解数据结构的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、各种查找和排序算法等。每种重要的数据结构都会介绍其理论知识及 C 语言的实现,还会结合实例讲解其在实际中的应用。
完成:《死亡游戏》、《四则运算计算器》、《球钟》、《电文编码器》、《排课系统》
C++语言编程
本课程主要让学员从 C 到 C++、C++新增特性、C 和 C++兼容及差异、内存模型和名字空间、标准流、对象和类、运算符重载、模板、类继承、多态、异常、转换函数、智能指针及 STL、熟悉面向对象编程语言。
嵌入式 Linux 项目开发流程
本课程主要让学员从宏观了解嵌入式 Linux 开发环境搭建和项目开发流程,让学员建立起整体架构的概念,包括嵌入式产品需求分析和选型、硬件平台、移植、启动代码、驱动开发、系统部署等整个过程。
第二阶段:嵌入式系统开发核心课程
职场定位:
1、嵌入式 Linux 软件开发工程师(Embedded Linux Software Development Engineer);
2、C++开发工程师(C++ Development Engineer )。
3、Qt 图形化界面程序开发工程师(Qt GUI Development Engineer)。
4、Linux 内核工程师(Linux Kernel Development Engineer);
5、Linux 驱动工程师(Linux Driver Development Engineer );
本期目标:参加本期培训的学员应该掌握嵌入式 C 语言编程技巧和 Linux 底层开发的编程技巧。嵌入式 Linux 应用开发和 Linux 底层开发是嵌入式 Linux 中重要的一部分,也是企业人才需求广的一部分。本期学习的主要目标是精通嵌入式 Linux 下的程序设计,熟悉嵌入式Linux 开发流程,强化学员对 Linux 应用开发的理解和编码调试的能力。同时掌握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.Qt 应用编程
本课程主要让学员掌握 Qt 应用编程的主要方法,熟悉 Qt 中的主要组件和常用图形界面组件,熟悉 Qt 中事件驱动和信号槽机制,熟悉 Qt的 2D 技术,熟悉 Qt 的进程、线程及网络编程,并完成一个基于 Qt 的文件下载工具的编写。
完成:《基于网络编程和数据库完成项目》
12.ARM 处理器编程
ARM 是嵌入式领域主要的 CPU 处理器,了解 ARM 处理器的基础知识将为后面课程的底层开发打好坚实基础,本课程内容包括 ARM 处理器体系结构、编程环境、指令集、寻址方式、调试、汇编和混合编程等方面的内容,为后面移植课程的学习打好基础。学完此课程学员可获得ARM 公司全球统一授权培训证书。
13.ARM 硬件接口开发
本课程包含 ARM 处理器体系结构、编程环境、指令集、寻址方式、调试、汇编和混合编程等方面知识,重点介绍 ARM 的常用接口开发及硬件电路设计基础(包括 IO、串口、看门狗、PWM 定时器、ADC、实时时钟、SPI、I2C 等),为后续的课程打好基础。结合 FS4412 开发板和自主研发的 Cortex-A9 仿真器。
完成:
1、基于 Cortex-A9 的 GPIO
2、基于 Cortex-A9 的 PWM
3、基于 Cortex-A9 的键盘中断
4、基于 Cortex-A9 的串口实验
5、基于 Cortex-A9 的 RTC 驱动
6、基于 Cortex-A9 的 ADC 驱动
7、基于 Cortex-A9 的看门狗实验
8、基于 Cortex-A9 的 I2C、SPI 接口实验
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 下常用接口驱动的编写方法,内容包括:
1、块设备驱动:掌握块设备驱动的原理、学会 ramdisk 的编写;
2、网卡驱动:掌握 Linux 网卡设备驱动的移植及编写;
3、mtd 设备驱动:掌握 linux 下的 flash 存储设备驱动的移植及 编写;
4、 frambuffer 驱动:掌握 frambuffer 设备驱动的移植及编写;
5、 eMMC/sd 设备驱动:掌握 eMMC/sd 设备驱动的移植及编写;
6、 videvo 设备驱动:掌握 v4l2 内核框架,熟悉 video 设备驱动 的移植及编写;
7、 usb 设备驱动:掌握 USB 设备的移植及编写。
18. 综合案例的实战训练
在第二阶段课程中,为了帮助学员充分有效地掌握核心知识点在企业中的具体应用,并开始逐步按照企业需求、流程和规范进行实战训练,在嵌入式 Linux 应用开发、系统内核开发的课程讲授过程中全部采用项目驱动的方式,将来自合作企业的全真案例贯穿于课程中。通过这种方式带领学员分析企业岗位的真实技术需求,进行案例演练,从而快速掌握相关的技能和开发技巧。
第三阶段:嵌入式系统开发拓展与实践
职场定位:
1、嵌入式 Linux 软件开发工程师(Embedded Linux Software Development Engineer);
2、C++开发工程师(C++ Development Engineer )。
3、Qt 图形化界面程序开发工程师(Qt GUI Development Engineer)。
4、Linux 内核工程师(Linux Kernel Development Engineer);
5、Linux 驱动工程师(Linux Driver Development Engineer );
本期目标:参加本期培训的学员应该掌握嵌入式 Linux 和 Qt 应用开发、系统开发和驱动开发的综合能力。本期学习的主要目标是掌握嵌入式产品开发从需求分析到详细设计整个过程的开发内容,并通过技术专题的讲解,帮助学员进一步体验 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 项目实践
在第二阶段课程中,为了帮助学员充分有效地掌握核心知识点在企业中的具体应用,并开始逐步按照企业需求、流程和规范进行实战训练,在嵌入式 Linux 应用开发、系统内核开发的课程讲授过程中全部采用项目驱动的方式,将来自合作企业的全真案例贯穿于课程中。通过这种方式带领学员分析企业岗位的真实技术需求,进行案例演练,从而快速掌握相关的技能和开发技巧。
完成:
1、基于 ARM Cortex-A9+Cortex-M0 的仓储物联网系统
2、基于 FSPAD_733 双核平板的智能家居系统
3、FarsightTV 智能网络机顶盒
4、车载导航系统项目
5、基于 ARM Cortex-A9 的安防监控项目
6、VR 智能家居
7、wifi 智能小车
8、便携式智能医疗系统
9、智能农业综合实训系统
【专业师资】
窦老师
· 嵌入式软件工程师;
· 精通c/c++编程语言及常用的数据结构、基本算法;
· 精通linux下socket网络编程及系统编程,熟悉Linux的各种应用编程接口和机制;
· 6年嵌入式linux课程培训经验。
任老师
· 物联网Linux、Android项目开发经验丰富;
· 擅长Java开发、Android应用开发、Android底层开发,嵌入式系统开发,Android智能硬件开发,物联网系统 开发;
· 讲述Java、Android应用、Android底层、c语言、Android智能系统和物联网系统相关项目实战等课程。
杨老师
· 9年嵌入式开发经验、7年培训经验;
· 精通linux操作系统内核、驱动和linux下C/C++语言编程;
· 精通Itron、uCos操作系统内核及接口编程;
· 辅导过超过10000名学生
【教学现场】
【嵌入式开发学员薪资水平】