8999.00 10299 上新特惠

7天可退款

服务
系统学习
15周
教学服务
8个月
教学模式
学练一体化
课程证书
通过得证书

课程大纲及学习周期安排

坚持学习的路上,我们为你画好成长路标

为保证课程紧跟市场变化,课程章节将逐步开放至完结

阶段一:嵌入式开发基础之Linux Shell和Makefile

  • 第1周
Shell编程和Makefile工程管理

在实际嵌入式Linux平台项目开发过程中,由于涉及到的开发平台众多,基本都是通过命令行操作,工程师需要掌握Linux下常用命令和shell脚本编写以及Makefile管理工程文件进行自动化编译,这也是我们本周的重点内容。

课程安排
  1. 1、Linux 常用命令,讲解文件管理、用户管理、网络管理、磁盘管理等相关的命令
  2. 2、awk和sed命令,强大的数据按列处理和按行处理命令
  3. 3、shell脚本编程,胶水融合剂,让固定的流程自动化起来
  4. 4、Makefile多文件工程管理,完成代码的自动化编译,掌握Makefile的编写方法是嵌入式工程师必须具备的能力
  5. 5、阶段企业笔试-常用命令默写,从企业面试的角度,考察学员对Linux常用命令的掌握
  6. 6、阶段企业笔试-从企业笔试的角度考察学员对shell脚本和Makefile的掌握情况,让学员提前了解企业对工程师在shell和Makefile两方面的要求

阶段二:嵌入式开发之Linux 文件操作

  • 第2周
  • 第3周
Linux文件IO和标准IO

在嵌入式开发过程中,涉及到的主流操作系统是Linux系统,在Linux系统中设计理念是"一切皆文件",所以掌握Linux下文件操作非常重要,本周我们先从文件IO和标准IO讲起。

课程安排
  1. 1、Linux系统调用实现原理讲解,掌握系统调用的工作原理,理解printf函数是如何将字符串输出到屏幕
  2. 2、基于文件描述符的文件打开、读写、关闭等操作,掌握Linux下文件的操作API,并熟练使用这些API完成文件操作
  3. 3、基于标准C库的文件打开、读写、关闭等操作,理解标准C库函数和系统调用之间的区别和联系,掌握如何使用标准C库API完成文件操作
  4. 4、动态库、静态库制作和使用,理解gcc编译器链接库的工作原理和Linux操作系统如何加载动态库,掌握Linux下动态库和静态库的制作和使用
Linux下文件操作项目实践与阶段评测

实现一个基础的shell程序,能完成ls 和 cp功能,通过实现ls命令和cp命令功能,再次强化学员对Linux下文件操作和常用系统调用API使用

课程安排
  1. 1、输入命令解析命令参数
  2. 2、根据输入的ls命令,读取目录下的文件属性信息,并显示
  3. 3、根据输入的cp命令,完成文件拷贝和递归目录下的所有文件拷贝
  4. 4、笔试安排:常用文件操作函数默写,从企业面试的角度,考察学员对Linux下常用文件操作API函数掌握情况

阶段三:嵌入式之 Linux 多进程、多线程、IO模型

  • 第4周
  • 第5周
Linux 多进程、多线程、IO模型

嵌入式开发的主流操作系统是Linux操作系统,这一阶段由一线12年经验的高级工程师进行授课,主要让学员掌握Linux 下多线程、多进程编程思想和常用的IO模型,让自己开发的软件能充分发挥多核CPU优势,提升软件性能。

课程安排
  1. 1、进程的概念,理解在Linux系统中进程是什么
  2. 2、进程相关的命令,掌握Linux系统中进程信息的查看
  3. 3、进程创建,掌握Linux系统中如何在一个程序中创建多个进程
  4. 4、进程间通信,掌握Linux系统中常用的进程间通信方法,如:管道、信号、5、消息队列、共享内存、信号灯集等
  5. 6、进程间同步,理解同步的概念,掌握Linux系统中进程间同步的方式
  6. 7、线程的概念,理解在Linux系统中线程是什么
  7. 8、线程相关的命令,掌握Linux系统中线程信息的查看
  8. 9、线程创建,掌握Linux系统中如何在一个程序中创建多个线程
  9. 10、线程间通信,掌握Linux系统中线程间通信的方法
  10. 11、线程间同步,掌握Linux系统中线程间同步机制,如:信号量、条件变量、互斥锁等
  11. 12、阻塞IO,理解阻塞IO的概念及工作原理
  12. 13、非阻塞IO,理解非阻塞IO的概念及工作原理
  13. 14、IO多路复用,理解IO多路复用的概念及工作原理,掌握Linux下IO多路复用的方法,如:select,poll,epoll等。
Linux 项目实战-实现并发服务器模型与企业笔试

通过上周的学习我们掌握了Linux 多进程、多线程、IO模型,本周通过带同学们0到1实现一个并发服务器模型彻底掌握嵌入式中重要的Linux知识实践。

课程安排
  1. 1、基于多进程、多线程实现并发服务器模型,主要功能如下:
  2. 2、服务器进程创建线程池,维护线程池中线程创建和销毁,创建子进程反馈3、数据处理结果
  3. 4、服务器进程创建消息队列,从消息队列获取其他客服端进程发来的任务数据,并从线程池中取线程处理任务
  4. 5、线程池中的任务线程处理完客户端的数据后,通知服务器进程子,由服务器子进程共享内存的方式获取处理的数据,然后反馈给客户端进程
  5. 6、客户端进程通过消息队列提交任务请求,通过共享内存获取任务处理结果
  6. 7、企业笔试:常用Linux操作系统知识默写,从企业面试的角度,考察学员对Linux操作系统多进程、多线程、IO模型的理解

阶段四:嵌入式底层开发之ARM接口技术和智能硬件开发

  • 第6周
  • 第7周
  • 第8周
智能硬件开发-ARM核介绍和基础外设

嵌入式产品开发过程中,很多软件代码都是为了驱动硬件工作而编写,掌握如何通过软件驱动硬件工作,是一名嵌入式工程师必须具备的能力,本周我们主要先从ARM核、imx6ull相关知识开始学习。

课程安排
  1. 1、ARM介绍,了解ARM芯片的生态环境,理解CPU核和SOC概念
  2. 2、ARM工作模式,掌握ARM的八种工作模式,理解每种工作模式的使用场景
  3. 3、ARM寄存器资源,掌握ARM核中R0-R15寄存器含义,理解他们的使用场景
  4. 4、ARM汇编,掌握ARM核相关的常用汇编指令,理解ARM核相关指令的含义
  5. 5、ARM核指令流水线,掌握ARM核三级流水线的工作原理,理解ARM核是如何执行指令的
  6. 6、ATPCS标准,掌握函数间参数是如何进行传递,函数返回值如何带回,通过汇编和C语言的对比理解ATPCS标准规范
  7. 7、ARM异常处理,掌握ARM核异常处理的过程,理解异常和中断的关系
  8. 8、imx6ull 芯片介绍,了解imx6ul这款芯片的硬件资源
  9. 9、电子电路基础知识介绍,为能顺利阅读硬件原理图铺垫
  10. 10、硬件原理图阅读,掌握硬件原理图阅读的方法
  11. 11、GPIO驱动,掌握如何通过软件代码操作GPIO控制器从而控制设备
智能硬件开发-单片机常用外设

本周继续深入单片机知识,老师会从ARM核的工作原理,硬件原理图阅读,硬件工作原理讲解,datasheet阅读三个方面介绍单片机开发工程方法,同时在课堂中介绍常用物联网协议,让学员掌握单片机在物联网项目中的运用。

课程安排
  1. 1、GPT,掌握GPT定时器使用方法,学会使用GPT定时器做精确延时
  2. 2、PWM,掌握Timer定时器和PWM波输出工作原题,学会使用PWM波驱动外围硬件设备
  3. 3、中断,掌握在ARM核中中断处理流程,学会使用软件代码操作中断控制器
  4. 4、UART,掌握串口通信工作原理和通信协议,学会使用串口完成设备间的数据通信
  5. 5、ADC,掌握ADC工作原理,学会使用ADC采集外部电压信号
  6. 6、WDOG,掌握看门狗定时器工作原理,学会使用看门狗定时器在程序卡死情况自动复位系统
  7. 7、RTC,掌握RTC工作原理,学会使用RTC获取实时时间
  8. 8、I2C,掌握I2C总线通信时序,理解I2C总线通信协议,学会使用I2C总线和外围设备之间进行数据通信
  9. 9、1-wire,掌握单总线通信原理,学会使用单总线采集温度传感器数据
  10. 10、SPI,掌握SPI总线通信时序,理解SPI总线通信协议,学会使用SPI总线和外围设备之间进行数据通信
  11. 11、CAN,掌握CAN总线通信原理,从0 到1掌握CAN总线传输数据
  12. 12、LCD,掌握LCD屏显示原理,理解LCD RGB接口传输数据原理,学会使用软件代码驱动LCD屏显示图像数据
  13. 13、Camera,掌握摄像头数据采集原理,学会使用软件代码驱动摄像头采集图像数据
  14. - 触摸屏,掌握电容屏触摸屏工作原理,学会使用I2C总线获取触摸屏点击坐标
stm32芯片-智能硬件项目实战与企业笔试

目标:掌握stm32芯片开发方法,完成使用stm32芯片进行智能车控制、ps2手柄进行小车无线控制,ESP8266模块对小车无线控制,蓝牙模块无线控制,使用循迹模块进行PID算法控制小车自动循迹,超声波对小车自动避障等。

课程安排
  1. 1、stm32 开发环境搭建,掌握Keil、CubeMx、STLink安装和使用方法
  2. 2、stm32启动流程分析
  3. 3、智能小车电机控制,掌握通过PWM波控制小车电机正转和反转
  4. 4、ps2 无线手臂和小车通信,掌握ps2手柄通信原理,通过ps2手柄控制小车前进、后退、转弯
  5. 5、数码管显示RTC实时时间
  6. 6、继电器控制外部设备
  7. 7、超声波避障,掌握超声波测距原理,实现使用超声波模块小车实现自主避障功能
  8. 8、自动循迹,掌握循迹模块工作原理,实现使用PID算法控制五路循迹模块完成小车自动循迹
  9. 9、ESP8266无线通信,掌握通过ESP8266模块进行无线数据传输,
  10. 10、蓝牙模块通信,掌握蓝牙模块控制小车
  11. 11、温湿度数据采集,掌握通过I2C总线控制温度采集模块,实时采集温湿度数据并通过ESP8266模块实现无线数据传输
  12. 12、上位机软件开发,掌握使用QT开发一款APP软件,运行在手机端和电脑端,通过软件可以实时获取小车上面传感器采集的数据,也可以通过软件控制小车

阶段五:智能硬件开发-嵌入式底层开发之系统移植

  • 第9周
  • 第10周
大厂必备- linux内核与文件系统移植

掌握如何在一款硬件平台定制专用的嵌入式系统,是很多大厂对高级嵌入式工程师的要求。本周让学员掌握如何在一块嵌入式开发板上定制嵌入式Linux系统,学会u_boot,linux kernel,文件系统移植方法。

课程安排
  1. 1、PC机启动流程分析,掌握在PC机上操作系统是如何启动的
  2. 2、嵌入式系统启动流程分析,掌握嵌入式系统的启动方式,对比PC启动有什么不同
  3. 3、交叉开发环境搭建,掌握交叉开发环境搭建的方法,掌握跨平台编译
  4. 4、Linux内核移植,掌握内核启动流程,配置方法
  5. 5、Kconfig分析,掌握Kconfig语法知识,学会自己编写Kconfig
  6. 6、u_boot引导Linux内核,掌握u_boot是如何引导Linux内核启动,以及u_boot和Linux内核之间的参数传递
  7. 7、根文件系统init进程启动分析,掌握根文件系统的挂载流程,以及init进程在初始化阶段做了哪些事情
  8. 8、BusyBox定制根文件系统,掌握如何使用busybox工具定制自己需要的根文件系统
嵌入式开发-系统移植-bootloader、yocto

本周继续从0到1做u_boot、kernel、rootfs移植,并现场解决移植过程中遇到的各种问题,提供解决问题思路。

课程安排
  1. 1、u-boot源码阅读,掌握u_boot程序的启动流程和设计架构
  2. 2、u-boot移植,掌握u_boot移植的方法
  3. 3、yocto定制嵌入式系统,掌握使用yocto工具定制嵌入式嵌入式系统
  4. 4、嵌入式系统烧写,掌握如何在自己的平台烧写嵌入式系统
  5. 5、企业笔试:嵌入式系统启动流程默写, 从企业面试角度,考察学员对嵌入式系统的掌握情况

阶段六:嵌入式底层开发之 Linux设备驱动入门到高级进阶

  • 第11周
  • 第12周
  • 第13周
  • 第14周
嵌入式底层核心技能-Linux设备驱动初级

嵌入式产品涉及到的芯片种类繁多,硬件设备繁杂,并不像电脑有很多通用的驱动可以直接使用,需要工程师在特定的硬件平台开发Linux操作系统的驱动程序。本周我们先从Linux设备驱动初级讲起,让同学们稳扎稳打学技术不断层!

课程安排
  1. 1、模块编程,掌握在Linux内核中添加代码的形式,模块代码的编译方法及加载、卸载方法
  2. 2、应用程序如何访问驱动,理解上层应用程序最终是如何调用到驱动程序操作硬件设备
  3. 3、字符驱动框架,掌握Linux内核中字符设备驱动框架的设计架构,学会字符设备驱动的编写
  4. 4、LED驱动实现,掌握编写字符设备驱动,驱动LED设备
  5. 5、platform子系统,理解传统字符设备驱动编写的驱动缺点,理解基于6、platform子系统编写驱动的优点
  6. 7、设备注册,掌握如何基于platform子系统注册设备
  7. 8、驱动注册,掌握如何基于platform子系统注册驱动
  8. 9、基于platform子系统实现LED驱动
  9. 10、Device tree,掌握设备树编写规范,理解设备树添加设备信息的优点
  10. 基于device tree实现LED驱动
  11. 11、pinctrl子系统,掌握pinctrl子系统的使用
  12. 12、内核自带LED驱动使用,掌握如何使用内核自带的LED驱动驱动LED设备
  13. 13、内核自带PWM驱动使用,掌握如何使用内核自带的PWM驱动驱动PWM设备
嵌入式底层核心技能-Linux设备驱动中级

本周我们继续 Linux设备驱动中级教程,主要学习中断注册、ADC驱动实现、自旋锁在驱动、信号量在驱动、原子操作驱动方法等等进阶内容。

课程安排
  1. 1、中断注册,掌握在Linux操作系统中注册中断的方法
  2. 2 、中断下半部,理解为什么需要中断下半部,掌握中断下半部的使用方法
  3. 3、ADC驱动实现,通过讲解ADC驱动强化前面所学习的驱动相关知识
  4. 4、自旋锁,理解自旋锁使用场景,掌握自旋锁在驱动使用方法
  5. 5、互斥锁,理解互斥锁使用场景,掌握互斥锁在驱动使用方法
  6. 6、信号量 ,理解信号量使用场景,掌握信号量在驱动使用方法
  7. 7、原子操作,理解原子操作使用场景,掌握原子操作在驱动使用方法
  8. 8、阻塞,理解进程休眠机制,掌握在驱动中让进程阻塞方法
  9. 9、轮询,理解进程轮询机制,掌握在驱动中让进程轮询方法
  10. 10、异步,理解异步机制,掌握在驱动中如何异步通知上层进程方法
嵌入式底层核心技能-Linux设备驱动高级1

本周主要学习Linux设备驱动高级内容:i2c子系统架构、spi子系统架构、input子系统架构设计方法以及按键驱动实现、触摸屏驱动实现、LCD驱动实现等等,全流程跟着一线技术大拿实操,提升学习趣味和动手实践能力!

课程安排
  1. 1、i2c子系统架构分析,掌握Linux内核中的i2c子系统框架设计思想
  2. 2、i2c从设备驱动实现,掌握基于i2c子系统编写i2c从设备驱动方法
  3. 3、spi子系统架构分析,掌握Linux内核中的spi子系统框架设计思想
  4. 4、spi从设备驱动实现,掌握基于spi子系统编写spi从设备驱动方法
  5. 5、input子系统架构分析,掌握linux内核中的input子系统框架设计思想
  6. 6、按键驱动实现,掌握基于input子系统实现按键驱动编写方法
  7. 7、触摸屏驱动实现,掌握基于input子系统、i2c子系统实现触摸屏驱动编写方法
  8. 8、framebuffer子系统架构分析,掌握Linux内核中的framebuffer子系统框架设计思想
  9. 9、LCD驱动实现,掌握基于framebuffer子系统编写LCD显示屏驱动方法
嵌入式底层核心技能-Linux设备驱动高级2

本周我们将进入Linux设备驱动高级开发最后一战!全程实操,搞定块设备驱动、MTD子系统架构、EMMC驱动实现、Camera驱动实现等,该阶段你已经具备了嵌入式应用层和底层开发两大就业领域得开发能力!

课程安排
  1. 1、块设备驱动,掌握Linux内核中块设备驱动框架设计思想
  2. 2、MTD子系统架构分析,掌握Linux内核中MTD子系统框架设计思想
  3. 3、EMMC驱动实现,掌握基于MTD子系统实现EMMC硬件驱动方法
  4. 4、Camera子系统架构分析,掌握Linux内核中Camera子系统框架设计思想
  5. 5、Camera驱动实现,掌握基于Camera子系统实现Camera驱动方法
  6. 6、网络子系统架构分析,掌握Linux内核中网络子系统架构设计思想
  7. 7、网卡驱动实现,掌握基于网络子系统实现网卡驱动方法

阶段七:嵌入式底层工程师能力评估与就业指导

  • 第15周
物联网/嵌入式项目答辩和就业指导

本周会对学生的项目完成结果进行答辩提问和相关就业指导,在这个阶段会对同学们的综合素质进行考核,老师会根据每个同学的答辩结果,进行反馈,直到达成考核标准。

课程安排
  1. 1、成果显示,学员展示自己做出的项目成果
  2. 2、项目答辩,老师针对学生答辩内容做出相关问题提问
  3. 3、简历指导,根据学生实际情况,指导简历编写,并且对相关内容考核指导。
  4. 4、就业指导,进行模拟面试,让同学提前了解企业真实面试流程 。

预售规则

1. 定金支付成功后,可在“我的订单”-“未支付”栏查看所要支付尾款的订单。
2. 尾款支付开启后,请在规定时间内支付尾款,若超出尾款支付时间,订单将自动关闭。请关注短信、慕课网平台及慕课网微信号等渠道推送的提醒消息。
3. 定金可在课程原价基础上抵扣页面显示金额,具体数额及计算方式见详情页。
4. 已支付定金但未在规定时间支付尾款的用户,定金不可退。
5. 如您对预售活动有其它疑问,请联系客服:kf@imooc.com。