реклама на сайте
подробности

 
 
> NIOS alt_exception_unknown
novartis
сообщение Jun 8 2015, 09:03
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



Добрый день.
Отлаживаю проект с Ниосом.
Иногда процессор тупо виснет. Причем может проработать полчаса и все нормально, а иногда через 5 минут виснет.
Запускаю дебаг режим, и если зависает, то попадаю в файл alt_exception_entry.S в следующий код в строку с break:
Код
.....
alt_exception_unknown:
#ifdef NIOS2_HAS_DEBUG_STUB
       /*
        *  Either tell the user now (if there is a debugger attached) or go into
        *  the debug monitor which will loop until a debugger is attached.
        */
        break
#else /* NIOS2_HAS_DEBUG_STUB disabled */
       /*
        *  If there is no debug stub, an infinite loop is more useful.
        */
        br   alt_exception_unknown
#endif /* NIOS2_HAS_DEBUG_STUB */
#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */

        .section .exceptions.exit.label
.Lexception_exit:

        .section .exceptions.exit, "xa"

        /*
         * Restore the saved registers, so that all general purpose registers
         * have been restored to their state at the time the interrupt occured.
         */

        ldw   r5,  68(sp)
        ldw   ea,  72(sp)  /* This becomes the PC once eret is executed */
        ldw   ra,   0(sp)

        wrctl estatus, r5

        ldw   r1,   8(sp)
        ldw   r2,  12(sp)
        ldw   r3,  16(sp)
        ldw   r4,  20(sp)
        ldw   r5,  24(sp)
        ldw   r6,  28(sp)
        ldw   r7,  32(sp)
......


Чтобы это значило и как это победить?


Прикрепленное изображение




Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
novartis
сообщение Jun 8 2015, 12:56
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



Вроде устранили проблему. При возникновении определенной ситуации производил сброс своих пользовательских модулей. И в одном из модулей в момент сброса могло выставиться прерывание (на один такт). Занулил сигнал прерывания на момент сброса, и все стало работать без эксепшинов. Физику процесса так и не постиг. Прерывание как прерывание, только длинною в один такт. То есть как написал Stewart Little аппаратное прерывание имеется, но обработчик то для него есть.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 10:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01341 секунд с 7
ELECTRONIX ©2004-2016