|
0 / 0 / 0
Регистрация: 28.05.2025
Сообщений: 1
|
|
Как сделать драйвер диска на языке C и ассемблере?28.05.2025, 04:41. Показов 1325. Ответов 2
Я не нашёл информацию в интернете, я делаю свою ос и мне нужно код этого драйвера или хотя бы как драйвер диска работает полное объяснение
0
|
|
| 28.05.2025, 04:41 | |
|
Ответы с готовыми решениями:
2
Ассемблер в паскале: как загрузить массив во встроенный ассемблер и произвести над любым из его чисел сложение(вычитание). Драйвер чтения данных из СОМ-порта(Ассемблер) |
|
14315 / 9401 / 1355
Регистрация: 21.01.2016
Сообщений: 35,455
|
|
| 28.05.2025, 05:26 | |
|
Artem_infOS, устройство драйвера определяется не только железом, которым он драйвит, но и архитектурой ОС. А поскольку ты сам свою ОС пишешь, то ты единственный и должен знать как этот драйвер должен выглядеть.
Ну и "диски" разные бывают. Очень разные. Полное объяснение ты нигде не найдёшь потому, что это нафиг никому не надо расписывать. Можешь посмотреть исходники ядра Linux или FreeBSD. Там модули (драйверы) входят в состав ядра и их можно взять за основу.
1
|
|
|
Эксперт Hardware
|
|||||||
| 28.05.2025, 08:03 | |||||||
|
1. Поиск контроллеров накопителей на мат.плате Искать в "PCI-Config-Space" или вручную чз порты 0x0CF8 (CONFIG_ADDRESS) + 0x0CFC (CONFIG_DATA), или-же удобно использовать функцию прерывания int-1Ah. AX=B103h. Девайсам "MassStorage" назначен класс(01), подкласс(08:01) задаёт тип контроллера, а последний байт(PI) указывает на "Programming Interface", т.е. метод программирования:
Если на любой из подклассов int-1Ah вернёт нуль, значит есть контроллер и устройство на его шине, и это определит дальнейший фронт работы в зависимости от интерфейса. Можно начать с идентификации накопителя, для чего необходимо получить доступ к физ.портам в/в, или их отображением в памяти MMIO. Эта информация хранится в регистрах BAR[5:0] там-же в "PCI-Config-Space" - прочитать их можно функцией int-1Ah. AX=B10Ah (read dword). Определившись с базовым портом/регистром накопителя, отправляешь в него АТА-команду "Identify Device" с кодом 0xEC, чтобы получить размер в секторах, поддержку DMA, и всё остальное.3. Обработчики запросов Доступ к накопителям на RW осуществляется исключительно через физ.порты или регистры MMIO, т.к. других способов просто не существует в природе. Можно найти готовые высокоуровневые программные решения, но всё это будет лишь обёрткой для чтения/записи портов. Здесь в зависимости от интерфейса качаешь спеки с сайта t13 или pcisig, где оговариваются все нюансы. Так-же много полезной инфы есть в доках на чипсет (пусть будет) PCH9. В части(13) найдёшь базовые сведения о портах и регистрах перечисленных выше подклассов. Проблема в том, что буквально все интерфейсы программируются по разному, поэтому однозначного ответа тут быть не может. Что-то общее есть между IDE, а вот AHCI вообще из другой оперы.
1
|
|||||||
| 28.05.2025, 08:03 | |
|
Помогаю со студенческими работами здесь
3
Ввод числа ассемблерной вставкой (вызов scanf из ассемблерной вставки) Подскажите как перевести на язык ассемблер Как создать процесс Windows на языке ассемблера?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
|