User Tag List

Показано с 1 по 10 из 849

Тема: Пожелания и планы по эмулятору Башкирия-2М

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,927
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    В-общем, httpd в EMU.EXE не заработало тоже (как и telnetd).
    Может, посмотришь? Мыслей пока нет.
    Могу предложить новый метод отладки всего этого хозяйства.
    Я скрестил исходники telnet+uIP с моими исходниками эмуляции rtl8019as. И отлаживал уже в IDE.

    Как и следовало ожидать, ничего не заработало. Кроме того, грузит процессор чуть ли не на 100%, но это, в принципе, понятно. Стал копать, выяснил, что в определённый момент отправка/приём деактивируется и больше не активируется. И момент этот - в самом конце приёма пакета. Если, однако, после приёма происходит отправка, то отправка/приём снова реанимируется. Получается, если приняли пакет, и ничего не отправили, то вилы.

    А получается это, потому-что включение страницы регистров ты сделал так:
    Код:
    #define ETHERDEV_REG_PAGE(page) ETHERDEV_REG_WRITE(CR,(page << 6)|RD2|STP)
    А в оригинале было так:
    Код:
    #define ETHERDEV_SELECT_REG_PAGE(page)                                      \
              do                                                                \
              {                                                                 \
                  etherdev_reg_write(CR, etherdev_reg_read(CR) & ~(PS1 | PS0)); \
                  etherdev_reg_write(CR, etherdev_reg_read(CR) | (page << 6));  \
              } while(0)
    Поэтому, после того, как я сделал:
    Код:
    #define ETHERDEV_REG_PAGE(page) ETHERDEV_REG_WRITE(CR,(page << 6) | (ETHERDEV_REG_READ(CR) & 0x3F))
    всё заработало и у меня.

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

  3. #2

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Могу предложить новый метод отладки всего этого хозяйства.
    Я скрестил исходники telnet+uIP с моими исходниками эмуляции rtl8019as. И отлаживал уже в IDE.

    Как и следовало ожидать, ничего не заработало. Кроме того, грузит процессор чуть ли не на 100%, но это, в принципе, понятно. Стал копать, выяснил, что в определённый момент отправка/приём деактивируется и больше не активируется. И момент этот - в самом конце приёма пакета. Если, однако, после приёма происходит отправка, то отправка/приём снова реанимируется. Получается, если приняли пакет, и ничего не отправили, то вилы.

    А получается это, потому-что включение страницы регистров ты сделал так:
    Код:
    #define ETHERDEV_REG_PAGE(page) ETHERDEV_REG_WRITE(CR,(page << 6)|RD2|STP)
    А в оригинале было так:
    Код:
    #define ETHERDEV_SELECT_REG_PAGE(page)                                      \
              do                                                                \
              {                                                                 \
                  etherdev_reg_write(CR, etherdev_reg_read(CR) & ~(PS1 | PS0)); \
                  etherdev_reg_write(CR, etherdev_reg_read(CR) | (page << 6));  \
              } while(0)
    Поэтому, после того, как я сделал:
    Код:
    #define ETHERDEV_REG_PAGE(page) ETHERDEV_REG_WRITE(CR,(page << 6) | (ETHERDEV_REG_READ(CR) & 0x3F))
    всё заработало и у меня.
    Я, помнится, долго думал над глубоким смыслом этих строк в исходнике, и поскольку такое задание регистров не следует из спецификаци, и более того - далеко не во всех драйверах используется, то "выкинул лишнее".

    Ладно, добавим.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  4. #3

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,927
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Я, помнится, долго думал над глубоким смыслом этих строк
    А смысл очень прост - нужно изменить только старшие два бита (номер страницы), а вот другие менять не надо. В оригинале, правда, это сделано слишком уж оригинально

    ---------- Post added at 21:40 ---------- Previous post was at 21:38 ----------

    Конечно, если известно, какие младшие биты установлены, то можно было бы и обойтись без чтения регистра CR. Но тут - общий случай.

    ---------- Post added at 21:42 ---------- Previous post was at 21:40 ----------

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

    ---------- Post added at 21:43 ---------- Previous post was at 21:42 ----------

    Но какой смысл? Если эта переменная и регистр CR фактически одно и то-же

  5. #4

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    А смысл очень прост - нужно изменить только старшие два бита (номер страницы), а вот другие менять не надо. В оригинале, правда, это сделано слишком уж оригинально

    ---------- Post added at 21:40 ---------- Previous post was at 21:38 ----------

    Конечно, если известно, какие младшие биты установлены, то можно было бы и обойтись без чтения регистра CR. Но тут - общий случай.

    ---------- Post added at 21:42 ---------- Previous post was at 21:40 ----------

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

    ---------- Post added at 21:43 ---------- Previous post was at 21:42 ----------

    Но какой смысл? Если эта переменная и регистр CR фактически одно и то-же

    Ну и как тебе Web-сервер? По-моему, мощно!
    Тут и сервер, и стек, и CGI, и файловая система (вместе с файлами) - и все в 18кб. А если на экран ничего не выводить, то и в 16Кб можно влезть. И ведь это не ассемблер, а С!
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  6. #5

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,927
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Ну и как тебе Web-сервер? По-моему, мощно!
    А вот его я и не пробовал, ограничился telnet-ом. Ты уже собрал бинарники с обещанным исправлением?

  7. #6

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    А вот его я и не пробовал, ограничился telnet-ом. Ты уже собрал бинарники с обещанным исправлением?
    Да. Пересобрал - теперь все работает.
    И перезалил на форум в те же сообщения что и до того.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

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

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

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

Похожие темы

  1. Ответов: 1034
    Последнее: 29.10.2021, 07:15
  2. Жалобы/пожелания по работе форума
    от Conan в разделе Форум
    Ответов: 6289
    Последнее: 14.03.2021, 00:19
  3. пожелания создателям эмуляторов
    от проф в разделе Эмуляторы
    Ответов: 24
    Последнее: 09.02.2007, 01:31
  4. Пожелания по сервисам форума
    от andrews в разделе Форум
    Ответов: 10
    Последнее: 14.08.2006, 13:47

Ваши права

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