- 课程目标
- 本课程是linux驱动开发的第2个课程,从零开始带领大家逐渐熟悉内核模块,并且一步步写出一个字符设备驱动程序来控制LED等。本课程对驱动的学习非常重要,是驱动学习的入门阶段。
- 适用人群
- 本课程是linux驱动开发的第2个课程,只要对linux内核有一定了解,有学习驱动开发意向的同学都可以观看。
- 课程简介
-
嵌入式绝对是当前IT领域最炙手可热的话题了。其主要应用领域涵盖与人类相关的各行各业:
* 消费电子(手机、平板电脑、游戏机)
* 物联网(智能家居、智慧城市)
* 工业自动化(无人工厂、工业机器人)
可以毫不客气的说,IT发展的未来在于嵌入式。巨大的商机和人才缺口导致嵌入式软件工程师的薪资居高不下,引得无数青年才俊、高校学子相继加入、苦苦钻研。
课程特色
*完全零基础,降低学习门槛。
*深入浅出,通俗易懂。不怕学不会,就怕你不学习。
*思路清晰、语言风趣,对着视频看也不会想睡觉······
*视频 + 文档 + 练习题 + 答疑,全方位保证学习质量。
*基础知识 + 思路引导的教学方式,授之以鱼更授之以渔。
*系列课程。本教程只是入门篇,后续还有更多更精彩视频更新中。
课程目录5.2.1.开启驱动开发之路
[免费观看]
37:25本节主要是讲述并且实践示范驱动开发的环境搭建、构建内核源码树、常用模块安装卸载命令等。
5.2.2.最简单的模块源码分析1
41:55本节主要讲解模块安装和过程,及其和module_init宏的关联,并且重点讲解了模块安装时的安全性兼容性校验问题。
5.2.3.最简单的模块源码分析2
30:00本节主要讲解了模块的卸载过程、MODULE_LICENSE等信息添加宏和__init、__exit宏。
5.2.4.最简单的模块源码分析3
41:56本节主要分析了printk函数及其打印级别定义,以及模块编译的Makefile文件工作原理。
5.2.5.用开发板来调试模块
36:11本节在开发板上搭建模块测试的环境,主要是内核源码树的编译、内核的下载、nfs挂载rootfs的设置,uboot中bootcmd和bootargs的设置等细节。
5.2.6.字符设备驱动工作原理1
25:13本节开始讲解字符设备驱动的工作原理,重点是file_operations结构体及整个应用+驱动体系的框架。
5.2.7.字符设备驱动工作原理2
32:35本节讲解了register_chrdev函数,并且重点讲解了内核内部对字符设备驱动的管理机制。
5.2.8.字符设备驱动代码实践1
25:08本节开始字符设备驱动的编码实践,首先把整体框架理顺,然后构建了file_operations结构体变量,并且填充了open和close方法。
5.2.9.字符设备驱动代码实践2
27:05本节进行字符设备驱动的注册,以及编译和实际在开发板上的测试。
5.2.10.应用程序如何调用驱动
30:53本节引入设备文件的概念,同时结合前面讲述的主次设备号,综合讲解应用程序对驱动程序的调用等整体流程。
5.2.11.添加读写接口
24:42本节开始在我们的驱动中添加write和read方法,并且讲解了copy_from_user和copy_to_user这两个重要函数。
5.2.12.读写接口实践
23:58本节完成write和read函数的编写,并且在开发板上进行实践测试。
5.2.13.驱动中如何操控硬件
32:39本节研究驱动中对硬件的操作和裸机中的不同,并且重点讲解了linux内核中虚拟地址映射的2种机制和原理。
5.2.14.静态映射操作LED1
28:11本节讲解我们所使用的内核版本中和静态虚拟地址映射有关的文件,并且带大家实际分析这部分代码,以深入理解静态映射表的实质。
5.2.15.静态映射操作LED2
26:23本节使用静态虚拟地址映射方法,参考裸机中的LED控制方法,在驱动中添加LED的操作方法,在对比中让大家理解驱动和裸机的区别。
5.2.16.静态映射操作LED3
28:51本节结合应用程序和驱动程序,实现一整套控制LED亮灭的完整体系。让大家初步体会到应用和驱动的配合。
5.2.17.动态映射操作LED
29:26本节介绍并使用动态映射的方式对寄存器进行映射,然后实现应用操作,主要目的是学习动态内核映射的原理和实践方法。
课程介绍
课程目录
往期学员作品
用户评论
课程介绍
课程目录
往期学员作品
用户评论
你将获得
- 掌握某些知识点
- 学会某些技巧(或思路)
教学服务
1v1专属答疑服务
BAT专家面试辅导
讲师介绍
朱有鹏
朱老师物联网大讲堂创始人/华为云MVP
互联网课程品牌《朱老师物联网大讲堂》创始人。著有《嵌入式linux与物联网软件开发-C语言内核深度解析》等书籍,精通U-Boot、linux kernel移植及驱动程序开发;精通C、C++、Java、C#等高级语言,熟悉ARM体系结构;熟悉linux、WinCE下的开发流程;授课风趣幽默,讲解条理清晰,对知识有自己独到见解,善于发散学生的思维。
课程详情
温馨提示
- 请勿私下交易请勿在平台外交易。与机构和老师私下交易造成的任何损失及纠纷,腾讯课堂不承担任何责任
- 听课说明
1、电脑:访问腾讯课堂官网 ke.qq.com 查看我的课表或下载win/mac客户端听课
2、手机/平板:下载腾讯课堂APP, 进入学习页面听课