如何编写Linux 驱动程序

如何编写Linux 驱动程序,第1张

以装载和卸载模块为例:

1、首先输入代码

#include <linux/init.h>

#include <linux/module.h>

2、然后输入下方的代码:

static int my_init(void)

{

                    return  0

}

static void my_exit(void)

3、然后在输入下方的代码:

{

                    return

}

module_init(my_init)

module_exit(my_exit)这样就完成了。

这是LCD的参数,

VBPD(vertical back porch):表示在一帧图像开始时,垂直同步信号以后的无效的行数,对应驱动中的upper_margin;

VFBD(vertical front porch):表示在一帧图像结束后,垂直同步信号以前的无效的行数,对应驱动中的lower_margin;

VSPW(vertical sync pulse width):表示垂直同步脉冲的宽度,用行数计算,对应驱动中的vsync_len;

HBPD(horizontal back porch):表示从水平同步信号开始到一行的有效数据开始之间的VCLK的个数,对应驱动中的left_margin;

HFPD(horizontal front porth):表示一行的有效数据结束到下一个水平同步信号开始之间的VCLK的个数,对应驱动中的right_margin;

HSPW(horizontal sync pulse width):表示水平同步信号的宽度,用VCLK计算,对应驱动中的hsync_len;

这些是必须要知道的,这是基础啊!是lcd驱动的硬件方面的知识。

Linux驱动上ioctl函数上的cmd是由一个32位字段组成的,分为4个部分:

1)type

类型或叫幻数,8位

2)number

序数,8位

3)direction

方向,表示是由内核空间到用户空间,或是用户空间到内核空间

4)size

大小,表示需要读写的参数大小

Linux内核一般会自动地过滤到一些不合法的cmd定义,比如你自己定义的1,2,

cmd为1,2没有type、没有number,没有direction,也没有size,Linux内核自动过滤掉你的ioctl请求,你的ioctl根本就没有到驱动ioctl上就被返回错误了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7375579.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存