Есть два подхода к идеологии компиляторов -- европейский и американский. Европейский компилятор, сообщая об ошибках, часто останавливает компиляцию, кагбэ предлагая их исправить. А американский прёт вперёд -- нехай, индусы разберутся.Mario wrote:компиляторы настолько продвинутые, что собирают рабочий бинарник даже с ошибками.
"Ночные" сборки KolibriOS
В ревизии 1380 размаскировка прерываний при загрузке была убрана Евгением Гречниковым. Я уже сейчас не помню зачем он это сделал, где-то на форуме написано мельком, но была какая-то проблема вроде с загрузкой на некоторых конфигурациях компьютеров. По идее нужно размаскировать прерывание 6 для флопика либо при загрузке, либо при первом использовании.Rock_maniak_forever wrote:Почему дискеты не читаются в ночной сборке? Кто испортил ядро?
Перепробывал все manager'ы, но не один не читает. Пишут "ошибка файловой системы". А вот в оф. версии 0.7.7.0, всё читается.
З.Ы. Может более разбирающиеся люди подскажут как лучше сделать? А то я давно уже в ядре не ковыряюсь и там некоторые моменты в работе с прерываниями менялись.
Лучше при первом обращении.
Поскольку наличие флопика определяется выставленным в BIOS значением (в свое время это было лучшее решение которое я смог найти), то и разрешение IRQ6 я сделал там-же. Если есть флопик - прерывание размаскируется, нет - оставляется как есть. SVN r. 2084.
Если кто захочет прикрутить более элегантное решение, то никаких возражений у меня нет.
Если кто захочет прикрутить более элегантное решение, то никаких возражений у меня нет.
Спасибо за ответы. Теперь понятно, но не всё. Есть ещё пару вопросов.
1. Я никагда не работал с IRQ, и не совсем понимаю, что значит маскировка. Это какая-то подмена вызова IRQ? Поясните вкратце, пожалуйста.
2. А в каком исходнике(ах) ядра, находится код работы floppy'ка и маскировка? Хочу посматреть на будующее, может что пойму. А то вдруг опять, кто нибудь сделает такой сюрприз-подарок.
![Very Happy :D](./images/smilies/icon_biggrin.gif)
1. Я никагда не работал с IRQ, и не совсем понимаю, что значит маскировка. Это какая-то подмена вызова IRQ? Поясните вкратце, пожалуйста.
2. А в каком исходнике(ах) ядра, находится код работы floppy'ка и маскировка? Хочу посматреть на будующее, может что пойму. А то вдруг опять, кто нибудь сделает такой сюрприз-подарок.
Громадное спасибо! Щас проверю.Mario wrote:Поскольку наличие флопика определяется выставленным в BIOS значением (в свое время это было лучшее решение которое я смог найти), то и разрешение IRQ6 я сделал там-же. Если есть флопик - прерывание размаскируется, нет - оставляется как есть. SVN r. 2084.
Если кто захочет прикрутить более элегантное решение, то никаких возражений у меня нет.
![Very Happy :D](./images/smilies/icon_biggrin.gif)
1. Маскировка это запрет прерывания - зависит бит отвечающий за определенной прерывание в определенных портах.
2. В драйвере флопика ничего не менялось. Сюрпризы возникают сами по себе - это темная сторона программирования x86.
/trunk/fs/fat12.inc
/trunk/blkdev/flp_drv.inc
2. В драйвере флопика ничего не менялось. Сюрпризы возникают сами по себе - это темная сторона программирования x86.
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
/trunk/fs/fat12.inc
/trunk/blkdev/flp_drv.inc
Для меня ничего не изменилось, всё так же позвращается file not found (хотя на самом деле там должно быть device error). Пробовал в VirtualBox и Bochs.
EDIT: Откат r1380 также ничего не дал.
EDIT: Откат r1380 также ничего не дал.
in code we trust
Ну, так в эмуляторах никогда и не работало. Я проверял все относительно настоящего железа.
Спасибо за разъяснение и быстрый ответ. Теперь вижу свет в конце тоннеля. Буду разбираться дальше.Mario wrote:1. Маскировка это запрет прерывания - зависит бит отвечающий за определенной прерывание в определенных портах.
2. В драйвере флопика ничего не менялось. Сюрпризы возникают сами по себе - это темная сторона программирования x86.![]()
/trunk/fs/fat12.inc
/trunk/blkdev/flp_drv.inc
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Last edited by Rock_maniak_forever on Sun Aug 21, 2011 1:12 am, edited 1 time in total.
Тестирование прошло удачно, теперь дискеты читаются.
Правда почему-то гораздо медленнее, чем в оф. с. Даже FASM в н.с. компилирует один и тот же исходник медленнее, чем в оф. с (Время компиляции: н.с = 2.5 секунды, оф.с = 0.8 сек. ). В чём дело не знаю! ![Confused :?](./images/smilies/icon_confused.gif)
![Very Happy :D](./images/smilies/icon_biggrin.gif)
![Confused :?](./images/smilies/icon_confused.gif)
Насчет чтения тоже заметил что стало задумываться, но за 600 ревизий было столько изменений, что теперь сложно отследить что конкретно сказалось. Сам факт того что перестало работать отследить было проще.
Начиная с ревизии 1989 звуковой драйвер загружается с задержкой примерно 5-7 секунд. С чем это связано не понятно. Система не блокируется, диск тоже.
Update.
У меня в авозагрузке прописана BOARD с записью лога на hd2/1
Пауза возникает только если BOARD пишет на жёсткий диск. Без BOARD или при обычной записи лога пауза не возникает. Загрузку проверял простым тестом
Update 2.
Пауза не связана с загрузкой драйвера. Проверил в отладчике, инициализация происходит мгновенно. Но вывод информации идёт с задержкой и воспроизведение музыки тоже. Причём пауза возникает только один раз. Последующие обращения идут без задержки.
Update.
У меня в авозагрузке прописана BOARD с записью лога на hd2/1
Пауза возникает только если BOARD пишет на жёсткий диск. Без BOARD или при обычной записи лога пауза не возникает. Загрузку проверял простым тестом
Spoiler:
Code: Select all
use32
db 'MENUET01'
dd 1
dd start
dd i_end
dd mem
dd mem
dd 0
dd 0
start:
mov eax, 68
mov ebx, 16
mov ecx, szSound
int 0x40
mov eax, -1
int 0x40
szSound db 'SOUND',0
align 4
i_end:
rb 128
mem:
Пауза не связана с загрузкой драйвера. Проверил в отладчике, инициализация происходит мгновенно. Но вывод информации идёт с задержкой и воспроизведение музыки тоже. Причём пауза возникает только один раз. Последующие обращения идут без задержки.
Serge
Вчера меня терзали смутные сомнения - сегодня проверил, так и есть начиная ревизии 1992 появляются тормоза с флопиком (разумеется когда он вообще работает, если добавить мои изменения от ревизии 2084). В отличии от твоей ситуации:
Вчера меня терзали смутные сомнения - сегодня проверил, так и есть начиная ревизии 1992 появляются тормоза с флопиком (разумеется когда он вообще работает, если добавить мои изменения от ревизии 2084). В отличии от твоей ситуации:
в этом случае задержка очевидно проявляется постоянно.Начиная с ревизии 1989 звуковой драйвер загружается с задержкой примерно 5-7 секунд. С чем это связано не понятно. Система не блокируется, диск тоже.
Copyr просил удалить ещё давно, никто этого не сделал так что уже я постарался. Забавно то, что программа уже даже не работает - при нажатии на строке пути прога попросту вылетает.
Теперь время пришло и за HTTPC - толку в нём уже никакого: есть отдельно Downloader для загузки файлов и отдельно HTMLv для посмотра страниц _в_куда_более_читаемом_виде_.
Если никто не против, я удаляю из дистра.
Теперь время пришло и за HTTPC - толку в нём уже никакого: есть отдельно Downloader для загузки файлов и отдельно HTMLv для посмотра страниц _в_куда_более_читаемом_виде_.
Если никто не против, я удаляю из дистра.
Из хаоса в космос
Похоже, что все операции записи на диск теперь идут с небольшой задержкой, примерно две секунды.
Who is online
Users browsing this forum: No registered users and 0 guests