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

 
 
> Контроллер прерываний в Microblaze-системе - XST_DEVICE_IS_STARTED
Andrey Pesoshin
сообщение Nov 9 2011, 18:19
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 5-07-10
Пользователь №: 58 297



Проект для Microblaze, к шине PLB подключен контроллер прерываний - XIntc. Код приложения - на C++, BSP - standalone.
Не могу понять, чем вызвано следующее поведение:

РАБОТАЕТ:
1. В коде main.cpp создаю объект XIntc, делаю XIntc_Initialize, затем XIntc_Start(XIN_REAL_MODE).
Обе операции отрабатывают со статусом XST_SUCCESS.
2. Кнопкой делаю сброс системы. В начале кода main.cpp сделан хак, описанный в http://www.xilinx.com/support/answers/30878.htm по способу 2.
Вместе с хаком обе операции из п.1 отрабатывают с XST_SUCCESS.

НЕ РАБОТАЕТ:
1. Рефакторю код - выношу XIntc как член нового класса Application (application.h/application.cpp).
2. Добавляю операции из п.1 "РАБОТАЕТ" в файл application.cpp. При выполнении - XIntc_Initialize (или XIntc_Start) первый раз выполняются нормально, а после сброса - падают со статусом XST_DEVICE_IS_STARTED.
3. Добавление хака из п.2 "РАБОТАЕТ" - не влияет на поведение предыдущего пункта.

В чем проблема? XIntc нельзя безболезненно использовать, если хранить объект где-то кроме стека?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 11th August 2025 - 19:16
Рейтинг@Mail.ru


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