首页 > 快讯 > >正文

课程背景


(资料图)

驱动是连接软件和硬件的纽带,在一个成熟的操作系统中,驱动代码的比例最高,工作量也很大。不论是UART,I2C,SPI,SD,显示,声音,视频编解码等嵌入式场景的驱动,还是服务器场景的pcie驱动,块设备驱动和网络驱动,驱动程序在整个系统中都发挥着重要的作用。

课程介绍

课程中软件研发最基本能力(环境和文档)开始带大家上手,从最简单的GPIO驱动带大家步入驱动的殿堂。从GPIO驱动引出Linux内核对硬件的抽象,内存管理和设备模型等话题。然后从大驱动(网络驱动),电源管理和调试三方面,带领大家提升解决复杂问题的能力。

具体目录如下

第一课

(2.5小时)

工欲善其事,必先利器—一开发环境搭建

获得代码的两种方法

获得文档的两个思路

利用前面两步搭建自己的开发环境

从GPIO看硬件抽象

MCU如何访问GPIO

Linux如何访问GPIO

基于GPIO的驱动

Linux下访问GPIO实际发生了什么

使用shell脚本测试gpio

第二课

(2.5小时)

驱动程序的寄存器访问和内存分配

MCU和Linux的寄存器API对比和实操

MCU和Linux的dma API对比和实操

用户空间内存分配,malloc的背后的原理

内核内存分配,在驱动中分配内存

使用工具获得内存分配状态

第三课

(2.5小时)

Linux设备模型与电源管理

如何学习Linux设备之“道”

这么多种设备如何管理? Linux对硬件的抽象

电源管理在操作系统的中的位置

电源管理的硬件架构

Linux的电源管理框架

设备拓扑结构与休眠唤醒

第四课

(2.5小时)

网络驱动

TCP/IP协议栈

MCU使用网络协议的两个方法

Linux的网络协议栈

RGMII协议

phy芯片的驱动和调试工具

使用python测试网络状态

第五课

(2.5小时)

驱动调试手段

打印

断点

如何判断是否是驱动的性能瓶颈?

5.0内核之后的重要内核更新

设备驱动框架的更新

内存管理的更新

调测的更新

课程收益

•掌握Linux下设备驱动开发方法;

•熟悉设备驱动和操作系统的关系,不再盲人摸象;

•通过工具和方法支持自己高效工作,从自己每次重复性驱动移植和调试硬件的工作中解脱出来;

•学习如何每次移植和调试变成加深对操作系统理解的过程。

讲师介绍

张健/Bamvor

十年IT基础设施研发经验,其中6年Linux kernel一线研发经验,在suse,华为(17级),星际比特(技术合伙人)等公司工作。

作为团队核心成员参与了大陆第一个Cortex-A8 SOC芯片研发,负责CPU软件验证,操作系统移植等工作。

作为华为派驻到Linaro的技术专家,主导/参与多个Linux与arm架构相关特性研发(ILP32,continuous bit hint,kernel selftest等)

课程受众

•希望从MCU(单片机)转行到Linux开发的工程师;

•已经有Linux开发经验,希望深入了解操作系统的工程师;

•日常有大量重复驱动调试工作,希望更多时间拓展自己的人。

课程定价:6000元/人(阅码场会员减1024,训练营老用户优惠券已发放。)

开课时间:2023年7月

课前准备:课程咨询请联系客服小月(WX:linuxer2016)

上一篇 下一篇
x
相关阅读