User Tag List

Страница 149 из 227 ПерваяПервая ... 145146147148149150151152153 ... ПоследняяПоследняя
Показано с 1,481 по 1,490 из 2264

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

  1. #1481

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,806
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    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

  2. #1482

    Регистрация
    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

  3. #1483

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

    По умолчанию

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

  4. #1484

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

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Трапнулся после mov #364, SP, команда не выполнилась
    Ситуация получилась очень интересная.

    Код:
    	Mov	#400, SP
    	Call	L1
    L1:
    Call L1 отработал и адрес возврата сохранился по адресу 0376

    ...

    Код:
    	Mov	#364, SP
    	Call	L2
    L2:
    При первом выполнении - команда Mov #364, SP трапнулась, сохранив в стеке свой адрес, возврат по RTI произошёл обратно и при втором исполнении команда Mov #364, SP отработала без проблем, установив стек на 0364. Сразу следом отработала и команда Call L2, сохранив адрес возврата в ячейке 0362.

    ...

    Код:
    	Mov	#200, SP
    	Call	L3
    L3:
    При первом выполнении - команда Mov #200, SP трапнулась, сохранив в стеке свой адрес, возврат по RTI произошёл обратно и при втором исполнении команда Mov #200, SP отработала без проблем, установив стек на 0200. Сразу следом отработала и команда Call L3, но тут картинка кончилась.

  5. #1485

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

    По умолчанию

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

  6. #1486

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    но тут картинка кончилась.
    Получилось переключить анализатор в transitional mode - теперь захват значений идет по каждому изменению CPU_CLK (та которая подается на реальный 1801ВМх), но уродский Quartus не может нормально экспортировать такой файл в картинку. Нормальный просмотровщик .vcd я не нашел - бОльшая часть из них глючит и файл не открывает. Выложил .csv, .tbl, .vcd тут
    C .vcd у меня отработал только GTKWave но с большим скрипом.
    Update: надо бы на Перле написать скрипт, который преобразует один из форматов во вменяемый лог транзакций.

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

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Надо бы после CALL вставить NOP для чистоты эксперимента, тогда будет видно при заносе в SP это выполняется или при заносе в стек. Т.е. первой командой на метке будет NOP, а не MOV.
    Понадобилось добавить два nop, чтобы убедиться что причиной исключения является инструкция call, то есть - call исполняется, потом проверяется стек и возникает исключение. Вставил несколько nop после mov #200, SP - никаких исключений mov не вызвал.
    Последний раз редактировалось Vslav; 31.01.2016 в 23:26.

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

  8. #1487

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

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Понадобилось добавить два nop, чтобы убедиться что причиной исключения является инструкция call, то есть - call исполняется, потом проверяется стек и возникает исклоючение. Вставил несколько nop после mov #200, SP - никаких исключений не возникло.
    А адрес какой команды заносится в стек при исключении?

  9. #1488

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

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Вставил несколько nop после mov #200, SP - никаких исключений mov не вызвал.
    Но на выложенной картинке в стек при прерывании попадает именно адрес MOV и после RTI команда MOV выполняется второй раз.

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

    Для проверки прерывания при команде CALL можно прогнать такой тест:

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

  10. #1489

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Но на выложенной картинке в стек при прерывании попадает именно адрес MOV и после RTI команда MOV выполняется второй раз.
    Она не выполняется второй раз, первый раз просто произошла предвыборка, собственно команда не выполнилась - это видно по тому что стек не изменился, и при добавлении nop-ов просто происходит предвыборка nop-ов. Сохраняемый адрес возврата - на точку куда передала управление call.

  11. #1490

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

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Она не выполняется второй раз
    Тогда можно проверить, как отработает IOT после MOV #2, SP :

    Код:
    	.ASect
    	. = 0
    	Jmp	@#Next			// Точка входа пульта.
    
    	. = 4
    	.Word	Trap4
    	.Word	340
    
    	. = 20
    	.Word	Trap4
    	.Word	340
    	.Word	Start			// Адрес старта.
    	.Word	340
    Trap4:
    	Mov	SP, @#100
    	Wait
    Start:
    	Mov	#2, SP
    	Nop
    	Nop
    
    	IOT
    	Nop
    	Nop
    Next:
    	Wait
    Последний раз редактировалось Patron; 31.01.2016 в 23:54.

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

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

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

Эту тему просматривают: 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

Ваши права

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