fishonesea

android 驱动,移植,qq群:91386163 推荐《Android深度探索(卷1):HAL与驱动开发》
  博客园  :: 首页  :: 新随笔  :: 管理

2012年2月7日

摘要: 下面这个注册方法是自动创建设备节点的字符设备驱动的方法#define DEVICE_NAME "fpga_dma"static int dev_major = 0;static struct class *fpga_class;static struct cdev fpgaDevice;static int dev_init(void){ int result; int err; dev_t dev = MKDEV(dev_major, 0); if (dev_major) result = register_chrdev_region(dev, 1,... 阅读全文

posted @ 2012-02-07 12:06 fishonesea 阅读(4365) 评论(0) 推荐(0) 编辑

摘要: Linux混杂设备注册,相对来说更加简单,可以这样做:static int __init init_fpga(void){ misc_register(&ppc_dpram_miscdev); return 0;}可以看到没有字符设备标准的那种什么申请设备号,,初始化,添加等操作,只用一个misc_register()就可以了。static struct miscdevice ppc_dpram_miscdev ={ .minor = 189, .name = DEVFS_NAME, .fops = &fpga_fops,};#define DEVFS_NAME ... 阅读全文

posted @ 2012-02-07 11:04 fishonesea 阅读(1290) 评论(0) 推荐(0) 编辑

摘要: 关于字符设备的注册,标准的2.6中可以这样做:static struct cdev dev;static int wmsc_dev_init(void){ int ret; dev_id = MKDEV(DEV_MAJOR,0); ret = register_chrdev_region(dev_id,1,DEV_NAME); if(ret < 0){ printk(KERN_ERR"Can't register device,maybe the device id has been used.\n"); unregister_c... 阅读全文

posted @ 2012-02-07 10:54 fishonesea 阅读(259) 评论(0) 推荐(0) 编辑

摘要: 下面这种中断的配置方法比较畸形,不过和后面的配合起来,也是成功的。static int ZwFPGA_irq_init(void){ int ret; irq2 = irq_create_mapping(NULL,FPGA_IRQ2); printk(KERN_ERR"irq2=0x%08x\n",irq2); irq3 = irq_create_mapping(NULL,DSP_IRQ3); printk(KERN_ERR"irq3=0x%08x\n",irq3); mask_irq(irq3); mask_irq(irq... 阅读全文

posted @ 2012-02-07 10:39 fishonesea 阅读(406) 评论(0) 推荐(0) 编辑

摘要: 下面是linux下的powerpc中断注册的方法,这个相对来说比较简单。static int zw_irq_init(void){ int ret; irq4 = irq_create_mapping(NULL,FPGA_IRQ4); ret = request_irq(irq4,irq4_handler,IRQF_SHARED,DEV_NAME,(void *)dev_id); if(ret < 0){ printk(KERN_ERR"Request irq4 failed.\n"); free_irq(irq... 阅读全文

posted @ 2012-02-07 10:27 fishonesea 阅读(984) 评论(0) 推荐(0) 编辑