百度一下linux下的dnw 即可找到诸多下载信息,下载文件中包含两个文件,一个是dnw的usb驱动程序secbulk,还有一个是dnw的应用程序。需要对于这两个文件分别进行编译。
其中secbulk的编译过程方法和内核驱动编译一样,dnw应用程序的编译可直接使用命令 gcc –o dnw dnw.c 。
要注意的是:网上一般下载的usb驱动是基于2240的,而如果三星的6410,情况不一样,所以需要稍作修改:secbulk.c文件中
static struct usb_device_idsecbulk_table[]= {
{ USB_DEVICE(0x04e8, 0x1234)},
{ }
}; 三星的6410 需要修改为 0x04e8& 0x1234
其次:网上下载的secbulk.c编译后不能自动创建设备节点,需要手动创建,可以用以下方法以便加载驱动程序的时候自动创建设备节点
Struct class*my_class;
在__init 函数中添加:
my_class =class_create(THIS_MODULE, "my_class");
if(IS_ERR(my_class))
{
printk("Err: failedin creating class.\n");
return -1;
}
device_create(my_class, NULL, MKDEV(hello_major, 0), "hello","%d", 0 );
在__exit函数中添加:
device_destroy(my_class,MKDEV(adc_major, 0)); //deletedevice node under /dev
class_destroy(my_class); //delete class created by us
其他驱动程序也一样可以如上使用。
编译完成后,将dnw下生成的dnw可执行文件拷贝到/usr/local /bin下去,使用insmod加载生成的secbulk.ko 模块
需要usb下载镜像文件的时候,直接使用 sudo dnw 文件名
一直在搞s3c6410,原来linux 系统下面也可以用DNW ,学习了,转载自:http://blog.csdn.net/xyl_nuaa/article/details/6636076