Прерывания от системного таймера

Тема в разделе "WASM.ELECTRONICS", создана пользователем SL555, 8 ноя 2006.

  1. SL555

    SL555 New Member

    Публикаций:
    0
    Регистрация:
    8 ноя 2006
    Сообщения:
    16
    Возможноли в WinXp перехватывать прерывания от системного таймера и запускать свои процедуры
     
  2. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    Без проблем
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Написав драйвер =)
     
  4. SL555

    SL555 New Member

    Публикаций:
    0
    Регистрация:
    8 ноя 2006
    Сообщения:
    16
    Но это понятно, но возможно ли в винде сделать, так что бы мой драйвер был единственный кто работает с этим прерыванием
     
  5. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    Нельзя, потому что планировщик задач сильно завязан на это прерывание. Планировщик получает управление при переходе потока из режима ядра в режим пользователя + обработчик прерывания ставит ему DPC для обеспечения вытесняющей многозадачности. Кроме того, это прерывание используется диспетчером памяти (сброс бита доступа у страниц), и еще кучей всяких подсистем. Т.е. передавать управление оргинальному обработчику нужно обязательно.

    Кроме этого, подменить твой обработчик после его установки также не составляет никаких проблем, защиты от этого не существует в принципе (можно только немного усложнить этот процесс).
     
  6. SL555

    SL555 New Member

    Публикаций:
    0
    Регистрация:
    8 ноя 2006
    Сообщения:
    16
    Просто суть задачи попробовать из винды сделать RTOS, ну или хотя бы как в Linux блок RTAI, но а вообще мягкотелые наверняка заблокировали, возможность модификации ядра, другими словами, возможно в WinXP. сделать свой планировщик, и выкинуть всякие графические оболочки, Exploer. ну и т.д, то есть оставить только ядро, или лучше не эксперементировать, а брать дистрибы линукса и подстраивать под свою задачу
     
  7. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    SL555
    Возможно. Только другое дело, что в Linux это будет проще. Открытые сорцы, изначальная настроенность на консоль.
     
  8. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    Выкинуть exporer можно, не залезая в ядро. Например, заменить его на cmd. А вот на счет своего планировщика... Если не ошибаюсь, планировщик отвечает в том числе за обслуживание DPC. А значит, если его убрать, то практически ни одно прерывание не будет обработано как надо ==> практически моментальный бсод.
    Ну так планировщик и есть в винде одна из самых важных частей ядра.

    В винде можно выделить кучу ресурсов одному потоку, но получить real-time систему в полном смысле слова (с гарантированным временем отклика) не возможно.
     
  9. SL555

    SL555 New Member

    Публикаций:
    0
    Регистрация:
    8 ноя 2006
    Сообщения:
    16
    Скорее всего вы правы жесткой системы реального времени мы из win32 не сделаем, придеться разабатывать, что то свое
     
  10. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    А чем не устраивают существующие реал-таймовые юниксы?

    Посмотри здесь (там про real-time Windows XP Embedded):
    http://www.windowsfordevices.com/articles/AT5376962137.html
     
  11. SL555

    SL555 New Member

    Публикаций:
    0
    Регистрация:
    8 ноя 2006
    Сообщения:
    16
    Очень хорошие ОС я сам работал с QNX Neitrino 6.3 отличная вещь, только очень дорогая, а насчет Windows XP Embedded, надо посмотреть ни разу не слышал, может, кто ни будь с ней работал, скажите свое мнение
     
  12. VaStaNi

    VaStaNi Member

    Публикаций:
    0
    Регистрация:
    1 июн 2004
    Сообщения:
    203
    Адрес:
    Ukraine
    Windows XP Embedded - херота виндовая! Хоть и неплоха вообщем...., но! НО!
    Денег хотят + морока, красивая дуриловка ленивых, понты вообщем..., юзал, пробовал и поскольку ЯДРО!!! ЯДРО там именно один в один из XPюнделя(!) идет, то проще и аналогично по результату воспользоваться
    XPLite, nLite инструментарием порубив хрюнделя или 2000ю до обьема 100-200 мег + ручками прибить еще да реестр прочистить до кишок соотв утилитами, что я и делал.
    Запиховаешь ЕЁ на CompactFlash, ее в embedded плату(материнку по сути) от Advantech, Fastwell, Octagon Systems..... не важно, главное PC совместимая архитектура, значит винда там будет жить и финал - твоя "выточенная" win Embedded OS!