Я занимаюсь разработкой встраиваемых систем Linux и пытаюсь реализовать новый экземпляр интерфейса EMIF. Ядро Linux уже имеет установленный в нем драйвер EMIF и использует его для чтения и записи из памяти NAND. Интерфейс EMIF имеет 4 отдельные линии выбора микросхемы, и я хотел бы добавить второе устройство на шину EMIF, используя выбор микросхемы 2.
Как мне создать экземпляр этого устройства и читать и писать на него. (Добавление дерева устройств?)
Я пытался отследить код драйвера из исходного кода ядра, но я очень новичок в разработке драйверов, какие вызовы функций выполняются ядром из драйвера и где в исходном коде они происходят? Я считаю, что нашел исходные файлы для драйвера, так как они имеют то же имя, что и строка
compatible = "ti,davinci-nand"
в дереве устройств. Правильно ли я понимаю, что исходный файл драйвера будет называтьсяdavinci_nand.c
и находиться по адресу{linux source}/drivers/mtd/nand
?
РЕДАКТИРОВАТЬ:
С некоторой новой информацией и просмотром дерева устройств я опубликовал этот вопрос, который может быть полезен всем, кто сталкивается с этой веткой.
davinci_nand.c
a> является правильным файлом, поскольку он регистрирует ту же совместимую строку, которую вы нашли в исходном коде дерева устройств. Как правило, всегда ищите совместимую строку в исходном коде ядра, чтобы найти соответствующий драйвер. Например,grep -rn "davinci-nand" kernel-src/drivers/
перечисляет исходный файл драйвера, который идентифицирует себя по имениdavinci-nand
. - person TheCodeArtist   schedule 03.04.2014