课程简介:
行业热门,政策风口,人才缺口极大,现在入场时机正好!
上千人检验,数轮迭代的硬核知识体系,软硬件通吃
保姆式教学+简历指导+1V1模拟面试+3次内推,助力轻松就业!
课程目录:
第0周 物联网/嵌入式工程师就业班开学典礼
想了解更多课程详情请观看导学视频:https://class.imooc.com/trysee/learn/?c=embedded
课程安排:
1、物联网/嵌入式行业发展与趋势
2、嵌入式与物联网,人工智能之间的关系
3、自主研发的硬件平台介绍
4、学习路径及课程内容安排介绍
5、每个阶段课程学习方法介绍
6、课程学习过程中答疑及就业服务介绍 等
2、嵌入式与物联网,人工智能之间的关系
3、自主研发的硬件平台介绍
4、学习路径及课程内容安排介绍
5、每个阶段课程学习方法介绍
6、课程学习过程中答疑及就业服务介绍 等
第1周 嵌入式开发基石-计算机基础与C语言
C语言是嵌入式工程师主流开发语言,它是所有高级语言根基,它决定了一名工程师是否可以在本质上理解开发语言,非常重要,本周带领大家回顾重要计算机基础以及迈进C语言大门,带同学们系统入门。
课程安排:
1、开发环境搭建,在虚拟机中安装ubuntu系统
2、计算机基础知识介绍,了解计算机工作原理,程序如何运行
3、Linux 基础命令,掌握在Linux命令行终端中如何实现文件操作
4、GCC编译器介绍及使用,掌握gcc编译程序的流程,学会使用gcc编译器编译C语言
5、二进制、八进制、十进制、十六进制之间的转换讲解
6、原码、反码、补码,彻底搞清楚数据是如何在计算机中进行存储
7、C语言数据类型,掌握如何使用C语言的数据类型描述实际生活中的各种数据
8、C语言运算符,掌握如何使用C语言的运算符完成实际生活中的各种数据计算
2、计算机基础知识介绍,了解计算机工作原理,程序如何运行
3、Linux 基础命令,掌握在Linux命令行终端中如何实现文件操作
4、GCC编译器介绍及使用,掌握gcc编译程序的流程,学会使用gcc编译器编译C语言
5、二进制、八进制、十进制、十六进制之间的转换讲解
6、原码、反码、补码,彻底搞清楚数据是如何在计算机中进行存储
7、C语言数据类型,掌握如何使用C语言的数据类型描述实际生活中的各种数据
8、C语言运算符,掌握如何使用C语言的运算符完成实际生活中的各种数据计算
第2周 C语言进阶-编程思想
本周我们重点学习C语言编程思想,掌握模块儿化编程思想,存储、指针操作内存等内容。
课程安排:
1、C语言控制语句,掌握在实际软件开发中如何使用C语言的控制语句做逻辑控制,完成功能需求
2、C语言数组,掌握在多个数据如何在C语言中进行存储
3、C语言函数,掌握模块化编程思想,如何用函数封装功能
4、C语言指针, 掌握C语言的精华,如何使用指针操作内存
2、C语言数组,掌握在多个数据如何在C语言中进行存储
3、C语言函数,掌握模块化编程思想,如何用函数封装功能
4、C语言指针, 掌握C语言的精华,如何使用指针操作内存
第3周 C语言高级进阶
本周进一步是c语言高级内容讲解,彻底掌握C语言函数、指针、结构体、内存管理等进阶内容,为嵌入式工程师打下坚实的语言基础,相信你学完本周,内功也会更加深厚。
课程安排:
1、C语言数组、函数、指针混合运用,重点内容,再次讲解,彻底掌握
2、C语言宏定义,使用宏提高代码的通用性和可读性
3、C语言结构体、联合体、枚举,生活中的复杂对象如人的信息,外卖订单的信息如何用C语言进行描述
4、C语言位域,在运行内存很小的场合,如何节省变量占用的内存空间
5、C语言程序运行内存剖析,彻底搞清楚变量的生命周期,内存的分配和释放
6、C语言static关键字,搞清楚static关键字修饰的全局变量、局部变量、函数的实际场景用法
7、C语言堆区内存管理,掌握在C语言中如何做动态内存管理
2、C语言宏定义,使用宏提高代码的通用性和可读性
3、C语言结构体、联合体、枚举,生活中的复杂对象如人的信息,外卖订单的信息如何用C语言进行描述
4、C语言位域,在运行内存很小的场合,如何节省变量占用的内存空间
5、C语言程序运行内存剖析,彻底搞清楚变量的生命周期,内存的分配和释放
6、C语言static关键字,搞清楚static关键字修饰的全局变量、局部变量、函数的实际场景用法
7、C语言堆区内存管理,掌握在C语言中如何做动态内存管理
第4周 C语言项目实战与《阶段笔试》
本周我们通过项目实践来进一步巩固C语言基础,一来提升学习趣味,二来强化C语言在实际项目中的运用,从而彻底掌握C语言。
课程安排:
项目一:日历系统,通过项目强化C语言的运用,主要功能如下:
1、输入一个年份,显示这一年的日历
2、输入一个年份和月份,显示这一个月的日历
3、输入一个年份,月份,日期,显示这一天是星期几
项目二:俄罗斯方块游戏,通过项目强化C语言的运用,掌握游戏开发编程思想,主要功能如下 :
1、在终端上面显示俄罗斯方块
2、通过按键控制俄罗斯方块变形
3、摞在一起的俄罗斯方块自动消除
4、随机出现俄罗斯方块
5、游戏速度随等级自动加快
6、实时显示玩家的游戏得分
《第一阶段企业笔试》
1、C语言基础语法默写,从企业面试官的角度,考察对C语言语法掌握的情况
2、C语言企业笔试题考试及讲解,从企业的角度考察C语言知识,让同学提前了解企业在人才招聘环节,对C语言的考察点
1、输入一个年份,显示这一年的日历
2、输入一个年份和月份,显示这一个月的日历
3、输入一个年份,月份,日期,显示这一天是星期几
项目二:俄罗斯方块游戏,通过项目强化C语言的运用,掌握游戏开发编程思想,主要功能如下 :
1、在终端上面显示俄罗斯方块
2、通过按键控制俄罗斯方块变形
3、摞在一起的俄罗斯方块自动消除
4、随机出现俄罗斯方块
5、游戏速度随等级自动加快
6、实时显示玩家的游戏得分
《第一阶段企业笔试》
1、C语言基础语法默写,从企业面试官的角度,考察对C语言语法掌握的情况
2、C语言企业笔试题考试及讲解,从企业的角度考察C语言知识,让同学提前了解企业在人才招聘环节,对C语言的考察点
阶段二:嵌入式开发基础之数据结构
10门课 /课程总时长:15小时
第5周 数据结构-线性结构
在嵌入式开发工程中,任何一个软件系统的开发都离不开数据结构相关的算法,数据结构也是大厂在人才招招聘环节主要考察点,掌握它非常重要,本周我们先从线性结构讲起,用C语言实现,再一次夯实C语言基础。
课程安排:
1、顺序表,使用数组来存放数据,实现数据的增删改查等操作
2、链表,使用动态内存分配节点来存放数据,实现数据的增删改查等操作
3、栈,数据先进后出,实现顺序结构和链式结构的栈,实现出栈和入栈等操作
4、队列,数据先进先出,实现顺序结构和链式结构的队列,实现入队列和出队列等操作
2、链表,使用动态内存分配节点来存放数据,实现数据的增删改查等操作
3、栈,数据先进后出,实现顺序结构和链式结构的栈,实现出栈和入栈等操作
4、队列,数据先进先出,实现顺序结构和链式结构的队列,实现入队列和出队列等操作
第6周 数据结构-非线性结构
本周我们讲解非线性结构、图数据结构、哈希表等更多数据结构内容,带领同学们0到1实现。
课程安排:
1、二叉树,讲解二叉树的创建、递归遍历算法和非递归遍历算法,以及哈夫曼树编解码算法
2、图,讲解图的创建,深度遍历和广度遍历算法,以及图中最短路径的遍历算法
3、哈希表,讲解使用哈希表进行快速的数据查询,以及哈希算法在冲突的时候解决方法
2、图,讲解图的创建,深度遍历和广度遍历算法,以及图中最短路径的遍历算法
3、哈希表,讲解使用哈希表进行快速的数据查询,以及哈希算法在冲突的时候解决方法
第7周 排序与复杂度
本周讲解排序与算法的时间、空间复杂度内容,从而学会分析一个算法的好坏。
课程安排:
1、排序,讲解常用的冒泡、选择、快速排序、堆排序等常用排序算法
2、时间复杂度和空间复杂度,分析一个算法的好坏衡量方法
2、时间复杂度和空间复杂度,分析一个算法的好坏衡量方法
第8周 数据结构项目实战
本周我们安排了一个学生管理系统小型项目进行练手,让同学们再次熟悉和掌握数据结构相关算法的实际场景运用。
课程安排:
1、基于VT100的菜单设计
2、学生信息录入系统
3、学生信息查询
4、学生信息修改
5、学生信息排序
6、学生信息删除
2、学生信息录入系统
3、学生信息查询
4、学生信息修改
5、学生信息排序
6、学生信息删除
阶段三:嵌入式开发基础之Linux Shell和Makefile
4门课 /课程总时长:10小时
第9周 Shell编程和Makefile工程管理
在实际嵌入式Linux平台项目开发过程中,由于涉及到的开发平台众多,基本都是通过命令行操作,工程师需要掌握Linux下常用命令和shell脚本编写以及Makefile管理工程文件进行自动化编译,这也是我们本周的重点内容。
课程安排:
1、Linux 常用命令,讲解文件管理、用户管理、网络管理、磁盘管理等相关的命令
2、awk和sed命令,强大的数据按列处理和按行处理命令
3、shell脚本编程,胶水融合剂,让固定的流程自动化起来
4、Makefile多文件工程管理,完成代码的自动化编译,掌握Makefile的编写方法是嵌入式工程师必须具备的能力
5、阶段企业笔试-常用命令默写,从企业面试的角度,考察学员对Linux常用命令的掌握
6、阶段企业笔试-从企业笔试的角度考察学员对shell脚本和Makefile的掌握情况,让学员提前了解企业对工程师在shell和Makefile两方面的要求
2、awk和sed命令,强大的数据按列处理和按行处理命令
3、shell脚本编程,胶水融合剂,让固定的流程自动化起来
4、Makefile多文件工程管理,完成代码的自动化编译,掌握Makefile的编写方法是嵌入式工程师必须具备的能力
5、阶段企业笔试-常用命令默写,从企业面试的角度,考察学员对Linux常用命令的掌握
6、阶段企业笔试-从企业笔试的角度考察学员对shell脚本和Makefile的掌握情况,让学员提前了解企业对工程师在shell和Makefile两方面的要求
阶段四:嵌入式应用层开发之Linux 文件操作
5门课 /课程总时长:15小时
第10周 Linux文件IO和标准IO
在嵌入式开发过程中,涉及到的主流操作系统是Linux系统,在Linux系统中设计理念是”一切皆文件”,所以掌握Linux下文件操作非常重要,本周我们先从文件IO和标准IO讲起。
课程安排:
1、Linux系统调用实现原理讲解,掌握系统调用的工作原理,理解printf函数是如何将字符串输出到屏幕
2、基于文件描述符的文件打开、读写、关闭等操作,掌握Linux下文件的操作API,并熟练使用这些API完成文件操作
3、基于标准C库的文件打开、读写、关闭等操作,理解标准C库函数和系统调用之间的区别和联系,掌握如何使用标准C库API完成文件操作
4、动态库、静态库制作和使用,理解gcc编译器链接库的工作原理和Linux操作系统如何加载动态库,掌握Linux下动态库和静态库的制作和使用
2、基于文件描述符的文件打开、读写、关闭等操作,掌握Linux下文件的操作API,并熟练使用这些API完成文件操作
3、基于标准C库的文件打开、读写、关闭等操作,理解标准C库函数和系统调用之间的区别和联系,掌握如何使用标准C库API完成文件操作
4、动态库、静态库制作和使用,理解gcc编译器链接库的工作原理和Linux操作系统如何加载动态库,掌握Linux下动态库和静态库的制作和使用
第11周 Linux下文件操作项目实践与阶段评测
实现一个基础的shell程序,能完成ls 和 cp功能,通过实现ls命令和cp命令功能,再次强化学员对Linux下文件操作和常用系统调用API使用
课程安排:
1、输入命令解析命令参数
2、根据输入的ls命令,读取目录下的文件属性信息,并显示
3、根据输入的cp命令,完成文件拷贝和递归目录下的所有文件拷贝
4、笔试安排:常用文件操作函数默写,从企业面试的角度,考察学员对Linux下常用文件操作API函数掌握情况
2、根据输入的ls命令,读取目录下的文件属性信息,并显示
3、根据输入的cp命令,完成文件拷贝和递归目录下的所有文件拷贝
4、笔试安排:常用文件操作函数默写,从企业面试的角度,考察学员对Linux下常用文件操作API函数掌握情况
阶段五:嵌入式应用层开发之 Linux 多进程、多线程、IO模型
13门课 /课程总时长:20小时
第12周 Linux 多进程、多线程、IO模型
嵌入式开发的主流操作系统是Linux操作系统,这一阶段由一线12年经验的高级工程师进行授课,主要让学员掌握Linux 下多线程、多进程编程思想和常用的IO模型,让自己开发的软件能充分发挥多核CPU优势,提升软件性能。
课程安排:
1、进程的概念,理解在Linux系统中进程是什么
2、进程相关的命令,掌握Linux系统中进程信息的查看
3、进程创建,掌握Linux系统中如何在一个程序中创建多个进程
4、进程间通信,掌握Linux系统中常用的进程间通信方法,如:管道、信号、5、消息队列、共享内存、信号灯集等
6、进程间同步,理解同步的概念,掌握Linux系统中进程间同步的方式
7、线程的概念,理解在Linux系统中线程是什么
8、线程相关的命令,掌握Linux系统中线程信息的查看
9、线程创建,掌握Linux系统中如何在一个程序中创建多个线程
10、线程间通信,掌握Linux系统中线程间通信的方法
11、线程间同步,掌握Linux系统中线程间同步机制,如:信号量、条件变量、互斥锁等
12、阻塞IO,理解阻塞IO的概念及工作原理
13、非阻塞IO,理解非阻塞IO的概念及工作原理
14、IO多路复用,理解IO多路复用的概念及工作原理,掌握Linux下IO多路复用的方法,如:select,poll,epoll等。
2、进程相关的命令,掌握Linux系统中进程信息的查看
3、进程创建,掌握Linux系统中如何在一个程序中创建多个进程
4、进程间通信,掌握Linux系统中常用的进程间通信方法,如:管道、信号、5、消息队列、共享内存、信号灯集等
6、进程间同步,理解同步的概念,掌握Linux系统中进程间同步的方式
7、线程的概念,理解在Linux系统中线程是什么
8、线程相关的命令,掌握Linux系统中线程信息的查看
9、线程创建,掌握Linux系统中如何在一个程序中创建多个线程
10、线程间通信,掌握Linux系统中线程间通信的方法
11、线程间同步,掌握Linux系统中线程间同步机制,如:信号量、条件变量、互斥锁等
12、阻塞IO,理解阻塞IO的概念及工作原理
13、非阻塞IO,理解非阻塞IO的概念及工作原理
14、IO多路复用,理解IO多路复用的概念及工作原理,掌握Linux下IO多路复用的方法,如:select,poll,epoll等。
第13周 Linux 项目实战-实现并发服务器模型与企业笔试
通过上周的学习我们掌握了Linux 多进程、多线程、IO模型,本周通过带同学们0到1实现一个并发服务器模型彻底掌握嵌入式中重要的Linux知识实践。
课程安排:
1、基于多进程、多线程实现并发服务器模型,主要功能如下:
2、服务器进程创建线程池,维护线程池中线程创建和销毁,创建子进程反馈3、数据处理结果
4、服务器进程创建消息队列,从消息队列获取其他客服端进程发来的任务数据,并从线程池中取线程处理任务
5、线程池中的任务线程处理完客户端的数据后,通知服务器进程子,由服务器子进程共享内存的方式获取处理的数据,然后反馈给客户端进程
6、客户端进程通过消息队列提交任务请求,通过共享内存获取任务处理结果
7、企业笔试:常用Linux操作系统知识默写,从企业面试的角度,考察学员对Linux操作系统多进程、多线程、IO模型的理解
2、服务器进程创建线程池,维护线程池中线程创建和销毁,创建子进程反馈3、数据处理结果
4、服务器进程创建消息队列,从消息队列获取其他客服端进程发来的任务数据,并从线程池中取线程处理任务
5、线程池中的任务线程处理完客户端的数据后,通知服务器进程子,由服务器子进程共享内存的方式获取处理的数据,然后反馈给客户端进程
6、客户端进程通过消息队列提交任务请求,通过共享内存获取任务处理结果
7、企业笔试:常用Linux操作系统知识默写,从企业面试的角度,考察学员对Linux操作系统多进程、多线程、IO模型的理解
阶段六:嵌入式应用层开发之Linux 网络编程
19门课 /课程总时长:20小时
第14周 网络基础和UDP Socket编程
在物联网的时代,任何一款嵌入式产品都需要具备网络功能进行万物互联,掌握网络知识非常重要,从本周开始我们会从网络的基础知识讲起到带你走进Linux 网络编程的大门。
课程安排:
1、IP地址、子网掩码、默认网关、DNS服务器,掌握网络的基础知识,理解常用网络通信参数的含义
2、数据包内网、外网传输方式,掌握局域网是如何搭建,理解交换机和路由器的工作原理,掌握数据包是如何在网络中进行传输
3、网络模型,理解网络协议栈的设计原理,掌握网络模型的分层含义
4、一帧数据包格式,通过分析网络数据包个格式,掌握网络通信的原理
5、TCP协议,掌握TCP协议的三次握手、四次挥手、数据包传输的原理
6、UDP协议,掌握UDP协议的特点,对比TCP协议的不同,理解TCP和UDP协议的各自优缺点
7、网络通信中常用协议,掌握网络通信中常用的一些通信协议使用场景和特点
8、udp客户端实现,掌握Linux系统中socket在udp客户端的使用及通信方法
9、udp服务器端实现,掌握Linux系统中socket在udp服务器端的使用及通信方法
10、udp并发服务器实现,掌握并发服务器的设计思想和在Linux系统中如何使用多进程、多线程的思想实现udp并发无服务器
11、基于udp协议的局域网聊天室软件开发,掌握多人聊天环境中群聊的实现思想
2、数据包内网、外网传输方式,掌握局域网是如何搭建,理解交换机和路由器的工作原理,掌握数据包是如何在网络中进行传输
3、网络模型,理解网络协议栈的设计原理,掌握网络模型的分层含义
4、一帧数据包格式,通过分析网络数据包个格式,掌握网络通信的原理
5、TCP协议,掌握TCP协议的三次握手、四次挥手、数据包传输的原理
6、UDP协议,掌握UDP协议的特点,对比TCP协议的不同,理解TCP和UDP协议的各自优缺点
7、网络通信中常用协议,掌握网络通信中常用的一些通信协议使用场景和特点
8、udp客户端实现,掌握Linux系统中socket在udp客户端的使用及通信方法
9、udp服务器端实现,掌握Linux系统中socket在udp服务器端的使用及通信方法
10、udp并发服务器实现,掌握并发服务器的设计思想和在Linux系统中如何使用多进程、多线程的思想实现udp并发无服务器
11、基于udp协议的局域网聊天室软件开发,掌握多人聊天环境中群聊的实现思想
第15周 TCP Socket编程和WireShark抓包分析
本周继续深入网络编程的TCP Socket编程和WireShark抓包分析内容,让同学们更深层次的理解TCP Socket、TCP和UDP协议。
课程安排:
1、TCP客户端实现, 掌握Linux系统中socket在tcp客户端的使用及通信方法
2、TCP服务器端实现, 掌握Linux系统中socket在tcp服务器端的使用及通信方法
3、TCP粘包分析,理解TCP粘包原理,掌握TCP粘包情况下如何正确解析数据包
4、TCP并发服务器实现,掌握并发服务器的设计思想和在Linux系统中如何使用多进程、多线程的思想实现TCP并发无服务器
5、基于TCP协议的文件传输服务器软件开发,通过文件的上传和下载功能,再次强化tcp socket的使用
6、WireShark抓包工具使用,学会抓包工具的使用,并使用抓包工具详细分析TCP协议和UDP协议的具体内容,让学员深层次理解TCP和UDP协议
2、TCP服务器端实现, 掌握Linux系统中socket在tcp服务器端的使用及通信方法
3、TCP粘包分析,理解TCP粘包原理,掌握TCP粘包情况下如何正确解析数据包
4、TCP并发服务器实现,掌握并发服务器的设计思想和在Linux系统中如何使用多进程、多线程的思想实现TCP并发无服务器
5、基于TCP协议的文件传输服务器软件开发,通过文件的上传和下载功能,再次强化tcp socket的使用
6、WireShark抓包工具使用,学会抓包工具的使用,并使用抓包工具详细分析TCP协议和UDP协议的具体内容,让学员深层次理解TCP和UDP协议
第16周 网络编程项目实战-网络视频监控与企业笔试
本周通过实战网络视频监控项目,让学员掌握Linux网络编程知识在实际工程场景中的运用,掌握在Linux系统中如何获取视频流、编解码视频流,传输视频流,并掌握HTTP协议
课程安排:
1、V4L2编程,在Linux系统中获取摄像头数据
2、HTTP协议,掌握HTTP协议工作原理,并通过编程实现HTTP协议数据传输
3、libjpg库使用, 掌握YUYV数据格式如何压缩成jpeg数据格式进行传输
4、远程视频监控,实现具体的远程视频监控功能,并通过浏览器查看视频流
5、企业笔试:常用网络基础知识默写,从企业面试角度,考察学员对网络基础知识掌握情况
2、HTTP协议,掌握HTTP协议工作原理,并通过编程实现HTTP协议数据传输
3、libjpg库使用, 掌握YUYV数据格式如何压缩成jpeg数据格式进行传输
4、远程视频监控,实现具体的远程视频监控功能,并通过浏览器查看视频流
5、企业笔试:常用网络基础知识默写,从企业面试角度,考察学员对网络基础知识掌握情况
阶段七:嵌入式应用层开发之Linux C++编程
50门课 /课程总时长:30小时
第17周 从C到C++
嵌入式开发中,C和C++不分家,多掌握一种开发语言就业机会也更多,C++语言是所有编程语言中最复杂的一门语言,掌握的C++语言也就掌握了其他编程语言。本周开始带领同学们从主要从C语言角度剖析C++。
课程安排:
1、C++与C的不同地方,讲解C++在C的基础上扩展了哪些语法
2、命名空间,分析C语言语法的缺点,理解C++为什么要命名空间
3、引用,理解引用的本质,掌握引用和指针的不同
4、函数重载,理解为什么可以进行函数重载,编译器是如何对函数名进行处理的
5、默认值参数,理解默认值参数函数的特点
6、内联,理解内联为什么可以提高程序的运行效率
7、封装,掌握面向对象的编程思想,如何通过封装的思想描述一个对象
8、继承,掌握如何通过继承实现代码的复用,已经继承使用的场合
9、多态,掌握多态的思想,如何做到一个接口多种实现,在运行时决定对象的行为
10、泛型编程,掌握泛型编程的思想,如何写出通用的代码,做到代码的复用
11、STL容器,掌握C++标准STL容器提供的API使用
2、命名空间,分析C语言语法的缺点,理解C++为什么要命名空间
3、引用,理解引用的本质,掌握引用和指针的不同
4、函数重载,理解为什么可以进行函数重载,编译器是如何对函数名进行处理的
5、默认值参数,理解默认值参数函数的特点
6、内联,理解内联为什么可以提高程序的运行效率
7、封装,掌握面向对象的编程思想,如何通过封装的思想描述一个对象
8、继承,掌握如何通过继承实现代码的复用,已经继承使用的场合
9、多态,掌握多态的思想,如何做到一个接口多种实现,在运行时决定对象的行为
10、泛型编程,掌握泛型编程的思想,如何写出通用的代码,做到代码的复用
11、STL容器,掌握C++标准STL容器提供的API使用
第18周 软件设计模式与C++11新特性
常用设计模式的思想是必须掌握的,本周带同学们学习C++的设计模式通用思想,通过一线技术总监授课教学更深层次理解设计模式和C++11新特性。
课程安排:
1、智能指针,掌握如何使用智能指针做到内存自动释放,减少内存泄漏的分享
2、lambda表达式,掌握在C++中如何使用匿名函数,实现快捷编程
3、auto自动推导,掌握C++11中提供的自动类型推导含义,避免编码过程中关注复杂的类型,实现快捷编程
4、基于范围for循环,掌握C++11标准的新型for循环,实现快捷编程
5、右值引用,理解左值和右值得概率,掌握右值引用的使用场景
6、move移动语义,掌握如何通过move移动语义,实现代码高效率运行
7、单例,理解单例的设计模式编程思想,掌握饿汉式和懒汉式两种单例的实现方法
8、工厂,理解工厂设计模式编程思想,掌握简单工厂、工厂方法、抽象工厂的实现方法
9、代理,理解代理设计模式的编程思想,掌握代理设计模式的实现方法
10、适配器,理解适配器设计模式的编程思想,掌握适配器设计模式的实现方法
11、观察者,理解观察者模式的编程思想,掌握观察者设计模式的实现方法
12、设计模式遵从原则,理解设计模式遵从的通用思想,更深层次理解设计模式
2、lambda表达式,掌握在C++中如何使用匿名函数,实现快捷编程
3、auto自动推导,掌握C++11中提供的自动类型推导含义,避免编码过程中关注复杂的类型,实现快捷编程
4、基于范围for循环,掌握C++11标准的新型for循环,实现快捷编程
5、右值引用,理解左值和右值得概率,掌握右值引用的使用场景
6、move移动语义,掌握如何通过move移动语义,实现代码高效率运行
7、单例,理解单例的设计模式编程思想,掌握饿汉式和懒汉式两种单例的实现方法
8、工厂,理解工厂设计模式编程思想,掌握简单工厂、工厂方法、抽象工厂的实现方法
9、代理,理解代理设计模式的编程思想,掌握代理设计模式的实现方法
10、适配器,理解适配器设计模式的编程思想,掌握适配器设计模式的实现方法
11、观察者,理解观察者模式的编程思想,掌握观察者设计模式的实现方法
12、设计模式遵从原则,理解设计模式遵从的通用思想,更深层次理解设计模式
第19周 项目实战-C++语言实现五子棋游戏与企业笔试
本周带同学们C++语言实现五子棋游戏,融合设计模式的思想,在实战中理解C++语言的使用以及设计模式运用。项目中会运用到网络的知识,再次强化学员对网络编程的知识的掌握,为之后的嵌入式项目开发打下坚实基础。
课程安排:
1、五子棋游戏界面绘制
2、黑白棋子显示
3、五星连珠算法实现
4、本地双人对战实现
5、网络双人对战实现
6、企业笔试:C++常用语法点默写,从企业面试角度,考察学员对C++语言掌握情况
2、黑白棋子显示
3、五星连珠算法实现
4、本地双人对战实现
5、网络双人对战实现
6、企业笔试:C++常用语法点默写,从企业面试角度,考察学员对C++语言掌握情况
阶段八:嵌入式应用层开发之-人机交互QT编程
21门课 /课程总时长:20小时
第20周 嵌入式产品人机交互必备-QT框架
在嵌入式产品中,也会涉及到人机交互界面,QT的免费,开源,夸平台特性,成为了很多嵌入式产品人机交互界面软件开发的不二之选。本周带同学们从0开始讲解QT的各种功能和操作,掌握QT框架开发。
课程安排:
1、信号与槽,掌握信号与槽的实现原理及使用方法,这是QT的精华实现
2、事件,理解事件的含义,掌握常用事件在Qt软件开发中的处理方法
3、Qt界面设计,掌握软件界面布局,掌握QT中的常用软件布局管理的使用
4、QSS界面美化,掌握QT的样式设置,如何通过样式改变QT开发软件的外观
5、Qt 文件操作,掌握QT中文件操作的方式
6、Qt 多线程,掌握QT中创建线程的方法,理解夸线程的信号与槽通信原理
7、Qt 网络编程,掌握QT中网络编程的实现方法,让自己开发的软件具备网络通信的能力
8、Qt 数据库编程,理解数据库概率,掌握在QT中如何实现数据库操作
9、Qt 图形与图像,掌握QT中图形和图像的处理方法
10、QML,掌握在QT中如何使用QML实现界面的快捷开发
2、事件,理解事件的含义,掌握常用事件在Qt软件开发中的处理方法
3、Qt界面设计,掌握软件界面布局,掌握QT中的常用软件布局管理的使用
4、QSS界面美化,掌握QT的样式设置,如何通过样式改变QT开发软件的外观
5、Qt 文件操作,掌握QT中文件操作的方式
6、Qt 多线程,掌握QT中创建线程的方法,理解夸线程的信号与槽通信原理
7、Qt 网络编程,掌握QT中网络编程的实现方法,让自己开发的软件具备网络通信的能力
8、Qt 数据库编程,理解数据库概率,掌握在QT中如何实现数据库操作
9、Qt 图形与图像,掌握QT中图形和图像的处理方法
10、QML,掌握在QT中如何使用QML实现界面的快捷开发
第21周 项目实战-QT开发音乐播放器
本周我们用QT开发一款在线云音乐播放器,从软件界面设计美化到软件功能实现,最后到软件发布。让学员掌握一款软件开发到上线的全流程,同时通过软件开发强化学员对QT知识的掌握,掌握嵌入式人机交互利器。
课程安排:
1、云音乐播放器界面设计及美化
2、在线搜歌显示歌曲信息
3、歌曲专辑图片动画显示
4、歌词解析同步歌曲进度实时显示
5、爱心歌曲下载,数据库存储及本地显示
6、 企业笔试:QT常用类功能默写, 从企业面试角度,考察学员对QT掌握情况
2、在线搜歌显示歌曲信息
3、歌曲专辑图片动画显示
4、歌词解析同步歌曲进度实时显示
5、爱心歌曲下载,数据库存储及本地显示
6、 企业笔试:QT常用类功能默写, 从企业面试角度,考察学员对QT掌握情况
阶段九:嵌入式底层开发之ARM接口技术和智能硬件开发
48门课 /课程总时长:35小时
第22周 智能硬件开发-ARM核介绍和基础外设
嵌入式产品开发过程中,很多软件代码都是为了驱动硬件工作而编写,掌握如何通过软件驱动硬件工作,是一名嵌入式工程师必须具备的能力,本周我们主要先从ARM核、imx6ull相关知识开始学习。
课程安排:
1、ARM介绍,了解ARM芯片的生态环境,理解CPU核和SOC概念
2、ARM工作模式,掌握ARM的八种工作模式,理解每种工作模式的使用场景
3、ARM寄存器资源,掌握ARM核中R0-R15寄存器含义,理解他们的使用场景
4、ARM汇编,掌握ARM核相关的常用汇编指令,理解ARM核相关指令的含义
5、ARM核指令流水线,掌握ARM核三级流水线的工作原理,理解ARM核是如何执行指令的
6、ATPCS标准,掌握函数间参数是如何进行传递,函数返回值如何带回,通过汇编和C语言的对比理解ATPCS标准规范
7、ARM异常处理,掌握ARM核异常处理的过程,理解异常和中断的关系
8、imx6ull 芯片介绍,了解imx6ul这款芯片的硬件资源
9、电子电路基础知识介绍,为能顺利阅读硬件原理图铺垫
10、硬件原理图阅读,掌握硬件原理图阅读的方法
11、GPIO驱动,掌握如何通过软件代码操作GPIO控制器从而控制设备
2、ARM工作模式,掌握ARM的八种工作模式,理解每种工作模式的使用场景
3、ARM寄存器资源,掌握ARM核中R0-R15寄存器含义,理解他们的使用场景
4、ARM汇编,掌握ARM核相关的常用汇编指令,理解ARM核相关指令的含义
5、ARM核指令流水线,掌握ARM核三级流水线的工作原理,理解ARM核是如何执行指令的
6、ATPCS标准,掌握函数间参数是如何进行传递,函数返回值如何带回,通过汇编和C语言的对比理解ATPCS标准规范
7、ARM异常处理,掌握ARM核异常处理的过程,理解异常和中断的关系
8、imx6ull 芯片介绍,了解imx6ul这款芯片的硬件资源
9、电子电路基础知识介绍,为能顺利阅读硬件原理图铺垫
10、硬件原理图阅读,掌握硬件原理图阅读的方法
11、GPIO驱动,掌握如何通过软件代码操作GPIO控制器从而控制设备
第23周 智能硬件开发-单片机常用外设
本周继续深入单片机知识,老师会从ARM核的工作原理,硬件原理图阅读,硬件工作原理讲解,datasheet阅读三个方面介绍单片机开发工程方法,同时在课堂中介绍常用物联网协议,让学员掌握单片机在物联网项目中的运用。
课程安排:
1、GPT,掌握GPT定时器使用方法,学会使用GPT定时器做精确延时
2、PWM,掌握Timer定时器和PWM波输出工作原题,学会使用PWM波驱动外围硬件设备
3、中断,掌握在ARM核中中断处理流程,学会使用软件代码操作中断控制器
4、UART,掌握串口通信工作原理和通信协议,学会使用串口完成设备间的数据通信
5、ADC,掌握ADC工作原理,学会使用ADC采集外部电压信号
6、WDOG,掌握看门狗定时器工作原理,学会使用看门狗定时器在程序卡死情况自动复位系统
7、RTC,掌握RTC工作原理,学会使用RTC获取实时时间
8、I2C,掌握I2C总线通信时序,理解I2C总线通信协议,学会使用I2C总线和外围设备之间进行数据通信
9、1-wire,掌握单总线通信原理,学会使用单总线采集温度传感器数据
10、SPI,掌握SPI总线通信时序,理解SPI总线通信协议,学会使用SPI总线和外围设备之间进行数据通信
11、CAN,掌握CAN总线通信原理,从0 到1掌握CAN总线传输数据
12、LCD,掌握LCD屏显示原理,理解LCD RGB接口传输数据原理,学会使用软件代码驱动LCD屏显示图像数据
13、Camera,掌握摄像头数据采集原理,学会使用软件代码驱动摄像头采集图像数据
– 触摸屏,掌握电容屏触摸屏工作原理,学会使用I2C总线获取触摸屏点击坐标
2、PWM,掌握Timer定时器和PWM波输出工作原题,学会使用PWM波驱动外围硬件设备
3、中断,掌握在ARM核中中断处理流程,学会使用软件代码操作中断控制器
4、UART,掌握串口通信工作原理和通信协议,学会使用串口完成设备间的数据通信
5、ADC,掌握ADC工作原理,学会使用ADC采集外部电压信号
6、WDOG,掌握看门狗定时器工作原理,学会使用看门狗定时器在程序卡死情况自动复位系统
7、RTC,掌握RTC工作原理,学会使用RTC获取实时时间
8、I2C,掌握I2C总线通信时序,理解I2C总线通信协议,学会使用I2C总线和外围设备之间进行数据通信
9、1-wire,掌握单总线通信原理,学会使用单总线采集温度传感器数据
10、SPI,掌握SPI总线通信时序,理解SPI总线通信协议,学会使用SPI总线和外围设备之间进行数据通信
11、CAN,掌握CAN总线通信原理,从0 到1掌握CAN总线传输数据
12、LCD,掌握LCD屏显示原理,理解LCD RGB接口传输数据原理,学会使用软件代码驱动LCD屏显示图像数据
13、Camera,掌握摄像头数据采集原理,学会使用软件代码驱动摄像头采集图像数据
– 触摸屏,掌握电容屏触摸屏工作原理,学会使用I2C总线获取触摸屏点击坐标
第24周 stm32芯片-智能硬件项目实战与企业笔试
目标:掌握stm32芯片开发方法,完成使用stm32芯片进行智能车控制、ps2手柄进行小车无线控制,ESP8266模块对小车无线控制,蓝牙模块无线控制,使用循迹模块进行PID算法控制小车自动循迹,超声波对小车自动避障等。
课程安排:
1、stm32 开发环境搭建,掌握Keil、CubeMx、STLink安装和使用方法
2、stm32启动流程分析
3、智能小车电机控制,掌握通过PWM波控制小车电机正转和反转
4、ps2 无线手臂和小车通信,掌握ps2手柄通信原理,通过ps2手柄控制小车前进、后退、转弯
5、数码管显示RTC实时时间
6、继电器控制外部设备
7、超声波避障,掌握超声波测距原理,实现使用超声波模块小车实现自主避障功能
8、自动循迹,掌握循迹模块工作原理,实现使用PID算法控制五路循迹模块完成小车自动循迹
9、ESP8266无线通信,掌握通过ESP8266模块进行无线数据传输,
10、蓝牙模块通信,掌握蓝牙模块控制小车
11、温湿度数据采集,掌握通过I2C总线控制温度采集模块,实时采集温湿度数据并通过ESP8266模块实现无线数据传输
12、上位机软件开发,掌握使用QT开发一款APP软件,运行在手机端和电脑端,通过软件可以实时获取小车上面传感器采集的数据,也可以通过软件控制小车
2、stm32启动流程分析
3、智能小车电机控制,掌握通过PWM波控制小车电机正转和反转
4、ps2 无线手臂和小车通信,掌握ps2手柄通信原理,通过ps2手柄控制小车前进、后退、转弯
5、数码管显示RTC实时时间
6、继电器控制外部设备
7、超声波避障,掌握超声波测距原理,实现使用超声波模块小车实现自主避障功能
8、自动循迹,掌握循迹模块工作原理,实现使用PID算法控制五路循迹模块完成小车自动循迹
9、ESP8266无线通信,掌握通过ESP8266模块进行无线数据传输,
10、蓝牙模块通信,掌握蓝牙模块控制小车
11、温湿度数据采集,掌握通过I2C总线控制温度采集模块,实时采集温湿度数据并通过ESP8266模块实现无线数据传输
12、上位机软件开发,掌握使用QT开发一款APP软件,运行在手机端和电脑端,通过软件可以实时获取小车上面传感器采集的数据,也可以通过软件控制小车
阶段十:智能硬件开发-嵌入式底层开发之系统移植
20门课 /课程总时长:30小时
第25周 大厂必备- linux内核与文件系统移植
掌握如何在一款硬件平台定制专用的嵌入式系统,是很多大厂对高级嵌入式工程师的要求。本周让学员掌握如何在一块嵌入式开发板上定制嵌入式Linux系统,学会u_boot,linux kernel,文件系统移植方法。
课程安排:
1、PC机启动流程分析,掌握在PC机上操作系统是如何启动的
2、嵌入式系统启动流程分析,掌握嵌入式系统的启动方式,对比PC启动有什么不同
3、交叉开发环境搭建,掌握交叉开发环境搭建的方法,掌握跨平台编译
4、Linux内核移植,掌握内核启动流程,配置方法
5、Kconfig分析,掌握Kconfig语法知识,学会自己编写Kconfig
6、u_boot引导Linux内核,掌握u_boot是如何引导Linux内核启动,以及u_boot和Linux内核之间的参数传递
7、根文件系统init进程启动分析,掌握根文件系统的挂载流程,以及init进程在初始化阶段做了哪些事情
8、BusyBox定制根文件系统,掌握如何使用busybox工具定制自己需要的根文件系统
2、嵌入式系统启动流程分析,掌握嵌入式系统的启动方式,对比PC启动有什么不同
3、交叉开发环境搭建,掌握交叉开发环境搭建的方法,掌握跨平台编译
4、Linux内核移植,掌握内核启动流程,配置方法
5、Kconfig分析,掌握Kconfig语法知识,学会自己编写Kconfig
6、u_boot引导Linux内核,掌握u_boot是如何引导Linux内核启动,以及u_boot和Linux内核之间的参数传递
7、根文件系统init进程启动分析,掌握根文件系统的挂载流程,以及init进程在初始化阶段做了哪些事情
8、BusyBox定制根文件系统,掌握如何使用busybox工具定制自己需要的根文件系统
第26周 嵌入式开发-系统移植-bootloader、yocto
本周继续从0到1做u_boot、kernel、rootfs移植,并现场解决移植过程中遇到的各种问题,提供解决问题思路。
课程安排:
1、u-boot源码阅读,掌握u_boot程序的启动流程和设计架构
2、u-boot移植,掌握u_boot移植的方法
3、yocto定制嵌入式系统,掌握使用yocto工具定制嵌入式嵌入式系统
4、嵌入式系统烧写,掌握如何在自己的平台烧写嵌入式系统
5、企业笔试:嵌入式系统启动流程默写, 从企业面试角度,考察学员对嵌入式系统的掌握情况
2、u-boot移植,掌握u_boot移植的方法
3、yocto定制嵌入式系统,掌握使用yocto工具定制嵌入式嵌入式系统
4、嵌入式系统烧写,掌握如何在自己的平台烧写嵌入式系统
5、企业笔试:嵌入式系统启动流程默写, 从企业面试角度,考察学员对嵌入式系统的掌握情况
阶段十一:嵌入式底层开发之 Linux设备驱动入门到高级进阶
……
网盘目录:
常见问题FAQ
- 视频课程的格式是什么
- 视频不加密,网盘在线学习,课程免费更新,持续更新
- 怎么发货?
- 有些资源没更新完结怎么办
- 有问题不懂想咨询怎么办