免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1844 | 回复: 1
打印 上一主题 下一主题

请教一个在DM644x下获取Nand Flash的芯片ID的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-06-07 10:49 |只看该作者 |倒序浏览
本人对linux驱动编程还不熟,只看到了字符设备驱动的编写

现在我想读取我的DM6446板子上的Nand Flash的ID,  我在driver/mtd/nand/下找到一个文件:davinci.c。

我把这个文件复制出来,想在上面修改,出现了一些疑惑。
从这些代码开始吧, 代码不会贴很多

static int nand_flash_init(struct nand_davinci_info *info)
{
        __raw_writel((1 << info->ce), info->emifregs + NANDFCR);

        return 0;
}

#define res_size(_r) (((_r)->end - (_r)->start) + 1)

static int __devinit nand_davinci_probe(struct device *dev)  //我的理解是这个函数在insmod的时候就会执行
{
。。。。。。。。。。。。。。。。。。。
}

static int __devexit nand_davinci_remove(struct device *dev)
{
        return 0;
}

static struct device_driver nand_davinci_driver = {
        .name = "nand_davinci",
        .bus = &platform_bus_type,
        .probe = nand_davinci_probe,
        .remove = __devexit_p(nand_davinci_remove),
};

static int __init nand_davinci_init(void)
{
        return driver_register(&nand_davinci_driver);
}

static void __exit nand_davinci_exit(void)
{
        driver_unregister(&nand_davinci_driver);
}

module_init(nand_davinci_init);
module_exit(nand_davinci_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("TI");
MODULE_DESCRIPTION("Board-specific driver for NAND flash on davinci board");

首先,以我的理解是,在insmod my.ko的时候,nand_davinci_probe()就会执行, 我这里有个疑问,当它执行的时候,它的参数struct device *dev是如何传进去的?
还有就是我在这个文件中没有发现open函数, 那它到时候怎么打开这个设备?

带着疑问,我把这个ko编译出来了,结果在insmod的时候,发现nand_davinci_probe没有执行到,我通过printk的方式,发现nand_davinci_init执行到了,而nand_davinci_probe没有执行。请问nand_davinci_probe是什么时候执行的?

还有就是,nand flash操作的函数基本上都带一个参数struct mtd_info *mtd,我发现这个参数在nand_davinci_probe中初始化了,但是没有保存,那么以后调用其它函数的时候,用到mtd参数的时候,这个参数从哪来的?


谢谢

论坛徽章:
0
2 [报告]
发表于 2013-06-21 16:37 |只看该作者
第一个问题:probe是在device_add之后执行,device_add可在另一个驱动中编写。如果有相关的device_add已装载,insmod时probe会很快执行。
第二个问题:没看到你的所有代码,不过一般会用dev_set_drvdata(dev,mtd),让dev中的私有指针指向mtd,用的时候struct mtd_info *mtd = dev_get_drvdata(dev);
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP