Автор: ROMby Unknown , 30 ноября 2004
Проблема такая: В ДОСе все прекрасно работает. Инициализируется хост 1,1 без проблем, включается и работает. При записи программы в БИОС все работает до того места, где включается хост, потом темный экран, но CtrlAltDel – работает. Причем загружается программа практически перед местом старта загрузки с винта. Мама – I815.
Может у хоста нет доступа в оперативку, или он включается в работу не тогда, когда можно, или его прерывания не проинициализированы??? Как разрешить доступ внутреннему устройству к ОЗУ?
Содержимое данного поля является приватным и не предназначено для показа.

BBCode

  • HTML-теги не обрабатываются и показываются как обычный текст
  • You may use the following BBCode tags:
    • [align]
    • [b]
    • [code]
    • [color]
    • [font]
    • [hr]
    • [i]
    • [img]
    • [list]
    • [quote]
    • [s]
    • [size]
    • [spoiler]
    • [sub]
    • [sup]
    • [table]
    • [u]
    • [url]
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.

rgt

21 год 3 месяца назад

alexeykoval Я не понял какую програму Вы записали в БИОС и вообще чего Вы добиваетесь и как вы это пытаетесь сделать из Ваших слов совсем невозможно понять, равно как и суть возникших у Вас проблем. Не надейтесь на телепатические способности посетителей конференции, лучше в ФАКе прочите как надо правильно задавать вопросы, помогает...

Unknown BIOS (не проверено)

21 год 3 месяца назад

Виноват.
Как все происходит.
Надо было подключить устройство USB к компу, который работает в ДОСе. Никаких особых проблем это не вызвало. ДОС программа прекрасно функционирует. Передача и прием данных осуществляется замечательно. Устройство - контроллер USB SYPRESS. Скорости USB 1.1 полностью хватает. Потом возникла мысль, чтобы программа работала в БИОСе. Я программу запаковую в прошивку по всем правилам. И нормально программа работает до тех пор, пока я не включаю USB хост контроллер.
mov DX,[USB_BaseAddr]
mov AX,1
out DX,AX
Когда включается Хост комп зависает, в ДОСе такое происходит если неправильно настроить его (Хоста) параметры. Если я ставлю возврат до включения Хоста то БИОС нормально завершает работу и видно (при просмотре в ДОСе ОЗУ), что все данные для его (Хоста) работы указаны верно. Процедура BIOS PCI выдает правильное значение адреса Хост контроллера (как в ДОСе).
Отсюда вопрос: возможно такое, что пока БИОС не завершит работу всех своих программ, доступ внутренних устройств к оперативке запрещен? Если это так, то как его включить (доступ)?
Мама I815
Проц – Celeron 1.1G
???

Hidden

21 год 3 месяца назад

Хм, я, конечно, не программист под асм, но именно после OUT DX,AX ? А в стек что-то кладётся ?

rgt

21 год 3 месяца назад

alexeykoval Прошу рассматривать все нижеизложенное как мысли вслух.
Если Ваша програма получает управление ДО завершения процедуры инициализации PNP устройств, то как раз и имеем то, что хост не инициализирован со всеми описанными Вами симптомами, как вариант...

Unknown BIOS (не проверено)

21 год 3 месяца назад

Забыл уточнить БИОС AWARD 6 (точнее я работаю с прошивкой 6-м модбином). 2Мбит. В большинстве AWARDовских биосов (довелось поработать с немалым количеством) имеются два вызова INT 19h. Один в Бут-блоке (в конце tmp файла), а второй обычно в середине. Перед вызовом, того который посредине, стоит команда:
and ESP,00000FFFFh
так вот я заменяю эту команду на jmp ХХХХ на свою программу, и потом выполняю and ESP… у себя и передаю управление на INT 19h.
Можно ли предположить, что что-то еще не настроено до этого момента?

Unknown BIOS (не проверено)

21 год 3 месяца назад

Естественно в стеке есть данные (возвраты и т.п.)
Так размещается программа в БИОСе, что разницы между СОМ-прогой в ДОСе нет. Бит 0 у Хоста – есть вкл/выкл. В ДОСе без проблем, а тут …зависаю.
alexeykoval
Да, кста, дурацкая идея - может, просто подождать? Может, он основным кодом биоса уже инициализирован, но до его включения нужно несколько больше времени, чем успевает пройти до бут-блока?

Да, а маска-то разрешает?

Unknown BIOS (не проверено)

21 год 2 месяца назад

С ЮСБ разобрался, необходимо правильно настраивать структуры данных для хоста, но при этом определить состояние всех хостов, кто не нужен выключить, а кто нужен включить, найти куда надо писать данные для него, временные задержки надо вставлять, чтобы внешний деВайс успевал ну и т.п. А в общем работает хорошо.