手把手教你写第一个Linux驱动程序

简介: 说到写第一个linux内核驱动程序,再简单不过了。以前也写过,这次将做一个图形化的整理。我这里以我的开发环境tiny4412为主,我将在这上面写第一个驱动程序。首先,我在driver/目录下创建yangyx目录,在目录下新建一个hello.c和一个Makefilehello.c内容如下:hello.c包含的头文件就类似咱们写标准C一样的头文件。

说到写第一个linux内核驱动程序,再简单不过了。以前也写过,这次将做一个图形化的整理。

我这里以我的开发环境tiny4412为主,我将在这上面写第一个驱动程序。

首先,我在driver/目录下创建yangyx目录,

在目录下新建一个hello.c和一个Makefile


hello.c内容如下:

hello.c包含的头文件就类似咱们写标准C一样的头文件。

驱动程序__init ,加上这个,程序在编译的过程中会标识__init段,以此对程序进行优化处理,在这里我们实现了一个打印语句。


Makefile内容如下:


然后,回到上一级,也就是driver目录下,打开driver目录下的Makefile

添加该目录的信息:obj-y  yangyx/

注意这里一定要加 / 


然后回到kernel主目录,执行make

编译中最顶层Makefile会根据Makefile编译体系包含我们在driver目录下和yangyx目录下的Makefile,实现级联编译。


编译完成后在yangyx目录下会生成:


我们就可以将以下的zImage下载到开发板上去看是否已经加载了这个驱动程序:



程序我已经验证过了,这里就不再验证,其它平台也是雷同。


目录
相关文章
|
存储 编译器
Linux--程序地址空间
Linux--程序地址空间
|
1月前
|
Linux Android开发
嵌入式linux中Framebuffer 驱动程序框架分析
嵌入式linux中Framebuffer 驱动程序框架分析
26 0
|
2月前
|
Linux 芯片
Linux 驱动开发基础知识——认识LED驱动程序 (二)
Linux 驱动开发基础知识——认识LED驱动程序 (二)
35 0
Linux 驱动开发基础知识——认识LED驱动程序 (二)
|
2月前
|
算法 中间件 Linux
Linux-计算机程序概览
Linux-计算机程序概览
41 0
|
27天前
|
Shell Linux C语言
【Shell 命令集合 系统设置 内置命令】⭐⭐Linux 测量程序的执行时间和资源使用情况 time命令 使用指南
【Shell 命令集合 系统设置 内置命令】⭐⭐Linux 测量程序的执行时间和资源使用情况 time命令 使用指南
31 0
|
28天前
|
前端开发 Unix Linux
Linux indent命令 (格式化C语言源代码的程序)
Linux indent命令 (格式化C语言源代码的程序)
17 0
Linux indent命令 (格式化C语言源代码的程序)
|
29天前
|
存储 缓存 Linux
探秘Linux块设备驱动程序:成为内核开发大师的第一步
探秘Linux块设备驱动程序:成为内核开发大师的第一步
83 0
|
29天前
|
Linux 编译器 测试技术
探索Linux设备树:硬件描述与驱动程序的桥梁
探索Linux设备树:硬件描述与驱动程序的桥梁
53 0
|
29天前
|
存储 缓存 安全
掌握Linux字符设备驱动程序的核心要点
掌握Linux字符设备驱动程序的核心要点
57 0
|
1月前
|
Shell Linux 调度
【Linux】—— 进程程序替换
【Linux】—— 进程程序替换