The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Помогите с модулями."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Помогите с модулями." 
Сообщение от timigor emailИскать по авторуВ закладки(ok) on 07-Янв-06, 20:00  (MSK)
Помогите пожалуйста.
Попробовал написать нестандартный драйвер. Задача - данные получаемые модулем перепихивать в СОМ порт а получаемые из СОМ пропихивать в модуль. При открытии порта инициализирую структуру file, оттуда беру write. Если всё делать в пределах одной функции - работает. Вызываю из другой - получаю сообщение "unknown interface: No such device", хотя структура не пустая и write из неё вызывается. Куда всё девается не могу понять. Похоже что-то не так объявляю. Вот пример кода:
#define MODULE
#include <linux/module.h>
#include <asm/uaccess.h>
#include <linux/mm.h>
#include <asm/segment.h>
......
struct file *f;
static void ttys_write(const char *buf, size_t lenbuf)
{
struct file *fw;
fw = f;
   if(fw != NULL) {
     fw->f_op->write(fw, buf, lenbuf, &fw->f_pos);
print_string("^tstnd: ===ttys_write===\n");
    }
}
.....ВСЁ РАБОТАЕТ:
int init_module (void)
{
.......
    set_fs(KERNEL_DS);
    f=filp_open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY, 0666);
    ttys_write("===OPEN_TTYS0===", 16);
return 0;
}
......НИЧЕГО НЕ РАБОТАЕТ:
void cleanup_module (void)
{
/*mm_segment_t fs=get_fs();
struct file *fe;
fe = f;
   if(fe != NULL)
    { */
ttys_write("===CLOSE_TTYS0===", 17);
/*  filp_close(fe,0);
    }
set_fs(fs);*/
......
}
  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]

1. "Помогите с модулями." 
Сообщение от timigor emailИскать по авторуВ закладки(ok) on 07-Янв-06, 23:36  (MSK)
Сори, ... спорол.
Упустил:
mm_segment_t fs=get_fs();
set_fs(KERNEL_DS);
.............
set_fs(fs)
Сейчас передача в порт работает.
Может на приёме какие-то проблемы будут....
А может и нет.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру