课程分类

课程介绍
课程目录
用户评论
课程介绍
课程目录
用户评论

你将获得

  • 掌握某些知识点
  • 学会某些技巧(或思路)

教学服务

  • icon

    1v1专属答疑服务

  • icon

    BAT专家面试辅导

讲师介绍

  • 互联网课程品牌《朱老师物联网大讲堂》创始人。著有《嵌入式linux与物联网软件开发-C语言内核深度解析》等书籍,精通U-Boot、linux kernel移植及驱动程序开发;精通C、C++、Java、C#等高级语言,熟悉ARM体系结构;熟悉linux、WinCE下的开发流程;授课风趣幽默,讲解条理清晰,对知识有自己独到见解,善于发散学生的思维。

  • 课程详情

    课程目标
    本课程是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

    本节介绍并使用动态映射的方式对寄存器进行映射,然后实现应用操作,主要目的是学习动态内核映射的原理和实践方法。

    温馨提示
    • 请勿私下交易
      请勿在平台外交易。与机构和老师私下交易造成的任何损失及纠纷,腾讯课堂不承担任何责任
    • 听课说明

      1、电脑:访问腾讯课堂官网 ke.qq.com 查看我的课表或下载win/mac客户端听课

      2、手机/平板:下载腾讯课堂APP, 进入学习页面听课