![]() |
FreeBSD Device Driver
Как писать драйвера под FreeBSD (например для PCI плат и не только для них) ?
|
http://www.freebsd.org/doc/en_US.ISO8859-1/books/arch-handbook/devicedrivers.html
|
это я читал меня интересует как это скомпилить точнее я знаю формат makefile но он сразу генерить *.ko модуль а мне надо в makefile:
1. заинклудить path к моим хедерам 2. создать не ко-шку а обєктний файл которій потом я подлинкую (как еще непредставляю) к другому проекту которій и дасть мне кошку 3. вото точнее чтон адо 1) есть драйвер под Линукс для CAN Interface (CANOpen) називаеться CanFestivale мне нужно его запустить под фришку 2) их драйвер имеет папку sja1000 (непосредственая работа с контролером) после екго компиляции создаеться обектный файл 3) каталогом выше есть сам драйвер он мейкаеться с п.2 а потом этот модуль грузиться в память - драйвер готов но смейкать отдельно неполучаеться оно хочетьв се сразу чтобы создать кошку :( и вобще как к примеру написать простую програму не модуль ядра для работы с pci (функ pci_find_device и.т.д) |
Вопрос у тебя специфический. Думаю, более компетентную информацию ты получишь, если отправишь свой вопрос в рассылку FreeBSD : http://lists.freebsd.org/mailman/listinfo
Успехов! |
Я начал писать свой драйвер при загрузке выдает:
Device driver "mypci" has wrong version and is disabled. Recompile KLD module. Выдает ошибку в этом месте mypci_attach(device_t dev) { uprintf("MyPCI Attach for : deviceID : 0x%x\n",pci_get_vendor(dev)); sdev = make_dev(&mypci_cdevsw, // <- ТУТ 0, UID_ROOT, GID_WHEEL, 0600, "mypci"); uprintf("Mypci device loaded.\n"); return ENXIO; } В чем проблема и как узнать MAJOR девайса ? |
еррор убрал :)
дописал static struct cdevsw can_cdevsw = { .d_open = can_open, .d_close = can_close, .d_read = can_read, .d_write = can_write, .d_name = "can", .d_version = D_VERSION, // вот это добавил }; но все равно дает device_attach: can0 attach returned 6 помоему это ошибка иначе и что это за 6 почему не 0 странно все это |
Может кто знает как вобще работать с PCI шиной что за регистры что за преривания каналы ДМА и оттображаемая память Мне б еще дотсать описание работы с sja1000 от Philips
|
Совсем забыл но драйвер под CAN уже переписан мною :)
|
Часовой пояс GMT +4, время: 22:16. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.