Gen216ius 发表于 2010-11-25 13:00

dm6446 LED 驱动程序


LED驱动:davinci_led.c

两个LED灯接在DM6446的GPIO11跟GPIO12上。

加载davinci_led.ko文件到了开发板上
并且使用mknod /dev/led c 100 0加载了

运行测试程序时也已经打开了这个设备,但LED灯就是没有变化啊

麻烦各位帮小弟下哈,小弟感激涕零,在这里先谢谢了哈!!!

dreamice 发表于 2010-11-25 16:32

回复 1# Gen216ius


    这种问题,最好你自己能定位到一个范围,然后再提出来分析讨论。否则上传个附件,没有多少人去下载来分析你的代码,再看出其中的问题的。呵呵

威廉爵爺 发表于 2010-11-26 10:32

测试程序贴出来嘛
fd=open(..).
然后ioctl(fd,1,0/1)?

威廉爵爺 发表于 2010-11-26 10:34

他的代码很简单,就是open,然后设置输入输出,然后ioctl。

garyv 发表于 2010-11-26 17:02

代码量不大,应该很容易定位的。

Gen216ius 发表于 2010-11-26 17:24

本帖最后由 Gen216ius 于 2010-11-26 17:35 编辑

测试程序:

第一次写驱动程序呵,各位尽量讲得详细下哈

首先将写好的davinci_led.c文件放入内核drivers/char子目录下,在driver/char/Makefile中增加下面一行:
obj-m   += davinci_led.ko
然后在内核根目录下(/opt/mv_pro_4.0/montavista/pro/devkit/lsp/ti_davinci)执行“make modules”就在drivers/char目录下产生了davinci_led.ko,然后再将davinci_led.ko文件拷贝到/opt/nfs/lib/modules目录下,退出虚拟机。

开发板是通过nfs启动的,通过超级终端输入以下指令:
insmod /lib/modules/davinci_led.ko
mknod /dev/led c 100 0
root@192.168.1.96:/opt/test# ./hello(测试程序)

程序正常执行了(就是已经open(),ioctl()都成功执行了),但灯没有变化,测了管脚的电压,也是没有变化。

dreamice 发表于 2010-11-26 18:04

回复 6# Gen216ius


    那说明应该是你的驱动的问题

Gen216ius 发表于 2010-11-26 18:09

能不能说得详细些呢!!小弟刚开始写驱动程序

EZWORD 发表于 2010-11-26 18:53

回复Gen216ius


    那说明应该是你的驱动的问题
dreamice 发表于 2010-11-26 18:04 http://linux.chinaunix.net/bbs/images/common/back.gif


    站内短信为什么不回?

EZWORD 发表于 2010-11-26 18:55

测试程序:

第一次写驱动程序呵,各位尽量讲得详细下哈

首先将写好的davinci_led.c文件放入内核drive ...
Gen216ius 发表于 2010-11-26 17:24 http://linux.chinaunix.net/bbs/images/common/back.gif
驱动代码贴上来看看吧,应用程序看有个屁用。
页: [1] 2 3
查看完整版本: dm6446 LED 驱动程序