TQ210開發板 led驅動

2021-06-17 17:34:20 字數 2652 閱讀 8038

在天嵌的tq210開發板上按照天嵌提供的說明書把uboot,核心,檔案系統都做好後,今天嘗試寫乙個led的驅動,

1、看電路圖,找到led連線哪個引腳。由圖可見,開發板上的兩個led分別連線在gpc0_3和gpc0_4的兩個引腳上。

2、開啟s5pv210的晶元手冊,搜尋一下gpc0con[4]在2-48頁找到gpc0con的位址為 :address = 0xe020_0060,下面還有gpc0dat的位址為: address = 0xe020_0064

有圖可以看出s5pv210不同於2440,s5pv210每個引腳由4位來配置,我們要把gpc0con[4]、gpc0con[3]這兩個引腳配置成輸出(output)。

3、接下來就可以寫驅動程式了:

*******************led_drv.c***********************

include

#include

#include

#include

#include

#include

#include

#include

#include

#include

//device_create(),class_create()的標頭檔案

#include

//定義出這兩暫存器

volatile  unsigned long *gpc0con = null;

volatile  unsigned long *gpc0dat = null;

//volatile struct unsigned long *gpc1con = null;

static struct class *leddrv_class;

int major;

static int led_drv_open(struct inode *inode, struct file *file)

static ssize_t led_drv_write(struct file *file, const char __user *buf, size_t count, loff_t * ppos)

else

//printk("liu guo feng write led_drv\n");

return 0;

}//定義了這樣的乙個結構

static struct file_operations led_drv_fops = ;

//入口函式

int  led_drv_init(void)

void led_drv_exit(void)

module_init(led_drv_init);

module_exit(led_drv_exit);

module_license("gpl");

******************makefile*********************************

kern_dir = /opt/embedsky/tq210/kernel_2.6.35.7_tq210_for_linux_v1.1

all:

make -c $(kern_dir) m=`pwd` modules

clean:

make -c $(kern_dir) m=`pwd` modules clean

rm -rf modules.order

obj-m += led_drv.o

上面的kern_dir = /opt/embedsky/tq210/kernel_2.6.35.7_tq210_for_linux_v1.1是核心的路徑

把上面兩個檔案複製到linux下,執行make命令就可以生成led_drv.ko的驅動檔案

下面還要寫乙個測試檔案:

***********************leddrvtest.c*********************************

#include

#include

#include

#include

/*leddrvtest on

leddrvtest off

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

if( strcmp(argv[1],"on") == 0)

else

write(fd, &val, 4);

return 0;

}把leddrvtest.c複製到linux下。

執行arm-linux-gcc -o leddrvtest leddrvtest.c    就可以生成leddrvtest的測試檔案

把led_drv.ko和leddrvtest複製到開發板的根檔案系統下,

我的開發板已經使用nfs掛載根檔案系統。連線好後給開發板上電。

在開發板上執行insmod led_drv.ko新增驅動。

執行./leddrvtest on 燈開啟了。

執行./leddrvtest off 燈關閉了。

以上僅為小弟的初學時的筆記的總結,可能會有錯誤和不足。

fs4412開發板led驅動

閱讀實驗手冊第16章 led 驅動開發實驗 p275下 fs4412 led.c,fs4412 led.h,test.c 檔案 1.系統呼叫函式 test.c的main函式中,while 1 函式。函式如下 函式分析 1 函式引數中的file指標對應於應用程式傳遞的檔案描述符fd,這和傳遞open方...

Tiny210開發板wm8960驅動

如果修改了external tinyalsa目錄下的內容,可以通過如下兩種方法去編譯tinyalsa相關的工具。1 m mm mmm external tinyalsa m mm mmm具體的實現在android 4.0.3 r1 build envsetup.sh,所以只要source一遍這個檔案...

TQ2440開發板儲存器

tx2440a與tq2440a開發板使用核心板完全相同 有過51單片基礎的同學應該都會看懂下圖,先看下圖,對實驗板儲存器分布有乙個整體印象 s3c2440儲存器概述 1 s3c2440a的儲存器管理器提供訪問外部儲存器的所有控制訊號 2 27位位址訊號 32位資料訊號 8個片選訊號 以及讀 寫控制訊...