Перейти к содержимому


Фото

Как определить IRQ и адрес COM-порта?


  • Чтобы отвечать, сперва войдите на форум
7 ответов в теме

#1 Оффлайн   AleM

AleM

    Магистр флейма

  • Форумец
  • ФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишка
  • 23 597 Сообщений:
  • Авто:Рено

Опубликовано Вчера, 21:57

Обратился человек с проблемой. Есть старое технологическое оборудование управляемое ПО из-под Windows XP Embedded.

В компе от старости подохла батарейка и слетели настройки CMOS. После замены батарейки настройки в BIOS установились по умолчанию и теперь программа при запуске ругается на ошибку инициализации COM-порта.

Человек имеющий доступ к компу, открыл директорию с программой и посмотрел содержимое INI-файла программы, но там задаётся только скорость, старт-стоповый биты и чётность, настроек COM-порта не указано.

 

Нашли точно такое же оборудование в дружественной организации, хотели зайти в настройки BIOS'а рабочего компьютера и обломались, какой-то нехороший человек установил пароль на BIOS, который никто не знает. Стандартные инженерные пароли типа AWARD_SW не подошли.

 

Задача осложняется тем, что оборудование находится за три часа на автомобиле от Ростова. Можно бы конечно и сгонять, но перед тем как ехать хотелось бы понять/расписать план действий.

Тупо перебирать в BIOS'е все комбинации IRQ и адреса портов можно до китайской пасхи.

Утилита Advanced Serial Port Monitor сможет помочь?

Или есть что-то аналогичное, чтобы подсмотреть куда ломится ПО при запуске?


  • 0

#2 Онлайн   Lexx-1

Lexx-1

    Магистр флейма

  • Форумец
  • ФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишка
  • 22 032 Сообщений:
  • Авто:eagle talon turbo 4wd

Опубликовано Вчера, 22:02

станок чпу чтоли


  • 0
Под холодный шепот звёзд
Мы сожгли диодный мост
И все в бездну сорвалось

#3 Оффлайн   matrix

matrix

    Зацифрованный

  • Форумец
  • ФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишка
  • 26 992 Сообщений:
  • Авто:особое благословение

Опубликовано Вчера, 22:08

На рабочей машине посмотреть диспетчер устройств, там в настройках порта должно быть указано всё.
Ещё вариант Process Monitor от Sysinternals, нужна совместимая версия только.


  • 1
89OЗ4O0O7З6

#4 Оффлайн   igrek

igrek

    Сказочник

  • Форумец
  • ФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишка
  • 15 730 Сообщений:
  • Авто:Opel Insignia 2.0 AT Turbo + BMW 520i M-Sport Bi-Turbo

Опубликовано Вчера, 22:10

Там с настройками порта скорее всего всё по стандарту будет.

А вот с прерыванием могут быть нестандартные варианты.

Попробуйте.

Ну и про скорость не забывайте.

9600 скорее всего (38400 вряд ли)

Можно поставить старый добрый Telix, может и поможет)

https://frolov-lib.r...p/v16/ch4_3.htm


Изменено: igrek, Вчера, 22:22

  • 0

Важно не то, что с вами происходит, а то, как вы на это реагируете.


#5 Онлайн   Lexx-1

Lexx-1

    Магистр флейма

  • Форумец
  • ФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишка
  • 22 032 Сообщений:
  • Авто:eagle talon turbo 4wd

Опубликовано Вчера, 22:11

Основная причина проблемы — после сброса BIOS изменился адрес ввода-вывода (IO Address) или номер прерывания (IRQ) COM-порта на материнской плате.
Программа для Windows XP Embedded жестко завязана на конкретный системный ресурс (например, COM1 с адресом 3F8 и IRQ 4). Когда BIOS сбросился в Default, он назначил физическому порту другие ресурсы или вовсе отключил его. Из-за этого программа стучится по старому адресу, а ОС её туда не пускает.
Вот пошаговый алгоритм, как решить эту проблему удаленно через человека у компьютера:
Шаг 1. Проверить Диспетчер устройств в Windows XP
Нужно узнать, как Windows сейчас видит этот порт.
  1. Нажмите Win + Break (или правой кнопкой на Мой компьютер -> Свойства).
  2. Перейдите во вкладку Оборудование -> Диспетчер устройств.
  3. Разверните ветку Порты (COM и LPT).
  4. Что искать:
    • Есть ли там вообще COM-порты? Какой у них номер (COM1, COM2...)?
    • Нет ли желтого восклицательного знака рядом с ними?
  5. Если порт есть (например, COM1), нажмите на него правой кнопкой -> Свойства -> вкладка Ресурсы. Запишите значения «Диапазон ввода-вывода» (IO) и «IRQ».
Шаг 2. Настройка BIOS (Самый вероятный виновник)
Если в Диспетчере устройств порта нет, или его настройки отличаются от стандартных, нужно идти в BIOS.
  1. При перезагрузке нажимать Del или F2.
  2. Найти раздел, отвечающий за встроенное оборудование. Обычно он называется:
    • Advanced -> SuperIO Configuration
    • Integrated Peripherals
    • Onboard Devices Configuration
  3. Найти пункт Serial Port 1 (или Onboard Serial Port A).
  4. Что сделать:
    • Перевести его из режима Disabled или Auto в режим Enabled.
    • Вручную выставить стандартные ресурсы. Для COM1 это почти всегда: 3F8 / IRQ4. Для COM22F8 / IRQ3.
    • Сохранить настройки через F10 и загрузить Windows.
Шаг 3. Переназначение номера порта в Windows
Если в BIOS все включено, но в Диспетчере устройств порт определился, например, как COM3 вместо COM1 (а старая программа ищет именно COM1), нужно изменить номер вручную:
  1. В Диспетчере устройств зайти в свойства этого COM-порта.
  2. Перейти на вкладку Параметры порта (Port Settings) -> нажать кнопку Дополнительно (Advanced).
  3. В выпадающем списке Номер COM-порта принудительно выбрать нужный (скорее всего, COM1). Если система скажет, что он «занят» — все равно соглашайтесь (это старый фантомный след).
  4. Перезагрузить компьютер.

  • -1
Под холодный шепот звёзд
Мы сожгли диодный мост
И все в бездну сорвалось

#6 Оффлайн   AleM

AleM

    Магистр флейма

  • Форумец
  • ФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишка
  • 23 597 Сообщений:
  • Авто:Рено

Опубликовано Вчера, 22:44

Вручную выставить стандартные ресурсы. Для COM1 это почти всегда: 3F8 / IRQ4. Для COM22F8 / IRQ3.

Именно так и выставлено после замены батарейки.

В диспетчере устройств параметры портов такие же.

Программа ругается - ошибка инициализации порта. Не понятно где и как задан порт в программе. Может там вообще какой-нибудь COM3:, COM4: или COMn: используется.


На рабочей машине посмотреть диспетчер устройств, там в настройках порта должно быть указано всё.

OK, проверим


  • 0

#7 Онлайн   Inetman

Inetman

    The Drot

  • Модератор
  • ФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишка
  • 64 879 Сообщений:
  • Авто:Продал, деньги пропил

Опубликовано Вчера, 23:22

Программу стянуть на нормальную машину, открыть в каком-нибудь дебаггере и смотреть, куда она пытается подключиться.


  • 0
Глупо надеяться совершить что-то глобальное, например, установить мир во всем мире, устроить счастье для всех, но каждый может сделать какое-нибудь маленькое дело, благодаря которому мир станет хоть чуточку лучше.
К примеру, застрелить кого-нибудь. © сир Терри Пратчетт

#8 Онлайн   Lexx-1

Lexx-1

    Магистр флейма

  • Форумец
  • ФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишкаФишка
  • 22 032 Сообщений:
  • Авто:eagle talon turbo 4wd

Опубликовано Вчера, 23:28

На виртуалку
Portmon (Sysinternals)
Это классический инструмент от Microsoft Sysinternals. Он отслеживает и отображает все операции с последовательными и параллельными портами в системе.

Надо найти чес порты слушать
  • 0
Под холодный шепот звёзд
Мы сожгли диодный мост
И все в бездну сорвалось




3 пользователей читают эту тему

1 пользователей, 2 гостей, 0 невидимых


    al2000
Яндекс.Метрика