User Tag List

Страница 9 из 227 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя
Показано с 81 по 90 из 2264

Тема: Особенности процессоров и устройств архитектуры PDP-11. Тесты. Диагностика.

  1. #81

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,249
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Вряд ли реально написать программу, которая такое тестирует и нормально завершает работу выходом в KMON (кроме первого пункта в случае, когда SP == 0160002 или SP == 0160004 - тогда ничего страшного не происходит - обычный "TrapTo_04"), поэтому тесты осуществляются в "ручном режиме".
    Естественно о выходе в KMON и не говорится. А по поводу SP==160002 и SP==160004 тоже интересный момент - уменьшается ли SP на 4, если прерывание TRAP4 произошло при заносе первого слова в стек (PSW прерванного процесса) или на 2. И если при 160002 уменьшается на 4, то что будет в 157776?
    Т.к. будет вылет в пульт, то естественно результаты смотреть только с помощью команд пультового отладчика.

    Хотя в принципе тесты не очень сложные, можно выполнить и в пультовом отладчике.

    Цитата Сообщение от Patron Посмотреть сообщение
    Если стек нормальный, а вектор 04 "указывает в пустоту", то при возникновении TrapTo_04 по любой причине ( не обязательно ждать таймера - можно просто выполнить TST @#160000 ) - у ВМ1 происходит зацикливание входа в прерывание до выхода указателя стека за пределы памяти, после чего следует двойная ошибка шины.
    Вот и интересен этот момент у разных процессоров, у ВМ2 будет по другому.

  2. #82

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я был не совсем прав, если SP >= 0160002, то при TrapTo_04 произойдёт двойная ошибка шины. Ничего страшного не будет при входе в прерывание с плохим стеком при SP <= 0160004 только в том случае, если это прерывание НЕ по вектору 04.

  3. #83

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Попробовал вписать в 4 несуществующий адрес. После останова вручную остановился по этому самому адресу (не +2), KSP дошел до нуля (был 1000).

    0 содержит 160000
    2 - 340

    (последствия попытки восстановиться после сбоя KSP).
    Последний раз редактировалось form; 28.02.2012 в 21:36.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  4. #84

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    И если при 160002 уменьшается на 4, то что будет в 157776?
    Это я забыл проверить - сейчас напишу тест. Для простого прерывания - там ничего в пульт не вылетает.

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Вот и интересен этот момент у разных процессоров, у ВМ2 будет по другому.
    Когда пользователю грозит обнуление памяти циклическим входом в прерывание - лучше чтобы он сам набрал в пульте эти команды :)

    Всего-то и надо - записать 160000 по адресу 04, проверить значение SP, записать в R0 160000, занести в память код TST (R0) и выполнить эту команду.

  5. #85

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот тест, проверяющий, что находится по адресу 157776 до и после входа в прерывание с SP == 160002.
    Вложения Вложения
    • Тип файла: zip pdpt6.zip (7.7 Кб, Просмотров: 149)

  6. #86

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Вот тест, проверяющий, что находится по адресу 157776 до и после входа в прерывание с SP == 160002.
    Первый тест из серии для которого перегружаться не потребовалось

    Код:
    .RU PDPT6
    
    PDP-11 Interrupts Test #6
    
    SP/160002  
    157776/000000
    001176: IOT  SP/160002  
    157776/000000
    
    Program completed.
    
    .
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  7. #87

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Первый тест из серии для которого перегружаться не потребовалось
    Т.е. SP == 160002 на 11/83 прерываниям не мешает..

    А есть на 11/83 такое значение SP, при котором вход в прерывание будет с плохим стеком ?

  8. #88

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Т.е. SP == 160002 на 11/83 прерываниям не мешает..

    А есть на 11/83 такое значение SP, при котором вход в прерывание будет с плохим стеком ?
    На 11/83 кернелный стек защищен. Если в стек ничего нельзя положить, KSP принудительно устанавливается в 4, после чего трап по 4 (и причина в CPUERR).

    ---------- Post added at 01:38 ---------- Previous post was at 01:28 ----------

    Еще тест

    Код:
    .TY TEST.MAC
            .MCALL  .EXIT
    
    START:  MOV     #340,@#16
            MOV     #10$,@#14
            BPT
    
    10$:    MOV     SP,R5
            MOV     @#4,R4
            MOV     #20$,@#4
            MOV     #177570,SP
            MTPS    #340
            TST     @#1
    
    20$:    MOV     R5,SP
            MOV     R4,@#4
            .EXIT
    
            .END    START
    
    
    .RU TEST
    Ю
    .`
    Символ "`" автовводится с клавиатуры
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  9. #89

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,249
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Вот тест, проверяющий, что находится по адресу 157776 до и после входа в прерывание с SP == 160002.
    Тест на УКНЦ.

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

    [свернуть]
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	PDPT6.jpg 
Просмотров:	548 
Размер:	74.9 Кб 
ID:	33463  

  10. #90

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну и славно!

    У меня в эмуляторе результат такой:
    Код:
    .RU PDPT6
     
    PDP-11 Interrupts Test #6
     
    SP/160002
    157776/153764
    001176: IOT
    >>> Trap to 004 <<<   ; 001200
    SP/157776
    157776/153764
     
    Program completed.

Страница 9 из 227 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Тесты ВМ1
    от nzeemin в разделе БК-0010/0011
    Ответов: 90
    Последнее: 05.10.2018, 12:24
  2. Диагностика
    от dk_spb в разделе Корвет
    Ответов: 31
    Последнее: 21.07.2017, 23:52
  3. Проблема двух процессоров.
    от Mikka_A в разделе Несортированное железо
    Ответов: 21
    Последнее: 28.11.2006, 17:04

Ваши права

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