- 博客(18)
- 收藏
- 关注
原创 柿子要挑软的捏 - Linux字符设备驱动 -- 4
了解内存空间在Linux中的用户空间和内核空间,进程的用户态和内核态的概念。掌握驱动程序在用户空间和内核空间进行数据交换的方法。
2024-10-22 10:33:01
937
原创 Linux设备及对应的驱动分类
Linux系统将设备分为3个基础大类类型:字符设备、块设备和网络接口设备。1.字符设备字符设备是指那些的设备,不能随机读取设备内存中的某一数据。其读取数据需要按照先后顺序,从这点来看,字符设备是面向数据流的设备。常见的字符有鼠标、键盘、串口、控制台和LED等设备。2.块设备块设备是指那些可以的设备。其读取数据不必按照先后顺序,可以定位到设备的某一具体位置,读取数据。常见的块设备有硬盘、磁盘、 U盘、SD卡等。如何区分 字符设备和块设备?
2024-10-12 16:03:22
803
原创 了解系统调用,添加一个自定义的系统调用
我们的所谓服务也就是输出一句 “My syscall test ...”的程序。这段程序具体放在什么内核什么位置是没有要求的,但是需要添加进内核的编译配置里面,不知道怎么配置的,可以参考编进内核的模块一篇中的方法---添加helloworld模块的方法。这里咱们为了省略这些配置步骤,直接改写helloworld.c。/* note: 给内核添加自己的系统调用 */return 0;可以看到这里我们使用的宏定义是 SYSCALL_DEFINE0,因为我们仅需要打印一句,不需要别的参数。
2024-10-11 16:32:21
1096
原创 Linux 模块之间函数调用之关键-Linux 内核模块符号导出
掌握Linux 内核模块符号导出;掌握Linux 内核模块符号表中符号使用方法。
2024-09-29 12:01:38
454
原创 把Linux驱动编译到内核
其次,为了让内核编译 Makefile 可以调用这个 Makefile,我们还需要将 helloworld 的 Makefile 引用到上一级目录的 Makefile 中,也就是 kernel/drivers/char/ 下的 Makefile 中。不,还要添加到支撑 "Character devices" 菜单的Kconfig下,我们才能在"Character devices" 菜单下看到我们创建的条目。单独编译驱动程序的Makefile,在我们要编译进内核时就不合适用了,那应该是什么样子?
2024-09-27 14:58:32
479
原创 把Linux驱动编译到内核的预备知识-Kconfig 文件语法
可以看到这个标题里包含两个变量:ARCH 和 KERNELVERSION,注意一下,$(变量)是取变量的值,对于下图来说,$(ARCH)就是x86,$(KERNELVERSION)就是5.10.160。可以看出menu/endmenu是用来生成菜单的,menu是菜单开始的标志,后面跟的"Device Drivers"就是子菜单的名称,endmenu是菜单结束的标志,这两个是成对出现的。每个选项都必须指定类型,类型包括bool,tristate,string,hex,int。这是又一个成对出现的关键字。
2024-09-27 12:19:26
823
原创 把Linux驱动编译到内核的预备知识-图像界面(make menuconfig)
1、了解图形化配置界面的基本操作。2、了解支持图像化界面文件:Kconfig、config、.config,以及编译规则文件Makefile。
2024-09-26 18:50:42
817
原创 Hi,Linux源码
Linux 内核源码包含多级目录,形成一个巨大的树状结构,进入源码所在的目录,就是 Linux 源码的顶级目录。嵌入式Linux 源码获取:去芯片厂商官网获取对应芯片的源码包。了解Linux 内核源码目录结构。Linux 源码目录结构。
2024-09-26 16:45:09
274
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人