User Tag List

Страница 119 из 177 ПерваяПервая ... 115116117118119120121122123 ... ПоследняяПоследняя
Показано с 1,181 по 1,190 из 2264

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

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

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

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Но в прошивке 134 есть код, выводящий сообщения на все варианты причин вылета.
    Код есть, но он нигде не вызывается. Есть дизассемблированный вариант (правда без комментариев). Внимательно посмотрите и проанализируйте, нигде вызова этого кода нет. Так что причина там всегда одна - HALT INSTRUCTION.

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    В пульт ошибка kernel stack не выходит - трапается по 04, причём есть ли там градации на YELLOW и RED - неизвестно, надо тестировать.
    Так в данном случае он именно останавливается и именно по кернел stack (попытка трапнуться при KSP=160004). А вот у меня он трапается по RSA в этом случае.
    Последний раз редактировалось form; 31.01.2016 в 19:44.
    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. #3

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

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Так в данном случае он именно останавливается и именно по кернел stack
    Просится на выполнение следующий тест :

    Код:
    	.ASect
    	. = 0
    	Jmp	@#Next			// Точка входа пульта.
    
    	. = 4
    	.Word	Trap4
    	.Word	340
    
    	. = 24
    	.Word	Start			// Адрес старта.
    	.Word	340
    Trap4:
    	RtI
    Start:
    	Mov	#400, SP
    	Call	L1
    L1:
    	Mov	#364, SP
    	Call	L2
    L2:
    	Mov	#200, SP
    	Call	L3
    L3:
    	Mov	#2, SP
    	Call	Next
    Next:
    	Wait

  5. #4

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Просится на выполнение следующий тест :
    Трапнулся после mov #364, SP, команда не выполнилась: []

  6. #5

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

    По умолчанию

    Классическая зачистка памяти:
    Код:
            MOV     #160000,SP
            MOV     #4747,@#0
            CLR     PC
    Вызывает YSA там где он есть. Где нет - чистит память и штатно останавливается.
    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. #6

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

    По умолчанию

    Надо бы после CALL вставить NOP для чистоты эксперимента, тогда будет видно при заносе в SP это выполняется или при заносе в стек. Т.е. первой командой на метке будет NOP, а не MOV.

  8. #7

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

    По умолчанию

    .

    В общем ситуация ясна, при любом значении SP меньше 402 ( или меньше 404 в случае прерываний ) - прерывания и вызовы подпрограмм приводят к YELLOW TRAP после выполнения команды.
    Последний раз редактировалось Patron; 01.02.2016 в 00:41.

  9. #8

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

    По умолчанию

    .

    Осталось узнать, произойдёт ли YELLOW TRAP при возникновении прерываний по вектору 4 :

    Код:
    	.ASect
    	. = 0
    	Jmp	@#Next			// Точка входа пульта.
    
    	. = 4
    	.Word	Trap4
    	.Word	340
    	. = 10
    	.Word	Trap4
    	.Word	340
    
    	. = 24
    	.Word	Start			// Адрес старта.
    	.Word	340
    Trap4:
    	RtI
    Start:
    	Mov	#400, SP
    	MFPT				// Начнём с TrapTo_10
    	Nop
    	Jmp	R0
    	Nop
    	Tst	@#1
    	Nop
    Next:
    	Wait
    - - - Добавлено - - -

    Но и ситуацию с аппаратными прерываниями тоже полезно уточнить :

    Код:
    	.ASect
    	. = 0
    	Jmp	@#Next			// Точка входа пульта.
    
    	. = 4
    	.Word	Trap4
    	.Word	340
    
    	. = 24
    	.Word	Start			// Адрес старта.
    	.Word	340
    
    	.=62
    	.Word	Trap4
    	.Word	340
    Trap4:
    	Nop
    	RtI
    Start:
    	Mov	#400, SP
    	BiS	#100, @#177564
    	Nop
    	Nop
    	Nop
    Next:
    	Wait
    - - - Добавлено - - -

    Ещё одна "пушащая" команда: MFPI, но не стоит забывать и про RETURN :

    Код:
    	.ASect
    	. = 0
    	Jmp	@#Next			// Точка входа пульта.
    
    	. = 4
    	.Word	Trap4
    	.Word	340
    
    	. = 24
    	.Word	Start			// Адрес старта.
    	.Word	340
    
    Trap4:
    	Nop
    	RtI
    Start:
    	Mov	#200, SP
    	Nop
    
    	MFPI	(PC)+
    	Nop
    	Nop
    
    	Mov	#Next, -(SP)
    	Nop
    	Nop
    
    	Return
    	Nop
    Next:
    	Nop
    	Wait
    Последний раз редактировалось Patron; 01.02.2016 в 03:01.

  10. #9

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    .
    Осталось узнать, произойдёт ли YELLOW TRAP при возникновении прерываний по вектору 4 :
    По mfpt возникает дополнительное исключение по 000004, сразу перед первой инструкцией обработчика
    []

    По jmp R0 тоже возникает дополнительное исключение по 000004, любопытно что не повторяется бесконечно
    []

    По нечетному адресу также возникает одно дополнительное исключение 000004
    []

    По аппаратному прерыванию тоже возникает исключение 000004
    []

    MFPI вызывает исключение 000004
    []

    Обращение к стеку через -(SP) вызывает исключение 000004
    []

  11. #10

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

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Обращение к стеку через -(SP) вызывает исключение 000004
    А такое мы можем устроить и в HALT-моде :

    Код:
    	.ASect
    	. = 0
    	Jmp	@#Next		// Точка входа пульта.
    
    	. = 4
    	.Word	Trap4
    	.Word	340
    
    	. = 24
    	.Word	Start		// Адрес старта.
    	.Word	340
    
    Trap4:
    	RtI
    	Nop
    Start:
    	Mov	#400, SP
    
    	HALT			// Установить HALT-моду
    
    	Nop
    	Wait	
    
    Next:
    	Clr	-(SP)
    	Nop
    	Nop
    	Wait

Страница 119 из 177 ПерваяПервая ... 115116117118119120121122123 ... ПоследняяПоследняя

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

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

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

Похожие темы

  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

Ваши права

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