Я хотел бы знать, можно ли автоматически вызывать метод Java при сбое аппаратного прерывания.Обработка аппаратного прерывания Java
ответ
В принципе да, но для этого потребуется некоторый код C и JNI для привязки к Java. Если вам повезет, возможно, уже кто-то уже создал подходящую библиотеку для интересующей вас ладони.
Итог: если это можно сделать на C, вы можете подключить это к Java.
@djna, спасибо за ответ. Я искал такую библиотеку java, но напрасно. –
@Sigh - вам понадобится родная библиотека, которая соответствует вашей ОС и аппаратной среде. Часть JNI не волшебна, в сети есть несколько обучающих программ. –
Возможна альтернатива.
Я делаю что-то подобное: в приложении я отслеживаю 4 мыши для кликов. Эти клики генерируют прерывания, но я достаточно доволен, чтобы не обращаться с ними напрямую с Java.
В Linux, оказывается, есть файлы устройств (/dev/input/mouse#
), которые извергают кучу символов, когда что-то происходит с мышью. У меня есть Thread для каждого из них с блокировкой FileReader при чтении. Как только символы прибывают, поддерживающий поток разблокируется, и я могу делать любую обработку, которая мне нравится.
Итак, идея: если возможно, найдите способ получить драйвер устройства, чтобы сделать данные доступными для вас в форме файла/устройства, затем вы можете получить к нему доступ из Java, используя только вызовы ввода-вывода из библиотеки Java, нет странного битового кода и C требуется между ними.
Это стандарт встроенной Java-технологии реального времени. перейдите на сайт www.ajile.com или systrmonx.com и купите оценочную карточку.
Встраиваемая java is не стандарт на ПК. вы можете получить Java в реальном времени на ПК, но не встроенный бит.
Посмотрите на Swig. Java implementation имеет Directors, что позволит вам звонить на Java из C/C++.
Я использовал эту технологию для обработки прерываний, вызывающих C#, и он отлично работал. Не должно сильно отличаться от Java.
Если вы хотите напрямую реагировать на прерывание от Java, то виртуальной машине придется запускать в пространстве ядра (или в некоторых системах с драйверами пользовательского пространства в контексте драйвера). JamaicaVM работает в этом режиме на некоторых RTOS, таких как Thread-X или VxWorks, как DKM. Следующий выпуск RTSJ будет поддерживать подпрограммы обработки прерываний на Java.
RTSJ может использоваться для запуска обработчиков прерываний второго уровня даже в пространстве пользователя. Для этого требуется небольшой драйвер устройства, который либо отправляет сигнал POSIX в виртуальную машину, либо предоставляет интерфейс персонального устройства, где один поток в блоках виртуальной машины блокируется при чтении устройства. В первом случае AsyncEventHandler может быть связан с сигналом POSIX. Во втором случае протекторы, которые блокируются при считывании устройства, могут запускать AsyncEvent каждый раз, когда байт считывается с устройства. Тогда любой AsyncEventHandler, подключенный к AsyncEvebt, будет выпущен.
Если вы хотите попробовать это под Linux, вы можете скачать личную версию JamaicaVM: «http://www.aicas.com/jamaica-pe.html». JamaicaVM имеет сборщик мусора в реальном времени, и код может быть скомпилирован статически, чтобы обеспечить производительность в реальном времени. Это другая модель развертывания, чем обычная JVM.
- 1. Обработка прерывания в VHDL
- 2. Обработка прерывания Linux
- 3. Обработка прерывания в C++
- 4. Обработка прерывания в символьном устройстве
- 5. Правильная обработка сигналов и прерывания
- 6. Обработка прерывания Ethernet в DOS
- 7. «Обработка прерывания управления» в SSIS
- 8. Почему нельзя назначать() вызов непосредственно из аппаратного прерывания?
- 9. Стек аппаратного прерывания верхней половины в ядре Linux?
- 10. Установка точки аппаратного прерывания в многопоточном приложении не срабатывает
- 11. NAPI прерывание прерывания и обработка общей линии прерывания
- 12. Использование прерывания в сервлете Java и обработка нескольких событий
- 13. Проверка кода состояния без прерывания загрузки Обработка
- 14. java звук без аппаратного устройства
- 15. Ruby Net :: Обработка прерывания передачи SFTP
- 16. Обработка прерывания клавиатуры в async zmq
- 17. Встраиваемая система прерывания/аппаратная обработка из Linux
- 18. Обработка событий прерывания Ctrl + C в Linux
- 19. Обработка прерывания исключения AsyncTask в Android?
- 20. Обработка прерывания в приложении для Android
- 21. Обработка прерывания клавиатуры при использовании подпроцесса
- 22. Обработка прерывания iPhone в музыкальном приложении
- 23. прерывания операционной системы
- 24. Обработка поиска аппаратного обеспечения для поиска searchview в ActionbarSherlock
- 25. Как работает обработка мьютексов на уровне аппаратного обеспечения?
- 26. Обнаружение аппаратного сканирования изображений с Java
- 27. Потоки Java и прерывания потоков
- 28. Во время программного прерывания процессор переключается в контекст прерывания?
- 29. Обработка файлов Java Обработка записей
- 30. Точка прерывания, влияющая на ProcessCmdKey Обработка ключевого слова
Для чего вам это нужно? – starblue
Если вам нужно спросить, ответ «нет». –