Linux kernel 嵌入式linux开发中内核驱动程序代码的跟踪

Linux kernel 嵌入式linux开发中内核驱动程序代码的跟踪,linux-kernel,embedded,linux-device-driver,device-tree,Linux Kernel,Embedded,Linux Device Driver,Device Tree,我正在做一些嵌入式Linux开发,并试图实现一个EMIF接口的新实例。Linux内核已经安装了一个EMIF驱动程序,并使用它从NAND内存读写。EMIF接口有4条独立的芯片选择线,我想使用芯片选择2在EMIF总线上添加第二个设备 如何实例化此设备并对其进行读写。(设备树添加?) 我一直试图从内核源代码中跟踪驱动程序代码,但对于驱动程序开发来说,我是一个新手,内核从驱动程序执行的函数调用是什么,它们发生在源代码中的什么地方?我相信我已经找到了驱动程序的源文件,因为与设备树中的compatible

我正在做一些嵌入式Linux开发,并试图实现一个EMIF接口的新实例。Linux内核已经安装了一个EMIF驱动程序,并使用它从NAND内存读写。EMIF接口有4条独立的芯片选择线,我想使用芯片选择2在EMIF总线上添加第二个设备

  • 如何实例化此设备并对其进行读写。(设备树添加?)

  • 我一直试图从内核源代码中跟踪驱动程序代码,但对于驱动程序开发来说,我是一个新手,内核从驱动程序执行的函数调用是什么,它们发生在源代码中的什么地方?我相信我已经找到了驱动程序的源文件,因为与设备树中的
    compatible=“ti,davinci nand”
    行同名。假设驱动程序源文件名为
    davinci_nand.c
    ,位于
    {linux source}/drivers/mtd/nand

  • 编辑:

    通过一些新的信息和设备树,我发布了这个问题,它可能对任何通过这个线程访问的人都有用

    关于Q1-确定EMIF总线上是否存在描述当前设备的节点。如果存在此类节点(和属性),则需要在计划使用EMIF总线接口的新设备的设备树源中相应地复制和修改它们。关于Q2-您的路径正确。该文件是正确的文件,因为它注册了与您在设备树源中找到的相同的兼容字符串。通常,总是在内核源代码中搜索兼容的字符串来定位相关的驱动程序。例如,
    grep-rn“davinci nand”kernel src/drivers/
    列出了驱动程序的源文件,该驱动程序通过名称“
    davinci nand
    ”来标识自身。