字元裝置驅動 Led

2021-07-29 07:17:59 字數 1692 閱讀 8304

驅動檔案:

/*******************************************

使用linux3.2.81核心

********************************************/

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

static

struct

class *ledsdrv_class; //類結構體

static

struct device *ledsdrv_class_dev; //裝置結構體

volatile

unsigned

long *gpfcon = null ;

volatile

unsigned

long *gpfdat = null;

static

int leds_drv_open(struct inode *inode, struct file *file)

static ssize_t leds_drv_write(struct file *file, const

char __user *buf, size_t count, loff_t * ppos)

else

return0;}

/*當應用程式操作裝置檔案時所呼叫的open、read、write等函式,最終會呼叫這個結構體中上的對應函式

*/static

struct file_operations leds_drv_fops = ;

int major;

//指定insmod命令時會呼叫這個函式

static

int leds_drv_init(void)

//執行rmmod時會呼叫這個函式

static

void leds_drv_exit(void)

//指定驅動程式的初始化函式和解除安裝函式

module_init(leds_drv_init);

module_exit(leds_drv_exit);

module_license("gpl"); //防止出現「module license」unspecified taints kernel的警告

測試程式(應用程式)

#include 

#include

#include

#include

/* led_test on

* led_test off

*/int main(int argc, char **argv)

if (argc != 2) //引數個數不為2,則顯示使用方法

if (strcmp(argv[1], "on") == 0) //第二個引數為"on"

else

write(fd, &val, 4); //寫入4個位元組資料到裝置檔案,該函式最終將呼叫底層驅動的write函式

return

0;}

LED字元裝置驅動

一 實驗環境 開發機環境 作業系統 ubuntu 10.10 交叉編譯環境 arm linux gcc 4.4.1,安裝位置 usr local arm 4.4.1 6410板子核心原始碼路徑 work linux 2.6.36.2 v1.05 目標板環境 ok6410 a linux2.6.36 ...

字元裝置驅動 LED型

字元驅動程式 對於led型別的字元裝置驅動函式編寫 1 建立乙個file operation結構體,裡面會有點燈操作的各個硬體操作函式 2 編寫乙個drv init 函式 3 要對drv init函式進行修飾為入口函式,告訴核心,載入驅動時進行掛接 4 有init函式,那麼也會有出口函式exit m...

字元裝置驅動 LED驅動程式

int main open sys.open led.open write sys.write led.write 第一步 驅動功能實現 static int first drv open struct inode inode,struct file file static ssize t firs...