嵌入式系统开发-学习路线

版权声明:本文为Ye pengyu原创文章,随意转载,但是请注明出处。内容自: https://blog.csdn.net/BjarneCpp/article/details/80782376

嵌入式系统开发

随着嵌入式设备的普及,嵌入式应用的需求量也随之增大,本课程将重点培养基于linux系统下的嵌入式应用开发,包括5个阶段,其中课程涵盖了linux系统下的多进程、多线程嵌入式开发,网络编程,ARM体系结构和相关系统移植,同时学员也将了解linux系统下应用程序如何操作底层驱动的过程。

第一阶段:嵌入式开发之基础阶段

九层之台,起于垒土;千里之行,始于足下。在进入具体的嵌入式开发工程师岗位前,我们需要锤炼自己的嵌入式基础功底,比如C语言的编程、linux操作系统的基本操作、shell、GNU工具等等。

嵌入式驱动开发环境搭建初级

嵌入式系统的开发往往和PC上的开发不一样,那么本套课程将带着大家看看嵌入式开发中一些常用软件环境和服务的搭建情况。

1.Vmware软件介绍12:11
2.Linux发行版本介绍08:23
3.Ubuntu10.04安装演示1 15:05
4.Ubuntu10.04安装演示2 14:35
5.Vim的安装和简单使用11:41
6.SSHD服务的搭建1 06:57
7.SSHD服务的配置2 09:50
8.Zmodem的使用14:02
9.Samba服务器的安装07:48
10.Samba服务器的配置使用15:13
11.Windows访问samba服务器06:50
12.Vmtools的安装10:04
13.SourceInsight的介绍08:30
14.SourceInsight创建使用工程演示12:31
15.Sourceinsight添加已有工程07:31

C语言语法概述

C语言,是从事嵌入式开发人员必须掌握的重要工具,本套课程将重点围绕C语言的32个关键字,掌握其中使用它们的技巧和规律。

1.课程介绍11:54
2.gcc概述19:48
3.C语言编译过程介绍15:05
4.C语言编译常见错误举例16:17
5.C语言预处理介绍14:42
6.条件预处理的应用10:08
7.宏展开下的#、##使用11:40
8.C语言常用关键字及运算符课程介绍04:18
9.关键字概念及sizeof、return07:38
10.数据类型关键字介绍及char类型13:44
11.数据类型之int、long、short15:40
12.数据类型之符号数、浮点类型11:57
13.自定义数据类型struct、union13:38
14.自定义数据类型enum18:57
15.自定义数据类型typedef05:57
16.逻辑结构关键字12:08
17.类型修饰符(一)_register15:36
18.类型修饰符(二)_static_const09:34
19.类型修饰符(三)_volatile07:57
20.常用运算符(一)_mod12:34
21.常用运算符(二)_逻辑运算符08:46
22.位运算符(一)移位运算符15:55
23.位运算符(二)与或运算符15:39
24.位运算符(三)取反异或运算符06:30
25.常用运算符(三)_内存访问符08:20

C语言内存操作

在C语言用,其核心和灵魂就是对内存类型资源的操作,这个操作的工具就是指针。本章课程嵌入式C语言高级内存空间RAM,将带领大家一起熟悉和掌握C语言指针的操作方法和思维方式。

1.指针概述1 18:01
2.指针概述2_举例1 13:59
3.指针概述2_举例2 08:36
4.针修饰符const介绍14:09
5.指针修饰符const举例12:23
6.指针修饰符volatile、typedef11:40
7.指针运算符加减标签操作11:07
8.指针运算符加减举例1 15:39
9.指针越界访问举例106:15
10.指针逻辑运算符操作08:30
11.多级指针概述11:32
12.多级指针举例13:06
13.数组的定义10:29
14.数组空间的初始化1 17:28
15.数组空间的初始化2 14:33
16.数组空间的初始化3 16:28
17.指针数组的概述06:10
18.数组名的指针保存13:03
19.结构体字节对齐14:16
20.内存分布思想概述18:00
21.内存分布之数据段17:48
22.内存分布之只读空间16:58
23.内存分布之堆空间11:37

C语言函数使用

C语言在本质上是函数的语言,我们使用的每个功能都是函数,因此在嵌入式应用开发中,我们对C语言的应用其实是对其函数的应用。如何运用函数,将是我们设计大型嵌入式程序的基础。

1.函数概述15:16
2.函数名举例14:14
3.函数形参与实参概念07:32
4.函数实参形参拷贝举例13:07
5.函数值传递概述10:50
6.函数地址传递概述07:45
7.连续空间传递概述13:15
8.连续空间只读性15:06
9.字符空间操作介绍15:49
10.字符空间操作举例08:11
11.非字符空间操作介绍14:19
12.非字符空间操作举例09:31
13.函数地址传递总结05:13
14.函数返回值基本语法15:20
15.函数返回值基本数据类型13:02
16.函数返回地址类型概述10:09
17.函数返回类型内部实现概述16:11
18.常见面试题_宏定义13:49
19.常见面试题_数据申明16:49
20.常见面试题_static11:16
21.常见面试题_其他14:38

Linux操作系统基础(最新版)

这是一门Linux的基础课程,目标是让你能够熟练使用和操作Linux系统,为在Linux系统上做程序开发和以后做Android底层开发打下坚实的基础。本课程以知识+实操的方式来讲授,使学生能够轻松快乐地掌握Linux操作系统的使用。

1.Linux的发展、组成结构和特性12:08
2.Linux的选择与安装准备11:09
3.安装ubuntu Desktop & Server15:11
4.文件系统定义、分类和功能08:52
5.Linux文件系统及特点17:17
6.Linux文件系统目录结构12:11
7.命令行编辑与别名使用13:30
8.shell的特殊字符20:39
9.联机帮助、清屏和历史记录命令10:43
10.查看文件目录18:25
11.创建和删除文件目录12:39
12.链接文件17:59
13.显示文本文件内容16:01
14.拷贝和移动文件目录13:34
15.Linux的文件目录权限概述09:12
16.修改文件目录权限18:00
17.查找文件15:29
18.过滤与统计15:43
19.日期时间和进程查看13:02
20.切换用户、设置普通用户的超级权限与关机重启10:59
21.修改用户密码和查找用户08:37
22.查看磁盘信息10:17
23.查看网络连接11:18
24.Linux的应用程序安装与卸载基础知识09:12
25.VI的基本介绍11:44
26.VI的常用命令19:12

选修课 - GNU工具简介

GUN是嵌入式应用开发常用工具,本章将由 资深嵌入式开发工程师,带你学习gnu开发基础,掌握gcc、gdb、makefile等技术。

1.GNU开发环境基础1 20:11
2.GNU开发环境基础2 20:05
3.GNU开发环境基础3 20:02
4. GNU开发环境基础4 13:00
5. GNU开发环境基础_gcc编译1 19:41
6. GNU开发环境基础_gcc编译2 20:03
7.GNU开发环境基础_gcc编译3 17:17
8.GNU开发环境基础_gdb18:52
9.GNU开发环境基础_Makefile1 20:05
10.GNU开发环境基础_Makefile2 20:01
11.GNU开发环境基础_Makefile3 21:08
12. GNU开发环境基础_Autotools1 20:08
13.GNU开发环境基础_Autotools2 20:02
14.GNU开发环境基础_Autotools3 07:47
15.GNU开发环境基础_EclipseForLinux22:57

第二阶段:嵌入式linux应用开发阶段

在纷繁复杂的嵌入式应用需求中,只有掌握了linux操作系统所提供的核心结构,我们才能在今后面临客户不断变化的开发需求,游刃有余。本阶段将要掌握linux系统下文件IO,进程,线程,进程间通信,socket网络编程相关的嵌入式开发知识点。

linux之io系统编程

本章主要是linux操作系统的io系统编程课程,是嵌入式学习必学课程之一,将由 嵌入式开发工程师从IO系统的函数、标准及相关操作方面为大家详细介绍,方便初学者快速掌握。

1.系统编程之综述15:57
2.open和close函数及touch命令实现18:02
3.read和write函数25:36
4.lseek函数和cp命令实现24:02
5.标准IO-缓存21:29
6.标准IO-fopen和fclose22:13
7.标准IO之fputs和fgets函数20:50
8.标准IO之fflush、无缓存、fseek、rewind、rewind18:39
9.标准IO之gets、puts、fprintf、sprintf函数19:55
10.标准IO之fgetc、fputc21:04
11.标准IO之feof、ferror、clearerr14:08
12.标准IO之cat命令实现(1)13:14
13.标准IO之fread、fwrite17:51
14.fgetc_read之比较19:20
15.fread和fgets效率比较19:03
16.函数库的制作(静态库)12:05
17.函数库的制作(动态库)16:13
18.linux系统编程 目录IO(1)24:15
19.linux系统编程 目录IO(2)17:06
20.IO课程总结-单机模式下的文件上传和下载29:02

Linux进程间通信

进程,程序灵魂的载体,掌握了linux的进程及特性,以及他们之间的信息传递,将是成为一名合格的linux应用开发工程师必须的技能。

1.进程通信概述-new25:22
2.无名管道(1)22:04
3.无名管道(2)23:19
4.有名管道(1)11:57
5.有名管道(2)19:58
6.信号通信(1)19:17
7.信号通信(2)16:23
8.信号通信(3)19:02
9.信号通信(4)14:23
10.信号通信(5)16:32
11.共享内存(1)16:43
12.共享内存(2)20:46
13.共享内存(3)23:46
14.共享内存(4)21:59
15.共享内存(5)26:11
16.消息队列(1)16:56
17.消息队列(2)22:52
18.消息队列(3)29:04
19.信号灯(1)13:08
20.信号灯(2)28:20
21.信号灯(3)18:44

Linux多线程编程

Linux多线程技术,嵌入式开发常用技术之一,更好的利用资源,让你的程序相应更快,在多核时代,让你实现真正的并行。

1.介绍05:42
2.线程的概念13:41
3.线程id08:17
4.创造线程14:41
5.主线程21:46
6.线程状态和回收08:10
7.线程退出14:37
8.线程连接19:11
9.线程取消23:39
10.信号默认处理10:00
11.信号处理17:52
12.线程清理程序11:48
13.线程同步的必要性12:09
14.互斥量使用15:02
15.读写锁10:37
16.读写锁实例11:44
17.条件变量10:49
18.条件变量实例20:11
19.一次性初始化18:31
20.线程的分离属性13:26
21.线程栈属性16:17
22.线程同步属性19:02
23.线程私有数据13:06
24.线程与fork14:23
25.多线程知识点回顾09:36
26.tcp服务器的创建方法13:38
27.简单tcp服务器15:26
28.tcp多线程服务器19:34
29.作业09:44

嵌入式Linux网络编程基础

这是一门嵌入式Linux网络编程的基础课程,目标是让你从零开始学习网络编程,以及网络编程中的技巧运用,并能熟悉从网络基础中做更高层的开发。

1.网络编程基础以及wireshark的使用23:31
2.一个获取时间客户端的例子23:10
3.简单时间服务器的编写-1 20:21
4.TCP三次握手四次挥手23:43
5.其他网络编程的基础知识13:45
6.TCP编程模型总结14:40
7.基于UDP的获取时间的客户服务器例子26:55
8.多客户端并发介绍以及sourceInsight的基本使用15:55
9.多进程并发服务器的例子23:04
10.IO复用介绍及select使用流程20:18
11.IO复用(select)的例子–上半部分19:31
12.IO复用(select)的例子–下半部分14:04
13.对select提高效率的第一种解决办法17:58
14.高并发服务器之epoll编程–上部分28:56
15.高并发服务器之epoll编程模型下部分以及网络编程的项目作业15:28
16.一个广播编程的例子23:39
17.一个组播编程的例子以及组播和广播的区别17:36
18.原始套接字的花花世界22:00
19.一个嵌入式linux项目的流程以及rshell的介绍26:23
20.rShell的客户服务器实现20:44

第三阶段:嵌入式Linux之ARM体系结构与编程阶段

ARM是嵌入式系统中CPU占有率最高的,他作为RISC系列CPU的典型产品,学习ARM可以让我们更好的理解嵌入式底层工作的机制,为我们从事物联网技术和嵌入式驱动开发,打下坚实的基础。

选修 - ARM开发板基础知识

ARM开发板,嵌入式开发常用工具之一,以英国ARM(Advanced RISC Machines)公司的内核芯片作为CPU,同时附加其他外围功能的嵌入式开发板,用以评估内核芯片的功能和研发各科技类企业的产品。本节将由 高级嵌入式开发工程师带你进入ARM开发板的世界,让你从一点一滴开始熟悉ARM开发版。

1.从零开始认识开发板1 08:00
2.从零开始认识开发板2 07:24
3.从零开始认识开发板3 01:59
4.从零开始认识开发板4 05:57
5.从零开始认识开发板5 02:27
6.ARM准备工作及熟悉开发板1 20:09
7.ARM准备工作及熟悉开发板2 20:02
8.ARM准备工作及熟悉开发板3 20:13
9.ARM准备工作及熟悉开发板4 07:38
10.原理图及电路图1 20:27
11.原理图及电路图2 20:02
12.原理图及电路图3 09:46

选修 - ARM汇编语言

独木不成林,只是理解了ARM的结构,系统还是无法使用,本章我们将学习ARM汇编语言,了解芯片中的一些简单控制器,来看看系统是如何展现给我们的。

1.ARM世界11:12
2.开发环境搭建1 20:13
3.开发环境搭建2 12:21
4.补充:Linux装Sourceinsight04:58
5.补充:MiniTool烧写开发板-11.30更新工具16:30
6.ARM体系结构-学习方法20:33
7.ARM体系结构-处理器和名词1 17:48
8.ARM体系结构-处理器和名词2 18:03
9.ARM体系结构-工具和交叉工具链16:08
10.处理器模式和片内寄存器1 20:08
11.处理器模式和片内寄存器2 20:05
12.处理器模式和片内寄存器3 20:12
13.处理器模式和片内寄存器4 10:43
14.ARM汇编寻址模式1 20:05
15.ARM汇编寻址模式2 20:13
16.ARM汇编寻址模式3 17:38
17.ARM汇编算数操作1 20:06
18.ARM汇编算数操作2 16:36
19.ARM汇编算数操作3 20:14
20.ARM汇编算数操作4 12:17
21.ARM汇编内存操作1 20:03
22.ARM汇编内存操作2 20:08
23.跳转指令及其它1 19:49
24.跳转指令及其它2 19:08
25.ARM汇编伪指令1 20:06
26.ARM汇编伪指令2 20:05
27.ARM汇编伪指令3 09:22
28.ARM汇编伪指令4 23:58
29.混合编程1 20:10
30.混合编程2 12:24

选修 - ARM硬件开发基础

嵌入式开发,软件与硬件的结合,了解完ARM的结构后,我们还需要对ARM硬件的开发进行一些了解,本节将由 资深嵌入式开发工程师,带你了解芯片中的一些简单控制器,玩转嵌入式ARM开发。

1.ARM硬件基础概述1 20:05
2.ARM硬件基础概述2 20:15
3.ARM硬件基础概述3 10:21
4.ARM硬件基础-SIMD&NEON19:33
5.ARM硬件基础-Cache1 20:05
6.ARM硬件基础-Cache2 11:04
7.ARM硬件基础-MMU1 20:11
8.ARM硬件基础-MMU2 20:02
9.ARM硬件基础-MMU3 06:02
10.ARM异常及中断1 20:03
11.ARM异常及中断2 22:00
12.第一个裸板试验1 20:12
13.第一个裸板试验2 13:39
14.S5PV210启动原理1 20:03
15.S5PV210启动原理2 11:03
16.ARM硬件接口GPIO1 20:04
17.ARM硬件接口GPIO2 20:05
18.ARM硬件接口GPIO3 06:30
19.ARM硬件接口GPIO4 22:51
20.ARM硬件接口GPIO5 27:05
21.确定开发板资源1 20:09
22.确定开发板资源2 20:03
23.确定开发板资源3 20:01
24.确定开发板资源4 04:03
25.驱动开发板资源5 20:06
26.驱动开发板资源6 20:03
27.驱动开发板资源7 17:34

ARM Bootloader开发

对于嵌入式驱动开发,掌握了简单的硬件操作,但还不够,一旦系统变得复杂多变时,我们只靠一些简单的汇编是无法开发大型系统的,那么本课程将带着大家掌握如何一步一步写出ARM下的bootloader子功能。

1.bootloader概述1 20:04
2.bootloader概述2 20:14
3.bootloader概述3 02:26
4.bootloader概述4 20:06
5.bootloader概述5 07:38
6.C5工程搭建Makefile1 20:08
7.C5工程搭建Makefile2 20:10
8.C5工程搭建Makefile3 09:59
9.工程搭建链接脚本录像1 20:08
10.工程搭建链接脚本录像2 13:53
11.工程搭建C代码点灯录像1 20:07
12.工程搭建C代码点灯录像2 17:06
13.工程搭建C代码点灯录像3 20:06
14.通信模型介绍录像1 20:06
15.通信模型介绍录像2 03:22
16.UART协议介绍录像1 20:06
17.UART协议介绍录像2 20:04
18.UART协议介绍录像3 02:46
19.UART控制器介绍录像1 20:04
20.UART控制器介绍录像2 15:54
21.通过串口发送一个字符录像1 20:02
22.通过串口发送一个字符录像2 20:03
23.通过串口发送一个字符录像3 20:04
24.通过串口发送一个字符录像4 15:31
25.通过串口发送一个字符串1 20:14
26.通过串口发送一个字符串2 02:27

ARM硬件接口开发

嵌入式驱动开发中,有了bootloader,我们可以放心的开发更复杂的接口了,helloworld是怎么在底层跑起来那,看起来不像printf那样简单…

1.中断介绍1 20:03
2.中断介绍2 20:01
3.中断介绍3 20:15
4.中断介绍4 15:39
5.中断初始化代码1 20:02
6.中断初始化代码2 20:03
7.中断初始化代码3 13:35
8.中断流程代码1 18:56
9.中断流程代码2 20:02
10.中断流程代码3 17:04
11.IIC协议介绍1 20:01
12.IIC协议介绍2 20:15
13.IIC协议介绍3 20:16
14.IIC协议介绍4 04:36
15.IIC协议介绍5 20:01
16.IIC协议介绍6 00:28
17.watchdog介绍1 20:04
18.watchdog介绍2 12:52
19.RTC介绍16:48
20.PWM介绍1 20:07
21.PWM介绍2 20:06
22.PWM介绍3 02:10
23.ADC介绍1 20:06
24.ADC介绍2 07:21
25.ARM硬件接口项目介绍1 20:01
26.ARM硬件接口项目介绍2 20:03
27.ARM硬件接口项目介绍3 08:55
28.ARM硬件接口项目介绍4 20:02
29.ARM硬件接口项目介绍5 20:09
30.ARM硬件接口项目介绍6 20:03
31.ARM硬件接口项目介绍7 06:09

第四阶段:嵌入式Linux底层系统开发阶段

本阶段是嵌入式开发学习中,最重要的阶段之一,重点学习嵌入式linux操作系统的深层次开发。一个硬件,如果没有软件的支持,他什么都做不了。一块开发板,怎么让他从什么都做不了,到运行起绚丽交互界面,甚至实现android平板的功能,让我们一起来揭开它的神秘面纱吧。

探寻嵌入式系统移植的世界

嵌入式底层驱动学习的前提,是要将我们的开发板上运行起linux操作系统,那么本课程将由 资深嵌入式开发工程师王海宁老师带领大家学习如何移植系统三大组件的步骤,bootloader,linux内核,文件系统的过程。

1.00.序言11:16
2.01.学习方法09:14
3.02.系统移植步骤简介17:15
4.03.交叉编译器简介15:40
5.04.交叉编译器的安装10:34
6.05.工具集合介绍1 14:06
7.06.工具集合使用2 09:47
8.07.环境搭建需求分析11:01
9.08.台式机移植环境搭建15:51
10.09.虚拟机安装双网卡及配置17:03
11.10.uboot环境变量使用14:55
12.11.uboot网络层配置12:33
13.12.uboot下的tftp服务的使用14:35
14.13.linux下tftp服务的搭建及测试06:01
15.14.uboot下nand命令使用总结15:31
16.15.uboot启动内核命令介绍08:37
17.16.uboot启动内核的条件分析10:56
18.17.ramdisk启动概述分析09:57
19.18.ramdisk文件系统部署演示10:46
20.19.NFS文件系统服务端配置13:02
21.20.nfs根文件系统测试13:47

看懂uboot的神秘面容

这套“看懂uboot的神秘面容”课程,其目的在于通过对一个优秀的bootloader软件的全过程分析,一步步如抽丝剥茧般带你领略嵌入式开发所涉及的系统启动部分涉及的概念和相关硬件的原理。包括CP15、UART、DDR2这些系统启动必须掌握的设备信息。

1.u-boot的版本选择10:23
2.u-boot的异常向量表,V210的启动机制原理18:49
3.用objdump反汇编查看u-boot的头部代码和异常向量处理19:54
4.ENTRY等宏的展开,CPSR寄存器的设置20:15
5.CP15协处理器基础,VBAR异常向量表基址映射09:48
6.cpu_init_cp15子过程分析: cache的操作22:55
7.cpu_init_cp15子过程分析(续):分支预测、MMU操作19:21
8.cpu_initcrit子过程分析,实验一:修改u-boot源代码使其用LED灯显示运行状态20:15
9.实验一(续):GPIO输入输出的电路分析20:13
10.实验一(续):制作u-boot烧写镜像的原理,mkv210源代码分析21:01
11.实验一(续):用hexdump工具分析镜像的16进制代码20:24
12.编译、链接、汇编过程概述19:53
13.实验二:编写自己的boot程序:myboot19:27
14.实验二(续):两个以上文件的链接原理20:08
15.实验二(续):反汇编分析自己的myboot20:16
16.实验二(续):利用Makefile自动化编译myboot21:22
17.实验二(续):改进我们的Makefile20:25
18.实验二(续):Makefile中的自动化变量21:26
19.芯片型号判断,复位方式判断20:54
20.IO保持、复位方式判断、中断初始化20:28
21.UART初始化与异步通信原理20:33
22.UART分析1 20:32
23.UART分析2 20:19
24.UART分析3 20:24
25.UART分析4 19:00
26.实验三:用UART显示某指定内存中的数据24:11
27.DDR内存的基本原理1 19:46
28.DDR内存的基本原理2 20:14
29.DDR内存的基本原理3 20:12
30.DDR内存的在V210开放板上的硬件连接1 20:21
31.DDR内存的在V210开放板上的硬件连接2 19:24
32.DDR2-Device的内部结构1 20:29
33.DDR2-Device的内部结构2 21:09
34.DDR2-操作的有限状态机21:06
35.DDR2的MRS和EMRS寄存器21:21
36.DDR2的读写时序1 20:46
37.DDR2的读写时序2 22:24
38.DDR2初始化代码分析1 18:47
39.DDR2初始化代码分析2 20:08
40.DDR2初始化代码分析3 24:27
41.DDR2初始化代码分析4 20:29
42.DDR2初始化代码分析5 19:53
43.DDR2初始化代码分析6 21:24
44.DDR2初始化代码分析7 19:50
45.DDR2初始化代码分析8 20:42
46.DDR2初始化代码分析9 20:33
47.DDR2初始化代码分析10 20:26
48.编写自己的DDR初始化代码1 20:50
49.编写自己的DDR初始化代码2 20:12
50.board_init_f函数分析1 22:21
51.board_init_f函数分析2 19:30
52.mmc_relocate分析19:50
53.实验五:将u-boot.bin从SD卡搬运到DDR内存中21:16
54.实验五:将u-boot.bin从SD卡搬运到DDR内存中2 20:22
55.u-boot的链接镜像结构分析21:35
56.board_init_f函数分析3 20:57
57.board_init_f函数分析4 20:27
58.board_init_f函数分析5 21:11
59.board_init_f函数分析6 20:04
60.board_init_f函数分析7 20:03
61.u-boot的自举实现19:42
62.relocate_code汇编自举代码分析20:52
63.板级初始化的后半部分:bord_init_r函数分析1 20:02
64.板级初始化的后半部分:bord_init_r函数分析2 21:59
65.板级初始化的后半部分:bord_init_r函数分析3 20:38
66.板级初始化的后半部分:bord_init_r函数分析4 20:43
67.跳转到主循环,main_loop19:55
68.主循环分析:u-boot 解析终端输入命令行的原理21:09
69.主循环分析:u-boot 的命令执行实现13:07
70.bootm启动流程分析1 20:51
71.bootm启动流程分析2 19:59
72.bootm启动流程分析3 22:18
73.bootm启动流程分析4 20:47

Linux内核及文件系统制作

嵌入式驱动开发包括硬件子系统和软件子系统两部分,Linux内核及文件系统属于软件子系统,本课程将主要对文件系统的构建与移植进行介绍,讲解如何选择、配置、移植与制作一个可用文件系统及其镜像,以及怎样配合Linux内核的配置来调整应用生成的文件系统,进而掌握构建完整嵌入式驱动软件子系统应用开发环境。

1.Linux内核-内核启动参数28:54
2.Linux内核-根文件系统框架20:00
3.Linux内核-busybox简介24:02
4.Linux内核-启动脚本(上)18:16
5.Linux内核-启动脚本(下)17:45
6.Linux内核-busybox编译21:43
7.Linux内核-busybox应用19:24
8.Linux内核-根文件系统完善22:42
9.Linux内核-常用嵌入式文件系统16:24
10.linux内核文件系统23:06
11.Linux内核-NFS文件系统介绍与应用22:46
12.Linux内核-initramfs文件系统介绍21:31
13.Linux内核-cramfs和squashfs介绍13:17
14.Linux内核-jffs2和yaffs2介绍16:07
15.Linux内核构建中文件系统选项介绍21:47
16.Linux内核构建中文件系统选项配置20:42
17.Linux内核-Cramfs文件系统的制作与使用18:11
18.Linux内核-squashfs文件系统的制作与使用22:49
19.Linux内核-jffs2文件系统的制作与使用17:28
20.Linux内核-yaffs2文件系统的制作与使用11:08
21.Linux内核-Flash分区与文件系统镜像烧录24:55
22.Linux内核-文件系统的挂载配置与选项19:14
23.Linux内核-选择与配置原则15:08

linux字符设备驱动初探

Linux字符设备驱动程序是Linux下被组织为一组完成不同任务的函数的集合,通过这些函数使得linux的设备操作犹如文件一般。本章就由 嵌入式开发名师带领大家一起学习linux字符设备驱动相关知识,赶快开始学习吧。

1.写在前面的话11:45
2.linux驱动介绍13:40
3.字符设备驱动(一):驱动概念和结构体10:17
4.字符设备驱动(二):字符设备驱动源代码分析24:49
5.字符设备驱动(三):驱动的测试以及驱动的Makefile20:49
6.linux内核编译系统原理28:02
7.linux驱动中断剖析(一) 28:02
8.linux驱动中断剖析(二)11:19
9.linux驱动中断剖析(三)22:11
10.linux驱动中断剖析(四) 31:09
11.linux定时器原理分析(一)18:05
12.linux定时器原理分析(二)27:52
13.linux定时器原理分析(三)19:39
14.驱动项目实践(一):通过驱动的ioctl操作led灯 34:21
15.驱动项目实践(一):通过驱动的write操作led灯20:43

linux驱动策略及框架

本课程针对那些对linux驱动有兴趣或者有需求要从事这一块、但不知道从何入手的开发人员,几乎囊括了linux下的所有类型的驱动,包括platform驱动、usb驱动、pci驱动、framebuffer驱动、网卡驱动等,同时穿插linux内核中的各种机制比如互斥机制、中断机制、睡眠机制等,让接受此课程的人可以直接上手嵌入式开发linux的驱动和移植工作。

1.linux内核同步和互斥(一):信号量 18:24
2.linux内核同步和互斥(二):自旋锁24:18
3.驱动中的阻塞和唤醒(一):应用程序的阻塞和唤醒 11:22
4.驱动中的阻塞和唤醒(二):阻塞操作的底层实现分析26:05
5.驱动中的阻塞和唤醒(三):阻塞和唤醒的驱动实例12:20
6.linux内存映射机制 27:03
7.linux进程虚拟地址空间管理机制 20:00
8.应用层mmap函数的使用方法13:41
9.驱动中的mmap实现实例 30:47
10.platform驱动架构(一):platform框架初探24:52
11.platform驱动架构(二):platform架构原理以及编程实例 26:18

linux下输入子系统

在嵌入式开发中,Linux输入子系统是由输入子系统设备驱动层、输入子系统核心层(Input Core)和输入子系统事件处理层(Event Handler)组成。本章我将一起学习input子系统的相关知识,了解Linux输入子系统的核心原理。

1.linux输入子系统学前介绍13:47
2.input子系统(一):三个重要的结构体的讲解18:08
3.input子系统(二):事件驱动evdev的讲解-1 22:38
4.input子系统(三):事件驱动evdev的讲解-2 40:48
5.input子系统(四):input设备驱动的讲解-1 35:45
6.input子系统(五):input设备驱动的讲解-2 17:16

Linux内核移植入门

这是一门Linux内核移植课程的入门讲解,主要目的是了解内核移植过程及在移植中需要涉及的几个基本工具脚本的使用

1.开场白08:46
2.内核基本知识概述15:43
3.内核源码目录结构13:06
4.内核源码目录结构进阶13:02
5.内核头文件命名规律07:19
6.内核配置方法1 22:26
7.内核配置思路及方法2 24:14
8.内核编译过程及结果16:23
9.实验内核运行在开发板07:54
10.内核Kconfig语法1 14:40
11.内核Kconfig语法使用2 14:03
12.添加驱动到内核实验24:09
13.LED驱动添加测试1 13:42
14.LED驱动添加测试2 03:44

IIC设备驱动及子系统开发

IIC设备驱动及子系统开发

1.说在前面的话12:51
2.IIC硬件设备基本概念19:46
3.IIC硬件设备操作时序19:30
4.IIC硬件设备读写时序分析21:21
5.IIC硬件设备相关寄存器分析15:50
6.IIC子系统开发之设备驱动框架层功能分析21:02
7.IIC子系统开发之核心层分析24:10
8.IIC子系统开发之设备驱动层分析21:15
9.IIC应用程序开发之一19:47
10.IIC应用程序开发之二18:19
11.IIC应用程序开发之三18:44
12.IIC设备驱动之系统流程分析26:23
13.IIC设备驱动之资源层分析22:31
14.IIC设备驱动之总线驱动层分析之一22:34
15.IIC设备驱动之总线驱动层分析之二20:25
16.IIC设备驱动之总线驱动层分析之三16:39
17.IIC设备驱动之IIC特定驱动开发之一22:17
18.IIC设备驱动之IIC特定驱动开发之二24:22

第五阶段:项目及选修阶段

绚丽的嵌入式应用背后,是底层芯片默默的工作,如何开发一款基于linux操作系统的嵌入式驱动程序呢?看似神秘的linux内核,让我们通过驱动来熟悉它庞大的世界吧…同时本阶段还为大家提供了c++面向对象、数据结构面试题、C语言面试题等相关知识,帮助学员全面掌握一系列嵌入式开发相关知识,更顺利的进入梦想企业。

嵌入式综合项目-智能家居

学习嵌入式驱动开发,我们不仅要掌握理论知识,还需要实践的积累,本章我们就带领大家一起来进行嵌入式驱动之智能家居的项目开发。

Linux网络编程项目实战 - 轻量级HTTP服务器

这是一门Linux网络编程的项目实战课程,目标是让你把知识从“知道”变成“应用”,让你从“会编程”过渡到“会做项目”,让你学会用嵌入式驱动开发工程师的方式来思考和设计。

linux下网卡设备驱动

学习嵌入式驱动开发,本章将由 嵌入式资深讲师,带你一起学习linux下设备驱动相关知识,掌握DM9000驱动相关知识。

(选修课)探索Android底层开发

做嵌入式驱动开发,我们不仅要掌握过硬的硬件开发相关知识,也要掌握过硬的软件开发相关知识,本章 的小刚老师就将带领大家一起探索Android底层开发相关知识,我们一起来学习吧。

选修课-NDK初探

Android NDK开发是学习怎样使用C与java共同开发Android应用程的技术,有了NDK技术之后,你就可以开发出只用java不能开发的一些特殊项目,因为java不能,而C可以。同时,你就可以有基础去学习Android中间件的开发,因为中间件中大量使用了NDK技术。

linux下usb驱动

本章主要是嵌入式开发项目开发实战课程中linux系统下usb驱动的学习,主要围绕基本概念、移植方法、传输方式、鼠标驱动的进行详细介绍,全面剖析usb鼠标驱动的各种方法实现。

linux下usb驱动

本章主要是嵌入式开发项目开发实战课程中linux系统下usb驱动的学习,主要围绕基本概念、移植方法、传输方式、鼠标驱动的进行详细介绍,全面剖析usb鼠标驱动的各种方法实现。

C++面向对象编程

C++是在C语言的基础上开发的一种通用编程语言,支持面向对象编程、泛型编程和过程化编程等多种编程范式,在嵌入式应用开发中广泛运用。本套C++视频教程将由 资深嵌入式开发工程师,带你从实践的角度学习c++,让你领略c++编程语言在嵌入式开发中的魅力所在。

C++面试题

在Android、iOS风行的年代,在充斥浮躁、追求速成的年代,如果有一门语言值得我们去沉下心来好好研究,那它应该是C++。但是如果要找到一份好的工作也着实不易。 本c++套视频教程将带你了解常见C++面试题目。在遇到自己喜欢的公司时能够抓住机会。

Linux文件IO操作

本章嵌入式应用开发常用技术Linux文件IO操作,将由 资深嵌入式应用开发工程师带你深入学习掌握文件的IO操作,让你体会Linux“一切皆文件”的设计特。

数据结构面试题

学习嵌入式开发,不仅要学习嵌入式开发相关的理论知识、能运用这些知识进行实战开发,还需要清楚面试过程中,企业一般都问些哪些问题,这样才能更顺利的进入理想企业。本阶段,我们为大家介绍的就是面试中,数据结构相关面试题的集锦,助你面试更加顺利。

Android层次分析 –从顶层到底层

本课程通过结合实例代码来分析Android是怎么由应用一步步到底层的,以把Android OS纵向地串接起来。同时会把学习的思路融入课程,让你不仅仅知道答案是什么,更进一步知道怎么去获取答案。 在课程结束的时候你将知道从应用到底层分别是什么样的,以及是怎么一层层下来的。可以让你对整个Android系统有个直观的认识,为日后根据个人兴趣选择进入Android各层开发打下基础。

linux操作系统基础

linux作为一款开源的操作系统,已经被大多数人所认可,在嵌入式领域中,linux的占用率一直稳居榜首, 掌握好linux下的基本概念,对我们掌握系统编程及驱动开发都非常有利。

Linux应用开发之进程间通信

进程,程序灵魂的载体,掌握了linux的进程及特性,以及他们之间的信息传递,将是成为一名合格的linux应用开发工程师必须的技能。

猜你喜欢

转载自blog.csdn.net/BjarneCpp/article/details/80782376