Важная информация

User Tag List

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 35

Тема: Программная поддержка двух IDE-устройств на одном шлейфе (?)

  1. #11
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    473
    Спасибо Благодарностей получено 
    899
    Поблагодарили
    591 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Всем спасибо за отклик. Как выяснилось, делал я всё правильно (почти ), но было два некорректных момента...

    Первый обнаружился после того, как я подключил к КНЖМД светодиод индикации активности накопителя. Тут же выяснилось, что после считывания файлов, активность "залипает", т.е. обращений уже нет, а накопитель "что-то делает". Трабла была из-за неполного программного вычитывания сектора: я забирал из буфера только требуемое кол-во байт (равное размеру файла), а накопитель "хочет" чтобы забрали все. Пофиксил выдачей в накопитель команды "NOP" (00h) - после неё он "угоманивается".

    Вторая трабла была в установке джамперов на накопителях. Я "честно" выставил на одном "Master", а на другом - "Slave". А нужно было на первом ещё поставить второй джампер - "Slave Present". Из-за этого были проблемы с детектом устройств.
    Последний раз редактировалось Denn; 20.03.2018 в 11:57.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  2. #12
    Activist Аватар для AzAtom
    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    292
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Пофиксил выдачей в накопитель команды "NOP" (00h) - после неё он "угоманивается".
    Не лучше ли считать весь сектор? Ненужный остаток можно не писать в память.

    Цитата Сообщение от Denn Посмотреть сообщение
    А нужно было на первом ещё поставить второй джампер - "Slave Present".
    Зависит от модели винта. На некоторых есть такая перемычка, а другие сами определяют, что "slave present".

  3. #13
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    473
    Спасибо Благодарностей получено 
    899
    Поблагодарили
    591 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Не лучше ли считать весь сектор? Ненужный остаток можно не писать в память.
    В моём случае 8-битка, в т.ч. расчёт на платформу с КР580ВМ80 с тактом 2,5 МГц и боевая задача добиться максимальной скорости работы с файлами. Оптимизация стековыми операциями и прочие ухищрения. Лишние циклы - непозволительная роскошь.


    Цитата Сообщение от AzAtom Посмотреть сообщение
    Зависит от модели винта. На некоторых есть такая перемычка, а другие сами определяют, что "slave present".
    В моём случае попались "классические" фуджики МПГ и МПЕ, у обоих есть фича "slave present".
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  4. #14
    Guru Аватар для Vslav
    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    755
    Поблагодарили
    353 сообщений
    Mentioned
    86 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Или запись происходит в регистры обоих накопителей, а они уже как-то там сами договариваются, минуя контроллер хоста?
    Сначала надо определиться с ролями устройств - там на них перемычки master/slave/csel, лучше для начала четко поставить master/slave, с конфигурацией через CSEL можно разобраться позднее. По шине пишется в регистры обоих устройств, но в ряде случаев мастер может отвечать на шине вместо slave - это когда он slave при инициализации не увидел. Курить надо раздел спецификации ATA "9.1 Power-on and hardware reset protocol", где через линии PDIAG/DASP мастер выясняет наличие слейва.

  5. #15
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    473
    Спасибо Благодарностей получено 
    899
    Поблагодарили
    591 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Vslav, да, с этой кухней я уже разобрался, спасибо. Теперь бы с этим разобраться... но это уже другая история.
    Последний раз редактировалось Denn; 20.03.2018 в 13:40.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  6. #16
    Guru Аватар для Vadim
    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Всем спасибо за отклик. Как выяснилось, делал я всё правильно (почти ), но было два некорректных момента...

    Первый обнаружился после того, как я подключил к КНЖМД светодиод индикации активности накопителя. Тут же выяснилось, что после считывания файлов, активность "залипает", т.е. обращений уже нет, а накопитель "что-то делает". Трабла была из-за неполного программного вычитывания сектора: я забирал из буфера только требуемое кол-во байт (равное размеру файла), а накопитель "хочет" чтобы забрали все. Пофиксил выдачей в накопитель команды "NOP" (00h) - после неё он "угоманивается".
    Это очень странно, что были допущены такие ошибки, если вы читали доки. Эти ошибки непростительны. (читаем книгу видим фигу). А вот как у вас там обстоят дела с определением какие винты у нас подключены? Один мастер или один слейв или мастер и слейв? Вот там, в этом вопросе есть трабла, не описанная в доках. Вернее описанная, но сути правильной из неё не получить, я перерыл несколько официальных ATA документов, но из них ничего не понял, а делаешь как написано - не работает.

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    473
    Спасибо Благодарностей получено 
    899
    Поблагодарили
    591 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Vadim, про обязательство полного вычитывания всего сектора в оф.доке ничего нет (возможно, я не нашёл, читал в оригинальном английском варианте), об этом я уже сам догадался. И на мысль навела меня лампочка активности. Причём лампочку эту я подключил почти случайно! Изначально у меня хвост от лампочки не дотягивался до платы, и совершенно случайно спустя неделю попался под руку удлинитель. Без индикатора конечно тоже бы догадался, но не так быстро

    - - - Добавлено - - -

    Цитата Сообщение от Vadim Посмотреть сообщение
    А вот как у вас там обстоят дела с определением какие винты у нас подключены? Один мастер или один слейв или мастер и слейв? Вот там, в этом вопросе есть трабла, не описанная в доках. Вернее описанная, но сути правильной из неё не получить, я перерыл несколько официальных ATA документов, но из них ничего не понял, а делаешь как написано - не работает.
    А вот тут возвращаю Ваше "вижу фигу". Про это есть в доках, чётко и ясно (п. 7.2.13, NOTE 6). И у меня это сразу корректно заработало.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  9. #18
    Master
    Регистрация
    11.04.2006
    Адрес
    Novosibirsk
    Сообщений
    966
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    В моём случае 8-битка, в т.ч. расчёт на платформу с КР580ВМ80 с тактом 2,5 МГц и боевая задача добиться максимальной скорости работы с файлами. Оптимизация стековыми операциями и прочие ухищрения. Лишние циклы - непозволительная роскошь.
    Если мне не отбило мой склероз накопитель должен получить/отдать сектор целиком.

    Такая "роскошь" случается всего один раз на файл, в его хвосте. Не такие уж большие расходы. Что касается служебных структур, то они все кратны размеру кластера, который на небольших накопителях равен размеру сектора, и их все равно придется вычитывать до конца. Кроме того у меня есть сомнение что вы хорошо объедете этот вопрос прерывая не операцию чтения, а операцию записи.

  10. #19
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    473
    Спасибо Благодарностей получено 
    899
    Поблагодарили
    591 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ram_scan, например копируем "100500" файлов размером 3 байта. Ситуация утрированная, но тем не менее. На практике размеры файлов не кратны 512, и хвосты как раз представляют собой эти "три" байта. 100500 по 3 или по 512, есть разница?
    В случае записи, разумеется, без вариантов - приходится честно добивать "мусором" до 512.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  11. #20
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,395
    Спасибо Благодарностей отдано 
    304
    Спасибо Благодарностей получено 
    594
    Поблагодарили
    440 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Denn, именно те же проблемы и с IBM PC и MS-DOS. И что?

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Программная модель Intel 8080/КР580ВМ80А
    от svofski в разделе Эмуляторы отечественных компьютеров
    Ответов: 6
    Последнее: 18.08.2016, 00:24
  2. Ответов: 3
    Последнее: 29.05.2013, 18:03
  3. Два Slave-IDE на одном шнуре
    от Максагор в разделе Внешние накопители
    Ответов: 4
    Последнее: 31.01.2012, 18:00
  4. Программная документация.
    от fk0 в разделе Программирование
    Ответов: 7
    Последнее: 19.01.2006, 16:53

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •