IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   FreeBSD Device Driver (http://www.imho.ws/showthread.php?t=87861)

Lion1981 22.06.2005 17:12

FreeBSD Device Driver
 
Как писать драйвера под FreeBSD (например для PCI плат и не только для них) ?

flobb 22.06.2005 23:32

http://www.freebsd.org/doc/en_US.ISO8859-1/books/arch-handbook/devicedrivers.html

Lion1981 23.06.2005 11:43

это я читал меня интересует как это скомпилить точнее я знаю формат makefile но он сразу генерить *.ko модуль а мне надо в makefile:
1. заинклудить path к моим хедерам
2. создать не ко-шку а обєктний файл которій потом я подлинкую (как еще непредставляю) к другому проекту которій и дасть мне кошку
3. вото точнее чтон адо
1) есть драйвер под Линукс для CAN Interface (CANOpen) називаеться CanFestivale мне нужно его запустить под фришку
2) их драйвер имеет папку sja1000 (непосредственая работа с контролером) после екго компиляции создаеться обектный файл
3) каталогом выше есть сам драйвер он мейкаеться с п.2 а потом этот модуль грузиться в память - драйвер готов

но смейкать отдельно неполучаеться оно хочетьв се сразу чтобы создать кошку :(
и вобще как к примеру написать простую програму не модуль ядра для работы с pci (функ pci_find_device и.т.д)

flobb 23.06.2005 12:11

Вопрос у тебя специфический. Думаю, более компетентную информацию ты получишь, если отправишь свой вопрос в рассылку FreeBSD : http://lists.freebsd.org/mailman/listinfo

Успехов!

Lion1981 25.06.2005 17:48

Я начал писать свой драйвер при загрузке выдает:
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 девайса ?

Lion1981 25.06.2005 20:40

еррор убрал :)
дописал
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
странно все это

Lion1981 29.06.2005 15:01

Может кто знает как вобще работать с PCI шиной что за регистры что за преривания каналы ДМА и оттображаемая память Мне б еще дотсать описание работы с sja1000 от Philips

Lion1981 27.04.2006 14:23

Совсем забыл но драйвер под CAN уже переписан мною :)


Часовой пояс GMT +4, время: 22:16.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.