一、学习导语
互联网+时代,高端 IT 人才缺口巨大!为优秀人才搭建高端学习平台,为卓越企业打造精英员工,华清远见结合自身优势特推出星创客精英训练营。由华清远见全国各大校区教学总监和金牌讲师亲自授课,课程内容涵盖嵌入式开发、Android 开发、物联网开发三大版块。通过5 个月的时间,全面深入的学习嵌入式系统开发,全方位打造顶级嵌入式工程师、嵌入式驱动高级工程师、嵌入式产品经理、智能硬件产品经理等高端 IT 开发人才!
二、课程目标
通过本课程的系统学习,可以使学员由浅入深地对嵌入式Linux 和Android 系统进行全面学习,能够独立胜任嵌入式Linux 和Android 两个方向的开发工作。嵌入式Linux 方向包括C 语言开发、嵌入式Linux 应用开发、系统开发、驱动开发等。Android 开发包括Android 应用开发、Android 系统开发、Android 底层开发等。学习目标如下:
1. 熟练使用Linux 操作系统
2. 精通Linux 下C 语言编程
3. 精通嵌入式Linux 应用开发
4. 掌握ARM 处理器平台及其接口硬件开发
5. 掌握嵌入式Linux 下Bootloader 的移植方法
6. 精通嵌入式Linux 内核裁减移植及内核调试
7. 精通嵌入式Linux 下常用接口的驱动开发
8. 熟悉Java 语言编程
9. 熟悉Android 应用开发
10. 掌握基于Linux 内核的Android 底层系统开发
11. 熟悉嵌入式Linux 实际项目案例开发流程
12. 熟悉基于Android 系统的实际项目案例开发流程
13. 掌握嵌入式Linux 内核高级驱动的开发和移植
14. 掌握Andorid 高级驱动的开发和移植
15. 掌握物联网传感器和无线通信技术的开发
16. 掌握创客创业的流程和方法
三、课程特色
1、全面覆盖流行的嵌入式与物联网技术
课程涵盖ARM 微处理器、Linux 操作系统内核驱动、Linux 应用开发技术、Android 底层移植、Android 应用开发、ARM 微控制器开发、传感器开发、ZigBee 短距离无线传感网络、Bluetooth BLE 蓝牙通讯技术、RFID 射频识别应用开发、智能云服务器等流行技术的开发。这些即分属不同层次,又相互关联,只有全面接触,才能融会贯通。这也是目前硬 件智能化、网络化、体系化的要求。
2、深入学习ARM、Linux 内核驱动、Android 移植驱动等重点/难点内容
ARM 处理器、Linux 内核驱动、Android 移植驱动等内容即是核心技术,也是难点部分。课程对这部分内容分为了初级阶段和高级阶段两个部分,分别培养不同层次嵌入式工程师。学习高级阶段课程,需要经过选拔、考试环节。
3、多个流行的智能硬件实训项目
华清远见研发中心多年来打造了多种实用、专业的智能硬件开发项目。项目同样不仅仅局限于传统的开发板上,而是更多的应用到各种智能系统中,如:智能家居、智能农业、智能穿戴、智能TV、智能医疗等。详见研发中心教学产品介绍。
4、专业的创客创业实践课程
目前国家大环境鼓励大学生自主创业,对于掌握一技之长的大学生,创业虽然困难重重,但已经是一种实实在在的选择。智能硬件技术及相关行业更是处于一个快速发展阶段,即需要更多的创新,同时也蕴含很多机会。授课的同时也会安排相关的课程及实践环节,帮助学员打开眼界。
四、详细课程大纲
1、基础补习课程
本阶段学习目标掌握Linux 操作系统的使用,打好C 语言基础、进一步深入学习C 语言高级编程,为将来应用开发及Linux 底层驱动课程的学习打下良好基础。通过本阶段的学习,学员还可以熟练使用Java 语言编程,为后期学习Android 相关课程,打下良好基础。
基础补习阶段课程为赠送课程,提供在线学习视频,学员自学,不占5 个月总课程时间。正式课程中,老师会结合应用带学员回顾加深这部分内容。
(1)嵌入式Linux 操作系统的使用
· Linux 开发环境的搭建
· Linux 内核的起源、发展历程以及目前广泛的应用场合
· Linux 系统的基本组成框架及组件功能
· Linux 下的文件管理、用户管理、网络管理、软件管理等基本命令
· VI 编辑器,GCC 编译器,GDB 调试器和 Make 项目管理工具使用
· shell 脚本编程
· 完成《文件管理器》和《用户管理器》
(2)嵌入式Linux C 高级编程
· C 语言编程基础知识
· 重点讲解 C 语言的高级编程知识,包括函数与程序结构、指针、数组、常用算法、库函数的使用等知识
· 完成《字符串处理器》和《学生信息管理系统》
(3)数据结构及经典算法编程
· 本重点讲解数据结构的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、各种查找和排序算法等知识
· 完成:《死亡游戏》、《四则运算计算器》、《球钟》、《电文编码器》、《排课系统》
(4)Java 语言高级编程
· 掌握 Java 语言的基本语法和面向对象编程方法
· 理解 Java 中多线程编程,网络编程及常用Java 类
· 完成《停车场系统模拟小项目》
2、应用层核心课程
本阶段学习的主要目标是精通嵌入式Linux 下的程序设计,熟悉嵌入式Linux 开发流程,强化学员对Linux应用开发的理解和编码调试的能力。Android系统越来越多的应用到嵌入式领域,本课程学习的另一个主要目标是掌握Android应用编程,可以完成Android平台的应用项目的编写。
(1)Linux 系统文件I/O
· 系统编程、标准I/O、文件I/O
· Linux动态库和静态库的制作和使用
· 完成:《硬盘性能测试》和《Linux系统命令ls的实现》
(2)Linux 系统并发编程
· 进程的基础知识、多进程的创建和使用方法
· 进程间通信的 7 种通信方法(无名管道、有名管道、信号、消息队列、共享内存、信号灯集、socket)
· 守护进程的创建和使用方法
· 线程的基础知识,多线程的创建和使用方法
· 线程间的同步与互斥
· 实现《守护进程自动下载木马的实现》和《多进程并发下载》
(3)Linux 系统网络编程
· 网络体系结构、TCP/IP协议、wireshark抓包工具的使用
· TCP及UDP编程实现
· 服务器模型,并发服务器的实现、网络超时控制
· 网络协议分析,网络抓包实现
· 完成《TCP文件服务器》、《UDP网络聊天室》、《ping客户端》、《网络嗅探器》
(4)嵌入式数据库开发
· Sqlite3数据库基本知识、SQL语句
· 命令方式操作Sqlite3数据库
· C语言操作Sqlite3数据库
· 完成《学生管理系统》和《在线词典》
(5)Android 应用开发基础
· Android四大组件(Activity、Service、BroadcastReceiver、ContentProvide)
· Android常用UI控件和常用布局设计
· Android资源文件的使用
· Android进程与线程
· Android文件存储
· Android传感器编程
· Android网络编程
· Android多媒体编程
· 完成《仿酷我音乐器》和《弹力球游戏》
3、底层核心课程
本阶段课程要求学员掌握ARM体系结构基础知识、ARM硬件接口编程方法,掌握Bootloader和Linux内核的移植方法,根文件系统的制作,掌握Linux下的字符设备、块设备、网络设备的驱动程序开发,能够熟练的移植或编写不同类型的设备驱动程序。
通过本阶段课程学习,学员可以掌握从Ubuntu系统上搭建Android开发环境开始,到最终Android系统硬件抽象层分析,从简单到复杂,从基础深入到架构,以源码分析为主线,架构设计理解为蓝图,上手实验为目的,系统介绍Android系统移植与架构开发要点。
(1)ARM 处理器编程
· ARM处理器体系结构框架
· ARM处理器工作寄存器、ARM处理器流水线
· ARM处理器编程环境、调试和编程规则
· ARM处理器指令集和ARM指令寻址方式等
(2)ARM 硬件接口开发
· ARM 接口相关硬件基础知识
· ARM处理器常用接口开发
(包括GPIO、串口、看门狗、PWM、ADC、RTC、SPI、I2C等)
· 物联网基础知识和物联网常用传感器学习
· 完成:
a. 基于Cortex‐A9 的温度采集实验
b. 基于Cortex‐A9的GPIO
c. 基于Cortex‐A9 的键盘驱动
d. 基于Cortex‐A9 的闹铃驱动
e. 基于Cortex‐A9的adc驱动
f. 基于Cortex‐A9 的flash读写实验
(3)嵌入式Linux 系统开发
· 内核源码结构
· 最新的Uboot‐201301移植到FS4412平台上的过程
· 最新的内核Linux‐3.14移植到在FS4412平台上的过程
· 根文件系统制作的过程
· 设备树的基本语法和编写
· 完成:
a. 搭建交叉开发环境
b. 移植uboot支持FS4412开发板(Exynos4412)
c. 移植Linux3.14支持FS4412开发板
d. 制作自己的根文件系统
(4)Linux 内核开发基础
· 了解Linux相关运行机理,为后面的驱动开发打好理论基础,
· 内核源码结构、内存管理、进程管理、中断管理、系统调用、内核同步
· 内核中断机制、时钟和定时器管理、文件系统和I/O设备管理等
· 内核模块开发、内核设备模型
· 完成:
a. 内核模块编写、编译和使用
b. 互斥机制、阻塞和非阻塞IO、设备轮询、异步通知
c. 中断注册、中断处理函数编写、内核相关延时机制
d. 内核内存分配、释放和映射
e. 设备模型、设备节点自动创建
(5)Linux 内核驱动开发
· Linux 内核驱动开发基础、字符设备驱动框架、块设备驱动框架、网络设备驱动框架、platform 驱动架构、IIC 驱动架构、SPI 驱动架构
· Linux 字符设备驱动开发
· Linux 块设备驱动开发
· Linux 网络设备驱动开发
· 完成:
a. GPIO 接口驱动
b. 按键中断接口驱动
c. PWM 接口驱动
d. ADC 接口驱动
e. I2C 接口驱动
f. SPI 接口驱动
g. 块设备驱动(ramdisk 驱动)
h. 网络设备驱动(DM9000)
(6)Android 移植开发
· Android 底层开发环境的搭建、下载和编译Android 源码
· Android 系统启动流程分析、定制产品系统
· Android 移植技术要点分析、硬件抽象层实战
· 完成《智能医疗平板系统深度定制》和《基于 Android 系统的移动设备开机速度优化》
4、开发拓展与实践
嵌入式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)智能农业综合实训系统
(13)四轴飞行器项目
5、底层深入课程
从本阶段课程开始进入了嵌入式底层深入加强的课程内容。通过该课程让学员掌握底层高级驱动的开发和Andorid底层高级驱动的移植。
(1)嵌入式Linux 底层深入课程
通过案例讲解并完成:
· 嵌入式Linux Input驱动开发和移植
· 嵌入式Linux LCD显示驱动开发和移植
· 嵌入式Linux音频驱动开发和移植
· 嵌入式Linux USB驱动开发和移植
· 嵌入式Linux Camera驱动开发和移植
· 嵌入式Linux eMMC驱动开发和移植
· 嵌入式Linux MTD驱动开发和移植
(2)Android 底层深入课程
通过案例讲解并完成:
· 嵌入式Android LCD驱动开发和移植
· 嵌入式 Android 触摸屏驱动开发和移植
· 嵌入式 Android 重力传感器驱动开发和移植
· 嵌入式 Android GPRS 驱动开发和移植
· 嵌入式 Android GPS 驱动开发和移植
· 嵌入式 Android 3G/4G 驱动开发和移植
· 嵌入式 Android 摄像头驱动开发和移植
· 嵌入式 Android WIFI 驱动开发和移植
6、物联网开发高级课程
(1)物联网开发高级课程
· 物理网开发平台介绍
· 物联网设备开发流程
· 物联网操作系统的介绍(ucos、contiki、tinyos)
· 物联网常用传感器深入学习
· 物联网无线通信技术学习(zigbee、蓝牙、RFID等)
· 相关项目:
7、创客创业方法与经验
通过该阶段课程,系统学习创客创业方法、团队管理,实地体验创客空间,感受创客文化。提供相关创业平台对接。
· 创业的基础条件
· 创业的时间选择、创业资金的获得途径、创业团队的组建、创业公司的管理
· 知识产权的保护
· 中关村创客空间资源介绍
· 智能硬件和移动互联网创业案例分析
· 中关村创客空间实践