新手入职Linux驱动岗后,必听的5个忠告

简介: 新手入职Linux驱动岗后,必听的5个忠告

1、不要只会用printk

除了printk,内核里面有很多pr_infopr_err等打印函数,要学会控制打印等级,以及针对不同的场景使用不同的打印函数。

2、新手不要直接改defconfig

内核有默认配置文件xxx_defconfig,如果你要修改内核的一些配置,作为新手不要直接去修改xxx_defconfig

稳妥的做法是执行make menucofig通常菜单进行配置,最后把.config文件覆盖掉xxx_defconfig,然后再上传这个xxx_defconfig

3、不要直接映射每一个物理地址

Linux下操作寄存器一定要先映射,但是通常只映射基地址,通过基址加偏移的方式操作。

不要直接去映射每一个寄存器的物理地址,因为对于某一个驱动,虽然有很多寄存器,但基址都是一样的。

4、不要不学uboot

即便你是Linux驱动岗,uboot怎么启动kernel,都传了什么参数,涉及到的地址有哪些,uboot的驱动怎么写这些必须知道。

5、不懂内存,不足以谈驱动

一定要多看看内存相关的知识。Linux下操作的都是虚拟地址,写进寄存器的是物理地址,怎么知道虚拟地址对应的物理地址?分配dma一致性内存和分配普通内存有什么区别?

寄存器手册写的地址是物理地址,给我记住了

dma内存问题,缓存一致性问题等,这些你都逃不掉

end

往期推荐

入职Linux驱动工程师后,我才知道的真相......

机遇:我是如何走向Linux驱动的...

当我用几道题考了一遍做Linux驱动的同事......

你解决bug的能力,暴露了你的水平

Linux驱动面试高频考点

相关文章
|
4月前
|
Java Linux API
Linux设备驱动开发详解2
Linux设备驱动开发详解
50 6
|
4月前
|
消息中间件 算法 Unix
Linux设备驱动开发详解1
Linux设备驱动开发详解
53 5
|
4月前
|
Ubuntu NoSQL Linux
Linux内核和驱动
Linux内核和驱动
32 2
|
4月前
|
数据采集 Linux
Linux源码阅读笔记20-PCI设备驱动详解
Linux源码阅读笔记20-PCI设备驱动详解
|
5月前
|
存储 JSON Linux
|
5月前
|
Oracle 关系型数据库 Linux
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
通过这一连串的步骤,可以专业且有效地在Linux下为Qt编译Oracle驱动库 `libqsqloci.so`,使得Qt应用能够通过OCI与Oracle数据库进行交互。这些步骤适用于具备一定Linux和Qt经验的开发者,并且能够为需要使用Qt开发数据库应用的专业人士提供指导。
165 1
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
|
3月前
|
Linux API
Linux里的高精度时间计时器(HPET)驱动 【ChatGPT】
Linux里的高精度时间计时器(HPET)驱动 【ChatGPT】
|
4月前
|
Linux
【linux】【驱动】<specifier>-map-pass-thru讲解
【linux】【驱动】<specifier>-map-pass-thru讲解
23 0
|
4月前
|
Linux
【linux】【驱动】phy接口类型
【linux】【驱动】phy接口类型
22 0
|
5月前
|
缓存 网络协议 算法
【Linux系统编程】深入剖析:四大IO模型机制与应用(阻塞、非阻塞、多路复用、信号驱动IO 全解读)
在Linux环境下,主要存在四种IO模型,它们分别是阻塞IO(Blocking IO)、非阻塞IO(Non-blocking IO)、IO多路复用(I/O Multiplexing)和异步IO(Asynchronous IO)。下面我将逐一介绍这些模型的定义:
245 2

热门文章

最新文章